gpt4 book ai didi

sparql - 使用 SPARQL UPDATE 添加个人的推荐方法是什么?

转载 作者:行者123 更新时间:2023-12-02 01:49:12 24 4
gpt4 key购买 nike

我知道要将个体(类的实例)添加到三元组存储中,可以使用以下插入语句:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com