SPARQL查询,只有当一个主题的所有对象与另一个主题的所有对象匹配时才选择



假设我有一个情况,我只想要那些修理我的汽车的所有问题的商店。示例知识图如下图所示。

带有上述实例的知识图示例图像

在本例中:

<.car> <.hasRepair> <.engine>  
<.car> <.hasRepair> <.color>  
<.car> <.hasRepair> <.body>  

<.shop1> <.doesService> <.color>  
<.shop2> <.doesService> <.engine>  
<.shop2> <.doesService> <.color>  
<.shop2> <.doesService> <.body>  

我想要一个SPARQL查询,它将只选择shop2,因为它匹配汽车的所有修理,而shop1不解决所有修理。

而且,商店2可以提供汽车不需要任何修理的其他服务(如换油)

简单点,只返回提供汽车发动机服务的商店。

SELECT ?sh WHERE {
?sh rdf:type Shop.
?e rdf:type Engine.
?sh doesService ?e .
}

相关内容

最新更新