Sparql 通过QID获取属性?
我可以通过标签获取项目及其属性:Sparql 通过QID获取属性?,sparql,wikidata,Sparql,Wikidata,我可以通过标签获取项目及其属性: SELECT distinct ?item ?itemLabel ?itemDescription (SAMPLE(?DR) as ?DR) (SAMPLE(?article)as ?article) WHERE { ?item wdt:P31 wd:Q5. ?item ?label "Einstein"@en OPTIONAL{?item wdt:P569 ?DR .} ?article schema:about ?it
SELECT distinct ?item ?itemLabel ?itemDescription
(SAMPLE(?DR) as ?DR) (SAMPLE(?article)as ?article)
WHERE {
?item wdt:P31 wd:Q5.
?item ?label "Einstein"@en
OPTIONAL{?item wdt:P569 ?DR .}
?article schema:about ?item .
?article schema:inLanguage "en" .
?article schema:isPartOf <https://en.wikipedia.org/>.
OPTIONAL{?item wdt:P570 ?RIP .}
OPTIONAL{?item wdt:P18 ?image .}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
GROUP BY ?item ?itemLabel ?itemDescription
选择不同的?项目?项目标签?项目描述
(样品(?DR)作为?DR)(样品(?物品)作为?物品)
在哪里{
?项目wdt:P31 wd:Q5。
?项目?标签“爱因斯坦”@en
可选{项目wdt:P569?DR.}
?文章模式:关于?项目。
?文章模式:语言“en”。
?文章模式:isPartOf。
可选{项目wdt:P570?RIP.}
可选{项目wdt:P18?图像。}
服务wikibase:标签{bd:serviceParam wikibase:语言“en”。}
}
按项目分组?项目标签?项目描述
再见
如何使用QID而不是label实现同样的功能?如果您已经拥有要查找的实体的QID,并且只需查找其属性和标签,那么最好使用 在.Einstein()的情况下,这将给出以下API调用:
如果您已经拥有要查找的实体的QID,并且只需查找其属性和标签,那么最好使用 在.Einstein()的情况下,这将给出以下API调用:
使用URI而不是变量
?item
将根据实体获取信息:
PREFIX schema: <http://schema.org/>
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
SELECT DISTINCT ?item ?itemLabel ?itemDescription (SAMPLE(?DR) AS ?DRSample) (SAMPLE(?article) AS ?articleSample)
WHERE
{ ?article schema:about ?item ;
schema:inLanguage "en" ;
schema:isPartOf <https://en.wikipedia.org/>
FILTER ( ?item = <http://www.wikidata.org/entity/Q937> )
OPTIONAL
{ ?item wdt:P569 ?DR }
OPTIONAL
{ ?item wdt:P570 ?RIP }
OPTIONAL
{ ?item wdt:P18 ?image }
SERVICE wikibase:label
{ bd:serviceParam
wikibase:language "en"
}
}
GROUP BY ?item ?itemLabel ?itemDescription
前缀模式:
前缀bd:
前缀wdt:
前缀wikibase:
选择不同的?项目?项目标签?项目描述(样本(?DR)作为?DRSample)(样本(?文章)作为?文章样本)
哪里
{?文章模式:关于?项;
模式:语言“en”;
模式:isPartOf
过滤器(?项=)
可选的
{?项目wdt:P569?DR}
可选的
{?项目wdt:P570?RIP}
可选的
{?项目wdt:P18?图像}
服务维基库:标签
{bd:serviceParam
wikibase:语言“en”
}
}
按项目分组?项目标签?项目描述
使用URI而不是变量?item
将根据实体获取信息:
PREFIX schema: <http://schema.org/>
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
SELECT DISTINCT ?item ?itemLabel ?itemDescription (SAMPLE(?DR) AS ?DRSample) (SAMPLE(?article) AS ?articleSample)
WHERE
{ ?article schema:about ?item ;
schema:inLanguage "en" ;
schema:isPartOf <https://en.wikipedia.org/>
FILTER ( ?item = <http://www.wikidata.org/entity/Q937> )
OPTIONAL
{ ?item wdt:P569 ?DR }
OPTIONAL
{ ?item wdt:P570 ?RIP }
OPTIONAL
{ ?item wdt:P18 ?image }
SERVICE wikibase:label
{ bd:serviceParam
wikibase:language "en"
}
}
GROUP BY ?item ?itemLabel ?itemDescription
前缀模式:
前缀bd:
前缀wdt:
前缀wikibase:
选择不同的?项目?项目标签?项目描述(样本(?DR)作为?DRSample)(样本(?文章)作为?文章样本)
哪里
{?文章模式:关于?项;
模式:语言“en”;
模式:isPartOf
过滤器(?项=)
可选的
{?项目wdt:P569?DR}
可选的
{?项目wdt:P570?RIP}
可选的
{?项目wdt:P18?图像}
服务维基库:标签
{bd:serviceParam
wikibase:语言“en”
}
}
按项目分组?项目标签?项目描述
您可以通过使用BIND
使用已知的QID:
BIND(wd:Q937 AS ?item).
...
您可以通过使用
BIND
,利用已知的QID:
BIND(wd:Q937 AS ?item).
...
什么是QID?它是阿尔伯特·爱因斯坦的URI吗?如果是这样,只需将variabale
?项替换为它即可。在这种情况下,QID=Q937,替换?项无效您必须在SPARQL中使用完整URI或前缀URI。只是Q937不是URI,这应该是。然后你可以删除前两个三重模式。请看下面我的答案。@AKSW,您的答案在下面?对不起,我必须格式化它。现在它在那里了什么是QID?它是阿尔伯特·爱因斯坦的URI吗?如果是这样,只需将variabale?项替换为它即可。在这种情况下,QID=Q937,替换?项无效您必须在SPARQL中使用完整URI或前缀URI。只是Q937不是URI,这应该是。然后你可以删除前两个三重模式。请看下面我的答案。@AKSW,您的答案在下面?对不起,我必须格式化它。现在它就在那里了,但是我可以使用SPARQL吗?你可以,做一些类似于wd:Q937?property?value
()的事情,但是那将是一个混乱的解析,没有任何好处我知道。这个json非常大。如何仅获取所需信息,例如:标签、描述、生日、图像链接和维基百科链接?您可以使用props
参数从info |站点链接|别名|标签|描述|声明|数据类型
中选择所需的信息。Ex:那么,为了简化声明,如果您使用javascript,我可以推荐使用的解析函数(我编写的库),但我可以使用SPARQL吗?您可以,做一些类似于wd:Q937?property?value
()的事情,但这将是一个混乱的解析过程,我不知道有什么好处。这个json非常大。如何仅获取所需信息,例如:标签、描述、生日、图像链接和维基百科链接?您可以使用props
参数从info |站点链接|别名|标签|描述|声明|数据类型
中选择所需的信息。Ex:那么,为了简化声明,如果您使用javascript,我可以推荐的解析函数(我编写的库)您的答案可以应用于我的另一个问题:您的答案可以应用于我的另一个问题:是的,它正在工作。我应该使用BIND还是FILTER?哪一个更好?是的,它起作用了。我应该使用BIND还是FILTER?哪个更好?