我正在創建基於RDFS/OWL的類層次結構,並使用a
(rdf:type
)關係在所有類中創建實例。我想要檢索特定類的實例,但不包括其子實例。但是,當我編寫SPARQL查詢時,它也爲我提供了每個子類的所有實例。Sparql 1.1獲取特定類的所有實例,但不包含子類的任何實例
我的本體說:
Book
是一類,它有兩個子類:hard_bounded_book
和soft_binded_books
換句話說(某些情況下):
@prefix ex: <http://book_triples.org/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
ex:hard_bounded_book1
a ex:hard_bounded_book .
ex:soft_binded_books1a
a ex:soft_binded_books .
ex:soft_binded_books rdfs:subClassOf ex:Book .
ex:hard_bounded_book rdfs:subClassOf ex:Book .
ex:Book a rdf:Class .
ex:Book1 a ex:Book .
當我查詢
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ex: <http://book_triples.org/>
SELECT ?book
WHERE
{ ?book rdf:type ex:Book }
它返回s全部三個Book1
,hard_bounded_book1
,soft_binded_books1
,但我只想得到第一個結果(Book1
)。
任何幫助表示讚賞。謝謝。
您使用哪個API或三重存儲? – AKSW