Java OwlApi。从rdf中提取ObjectProperty
我试图从包含一些rdf三元组的.rdf文件中提取所有类和ObjectProperties。 我正在加载这个文件 现在我提取所有类:Java OwlApi。从rdf中提取ObjectProperty,java,sparql,owl-api,Java,Sparql,Owl Api,我试图从包含一些rdf三元组的.rdf文件中提取所有类和ObjectProperties。 我正在加载这个文件 现在我提取所有类: System.out.println("Class"); for (OWLClass cls : ont.getClassesInSignature(Imports.EXCLUDED)){ System.out.println(cls.toString()); } 现在我提取所有ObjectProperty: System.out.println(
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());
}
我不需要本体的所有类和属性,只需要.rdf文件中使用的类和属性。
但是ont.getObjectPropertiesInSignature返回一个空集。
我对DBPedia中的.rdf文件也有同样的问题
我知道我可以使用ont.getObjectPropertiesInSignatureImports.include,但我对本体的属性不感兴趣
在此之后,我需要使用SPARQL-DL执行一些查询,如果执行以下查询,则没有结果
SELECT DISTINCT ?x ?y WHERE {
PropertyValue(?x, <http://swat.cse.lehigh.edu/onto/univ-bench.owl#takesCourse>, ?y)
}
我在您链接的文件中看不到任何对象属性声明-这可能会阻止它们被列出
请注意,您显示的SPARQL查询具有不同的属性名称空间,因此它们返回不同的结果也就不足为奇了。您使用的是哪一版本的OWL-API?我使用的是3.0版,您到底想提取什么?您已附加了两个owl文件。您的意思是在第二个文件中只需要对象属性吗?如果是这样,为什么不用第二个路径替换代码中的文件呢?是的,错误在SPARLQ-DL查询中。同样,对于精确的IRI,查询不会返回任何内容。但是ub:worksFor,ub:teacherOf,ub:takescorse,…ect不是属性??第一个链接没有任何对象属性声明,第二个文件具有并且teacherOf是一个对象属性。因此,如果我想使用SPARQL-DL查询上述查询,我需要在我的OWLOntology对象中导入第一个链接中的文件和第二个链接中的文件。正当
SELECT DISTINCT ?x ?y WHERE {
PropertyValue(?x, <http://swat.cse.lehigh.edu/onto/univ-bench.owl#takesCourse>, ?y)
}
SELECT DISTINCT ?x ?y
WHERE{
?x <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#takesCourse> ?y.
}