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

How do I get the object properties of an individual in SPARQL Query?

假设我给一个词"Product"结果应该是

A product ... can be ... new ... NPD
A product ... can be ... existing ... Re-design
A Product ... has ... structure, ... has ... function, ... has ... behavior

其中 "can be" 和 "has" 是对象属性,结构、功能、行为等是链接到 Product

的实例

我试过了

我还想让它显示输出的对象属性。像这里一样,我希望它用产品

以外的术语显示函数、行为等的对象属性

给定 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 子句中,因为如果没有这样的信息,它就不会 return 某些东西:

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 }
}