星号在这个SPARQL查询中的含义是什么?

时间:2017-05-08 03:00:19

标签: sparql semantic-web owl ontology triplestore

这个SPARQL查询中星号的含义是什么?

SELECT ?uri ?type
WHERE{
    ?uri a ?type.
    ?type rdfs:subClassOf* example:Device.
}

是否意味着“子类的子类”? 我可以将它与其他谓词一起使用吗?

1 个答案:

答案 0 :(得分:2)

路径元素后面的星号(*)表示“此元素为零或更多”。

如果路径中没有其他元素,那么*?b意味着?b也可能只是?a,它们之间根本没有路径元素。

?item wdt:P31/wdt:P279* ?class.
# means:
?item wdt:P31 ?class
# or
?item wdt:P31/wdt:P279 ?class
# or
?item wdt:P31/wdt:P279/wdt:P279 ?class
# or
?item wdt:P31/wdt:P279/wdt:P279/wdt:P279 ?class

如果路径中没有其他元素,?某个东西*?b表示?b也可能只是?a,它们之间根本没有路径元素。有关更详细的答案,请参阅here