我需要编写一个SPARQL查询来查找给定类的超类/子类.
例如,给定http://139.91.183.30:9090/RDF/VRP/Examples/Phenomenon.rdf RDFS词汇表文件,我想找到'AcousticWave'的超类(即'Wave').
同样,如果用户输入'Wave',我想得到'Wave'的所有子类('AcousticWave','GravityWave','InternalWave'和Tide').

我该如何编写这样的SPARQL查询?
我下载了WordNet2.0全套.在RDF/XML文档,wnfull.rdfs,有下面这个元素使用,例如,&wn20schema;AdverbSynset作为属性值(在地方的URI将预期).我知道如何#,url/并且value:常用,但这种&...;符号是什么?
<rdfs:Class rdf:about="&wn20schema;Synset" />
<rdfs:Class rdf:about="&wn20schema;AdjectiveSynset" />
<rdfs:Class rdf:about="&wn20schema;AdjectiveSatelliteSynset" />
<rdfs:Class rdf:about="&wn20schema;AdverbSynset" />
Run Code Online (Sandbox Code Playgroud) 我有这个查询SPARQL我在它上运行.dbpedia.org/sparql:
select ?resource where {
?resource rdfs:label "Piemonte"@it
}
Run Code Online (Sandbox Code Playgroud)
我得到这个结果:
http://it.dbpedia.org/resource/Categoria:Piemonte
http://it.dbpedia.org/resource/Piemonte
Run Code Online (Sandbox Code Playgroud)
我希望只有http://it.dbpedia.org/resource/Piemonte.我试图写这个查询SPARQL 从结果中删除http://it.dbpedia.org/resource/Categoria:Piemonte:
select ?resource where {
?resource rdfs:label "Piemonte"@it
FILTER (rdf:type != skos:Concept)
}
Run Code Online (Sandbox Code Playgroud)
因为我注意到http://it.dbpedia.org/resource/Categoria:Piemonte有对象skos:Concept而http://it.dbpedia.org/resource/Piemonte没有,但我得到了相同的结果.为什么?我在这做错了什么?
我也尝试添加LIMIT 1,但结果是http://it.dbpedia.org/resource/Categoria:Piemonte,因为结果不保证是相同的顺序.
在RDF/RDFS/OWL中,如何判断实体是纯粹的实例还是类?我理解类实体也是实例,因为它们是"类"实体的实例和其他类的子类.但是,我相信一些实体只是一个类的实例,而不是类本身.
现在,我认为告诉某事的唯一方法纯粹是一个实例是在(在该实体的rdf数据中)查找带有rdf:type谓词的语句,并查找缺少具有rdfs:subClassOf或等效谓词的任何语句.
但是,寻找缺少语句并不是确保某些东西真正成为类或实例的好方法.
有没有更好的方法来辨别一个实体是一个类还是一个纯粹的实例?希望在鼻子下面可能还有什么东西.
在RDF 1.1中rdf:resource,定义空属性元素时,XML语法文档用作缩短形式:
当RDF图中的谓词弧指向没有其他谓词弧的对象节点时,该对象弧在RDF / XML中显示为空节点元素(或),可以缩短这种形式。通过将对象节点的IRI用作
rdf:resource包含的属性元素上的XML属性的值,并使该属性元素为空,可以完成此操作。
在RDF中,Schema 1.1 rdfs:Resource被定义为一个类:
RDF描述的所有事物都称为资源,并且是class的实例
rdfs:Resource。这就是所有的事情。所有其他类都是该类的子类。rdfs:Resource是的实例rdfs:Class。
两者有什么关系?rdf:resource值是否始终属于rdfs:Resource类,反之亦然?
我是编写RDF模式的初学者,并且想知道我应该如何充分利用URI概念并创建一个简单感兴趣的RDF文档.我正在尝试创建以下声明的RDF-
Jeffy is a Graduate student
Jeffy likes yoga
Jeffy is seeking Tennis.
Run Code Online (Sandbox Code Playgroud)
我该如何根据这三个句子编写RDF.对此有任何启发都会非常有帮助.
我最近开始学习Web Ontology Language(OWL).我想用我自己定义的值范围定义DataProperty.考虑以下属性:
<owl:DatatypeProperty rdf:ID="myProperty">
<rdfs:domain rdf:resource="#MyDomain"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#double"/>
</owl:DatatypeProperty>
Run Code Online (Sandbox Code Playgroud)
该属性具有double值的范围,但我想限制范围,以使我的属性只接受介于0和1之间的双精度值.如果您指导我如何定义我自己的数据属性范围,我将非常感激.
我有一个系统可以在本体中建模一些域数据,通常是三元组.
我一直在寻找一种表达多元化和排序的方法,但没有通过谷歌找到任何东西.我的主要用例就像域中的一个实体可以是一个任务列表,(获得杂货,做饭,吃饭,类似的东西),但总的来说,我觉得有能力"重量"你的边缘可能是全面有用.
这是否有可接受的方式?去四元店?中间项目(list - > listitem)与边缘到一个简单和一个域实体?从谓词到权重的谓词?
这是一个例子.

2.4 rdfs:数据类型
rdfs:Datatype是数据类型的类。rdfs:Datatype的所有实例都对应于RDF概念规范[RDF11-CONCEPTS]中描述的数据类型的RDF模型。rdfs:Datatype既是rdfs:Class的实例又是rdfs:Class的子类。rdfs:Datatype的每个实例都是rdfs:Literal的子类。
为什么rdfs:Datatype必须是rdf:Class子类?为什么它不能只是rdfs:Class的实例?我不理解子类化的含义。
我将此海龟文件加载到两个不同的 OWL 推理机(HermiT 和 RDFox)中:
@prefix : <http://www.semanticweb.org/justin/ontologies/2022/10/untitled-ontology-16#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:A1 rdf:type owl:Class .
:A2 rdf:type owl:Class ;
rdfs:subClassOf :A1 .
:A3 rdf:type owl:Class ;
rdfs:subClassOf :A2 .
Run Code Online (Sandbox Code Playgroud)
我预计推理者会推断出:
:A3 rdfs:subClassOf :A1 .
Run Code Online (Sandbox Code Playgroud)
但两个推理者都没有。
相关材料:
“rdfs:subClassOf 属性是可传递的。” https://www.w3.org/TR/rdf-schema/#ch_subclassof
“当我们将属性 P 定义为传递属性时,这意味着如果一对 (x,y) 是 P 的实例,并且一对 (y,z) 也是 P 的实例,那么我们可以推断(x,z) 对也是 P 的一个实例。” https://www.w3.org/TR/owl-ref/#TransitiveProperty-def