代码之家  ›  专栏  ›  技术社区  ›  Nina

无法获取Dbpedia类的名称

  •  0
  • Nina  · 技术社区  · 9 年前

    当我试图使用下面的代码获取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());
    
               }
    

    clss 而不是 clss.getIRI().getFragment() 我得到IRI。我只需要这些课程的名字,我不明白为什么我不能得到它,我将不胜感激 如果你能帮我得到它。非常感谢。

    Ps:我注意到类的IRI并不像你看到的Building和Book类一样,这是问题的根源吗?

    http://dbpedia.org/ontology/Building

    通过代码获取的书籍IRI http://schema.org/Book

    1 回复  |  直到 9 年前
        1
  •  1
  •   Ignazio    9 年前

    简而言之,IRIs没有名字。

    最后一部分 IRI getFragment() 方法然而,不能保证有效的 IRI公司 IRI公司 可能以散列或破折号终止,或者可能在最后一个值之后只有数字)。这背后的原因是片段必须是XML QName——它在RDF/XML中用于命名标记。

    例如 IRI.create("http://www.example.com/test/1234").getFragment() 将返回空字符串。

    根据建议 AKSW ,使用 SimpleIRIShortFormProvider AnnotationValueShortFormProvider .