Muszę uzyskać wszystkie wystąpienia klasy C i podklas (bezpośrednie lub pośrednie) C, w SPARQL.SPARQL: Pobierz wszystkie jednostki podklas określonej klasy
mogę uzyskać wszystkie bezpośrednie podklasy C w ten sposób:
SELECT ?entity
WHERE {
?subclass rdfs:subClassOf :C .
?entity rdf:type ?subclass .
}
Ale nie mogę uzyskać instancji podklasy pośredniego i nie każdy przypadek C
co wiem (Wstępnie je wyliczyłem) wszystkie podklasy (bezpośrednie i pośrednie z C), i mogę zbudować zapytanie dynamiczne, czy możliwe jest zbudowanie zapytania podobnego do poniższego?
SELECT ?entity
WHERE {
?entity rdf:type in <list>.
}
Dziękuję wszystkim.
EDIT:
Właśnie rozwiązać go, nawet jeśli nie w elegancki sposób.
SELECT ?entity
WHERE {
{ ?entity rdf:type :C }
UNION { ?entity rdf:type :SubClass1 }
UNION { ?entity rdf:type :SubClass2 }
UNION { ?entity rdf:type :SubClass3 }
}
W zależności od potrójnego sklepu to może działać lub nie. Nie wszystkie potrójne magazyny realizują wyrażenia ścieżek właściwości. –
Dzięki, zadziałało !! – auino
@msalvadores Jako aktualizację, chociaż wciąż istnieją starsze potrójne zapasy, ścieżki własności trafiły do SPARQL 1.1, więc wszelkie potrójne sklepy, które obsługują obecny standard, będą obsługiwać ścieżki własności. –