我正在尝试创建SPARQL查询,该查询返回的个人是等效类表达式的实例(因此在语义Web上模仿了protégé的一些推理技巧)。谁能帮我弄清楚该怎么做?我有一个名为“ violation”的类,其中包含等效的类限制。现在,我想找到满足此限制条件的个人。
这是我到目前为止的查询:
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>
]
)
] ;
我希望有人拥有“ BarredPerson”类型的“ has_driver”属性。