如何计算一些 属性 的项目
How to count items with some property
使用 https://query.wikidata.org 我需要计算维基数据中有 P402 语句的 Q*
项的数量。像
SELECT (COUNT(?item) AS ?count) WHERE {?item wdt:P402.}
但是,当然,这是一个无效的查询。
您的 WHERE
子句未指定有效的基本三元组模式:RDF 三元组由三个项目(主语、谓语和宾语)组成,而您的模式仅包含两个。不太了解 Wikidata 词汇表,我假设 wdt:P402
是您感兴趣的谓词。如果是这种情况,您的模式缺少三重模式对象的变量或占位符。
要解决此问题,您可以这样做:
SELECT (COUNT(?item) AS ?count) WHERE {?item wdt:P402 ?object.}
或者(因为您对对象的值并不真正感兴趣),改用空白节点:
SELECT (COUNT(?item) AS ?count) WHERE {?item wdt:P402 [].}
最后,如果你想确保这个 属性 具有多个值的项目不会被多次计算,你还需要添加一个 DISTINCT
子句到你的查询:
SELECT (COUNT(DISTINCT ?item) AS ?count) WHERE {?item wdt:P402 [].}
使用 https://query.wikidata.org 我需要计算维基数据中有 P402 语句的 Q*
项的数量。像
SELECT (COUNT(?item) AS ?count) WHERE {?item wdt:P402.}
但是,当然,这是一个无效的查询。
您的 WHERE
子句未指定有效的基本三元组模式:RDF 三元组由三个项目(主语、谓语和宾语)组成,而您的模式仅包含两个。不太了解 Wikidata 词汇表,我假设 wdt:P402
是您感兴趣的谓词。如果是这种情况,您的模式缺少三重模式对象的变量或占位符。
要解决此问题,您可以这样做:
SELECT (COUNT(?item) AS ?count) WHERE {?item wdt:P402 ?object.}
或者(因为您对对象的值并不真正感兴趣),改用空白节点:
SELECT (COUNT(?item) AS ?count) WHERE {?item wdt:P402 [].}
最后,如果你想确保这个 属性 具有多个值的项目不会被多次计算,你还需要添加一个 DISTINCT
子句到你的查询:
SELECT (COUNT(DISTINCT ?item) AS ?count) WHERE {?item wdt:P402 [].}