我在看 https:/www.wikidata.orgwikiQ181912. 有一节是 "TWitter用户名"(P2002),这里面还有 "Twitter用户数字ID"(P6552)。我如何去提取这个值?我已经尝试过
SELECT ?twitternameLabel ?twitteridLabel
WHERE
{
wd:Q181912 wdt:P2002 ?twittername .
wd:Q181912 wdt:P3744 ?twitterid .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
但我没有得到任何结果。如果我去掉这一行 wd:Q181912 wdt:P3744 ?twitterid .
然后我得到正确的微博名称。我如何获得ID?
所以P3744是订阅者的数量。
在RDF中,你经常要对数据进行 "reify"。
在这种情况下,你有KLM公司(wd:Q181912),你想要他们的twitter句柄。然而,有两个这样的句柄,KLM和KLM_JP,每个都有不同的数字ID,分别是56377143和171410513。
如果你把这两个ID都直接连接到wd:Q181912,那么数据就会出现歧义,哪个ID指的是哪个twitter句柄,即KLM_JP是有56377143还是171410513?
为了您的目的,您需要查看不同命名空间下的属性,因此,请看以下内容 此处 以获取更多信息。
这里有一个有效的东西。
SELECT ?twitterid ?twittername
WHERE
{
wd:Q181912 p:P2002 ?twitterstatement .
?twitterstatement pq:P6552 ?twitterid ;
ps:P2002 ?twittername .
}