sparql - 查询WikiData,p和wdt默认前缀的区别

标签 sparql rdf wikidata

我是 wikidata 的新手,我不知道什么时候应该使用 -->

wdt 前缀 ( http://www.wikidata.org/prop/direct/ )

我什么时候应该使用 -->

电话 前缀( http://www.wikidata.org/prop/ )。

在我的 sparql 查询中。有人能解释一下这些是什么意思,有什么区别吗?

最佳答案

事情在p:命名空间用于选择 声明 .事情在wdt:命名空间用于选择 实体 .实体选择,使用 wdt: , 允许您简化或总结涉及语句选择的更复杂的查询。
当您看到 p:你通常会看到一个 ps:pq:不久之后。这是因为您很少需要语句列表;您通常想了解有关这些陈述的一些信息。
这个例子是一个两步过程,向你展示了维基数据中的所有涂鸦:

SELECT ?graffiti ?graffitiLabel
WHERE
{
    ?graffiti p:P31 ?statement .  # entities that are statements
    ?statement ps:P31 wd:Q17514 . # which state something is graffiti
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
P31的两个不同版本属性在这里使用,位于不同的命名空间中。每个版本都对其如何连接到其他项目有不同的期望。事情在p:命名空间将实体连接到语句,以及 ps: 中的事物命名空间将语句连接到值。在示例中,p:P31用于选择关于实体的语句。实体将是涂鸦,但我们直到下一行才指定,其中 ps:P31用于选择语句的值(主题),指定这些值应该是涂鸦。
所以,这有点复杂! wdt:命名空间应该使这种查询更简单。该示例可以重写为:
SELECT ?graffiti ?graffitiLabel
WHERE
{
    ?graffiti wdt:P31 wd:Q17514 . # entities that are graffiti
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
这现在缩短了一行,因为我们不再寻找关于涂鸦的陈述,而是寻找涂鸦本身。双p:ps:链接总结为 wdt:同版本P31属性(property)。但是,请注意:
  • 这种技术仅适用于本质上是真或假的陈述,例如涂鸦与否。 (wdt: 中的“t”代表“真实”)。
  • 可用信息wdt:有时只是遗漏了一些事实。根据我的经验,经常是 p:ps:查询将返回比 wdt: 更多的结果询问。
  • 关于sparql - 查询WikiData,p和wdt默认前缀的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36023098/

    相关文章:

    java - SPARQL 类型转换?

    java - 如何在 Jena 中创建自定义的内置函数?

    sparql - MarkLogic:通过三重范围查询约束来约束 SPARQL 查询范围

    java - 如何使用Java将RDF代码上传到fuseki服务器?

    url - 为什么单个维基数据概念有多个 URL?

    count - SPARQL 中的 GROUP 和 COUNT

    rdf - 使用SPARQL查询开放数据社区数据

    sparql - SPARQL 1.1 中的属性路径过滤器

    geolocation - 通过 GPS 位置获取城市的 WikiData 标识符