从Wikidata获取给定属性的别名值? [英] Get alias values from wikidata for a given property?

查看:137
本文介绍了从Wikidata获取给定属性的别名值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于给定的属性,例如职业(P106)" ,我想检索其所有别名,例如:职业,工作,工作,职业,就业,手工艺.所有这些都显示在属性Wikidata页面的也称为"下.我该如何使用SPARQL进行检索? 我尝试使用以下查询.

For a given property like 'occupation (P106)', I want to retrieve all its aliases like: profession, job, work, career, employment, craft. All of this is present on the properties wikidata page, under 'Also known as'. How can I go about retrieving this using SPARQL? I tried using the following query.

  SELECT ?predicate ?object WHERE {
  wdt:P106 wdt:P1449 ?predicate .  //Nickname
  wdt:P106 wdt:P734 ?predicate .   //Family Name
  wdt:P106 wdt:P735 ?predicate .  //Given Name
  wdt:P106 skos:altLabel ?predicate . 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

推荐答案

SELECT ?altLabel
{
 VALUES (?wd) {(wd:P106)}
 ?wd skos:altLabel ?altLabel .
 FILTER (lang(?altLabel) = "en")
}

SELECT ?altLabel
{
 VALUES (?wdt) {(wdt:P106)}
 ?wd wikibase:directClaim ?wdt .
 ?wd skos:altLabel ?altLabel .
 FILTER (lang(?altLabel) = "en")
}

这些段落提供了一些解释:

These paragraphs provide some explanation:

  • Truthy statements
  • Properties
  • Predicates

更新

您仍然可以使用标签服务:

You still could use the label service:

SELECT ?wdAltLabel
{
 VALUES (?wdt) {(wdt:P106)}
 ?wd wikibase:directClaim ?wdt .
 SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

这篇关于从Wikidata获取给定属性的别名值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆