如何在SPARQL查询中获取个人的对象属性?

时间:2017-05-18 09:59:01

标签: sparql owl protege

假设我说了一句话"产品"结果应该是

!(x >= func(t))

其中"可以"和"有"对象属性和结构,功能,行为等是链接到产品

的实例

我试过这个 enter image description here

我还希望它显示输出的对象属性。就像这里一样,我希望它用函数,行为等的对象属性显示产品

以外的术语

1 个答案:

答案 0 :(得分:0)

给定SPARQL查询

PREFIX uni: <http://www.semanticweb.org/admin/ontologies/2017/4/untitled-ontology-19#>
SELECT ?has ?isa ?satisfies WHERE {
 uni:Product uni:IsA ?isa .
 uni:Product uni:Has ?has .
 uni:Product uni:Satisfies ?satisfies
}

您可以通过附加另一个三重模式并将变量作为三重模式的主题来获取每个人的其他信息:

PREFIX uni: <http://www.semanticweb.org/admin/ontologies/2017/4/untitled-ontology-19#>
SELECT ?has ?p_has ?o_has ?isa ?p_isa ?o_isa ?satisfies ?p_satisfies ?o_satisfies 
WHERE {
 uni:Product uni:IsA ?isa .
 ?isa ?p_isa ?o_isa .
 uni:Product uni:Has ?has .
 ?has ?p_has ?o_has .
 uni:Product uni:Satisfies ?satisfies .
 ?satisfies ?p_satisfies ?o_satisfies
}

您可能必须将其放入OPTIONAL子句中,因为如果没有此类信息,它将不会返回内容:

PREFIX uni: <http://www.semanticweb.org/admin/ontologies/2017/4/untitled-ontology-19#>
SELECT ?has ?p_has ?o_has ?isa ?p_isa ?o_isa ?satisfies ?p_satisfies ?o_satisfies 
WHERE {
 uni:Product uni:IsA ?isa .
 OPTIONAL {?isa ?p_isa ?o_isa }
 uni:Product uni:Has ?has .
 OPTIONAL {?has ?p_has ?o_has }
 uni:Product uni:Satisfies ?satisfies .
 OPTIONAL {?satisfies ?p_satisfies ?o_satisfies }
}