Я пытаюсь создать SPARQL-запрос, который возвращает индивидуумов, которые являются экземпляром выражения эквивалентного класса (таким образом, имитируя некоторые навыки рассуждения протеже в Semantic Web).Может кто-нибудь помочь мне понять, как это сделать?У меня есть класс с именем «нарушение», который содержит эквивалентные ограничения класса.Теперь я хочу найти лиц, которые соответствуют условиям этого ограничения.
Это мой запрос на данный момент:
SELECT distinct ?Carmovement ?person ?restriction ?message
WHERE {?Carmovement carmovement:has_driver ?person .
?Carmovement rdf:type ?restriction . #rdf:type is no succes for getting instances
?object owl:equivalentClass ?restriction .
?object violin:message ?message}`
Запрос не дает никаких результатов, потому что я использовал "rdf: type ", мне интересно, каким образом я могу оценить, соответствует ли экземпляр условию ограничения класса.
Пример ограничения класса:
owl:equivalentClass [ rdf:type owl:Class ;
owl:intersectionOf (
<http://desibo.frsf.utn.edu.ar/ontologies/2012/9/CarMovement.owl#Car_Movement>
[ rdf:type owl:Restriction ;
owl:onProperty <http://desibo.frsf.utn.edu.ar/ontologies/2012/9/CarMovement.owl#has_driver> ;
owl:allValuesFrom <http://desibo.frsf.utn.edu.ar/ontologies/2012/9/CarMovement.owl#BarredPerson>
]
)
] ;
Я рассчитываю получить лиц, которые имеютсвойство "has_driver" типа "BarredPerson".