2008-12-17 9 views
1

Comment puis-je obtenir toutes les propriétés de classe et ses sous-classes avec les propriétés d'une source de données RDF utilisant une requête SPARQL avec un nom de classe et un espace de noms?Requête SPARQL - Classe et sous-classe donnent un nom de classe et un espace de noms

+1

Lorsque vous dites que vous voulez les "propriétés de classe" voulez-vous dire les individus (instances d'une classe) et leurs propriétés? Quand vous voulez des sous-classes, voulez-vous aussi des sous-classes transitives (A => B, B => C, donc vous voulez A => C)? Pouvez-vous donner un exemple du graphique RDF que vous interrogez? –

Répondre

3

Que diriez-vous this:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT ?subClass ?predicate 
WHERE { 
    ?subClass rdfs:subClassOf <http://dbpedia.org/ontology/Work> . 
    ?predicate rdfs:domain ?subClass 
} 

Donnez un essai sur un outil SPARQL tel que DBPedia's SNORQL interface.

3

Essayez-vous de faire une requête SPARQL récursive? En d'autres termes, sélectionnez un individu donné et toutes ses propriétés. Lorsque l'objet de la propriété est un autre individu, sélectionnez ses propriétés, et ainsi de suite. Je ne crois pas que SPARQL le supporte. L'approche naïve serait de faire quelque chose comme ceci (et, en supposant que vous entendez des individus et non des classes, cela correspond réellement à vos besoins mais ne gère pas le prochain "niveau" de triplets).

CONSTRUCT { 
    ?s ?p ?o . 
    ?o ?p2 ?o2 . 
} WHERE { 
    ?s ?p ?o . 
    ?o ?p2 ?o2 . 
} 

Notez que si ?o2 est l'objet de toute déclaration, cette requête ne sera pas les retourner.

Questions connexes