【发布时间】:2014-08-14 12:07:04
【问题描述】:
我有从http://wiki.dbpedia.org/Downloads39 下载的 DBPedia Ontology。 在这个本体中,我有例如这种情况:
<owl:Class rdf:about="http://dbpedia.org/ontology/BasketballLeague">
<rdfs:label xml:lang="el">Ομοσπονδία Καλαθοσφαίρισης</rdfs:label><rdfs:label xml:lang="fr">ligue de basketball</rdfs:label><rdfs:label xml:lang="en">basketball league</rdfs:label><rdfs:label xml:lang="it">lega di pallacanestro</rdfs:label><rdfs:label xml:lang="ja">バスケットボールリーグ</rdfs:label><rdfs:comment xml:lang="en">a group of sports teams that compete against each other in Basketball</rdfs:comment><rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/SportsLeague"/>
</owl:Class>
现在,我想使用 Jena 阅读这个本体,并检索以法语为对象的 owl 类“联赛篮球”。我不知道如何使用 Jena 库将法语设置为这种情况。
从 DBPedia Ontology 看来,xml:lang="fr" 是一个谓词,但我试过这段代码:
String inputFileName = "C:\\dbpedia_3.9.owl";
// Create an empty in-memory ontology model
OntDocumentManager mgr = new OntDocumentManager();
OntModelSpec s = new OntModelSpec( OntModelSpec.RDFS_MEM );
s.setDocumentManager( mgr );
OntModel m = ModelFactory.createOntologyModel( s, null );
// use the FileManager to open the ontology from the filesystem
InputStream in = FileManager.get().open(inputFileName);
if (in == null) {
throw new IllegalArgumentException( "File: " + inputFileName + " not found");
}
// read the ontology file
m.read( in, "" );
StmtIterator stmti = m.listStatements();
while (stmti.hasNext()){
Statement statement = stmti.nextStatement();
System.out.println (statement.getPredicate());
}
但我只得到:
我没有得到关于谓词中语言的信息。为什么? 我如何检索这些信息和 owl 类?我在这里做错了什么?
【问题讨论】:
-
这个标题非常具有误导性。您不是在问如何检索类,而是如何检索特定语言的类的标签。
标签: java jena owl ontology dbpedia