我創建兩個類Book
和Person
參與OWL限制類和對象屬性hasAuthor
:獲取比如通過SPARQL 1.1
Person
有子類Man
和Women
。Book
具有子類Hard_bounded_book
和Soft_bounded_book
。
我使用的是OWL限制如下創建的Book
另一個子爲Book_With_Atleast_One_Male_Author
:
:Book_With_Atleast_One_Male_Author rdfs:subClassOf [
rdf:type owl:Class ;
owl:intersectionOf (
:Book
[ a owl:Restriction ;
owl:onProperty bf:hasAuthor ;
owl:someValuesFrom :Male ]
)
] .
現在我創建和Person
的Book
一些實例和關係:
:Hard_bounded_book1 rdf:type :Hard_bounded_book .
:Hard_bounded_book2 rdf:type :Hard_bounded_book .
:Soft_bounded_book1 rdf:type :Soft_bounded_book .
:Soft_bounded_book2 rdf:type :Soft_bounded_book .
:Male1 rdf:type :Male .
:Male2 rdf:type :Male .
:Female1 rdf:type :Female .
:Female2 rdf:type :Female .
:Hard_bounded_book1 :hasAuthor :Male1
:Hard_bounded_book1 :hasAuthor :Male2
:Hard_bounded_book1 :hasAuthor :Female1
:Hard_bounded_book1 :hasAuthor :Female2
:Soft_bounded_book1 :hasAuthor :Male1
:Soft_bounded_book2 :hasAuthor :Female1
當我寫了一個SPARQL查詢來獲取類Book_With_Atleast_One_Male_Author
的實例,我什麼也沒得到。 如果您對發生的事情有任何瞭解,請讓我知道嗎?
謝謝。
你使用哪種API使用推理與SPARQL? – AKSW
我使用OQL2-QL規則集在GraphDB軟件中加載它。 – Sidd
我希望你的意思是'OWL2-QL'。正如下面的答案正確地指出的那樣,你必須使用等價公理而不是簡單的包含,它只在一個方向上進行推斷。 – AKSW