SPARQL: Holen Sie sich alle Personen der Unterklassen einer bestimmten Klasse

Habe ich um all die Instanzen einer Klasse C und Unterklassen (direkt oder indirekt) von C, in SPARQL.

Kann ich alles nur die direkten Unterklassen von C, die in dieser Weise:

SELECT ?entity
WHERE {
  ?subclass rdfs:subClassOf :C .
  ?entity rdf:type ?subclass .
}

Aber ich kann nicht Holen Sie sich die Instanzen von einem indirekten Unterklasse und weder eine Instanz von C.

Als ich weiß (hab ich berechnet) alle Unterklassen (direkte und indirekte C), und ich bauen kann, die eine dynamische Abfrage, ist es möglich, erstellen Sie eine Abfrage wie die folgende?

SELECT ?entity
WHERE {
  ?entity rdf:type in <list>.
}

Vielen Dank an alle.

EDIT:

Eben habe ich es gelöst, wenn auch auf eine nicht elegante Art und Weise.

SELECT ?entity
WHERE {
  { ?entity rdf:type :C }
  UNION { ?entity rdf:type :SubClass1 }
  UNION { ?entity rdf:type :SubClass2 }
  UNION { ?entity rdf:type :SubClass3 }
}

InformationsquelleAutor auino | 2012-02-09

Schreibe einen Kommentar