这个SPARQL查询中星号的含义是什么?这个SPARQL查询中星号的含义是什么?
SELECT ?uri ?type
WHERE{
?uri a ?type.
?type rdfs:subClassOf* example:Device.
}
这是否意味着“子类的子类”? 我可以与其他谓词一起使用吗?
这个SPARQL查询中星号的含义是什么?这个SPARQL查询中星号的含义是什么?
SELECT ?uri ?type
WHERE{
?uri a ?type.
?type rdfs:subClassOf* example:Device.
}
这是否意味着“子类的子类”? 我可以与其他谓词一起使用吗?
谓词后面的星号表示您希望遵循零个或多个出现rdfs:subClassOf的属性路径。
你的短语“子类的子类”是关于正确的,虽然我会说“子类的子类”,因为*属性路径是递归的。正如你可以从AKSW评论的技术文件中看到的,有几个其他的财产路径运营商可以在任何一个方向上进行操作,对于遮蔽数量(或深度)有或没有限制。
这是一个很好的例子, Marklogic ...我认为这应该在任何1.1端点内工作。
https://developer.marklogic.com/features/semantics/path-examples
是,财产路径适用于任何谓词/属性,不仅仅是RDFS:subClassOf。
路径元素之后的星号(*)表示“该元素为零或多个”。
如果路径中没有其他元素,那么?a * * 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还可能仅仅是?直接在,它们之间没有路径元素可言。有关更详细的答案,请参阅here。
Ehm,来自我身边的一个问题:你读过我对你的第一个问题的回答:http://stackoverflow.com/questions/43827050/what-does-a-mean-in-this-sparql-query。在那里我向您展示了一个链接到SPARQL 1.1 Property Paths(https://www.w3.org/TR/sparql11-query/#propertypaths),对不对? – AKSW
是的。这个参考非常好。基于此,我认为其含义是“子类的子类”。我只是想确认一下。 – Juan
不,'p *'是属性'p'的传递闭包,在你的情况下'p = rdfs:subClassOf' – AKSW