无法获取 Dbpedia 的名称 类
can't get the name of Dbpedia classes
当我尝试使用下面的代码
获取 Dbpedia ontology 的 类 时
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 与建筑和图书 类 的 IRI 不尽相同,这会是问题的根源吗?
通过代码获取建筑IRI
http://dbpedia.org/ontology/Building
代码获取的图书IRI
http://schema.org/Book
简而言之,IRI 没有名称。
IRI
的最后一部分(从最后一个斜杠或散列字符,或数字开始)由 getFragment()
方法 return 编辑;但是,不能保证有效的 IRI
具有这样的片段(IRI
可能以散列或破折号终止,或者它可能在最后一个值之后只有数字)。这背后的原因是片段必须是 XML QName - 它在 RDF/XML 中用于命名标签。
例如,IRI.create("http://www.example.com/test/1234").getFragment()
将 return 一个空字符串。
根据 AKSW 的建议,使用 SimpleIRIShortFormProvider
或者,如果您的实体有标签,则使用 AnnotationValueShortFormProvider
。
当我尝试使用下面的代码
获取 Dbpedia ontology 的 类 时 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 与建筑和图书 类 的 IRI 不尽相同,这会是问题的根源吗?
通过代码获取建筑IRI http://dbpedia.org/ontology/Building
代码获取的图书IRI http://schema.org/Book
简而言之,IRI 没有名称。
IRI
的最后一部分(从最后一个斜杠或散列字符,或数字开始)由 getFragment()
方法 return 编辑;但是,不能保证有效的 IRI
具有这样的片段(IRI
可能以散列或破折号终止,或者它可能在最后一个值之后只有数字)。这背后的原因是片段必须是 XML QName - 它在 RDF/XML 中用于命名标签。
例如,IRI.create("http://www.example.com/test/1234").getFragment()
将 return 一个空字符串。
根据 AKSW 的建议,使用 SimpleIRIShortFormProvider
或者,如果您的实体有标签,则使用 AnnotationValueShortFormProvider
。