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?哪个更好?