Tôi đã nhận được tất cả các cá thể của một lớp C và các lớp con (trực tiếp hoặc gián tiếp) của C, trong SPARQL.SPARQL: Nhận tất cả các thực thể của các lớp con của một lớp nhất định
tôi có thể nhận được tất cả các lớp con trực tiếp của C theo cách này:
SELECT ?entity
WHERE {
?subclass rdfs:subClassOf :C .
?entity rdf:type ?subclass .
}
Nhưng tôi không thể có được sự thể hiện của một lớp con gián tiếp và không phải bất kỳ trường hợp của C.
Như tôi biết (Tôi đã tính toán trước chúng) tất cả các lớp con (trực tiếp và gián tiếp của C), và tôi có thể xây dựng một truy vấn động, có thể xây dựng một truy vấn như sau không?
SELECT ?entity
WHERE {
?entity rdf:type in <list>.
}
Xin cảm ơn tất cả mọi người.
CHỈNH SỬA:
Tôi vừa mới giải quyết nó, ngay cả khi không theo cách thanh lịch.
SELECT ?entity
WHERE {
{ ?entity rdf:type :C }
UNION { ?entity rdf:type :SubClass1 }
UNION { ?entity rdf:type :SubClass2 }
UNION { ?entity rdf:type :SubClass3 }
}
Tùy thuộc vào cửa hàng ba có thể hoặc không hoạt động. Không phải tất cả các cửa hàng ba đều triển khai biểu thức đường dẫn thuộc tính. –
Cảm ơn, nó đã hoạt động !! – auino
@msalvadores Như một bản cập nhật, trong khi vẫn có thể có các cửa hàng ba cũ hơn, đường dẫn đặc tính đã đưa nó vào SPARQL 1.1, vì vậy bất kỳ cửa hàng ba nào hỗ trợ chuẩn hiện hành sẽ hỗ trợ đường dẫn đặc tính. –