0

请帮助列出 wine Ontology 中的所有 Mealcourse 或很高兴收到这样的有用链接:Sparql query on constraint list (Equivalent To) in protégé

MealCourse and (hasFood value Pizza) and (hasDrink value Wine)

谢谢

4

1 回答 1

0

这有点复杂,但是如果您查看本体,定义为 a 的所有内容:MealCourse都是 an owl:equivalentClass,因此您需要首先找到所有owl:equivalentClass内容,然后如果查看结果,您会发现它们是由owl:intersectionOf部分组成的。然后你需要打破这个交集并过滤,这样你就只会得到:MealCourse作为交集一部分的对象。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX : <http://www.w3.org/TR/2003/PR-owl-guide-20031209/food#>
SELECT distinct *
    WHERE { ?subject owl:equivalentClass ?object. 
    ?object (owl:intersectionOf | owl:unionOf) ?node.
    ?node rdf:rest*/rdf:first ?eq.
    Filter ( ?eq in (:MealCourse ) )
}
orderBy ?subject
于 2015-03-09T17:35:32.440 回答