Sparql Wikidata示例和子类

Sparql Wikidata示例和子类,sparql,wikidata,Sparql,Wikidata,在(和其他地方)计算实例的示例使用wdt:P31/wdt:P279*属性路径。例如,Wikidata中的人数: 选择(计数(?项目)作为计数) 在哪里{ ?项目wdt:P31/wdt:P279*wd:Q5。 } 因此,作为人类的一个子类的实体(我不认为这种类型存在,但认为“诺贝尔奖得主”,等等)也包括在内。但其他例子,如“1921年或以后出生的网站链接最多且没有图片的女性”,在这里被截断: 选择?s?desc?linkcount 哪里 { ?s wdt:P31 wd:Q5;#人类 wdt:P2

在(和其他地方)计算实例的示例使用
wdt:P31/wdt:P279*
属性路径。例如,Wikidata中的人数:

选择(计数(?项目)作为计数)
在哪里{
?项目wdt:P31/wdt:P279*wd:Q5。
}

因此,作为人类的一个子类的实体(我不认为这种类型存在,但认为“诺贝尔奖得主”,等等)也包括在内。但其他例子,如“1921年或以后出生的网站链接最多且没有图片的女性”,在这里被截断:

选择?s?desc?linkcount
哪里
{
?s wdt:P31 wd:Q5;#人类
wdt:P21 wd:Q6581072;#性别:女性
wdt:P569?出生。
过滤器(?born>=“1921-01-01T00:00:00Z”^^xsd:dateTime)。
...


不要使用
wdt:P31/wdt:P279*
属性路径。这些通常是疏忽(或者可能是为了速度?),或者子类属性路径在这些情况下实际上不需要,我太密集了,不知道为什么?

好吧,你完全正确。为了1)完整性,如果2)类型没有具体化,你总是必须使用路径
wdt:P31/wdt:P279*
。你可以检查是否有不属于
wd:Q5
direc的实例但是通过
SELECT?s将{s wdt:P31/wdt:P279+wd:Q5筛选器不存在{s wdt:P31 wd:Q5}发送到它的一个子类
-也就是说,这只是一个示例查询,我不认为作者在编写查询时考虑的是完整性,而在用一个短语描述查询时考虑的是完整性。好吧,你完全正确。1)完整性,如果2)类型没有具体化,你总是必须使用路径
wdt:P31/wdt:P279*
。你可以检查是否有实例不直接属于
wd:Q5
,而是通过
SELECT?s属于其子类之一,其中{s wdt:P31/wdt:P279+wd:Q5筛选器不存在{s wdt:P31 wd:Q5}
-也就是说,这只是一个示例查询,我认为作者在编写查询时没有考虑完整性,而在用单个短语描述查询时也没有考虑完整性。