Sparql 用于查询kz dachau指挥官的Wikidata语法
我不熟悉wikidata,我尝试使用sparql查询kz dachau指挥官的开始/结束日期。我有以下代码,但我没有得到任何数据Sparql 用于查询kz dachau指挥官的Wikidata语法,sparql,wikidata,Sparql,Wikidata,我不熟悉wikidata,我尝试使用sparql查询kz dachau指挥官的开始/结束日期。我有以下代码,但我没有得到任何数据 SELECT ?KZ_Dachau ?start ?end ?name WHERE {?KZ_Dachau p:P1037 ?leiter. ?leiter ps:P1037 wd:Q151198; pq:P580 ?start; pq:P582 ?end. ?KZ_Dachau wdt:P1559 ?name.
SELECT ?KZ_Dachau ?start ?end ?name
WHERE
{?KZ_Dachau p:P1037 ?leiter.
?leiter ps:P1037 wd:Q151198;
pq:P580 ?start;
pq:P582 ?end.
?KZ_Dachau wdt:P1559 ?name. }
我的查询所基于的类似查询工作正常:
SELECT ?papst ?start ?end ?name ?pic
WHERE
{?papst p:P39 ?position.
?position ps:P39 wd:Q19546;
pq:P580 ?start;
pq:P582 ?end.
?papst wdt:P1559 ?name.}
我做错了什么
我认为我的方法是错误的,但我不知道如何解决它:/我不明白,为什么我不能选择实体kz dachau(Q151198)的任何属性。问题是您的顺序错误,即在WikiData中,属性主管/经理有一个人是对象,而不是查询中的主题 此查询将用于:
SELECT ?KZ_Dachau ?start ?end ?name
WHERE
{wd:Q151198 p:P1037 ?leiter. #Notice the change in order
?leiter ps:P1037 ?KZ_Dachau;
pq:P580 ?start;
pq:P582 ?end.
?KZ_Dachau wdt:P1559 ?name. }
此外,您可以使用属性路径,在这种情况下,^
反转属性,以便?a:hasChild?b
与?b^:hasChild?a
完全相同:
SELECT ?KZ_Dachau ?start ?end ?name
WHERE
{?KZ_Dachau ^ps:P1037 ?leiter.
?leiter ^p:P1037 wd:Q151198;
pq:P580 ?start;
pq:P582 ?end.
?KZ_Dachau wdt:P1559 ?name. }
另一方面,WikiData中的第39页有一个人作为主题,因此该查询可以工作。然而,如果你看一下,WikiData只是说他担任了国会议员的职位,并没有说他是Dachau的经理/主管。问题是你的顺序错了,即在WikiData中,财产主管/经理有一个人是对象,而不是你查询中的主题 此查询将用于:
SELECT ?KZ_Dachau ?start ?end ?name
WHERE
{wd:Q151198 p:P1037 ?leiter. #Notice the change in order
?leiter ps:P1037 ?KZ_Dachau;
pq:P580 ?start;
pq:P582 ?end.
?KZ_Dachau wdt:P1559 ?name. }
此外,您可以使用属性路径,在这种情况下,^
反转属性,以便?a:hasChild?b
与?b^:hasChild?a
完全相同:
SELECT ?KZ_Dachau ?start ?end ?name
WHERE
{?KZ_Dachau ^ps:P1037 ?leiter.
?leiter ^p:P1037 wd:Q151198;
pq:P580 ?start;
pq:P582 ?end.
?KZ_Dachau wdt:P1559 ?name. }
另一方面,WikiData中的第39页有一个人作为主题,因此该查询可以工作。然而,如果你看一下,维基数据只是说他担任了国会议员的职位,并没有说他是达豪大学的经理/主任