如何从维基数据上的项目中提取推特 ID?
How to extract twitter id from item on Wikidata?
我在看https://www.wikidata.org/wiki/Q181912。有 "TWitter username" (P2002) 部分,还有 "Twitter user numeric 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' 数据。
'reify' 是什么意思,您为什么要这样做?
在这种情况下,您拥有 KLM 公司 (wd:Q181912),并且您想要他们的 Twitter 用户名。
但是,有两个这样的句柄,KLM 和 KLM_JP,每个都有不同的数字 ID,分别为 56377143 和 171410513。
如果您将两个 ID 都直接连接到 wd:Q181912,那么关于哪个 ID 指代哪个推特句柄的数据将是不明确的,即 KLM_JP 是 56377143 还是 171410513?
为了您的目的,您需要查看不同命名空间下的属性,因此,请参阅 here 了解更多信息。
这是有效的方法:
SELECT ?twitterid ?twittername
WHERE
{
wd:Q181912 p:P2002 ?twitterstatement .
?twitterstatement pq:P6552 ?twitterid ;
ps:P2002 ?twittername .
}
我在看https://www.wikidata.org/wiki/Q181912。有 "TWitter username" (P2002) 部分,还有 "Twitter user numeric 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' 数据。
'reify' 是什么意思,您为什么要这样做? 在这种情况下,您拥有 KLM 公司 (wd:Q181912),并且您想要他们的 Twitter 用户名。 但是,有两个这样的句柄,KLM 和 KLM_JP,每个都有不同的数字 ID,分别为 56377143 和 171410513。
如果您将两个 ID 都直接连接到 wd:Q181912,那么关于哪个 ID 指代哪个推特句柄的数据将是不明确的,即 KLM_JP 是 56377143 还是 171410513?
为了您的目的,您需要查看不同命名空间下的属性,因此,请参阅 here 了解更多信息。
这是有效的方法:
SELECT ?twitterid ?twittername
WHERE
{
wd:Q181912 p:P2002 ?twitterstatement .
?twitterstatement pq:P6552 ?twitterid ;
ps:P2002 ?twittername .
}