Протеже 5; найти все классы, связанные с кардинальностью "один к одному" для определенного класса

У меня есть OWL онтология, Protege 5. Я хочу начать с исходного класса S, чтобы получить все целевые классы D, где S связан с D, посредством кардинальности to-one через objectProperty, т.е. S ([0..*] - 1) D несмотря на то, что является связующим объектом Property.

В DL это было бы что-то похожее на:

S ⊑ =1r:D;

где S - моя исходная концепция, D - переменная концепция, а r - переменная objectProperty.

Первый пункт: как выразить это в синтаксисе Манчестера, чтобы использовать его в запросе Protege DL?

Второй пункт: для такого запроса, какие типы ограничения свойств учитываются при рассмотрении запроса? например, ограничение количества элементов, функциональные свойства, someValuesFrom, allValuesFrom?

Благодарю.

1 ответ

Вы не можете написать тип запроса, о котором вы спрашиваете, в синтаксисе запроса DL. Синтаксис запроса DL не имеет места для переменных; все, что вы можете написать, - это выражения класса, после чего вы можете запросить людей в этом классе, подклассы или суперклассы класса. Таким образом, ответ на первый вопрос заключается в том, что вы не можете выразить свой запрос в синтаксисе Манчестера.

Во-вторых, здесь могут быть рассуждения, которые помогут вам сделать вывод. Например, вы можете использовать рассуждение, которое поддерживает запросы SPARQL, и записать шаблон выражения класса с переменными. В итоге вы получите что-то вроде этого (но это не проверено):

prefix xsd:  <http://www.w3.org/2001/XMLSchema#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix owl:  <http://www.w3.org/2002/07/owl#>

select ?s ?p ?d where {
  ?s rdfs:subClassOf [ a owl:Restriction ; 
                       owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                       owl:onProperty ?p ;
                       owl:onClass ?d ]
}

Я не знаю, сможет ли большинство рассудителей OWL справиться с этим, хотя. Как упомянуто выше, типичная задача для рассудителя OWL состоит в том, чтобы посмотреть на выражение класса и определить его подклассы и суперклассы. Это становится все сложнее.

Другие вопросы по тегам