Obtenez toutes les propriétés pour une classe DBpedia
Comment obtenir une liste de propriétés pour une classe spécifique? Considérez la classe dbpedia-owl:Person
. Toutes les instances du Person
classe ont certaines propriétés préfixées avec dbpprop:
. Comment puis-je obtenir tous les dbpprop:
propriétés que nous pouvons trouver pour toutes les instances de Person
classe?
2 réponses
celui qui fonctionne est:
select distinct ?property where {
?property <http://www.w3.org/2000/01/rdf-schema#domain>
<http://dbpedia.org/ontology/Person> . }
dans cette requête vous demandez toutes les propriétés qui ont dbpedia:Person
rdfs:domain
. Cette requête nécessite une définition de schéma pour fonctionner et parfois les ensembles de données ne suivent pas vraiment parfaitement les schémas. Pour ces ensembles de données vous essayez cette autre requête
select distinct ?property where {
?instance a <http://dbpedia.org/ontology/Person> .
?instance ?property ?obj . }
cette requête regarde chaque instance de la personne liant chaque propriété qui en sort. Il est beaucoup plus difficile que le premier, et dans l'instance publique dbpedia vous obtiendrez un moment. Donc, vous êtes mieux avec le premier si vous voulez utiliser le point final public.
Pour obtenir toutes les propriétés transitives vous pouvez demander cette requête
select distinct ?property where{
{
?property rdfs:domain ?class .
dbpedia-owl:Person rdfs:subClassOf+ ?class.
} UNION {
?property rdfs:domain dbpedia-owl:Person.
}}
le ' + 'dans le' rdfs:subClassOf ' est une expression de chemin de propriété [1] qui récupère toutes les uperclasses de personne aussi bien. Ces propriétés sont également valables pour la Personne.
notez aussi que l'espace de noms dbprop n'est pas recommandé parce que les données sont brutes et non normalisées à un type de données.
[1] http://www.w3.org/TR/2010/WD-sparql11-property-paths-20100126/
Divulgation: je suis un DBpedia développeur