在 SPARQL 中获取 "Point-in time" 属性 的所有文章
Getting all articles with "Point-in time" property in SPARQL
我想查询所有具有 属性 P585(时间点)的维基百科文章。不幸的是,其中一些非常模糊,并且在子子属性下,如图所示。我希望能够过滤这些日期,无论它们是什么属性。
查询:“?item p:P585/ps:P585 ?date.”只返回时间点是根类别的结果,无论我尝试什么,我都无法得到所有结果在某处有“时间点”的文章。或者,如果不可能,至少我希望能够指定“重大事件/*/时间点”...
谢谢!
问题是您希望 'point in time' 成为符合条件的 属性 而不是您当前所写的 属性 声明。让我通过考虑以下关于 Q76
(巴拉克奥巴马)和 P26
(配偶)的查询来阐明我的意思:
SELECT *
WHERE {
wd:Q76 p:P26 ?statement .
?statement ?p ?o
}
ps:P26
告诉我们语句的对象是谁,即米歇尔奥巴马。
注意:通常你会发现每个 ?a p:Px/ps:Px ?b
都有 ?a wdt:Px ?b
(这取决于陈述的等级,例如有两个关于奥巴马出生地的陈述,在将它列为夏威夷,另一个列为肯尼亚,但只有列出夏威夷的语句排名高到足以保证直接 link 与 wdt
)。
但是,如果我们想找到关于语句的限定属性(例如,奥巴马夫妇何时结婚,在哪里等),那么我们需要一个不同的命名空间,在本例中为 pq
,其中 'q'代表限定符。
这与您的示例有何关系?
在您的示例中,您要查找的 'main' 属性 是 'significant event',因此 P793
,限定符是 P585
.
因此您的查询应该是这样的:
SELECT *
WHERE {
?subject p:P793 ?statement .
?statement pq:P585 ?date .
}
或简称:
SELECT *
WHERE {
?subject p:P793/pq:P585 ?date .
}
如果您对重大事件的对象更感兴趣(在您的示例中是 'rocket launch' Q797476
),那么您可以这样指定:
SELECT *
WHERE {
?subject p:P793 ?statement .
?statement pq:P585 ?date ;
ps:P793 wd:Q797476 .
}
注意命名空间和 属性 数字所起的作用。
我想查询所有具有 属性 P585(时间点)的维基百科文章。不幸的是,其中一些非常模糊,并且在子子属性下,如图所示。我希望能够过滤这些日期,无论它们是什么属性。
查询:“?item p:P585/ps:P585 ?date.”只返回时间点是根类别的结果,无论我尝试什么,我都无法得到所有结果在某处有“时间点”的文章。或者,如果不可能,至少我希望能够指定“重大事件/*/时间点”...
谢谢!
问题是您希望 'point in time' 成为符合条件的 属性 而不是您当前所写的 属性 声明。让我通过考虑以下关于 Q76
(巴拉克奥巴马)和 P26
(配偶)的查询来阐明我的意思:
SELECT *
WHERE {
wd:Q76 p:P26 ?statement .
?statement ?p ?o
}
ps:P26
告诉我们语句的对象是谁,即米歇尔奥巴马。
注意:通常你会发现每个 ?a p:Px/ps:Px ?b
都有 ?a wdt:Px ?b
(这取决于陈述的等级,例如有两个关于奥巴马出生地的陈述,在将它列为夏威夷,另一个列为肯尼亚,但只有列出夏威夷的语句排名高到足以保证直接 link 与 wdt
)。
但是,如果我们想找到关于语句的限定属性(例如,奥巴马夫妇何时结婚,在哪里等),那么我们需要一个不同的命名空间,在本例中为 pq
,其中 'q'代表限定符。
这与您的示例有何关系?
在您的示例中,您要查找的 'main' 属性 是 'significant event',因此 P793
,限定符是 P585
.
因此您的查询应该是这样的:
SELECT *
WHERE {
?subject p:P793 ?statement .
?statement pq:P585 ?date .
}
或简称:
SELECT *
WHERE {
?subject p:P793/pq:P585 ?date .
}
如果您对重大事件的对象更感兴趣(在您的示例中是 'rocket launch' Q797476
),那么您可以这样指定:
SELECT *
WHERE {
?subject p:P793 ?statement .
?statement pq:P585 ?date ;
ps:P793 wd:Q797476 .
}
注意命名空间和 属性 数字所起的作用。