2016-05-26 3 views
1

Говорит, что у меня есть некоторые онтологии, созданные в Protege и есть экземпляр класса с некоторым свойством объекта, а также список свойств объекта, показал в следующих изображениях:Получить Inferred Объектого Утверждения собственности Отшельник Reasoner

An individual of the class Device, "Email_Server", with the object property "realizes"

иерархия свойств объекта выглядит следующим образом:

Object Property Hierarchy

Теперь, когда я включаю рассуждающий на (отшельник), я получаю следующее Assert объект пр operties для этого же лица:

Inferred Object Properties for the individual Email_server

Когда я нажимаю в пояснениях для предполагаемого объекта недвижимости «dependsUp» клиента, я получаю:

Explanation for the inferred Object Property "dependsUp" customer

Мой вопрос, как я могу генерировать это использование Java? Я уже могу получить выведенные свойства объекта для некоторого индивида со следующими (неполный здесь abreviety, но он работает, как я проверил):

for (OWLNamedIndividual namedIndividual : this.ontology.getIndividualsInSignature()) { 
      if (subjectName.equals(namedIndividual.getIRI().getFragment())) { 
       OWLObjectProperty objectProperty = fac.getOWLObjectProperty(IRI.create(propertyIRI)); 
       NodeSet<OWLNamedIndividual> namedIndividualSet = reasoner.getObjectPropertyValues(namedIndividual ,objectProperty); 

       for (Node<OWLNamedIndividual> namedIndividualsInObjectPropertySet : namedIndividualSet) { 
        for (OWLNamedIndividual namedIndividualForObjectPropertySet : namedIndividualsInObjectPropertySet) { 
         for (OWLClassExpression owlClass : namedIndividualForObjectPropertySet.getTypes(this.ontology)){ 
          if (owlClass.toString().split("#")[1].replace(">", "").equals(archiClass)) { 
           result.add(OWLOntologyUtils.getHumanInstanceName(this.ontology, namedIndividualForObjectPropertySet.getIRI().getFragment())); 
// Result contains all the inferred object properties shown in the above pictures, so this code works. How can I access the explanation for one of the inferred object properties by the reasoner here? 
          } 
         } 
        } 
       } 

      } 
     } 

ответ

1

Вы можете использовать InferredObjectPropertyAxiomGenerator:

InferredObjectPropertyAxiomGenerator generator = new InferredObjectPropertyAxiomGenerator(); 
generator.createAxioms(owldatafactory, reasoner); 
+0

Звучит интересно, не знаю, как использовать его для получения свойств предполагаемых объектов для отдельного лица. Я вижу, что вы являетесь основным источником OWLAPI, можете ли вы быть любезны, чтобы предоставить мне пример того, как я могу получить свойства предполагаемых объектов для отдельных лиц, использующих этот класс? – luispcosta

Смежные вопросы