小编MrK*_*kev的帖子

wikidata获取包含项目标签和值的所有属性

我的问题是我如何提取所有属性以及各自的标签,这些标签也是在wikidata网页上呈现的,最好是通过SPARQL.

以wikidata上的Google条目为例.对于物业P414(证券交易所)或P159,有像P969(位于街道地址)的子属性.一旦您查询 wbgetentities为qualifieres,它们就会显示出来.问题wbgetentities是缺少标签.我wdt:P17 => country => United States of America使用以下SPARQL查询获得所需的输出(例如):

SELECT ?prop_id ?prop_label ?prop_val_label WHERE {
  VALUES (?company) {
    (wd:Q95)
  }
  ?company ?prop_id ?company_item.
  ?wd wikibase:directClaim ?prop_id.
  ?wd rdfs:label ?prop_label.
  OPTIONAL {
    ?company_item rdfs:label ?prop_val.
    FILTER((LANG(?prop_val)) = "en")
  }
  BIND(COALESCE(?prop_val, ?companyItem) AS ?prop_val_label)
  FILTER((LANG(?prop_label)) = "en")
}
Run Code Online (Sandbox Code Playgroud)

但这些"子属性"缺失,因为它们不是直接索赔.要提取单个语句限定符,我可以这样做:

SELECT ?company ?hq ?country WHERE {
  wd:Q95 p:P159 ?company.
  OPTIONAL {
    ?company ps:P159 ?hq.
    ?company pq:P17 ?country. 
  }
}
Run Code Online (Sandbox Code Playgroud)

但问题是,是否有办法将所有内容组合到一个查询中?

database sparql wikidata

7
推荐指数
1
解决办法
2253
查看次数

标签 统计

database ×1

sparql ×1

wikidata ×1