Protege 相当于查询

Protege Equivalent to query

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

膳食课程 和(有食物价值比萨) and(hasDrink value Wine)

谢谢

这有点复杂,但是如果你查看 ontology 定义为 :MealCourse 的所有内容都是 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