为什么 rdf:type 不和父亲 类 一起工作?
why rdf:type doesn't work with father classes?
在我的保护下,我明确声明 class Symphony 是 class class 的子class Recommendable,如图所示:
Classes Hierarchy
我还在 class Symphony 中添加了一些实例,当我查询 Symphony 实例时,我得到了结果。但是,当我查询 Recommendable 实例时,我什么也得不到。
这是 Symphony class 的查询:
SELECT DISTINCT ?subject WHERE {
?subject rdf:type owbes:Symphony
}
结果如下:
Symphony instances query result
这是可推荐 class 的查询。
SELECT DISTINCT ?subject WHERE {
?subject rdf:type owbes:Recommendable
}
这个结果是空的,正如你在这里看到的
[推荐实例查询结果][3]
两者都来自相同的前缀。我做错了什么?
这是在 owl 文件中生成的内容:
<owl:Class rdf:about="bla bla bla/recommendation-systems#Symphony">
<rdfs:subClassOf rdf:resource="bla bla bla/recommendation-systems#Recommendable"/>
</owl:Class>
如您所见,我已将 Symphony 正确地设为可推荐
的子class
我找到了解决方案:
进行此查询可以解决问题
SELECT ?subject WHERE {
?subject rdf:type ?type.
?type rdfs:subClassOf owbes:Recommendable
}
但是,我不知道为什么 rdf:type 不起作用
<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.semanticweb.org/welovethesemanticweb#"
xml:base="http://www.semanticweb.org/welovethesemanticweb"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:recommendation-systems="http://www.welovethesemanticweb.com/recommendation-systems#">
<owl:Ontology rdf:about="http://www.semanticweb.org/welovethesemanticweb"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Annotation properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#hasSimilarityValue -->
<owl:AnnotationProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#hasSimilarityValue"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Object Properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#composedBy -->
<owl:ObjectProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#composedBy">
<rdfs:subPropertyOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#hasArtist"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#IrreflexiveProperty"/>
<rdfs:domain rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<rdfs:range rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Composer"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Composed By</rdfs:label>
</owl:ObjectProperty>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#fromEra -->
<owl:ObjectProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#fromEra">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#IrreflexiveProperty"/>
<rdfs:domain rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdfs:range rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Describes the musical era that music is from</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">From Era</rdfs:label>
<recommendation-systems:hasSimilarityValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.1</recommendation-systems:hasSimilarityValue>
</owl:ObjectProperty>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#hasArtist -->
<owl:ObjectProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#hasArtist">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#IrreflexiveProperty"/>
<rdfs:domain rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdfs:range rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdfs:comment>Describes the arties of the music</rdfs:comment>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Has Artist</rdfs:label>
<recommendation-systems:hasSimilarityValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.4</recommendation-systems:hasSimilarityValue>
</owl:ObjectProperty>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Data properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#contributeToSimilarities -->
<owl:DatatypeProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#contributeToSimilarities">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#double"/>
</owl:DatatypeProperty>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Classes
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Artist -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Artist">
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Song"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Composer -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Composer">
<rdfs:subClassOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Song"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra">
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Singer"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Song"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Recommendable -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable">
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Singer"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Singer -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Singer">
<rdfs:subClassOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Song"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Song -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Song">
<rdfs:subClassOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Symphony -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Symphony">
<rdfs:subClassOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
</owl:Class>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Individuals
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Adele -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Adele">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Singer"/>
<recommendation-systems:fromEra rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#current"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Beethoven -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Beethoven">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Composer"/>
<recommendation-systems:fromEra rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#classical"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Dies_Irae -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Dies_Irae">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<recommendation-systems:composedBy rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<recommendation-systems:hasArtist rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Dies Irae</rdfs:label>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Le_nozze_di_Figaro -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Le_nozze_di_Figaro">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<recommendation-systems:composedBy rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<recommendation-systems:hasArtist rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Le Nozze Di Digaro</rdfs:label>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Mozart -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Mozart">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Composer"/>
<recommendation-systems:fromEra rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#classical"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#baroque -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#baroque">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#classical -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#classical">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#current -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#current">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#romantic -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#romantic">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#5th_Symphony -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#5th_Symphony">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<recommendation-systems:composedBy rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Beethoven"/>
<recommendation-systems:hasArtist rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Beethoven"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">5th Symphony</rdfs:label>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Requiem:_Sequentia -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Requiem:_Sequentia">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<recommendation-systems:composedBy rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<recommendation-systems:hasArtist rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Requiem Sequentia</rdfs:label>
</owl:NamedIndividual>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// General axioms
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AllDifferent"/>
<owl:distinctMembers rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#baroque"/>
<rdf:Description rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#classical"/>
<rdf:Description rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#romantic"/>
</owl:distinctMembers>
</rdf:Description>
</rdf:RDF>
<!-- Generated by the OWL API (version 4.1.3.20151118-2017) https://github.com/owlcs/owlapi -->
当 class C 被声明为 class D 的子 class 时,您可以 推断 C 的实例是也是 D 的一个实例。但是,推理过程是您需要 reasoner 的东西。如果您不使用推理机,您将不会自动获得该结果。简而言之,您要的是
形式的三元组
?subject rdf:type owbes:Recommendable
但这不在数据中。数据中有两个三元组:
?subject rdf:type owbes:Symphony
owbes:Symphony rdfs:subClassOf owbes:Recommendable
在这种情况下,您实际上可以通过使用具有 属性 路径的 SPARQL 查询来获得;您不需要完整的推理机。您可以使用这样的查询:
select ?subject where {
?subject rdf:type/rdfs:subClassOf* owbes:Recommendable
}
这表示要查找具有通过 rdfs:subClassOf 属性链(可能长度为零)链接到 owbes:Recommendable 的类型的主题。实际上,这意味着要找到 owbes:Recommendable 或其子 class 之一的 ?subjects。
有关更多信息,请参阅:
- Using SPARQL for limited RDFS and OWL reasoning
- how to do reasoning in Jena via Sparql Query
在我的保护下,我明确声明 class Symphony 是 class class 的子class Recommendable,如图所示: Classes Hierarchy
我还在 class Symphony 中添加了一些实例,当我查询 Symphony 实例时,我得到了结果。但是,当我查询 Recommendable 实例时,我什么也得不到。
这是 Symphony class 的查询:
SELECT DISTINCT ?subject WHERE {
?subject rdf:type owbes:Symphony
}
结果如下: Symphony instances query result
这是可推荐 class 的查询。
SELECT DISTINCT ?subject WHERE {
?subject rdf:type owbes:Recommendable
}
这个结果是空的,正如你在这里看到的 [推荐实例查询结果][3]
两者都来自相同的前缀。我做错了什么?
这是在 owl 文件中生成的内容:
<owl:Class rdf:about="bla bla bla/recommendation-systems#Symphony">
<rdfs:subClassOf rdf:resource="bla bla bla/recommendation-systems#Recommendable"/>
</owl:Class>
如您所见,我已将 Symphony 正确地设为可推荐
的子class我找到了解决方案: 进行此查询可以解决问题
SELECT ?subject WHERE {
?subject rdf:type ?type.
?type rdfs:subClassOf owbes:Recommendable
}
但是,我不知道为什么 rdf:type 不起作用
<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.semanticweb.org/welovethesemanticweb#"
xml:base="http://www.semanticweb.org/welovethesemanticweb"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:recommendation-systems="http://www.welovethesemanticweb.com/recommendation-systems#">
<owl:Ontology rdf:about="http://www.semanticweb.org/welovethesemanticweb"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Annotation properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#hasSimilarityValue -->
<owl:AnnotationProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#hasSimilarityValue"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Object Properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#composedBy -->
<owl:ObjectProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#composedBy">
<rdfs:subPropertyOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#hasArtist"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#IrreflexiveProperty"/>
<rdfs:domain rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<rdfs:range rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Composer"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Composed By</rdfs:label>
</owl:ObjectProperty>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#fromEra -->
<owl:ObjectProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#fromEra">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#IrreflexiveProperty"/>
<rdfs:domain rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdfs:range rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Describes the musical era that music is from</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">From Era</rdfs:label>
<recommendation-systems:hasSimilarityValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.1</recommendation-systems:hasSimilarityValue>
</owl:ObjectProperty>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#hasArtist -->
<owl:ObjectProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#hasArtist">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#IrreflexiveProperty"/>
<rdfs:domain rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdfs:range rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdfs:comment>Describes the arties of the music</rdfs:comment>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Has Artist</rdfs:label>
<recommendation-systems:hasSimilarityValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.4</recommendation-systems:hasSimilarityValue>
</owl:ObjectProperty>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Data properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#contributeToSimilarities -->
<owl:DatatypeProperty rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#contributeToSimilarities">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#double"/>
</owl:DatatypeProperty>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Classes
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Artist -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Artist">
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Song"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Composer -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Composer">
<rdfs:subClassOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Song"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra">
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Singer"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Song"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Recommendable -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable">
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Singer"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Singer -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Singer">
<rdfs:subClassOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Song"/>
<owl:disjointWith rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Song -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Song">
<rdfs:subClassOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
</owl:Class>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Symphony -->
<owl:Class rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Symphony">
<rdfs:subClassOf rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
</owl:Class>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Individuals
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Adele -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Adele">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Singer"/>
<recommendation-systems:fromEra rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#current"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Beethoven -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Beethoven">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Composer"/>
<recommendation-systems:fromEra rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#classical"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Dies_Irae -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Dies_Irae">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<recommendation-systems:composedBy rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<recommendation-systems:hasArtist rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Dies Irae</rdfs:label>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Le_nozze_di_Figaro -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Le_nozze_di_Figaro">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<recommendation-systems:composedBy rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<recommendation-systems:hasArtist rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Le Nozze Di Digaro</rdfs:label>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Mozart -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Mozart">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Artist"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Composer"/>
<recommendation-systems:fromEra rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#classical"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#baroque -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#baroque">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#classical -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#classical">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#current -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#current">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#romantic -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#romantic">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#MusicalEra"/>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#5th_Symphony -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#5th_Symphony">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<recommendation-systems:composedBy rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Beethoven"/>
<recommendation-systems:hasArtist rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Beethoven"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">5th Symphony</rdfs:label>
</owl:NamedIndividual>
<!-- http://www.welovethesemanticweb.com/recommendation-systems#Requiem:_Sequentia -->
<owl:NamedIndividual rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#Requiem:_Sequentia">
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Recommendable"/>
<rdf:type rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Symphony"/>
<recommendation-systems:composedBy rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<recommendation-systems:hasArtist rdf:resource="http://www.welovethesemanticweb.com/recommendation-systems#Mozart"/>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Requiem Sequentia</rdfs:label>
</owl:NamedIndividual>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// General axioms
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AllDifferent"/>
<owl:distinctMembers rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#baroque"/>
<rdf:Description rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#classical"/>
<rdf:Description rdf:about="http://www.welovethesemanticweb.com/recommendation-systems#romantic"/>
</owl:distinctMembers>
</rdf:Description>
</rdf:RDF>
<!-- Generated by the OWL API (version 4.1.3.20151118-2017) https://github.com/owlcs/owlapi -->
当 class C 被声明为 class D 的子 class 时,您可以 推断 C 的实例是也是 D 的一个实例。但是,推理过程是您需要 reasoner 的东西。如果您不使用推理机,您将不会自动获得该结果。简而言之,您要的是
形式的三元组?subject rdf:type owbes:Recommendable
但这不在数据中。数据中有两个三元组:
?subject rdf:type owbes:Symphony
owbes:Symphony rdfs:subClassOf owbes:Recommendable
在这种情况下,您实际上可以通过使用具有 属性 路径的 SPARQL 查询来获得;您不需要完整的推理机。您可以使用这样的查询:
select ?subject where {
?subject rdf:type/rdfs:subClassOf* owbes:Recommendable
}
这表示要查找具有通过 rdfs:subClassOf 属性链(可能长度为零)链接到 owbes:Recommendable 的类型的主题。实际上,这意味着要找到 owbes:Recommendable 或其子 class 之一的 ?subjects。
有关更多信息,请参阅:
- Using SPARQL for limited RDFS and OWL reasoning
- how to do reasoning in Jena via Sparql Query