【发布时间】:2017-10-16 15:07:12
【问题描述】:
当我尝试使用下面的代码获取 Dbpedia 本体类时
public void classofontology(){
Set<OWLClass> classes = ontology.getClassesInSignature();
System.out.println("le nombre des classes total de l'ontologie est : "+classes.size());
for(OWLClass clss: classes)
System.out.println(clss.getIRI().getFragment());
}
我得到了类的总数,所以它们都被浏览了,但我没有类的名称:我得到输出“null”但是当我尝试直接使用 clss 而不是 clss.getIRI().getFragment()我得到了 IRI 。我只需要课程的名称,我不明白为什么我不能得到它,我将不胜感激
如果你能帮我得到它。谢谢你
Ps:我注意到类的 IRI 与您在 Building 和 Book 类中看到的不同,这可能是问题的根源吗?
通过代码构建IRI http://dbpedia.org/ontology/Building
通过代码获得的图书 IRI http://schema.org/Book
【问题讨论】:
-
1.像往常一样,阅读 [Java 文档] (owlcs.github.io/owlapi/apidocs_5/org/semanticweb/owlapi/model/…) 以了解该方法返回的内容以及为什么有时会返回 null。 2. 如果您真的想从 IRI 获取名称,请使用
SimpleIRIShortFormProvider。 3. 为什么不用rdfs:label代替呢?这是最佳实践,因为标签应该提供“真正的”人类可读形式。