繁体   English   中英

猫头鹰 从rdf提取ObjectProperty

[英]OwlApi. Extract ObjectProperty from rdf

我正在尝试从包含一些rdf三元组的.rdf文件中提取所有类和ObjectProperty。 我正在加载此文件LUBM

OWLOntologyManager manager  = OWLManager.createOWLOntologyManager();
File ontFile = new File("C:\\Ontology\\University0_0.owl");
OWLOntology ont = manager.loadOntologyFromOntologyDocument(ontFile);
StructuralReasonerFactory factory = new StructuralReasonerFactory();
OWLReasoner reasoner = factory.createReasoner(ont);

现在,我提取所有类:

 System.out.println("Class");
 for (OWLClass cls : ont.getClassesInSignature(Imports.EXCLUDED)){
     System.out.println(cls.toString());
 }

现在,我提取所有ObjectProperty:

System.out.println("Role");
for (OWLObjectProperty obp : ont.getObjectPropertiesInSignature()){
    System.out.println(obp.toString());
}

我不需要本体( LUBM Ontology )的所有类和属性,而只需要.rdf文件中使用的类和属性。 但是ont.getObjectPropertiesInSignature()返回一个空集。 (我对DBPedia的.rdf文件有同样的问题。)

我知道我可以使用ont.getObjectPropertiesInSignature(Imports.INCLUDED),但是我对本体的属性不感兴趣。

此后,我需要对SPARQL-DL进行一些查询,如果执行以下查询,则不会得到结果。

SELECT DISTINCT ?x ?y WHERE { 
    PropertyValue(?x, <http://swat.cse.lehigh.edu/onto/univ-bench.owl#takesCourse>, ?y)
}

(我采取http://swat.cse.lehigh.edu/onto/univ-bench.owl#takesCourse手动探索数据集的过程)

但是,如果我使用Jena并使用SPARQL查询执行上述查询,那么所有工作都将有效,并且我会得到结果。

SELECT DISTINCT ?x ?y 
WHERE{
?x <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#takesCourse> ?y.
}

在您链接的文件中看不到任何对象属性声明-这很可能会阻止它们被列出。

请注意,您显示的SPARQL查询具有不同的属性名称空间,因此它们带来不同的结果也就不足为奇了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM