- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道要将个体(类的实例)添加到三元组存储中,可以使用以下插入语句:
PREFIX indv:<http://someexample.com/blah>
PREFIX ont:<http://someotherexample.com/blah/ontology#>
INSERT DATA
{
indv:individual_name rdf:type ont:SomeClassName.
}
我的问题是:这足够了吗?
我问这个问题是因为我使用 protege 将一些人添加到 owl 文件中,并且我发现该文件又添加了一个三元组:
indv:individual_name rdf:type owl:NamedIndividual.
是否也需要将这个三元组插入到三元组存储中?插入这个三元组有什么好处或者有什么缺点?
最佳答案
My question is: is this enough?
在 RDF 中简单地添加一个类的实例就足够了。在 RDF 中,资源可以是类的成员,并由具有属性 rdf:type 的三元组表示。
I am asking this because I added some individuals to an owl file using protege and I saw that the file had one more triple added:
indv:individual_name rdf:type owl:NamedIndividual.
Is it necessary to insert this triple into the triple store as well? What are the benefits for inserting this triple or are there any disadvantages?
OWL 比 RDF 具有更多的结构。 OWL实际上是一种基于公理和断言的逻辑语言。它仍然使用 IRI 作为标识符,并且设计者确保支持将 OWL 本体序列化为 RDF。因此,您实际上正在使用 RDF 进行 OWL 本体的序列化。一般来说,你可以找到官方文档,OWL 2 Web Ontology Language Mapping to RDF Graphs ,很有用。
您在 Protege 的输出中看到的实际上是两个 OWL 公理的序列化。在 OWL 中,您可以声明一个个体,而不指定它所属的任何类。您可以使用类似的公理(从上面链接的文档复制)来做到这一点:
Declaration( NamedIndividual( *:a ) )
它被转换为 RDF 作为三元组:
T(*:a) rdf:type owl:NamedIndividual .
T(*:a) 表示法仅意味着无论 *:a 的翻译是什么,它都是三元组的主语。因此,“x rdf:type owl:NamedIndividual”三元组实际上负责声明“x 是一个个体”。也就是说,要声明某物是一个个体,您只需执行以下操作:
INSERT DATA { indv:individual_name rdf:type owl:NamedIndivual }
那么添加另一种类型(如原始 SPARQL 更新中那样)怎么样?在 OWL 中,您说“a”是某个类的成员,由类表达式“CE”表示,并具有以下公理:
ClassAssertion( CE a )
将其转换为 RDF
T(a) rdf:type T(CE) .
T(a) 和 T(CE) 符号只是表明 RDF 中“a”和“CE”的表示可能比简单的 IRI 或空白节点或文字更复杂。例如,类表达式可能是 unionOf 或 junctionOf 等。因此,如果您想添加类断言公理,则可以使用 SPARQL 更新,例如:
INSERT DATA {
indv:individual_name rdf:type ont:SomeClassName.
}
当然,只有当您实际上也声明了该个人时才应该这样做(尽管您会发现实际上并不总是遵循这一点)。所以,总而言之,您可能需要这样的更新:
INSERT DATA {
indv:individual_name rdf:type ont:SomeClassName, owl:NamedIndividual
}
(i) 声明该个体,并且 (ii) 断言该个体是特定类别的成员。
关于sparql - 使用 SPARQL UPDATE 添加个人的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240529/
我正在使用 SPARQL,我想知道是否可以在 in 子句中放入 sparql?更具体地说,我需要获取对此 sparql 查询具有特定条件的实体(s1,s2)[s1 在某个字段上的聚合值大于 5] se
我们有办法在 SPARQL 中做一个不减少的累加和吗? 例如, SELECT ?p WHERE { VALUES ?p { 1 1 2 } } ORDER BY ?p 将导致 1 2 4, - 而
在这个小片段中,第二行的 a 是做什么的? CONSTRUCT { ?uri a skos:Concept ; skos:prefLabel ?prefLabel ; 我确
我写了一个 Sparql 查询。 PREFIX table: SELECT ?name ?color FROM WHERE { ?element table:group ?group. ?gro
下面的两个查询有什么区别吗? select distinct ?i where{ ?i rdf:type . FILTER EXISTS { ?i ?b.
我不太明白为什么在SPARQL中他们没有实现基本的逻辑运算符。然而,在大多数情况下,可以通过多种方式获得相同的结果。 这个问题的目的是快速引用可以替代“or”语句的可能方式。 这是我能想到的: 1)联
我的问题很简单:我有一个源my:g1,其中包含: my:a1 my:b "literal 1" 然后我有第二个源my:g2,其中包含: my:a2 my:b my:c. my:c rdfs:label
我在处理数字数据类型时遇到 SPARQL 问题。 我有一个本体 ( http://cabas.ugr.es/ontology/ugr ),我在其中定义了一对属性,表示特定性别的学生人数:
我有以下 SPARQL 查询: PREFIX rdfs: PREFIX type: PREFIX prop: SELECT * WHERE { ?person a foaf:Per
我想知道如何在sparql中表达以下问题: “请告诉我每个 child 都上麻省理工学院的 parent ” 更一般地说,我想知道查询 sparql 的限制是什么?请问数据库中有哪些类型的答案不能
我正在尝试编写一个优雅的 SPARQL,为多个可能的查询提供一个解决方案。我有多个主语和多个谓词,我想接收一个对象。单一解决方案的存在非常不确定,因此我给出了多种选择。如果我没记错的话,这可以通过以下
这是一个关于 Sparql 和 Wikidata 的问题。我想制定一个返回实例类型关系的查询,但如果它不可用,则返回其子类。我尝试过: SELECT DISTINCT ?ent_type WHER
我想做一些类似的事情 { SELECT ?page, "A" AS ?type WHERE { ?s rdfs:label "Microsoft"@en;
我正在尝试进行 SPARQL 查询,该查询返回一个变量,其中包含两个单词,由某些内容分隔。实际上,我尝试获取一个变量,如 ?πληθυσμός_population(希腊语和英语)。但是,我更喜欢与“
我想知道 SPARQL 默认情况下是否采用开放世界假设,或者这是否取决于执行 SPARQL 查询的三元组存储。 这个假设在查询中的含义是什么。 致以诚挚的问候。 最佳答案 嗯.... 我想知道这对于这
我在处理数字数据类型时遇到 SPARQL 问题。 我有一个本体 ( http://cabas.ugr.es/ontology/ugr ),我在其中定义了一对属性,表示特定性别的学生人数:
我正在玩DBPedia . 通过这个查询,我得到了所有出生在伦敦的人: SELECT ?person WHERE { ?person dbo:birthPlace :London } 但
我需要处理 SPARQL 查询。有没有人有很好的链接来学习 SPARQL 查询?我正在寻找有关 SPARQL 查询和示例语法的好文章,以便我可以快速学习。 最佳答案 Lee Feigenbaum 的
我有一个 SPARQL 查询,它在 Virtuoso SPARQL 查询编辑器中运行时提供结果,但相同的查询在 SPARQL 查询验证器中给出语法错误。问题是什么?为什么显示语法错误? PREFIX
我正在运行 sparql 查询 PREFIX rdfs: PREFIX rdfs: SELECT DISTINCT(?film_link) ?film_name ?wiki
我是一名优秀的程序员,十分优秀!