Ma question est de savoir comment je peux extraire toutes les propriétés et leurs étiquettes respectives qui sont également rendus sur la page Web de wikidata de préférence sur SPARQL. Prenez par exemple l'entrée Google sur wikidata. Pour la propriété P414 (bourse) ou P159 il y a des sous-propriétés comme P969 (situé à l'adresse de la rue). Ils apparaissent réellement une fois que vous querywbgetentities
comme qualifieres. Le problème avec wbgetentities
est que les étiquettes sont manquantes. Je reçois la sortie désirée (par exemple wdt:P17 => country => United States of America
) avec la requête SPARQL suivante:wikidata obtenir toutes les propriétés avec des étiquettes et les valeurs d'un article
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")
}
Mais ces « sous-propriétés » manquent parce qu'elles ne sont pas sous des réclamations directes. Pour extraire une seule déclaration de qualification, je peux faire:
SELECT ?company ?hq ?country WHERE {
wd:Q95 p:P159 ?company.
OPTIONAL {
?company ps:P159 ?hq.
?company pq:P17 ?country.
}
}
Mais la question est s'il y a un moyen de combiner tout à une requête?