在Eclipse中实现Jena对于Class,DatatypeProperty,ObjectProperty的解析。
可以在Jena的主页(http://jena.sourceforge.net/downloads.html)下载Jena的最新版本,
1)将下载的Jena-2.4.zip解压到任意路径,解压之后生成Jena2.4文件夹,将Jena2.4\lib下的jar文件全部加入CLASSPATH,这样就可以在任意的Java编辑器中调用Jena API了。
2)使用Eclipse,可以通过修改工程的Java创建路径的方法导入Jena jar文件。在Eclipse下创建Java工程(eg:OWL_SQL.java),右健单击工程名字,选择“属性/Properties”,在打开的对话框中选择“Java创建路径/Java Build Path”,在右边标签中选择“库/Libraries”,之后选择“添加外部文件/Add Extenal JARs”,找到Jena2.4\lib目录下的所有jar文件并将其添加到工程。这样就可以运行Jean文档中的例子了。
3)在Eclipse中用同样的方法导入mysql-connector-java-5.0.8-bin.jar到工程OWL_SQL.java中。
package com.tylg.test1;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import org.apache.jena.ontology.DatatypeProperty;
import org.apache.jena.ontology.Individual;
import org.apache.jena.ontology.ObjectProperty;
import org.apache.jena.ontology.OntClass;
import org.apache.jena.ontology.OntModel;
import org.apache.jena.ontology.OntModelSpec;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.util.iterator.ExtendedIterator;
public class Test {
public static void main(String[] args) {
OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
try {
ontModel.read(new FileInputStream("D:\\eclipse\\testing\\101\\onto.rdf"), "");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
ExtendedIterator exIter = ontModel.listClasses();
System.out.print("这些类名全称(class)是:");
int i1 = 0;
while (exIter.hasNext()) {
OntClass oc = (OntClass) exIter.next();
if ((oc.getURI() != null) && (oc.getURI().toString().startsWith("http://oaei"))) {
i1++;
String s1 = oc.getURI() + "";
String s2 = s1.substring(0, s1.indexOf("#"));
String s3 = s1.substring(s2.length() + 1, s1.length());
System.out.println(s3);
}
}
System.out.println("class的个数为" + i1 + "个");
System.out.println("---------------------------------------------------");
ExtendedIterator exIter1 = ontModel.listDatatypeProperties();
int i2 = 0;
System.out.print("这些DatatypeProperty是:");
while (exIter1.hasNext()) {
DatatypeProperty oc = (DatatypeProperty) exIter1.next();
if (oc.getURI() != null && (oc.getURI().toString().startsWith("http://oaei"))) {
i2++;
String s1 = oc.getURI() + "";
String s2 = s1.substring(0, s1.indexOf("#"));
String s3 = s1.substring(s2.length() + 1, s1.length());
System.out.println(s3);
}
}
System.out.println("DatatypeProperty的个数为" + i2 + "个");
System.out.println("---------------------------------------------------");
ExtendedIterator exIter2 = ontModel.listObjectProperties();
int i3 = 0;
System.out.print("这些ObjectProperty是:");
while (exIter2.hasNext()) {
ObjectProperty oc = (ObjectProperty) exIter2.next();
if (oc.getURI() != null && (oc.getURI().toString().startsWith("http://oaei"))) {
i3++;
String s1 = oc.getURI() + "";
String s2 = s1.substring(0, s1.indexOf("#"));
String s3 = s1.substring(s2.length() + 1, s1.length());
System.out.println(s3);
}
}
System.out.println("ObjectProperty的个数为" + i3 + "个");
}
}