Java 如何使用OWLAPI获取对象属性的集合

Java 如何使用OWLAPI获取对象属性的集合,java,owl-api,Java,Owl Api,请,我想使用OWLAPI用java程序解析以下本体 <ObjectPropertyAssertion> <ObjectProperty IRI="http://onto1#creator"/> <NamedIndividual IRI="Mark1"/> <NamedIndividual IRI="Car1"/> </ObjectPropertyAssertion>

请,我想使用OWLAPI用java程序解析以下本体

   <ObjectPropertyAssertion>
        <ObjectProperty IRI="http://onto1#creator"/>
        <NamedIndividual IRI="Mark1"/>
        <NamedIndividual IRI="Car1"/>
    </ObjectPropertyAssertion>
    <ObjectPropertyAssertion>
        <ObjectProperty IRI="http://onto1#creator"/>
        <NamedIndividual IRI="Mark2"/>
        <NamedIndividual IRI="Car2"/>
    </ObjectPropertyAssertion>

输出:

  • 标记1-->Car1
  • 标记2-->Car2

提前感谢您的帮助

您需要首先提取本体中的个体,然后要求
OWL API
查找分配给这些个体的对象属性值:

    Set<OWLNamedIndividual> inds=localOntology.getIndividualsInSignature();
    for (OWLNamedIndividual ind: inds){
        System.out.println(ind.getObjectPropertyValues(localOntology));
    }
Set inds=localOntology.getIndividualsInSignature();
用于(OWLNamedIndividual ind:inds){
System.out.println(ind.getObjectPropertyValues(localOntology));
}

或者,您可以将OWLDataFactory用作

OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLDataFactory factory = manager.getDataFactory();
 Set<OWLNamedIndividual> inds = localOntology.getIndividualsInSignature();
    for (OWLNamedIndividual ind: inds){
        System.out.println(ind.getObjectPropertyValues(factory.getOWLObjectProperty(IRI.create("Put the iri of the property here")), localOntology));
    }
OWLOntologyManager=OWLManager.createOWLOntologyManager();
OWLDataFactory=manager.getDataFactory();
Set inds=localOntology.getIndividualsInSignature();
用于(OWLNamedIndividual ind:inds){
System.out.println(ind.getObjectPropertyValues(factory.getOWLObjectProperty(IRI.create(“在此处放置属性的IRI”)),localOntology));
}
尽管要记住
System.out.println(ind.getObjectPropertyValues(factory.getOWLObjectProperty(IRI.create(“在此处放置属性的IRI”)),localOntology))返回一个
集合


这样做的好处是可以准确地查找您要使用的属性,而不是某个特定个体上的所有属性。

非常感谢,是的,我使用了此解决方案,因为它返回特定对象属性的一组个体。对于OWLAPI版本4,check EntitySearcher-许多在OWLTentity中声明的方法都被移动到了那里。嗨!根据个人在owlapi中的DataProperty,是否有任何简单的方法来保留个人?例如,如果我想保留对我来说未知的个体,但我知道它应该具有DataProperty(比如orderNumber=1)。我认为遍历集合IND需要更多的时间。