Wikidata SPARQL - 获取公司实体及其总部位置
Wikidata SPARQL - get company entities and the location of their headquarters
我在提取公司总部的位置属性时遇到问题。
我的query:查找所有公司或子类,以及returns 一些基本属性,例如ISIN 和URL,以及总部位置。
我试过使用this example to extend the Headquarter part of the query to return location information such as city, country, and coordinate latitude and longitude。但是,我无法通过拉取值或标签。
谢谢
SELECT
?item ?itemLabel ?web ?isin ?hq ?hqloc ?inception
# valueLabel is only useful for properties with item-datatype
WHERE
{
?item p:P31/ps:P31/wdt:P279* wd:Q783794.
OPTIONAL{?item wdt:P856 ?web.} # get item
OPTIONAL{?item wdt:P946 ?isin.} # get item
OPTIONAL{?item wdt:P571 ?inception.} # get item
OPTIONAL{?item wdt:P159 ?hq.}
OPTIONAL{?item p:P159 ?hqItem. # get property
?hqItem ps:P159 wd:Q515. # get property-statement wikidata-entity
?hqItem pq:P17 ?hqloc. # get country of city
}
?article schema:about ?item .
?article schema:inLanguage "en" .
?article schema:isPartOf <https://en.wikipedia.org/>.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
LIMIT 10
对 select 您提到的一些值的更简化查询:
SELECT
?company ?companyLabel ?isin ?web ?country ?countryLabel ?inception
WHERE
{
?article schema:inLanguage "en" .
?article schema:isPartOf <https://en.wikipedia.org/>.
?article schema:about ?company .
?company p:P31/ps:P31/wdt:P279* wd:Q783794.
?company wdt:P946 ?isin.
OPTIONAL {?company wdt:P856 ?web.}
OPTIONAL {?company wdt:P571 ?inception.}
OPTIONAL {?company wdt:P17 ?country.}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
} LIMIT 10
我改变了什么:
- 将一些标签更改为更明确(例如:“?item” -> “?company”)
- 使用 P17 直接 select 国家
- 我删除了 ISIN 上的 OPTIONAL 以表明存在一些值。你没有得到结果,因为维基数据上的许多公司实例似乎都缺少该信息。
从这里开始,select输入其他值应该很容易。
我在提取公司总部的位置属性时遇到问题。
我的query:查找所有公司或子类,以及returns 一些基本属性,例如ISIN 和URL,以及总部位置。
我试过使用this example to extend the Headquarter part of the query to return location information such as city, country, and coordinate latitude and longitude。但是,我无法通过拉取值或标签。
谢谢
SELECT
?item ?itemLabel ?web ?isin ?hq ?hqloc ?inception
# valueLabel is only useful for properties with item-datatype
WHERE
{
?item p:P31/ps:P31/wdt:P279* wd:Q783794.
OPTIONAL{?item wdt:P856 ?web.} # get item
OPTIONAL{?item wdt:P946 ?isin.} # get item
OPTIONAL{?item wdt:P571 ?inception.} # get item
OPTIONAL{?item wdt:P159 ?hq.}
OPTIONAL{?item p:P159 ?hqItem. # get property
?hqItem ps:P159 wd:Q515. # get property-statement wikidata-entity
?hqItem pq:P17 ?hqloc. # get country of city
}
?article schema:about ?item .
?article schema:inLanguage "en" .
?article schema:isPartOf <https://en.wikipedia.org/>.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
LIMIT 10
对 select 您提到的一些值的更简化查询:
SELECT
?company ?companyLabel ?isin ?web ?country ?countryLabel ?inception
WHERE
{
?article schema:inLanguage "en" .
?article schema:isPartOf <https://en.wikipedia.org/>.
?article schema:about ?company .
?company p:P31/ps:P31/wdt:P279* wd:Q783794.
?company wdt:P946 ?isin.
OPTIONAL {?company wdt:P856 ?web.}
OPTIONAL {?company wdt:P571 ?inception.}
OPTIONAL {?company wdt:P17 ?country.}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
} LIMIT 10
我改变了什么:
- 将一些标签更改为更明确(例如:“?item” -> “?company”)
- 使用 P17 直接 select 国家
- 我删除了 ISIN 上的 OPTIONAL 以表明存在一些值。你没有得到结果,因为维基数据上的许多公司实例似乎都缺少该信息。
从这里开始,select输入其他值应该很容易。