2
對於學校練習,我有一個RDF文件和一個OWL文件。如何創建一個owl:intersectionOf兩個owl:類?
有一個owl:Class Lecturer
和一個owl:Class Researcher
。兩者的交集應該是教授。我已經把我的RDF和OWL文件放在下面。
問題是:當我查詢時,沒有資源是Professor的類型,而在RDF文件中,我們可以看到Laura應該是教授。
減少RDF文件的版本:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF [
<!ENTITY humans "http://www.inria.fr/2007/09/11/humans.rdfs">
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"> ]>
<rdf:RDF
xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd ="&xsd;"
xmlns ="&humans;#"
xml:base ="&humans;-instances" >
<Person rdf:ID="Laura">
<name>Laura</name>
</Person>
<Lecturer rdf:about="#Laura"/>
<Researcher rdf:about="#Laura">
<name>Laura</name>
</Researcher>
</rdf:RDF>
減少貓頭鷹文件的版本:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.inria.fr/2007/09/11/humans.rdfs"
xmlns:owl="http://www.w3.org/2002/07/owl#">
<owl:Class rdf:ID="Person">
</owl:Class>
<owl:Class rdf:ID="Lecturer">
<subClassOf rdf:resource="#Person"/>
</owl:Class>
<owl:Class rdf:ID="Researcher">
<subClassOf rdf:resource="#Person"/>
</owl:Class>
<owl:Class rdf:id="Professor">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Lecturer"/>
<owl:Class rdf:about="#Researcher"/>
</owl:intersectionOf>
</owl:Class>
</rdf:RDF>
我以前是defautl查詢查詢:
select * where {
?x ?p ?y
}
但我其實預計會做的事情如下:
select * where {
?x a <http://www.inria.fr/2007/09/11/humans.rdfs#Professor>
}
我看過這個答案:Why do we need to use rdf:parseType="Collection" with owl:intersectionOf?但我不明白它應該用於我的具體問題。
我希望有人可以提供幫助。順便說一下,這是我在這裏的第一篇文章,所以讓我知道是否缺少一些東西。
我希望你明白,SPARQL主要只在RDF上進行三重模式匹配。你的數據不包含任何在三元組(OWL類聲明公理)中使用的個人,聲明它屬於'Professor'類。除了三重匹配之外的任何事情都需要所謂的推理,即推斷隱式數據。 – AKSW
您可以使用某些支持推理的SPARQL引擎,也可以使用DL Query等替代查詢機制。請注意,這兩者確實完全不同。 – AKSW
感謝您的回答@AKSW事實上,我的rdf數據並沒有說這個資源是分配給教授的。但它確實聲明資源是講師和研究員。因此,除了rdf數據之外,使用貓頭鷹模式(指定教授既是講師又是研究人員),我認爲我應該能夠爲所有教授做一個查詢,並且仍然可以檢索我的資源(勞拉)。我正在使用Corese SPARQL引擎(http://wimmics.inria.fr/corese)。你是說這種方法是不可能的? –