gpt4 book ai didi

SPARQL更新示例,用于在单个查询中更新三个以上的三元组

转载 作者:行者123 更新时间:2023-12-04 09:40:44 24 4
gpt4 key购买 nike

任何人都可以在任何文档中(无论是W3C,专家,语义网页还是您自己的自定义代码等)指向SPARQL中的有效UPDATE语句?

它必须具有WHERE规范,并且在一个查询中要更新三个以上的三元组。

谢谢。

编辑/示例:

这是我当前的代码,其目标是用INSERT子句中指定的值替换dc:creatordc:titledc:description的所有当前值。此查询在逻辑和语法上是否正确?

WITH GRAPH  <http://127.0.0.1:3000/dendro_graph>  
DELETE
{
:teste dc:creator ?o0 .
:teste dc:title ?o1 .
:teste dc:description ?o2 .
}
INSERT
{
:teste dc:creator "Creator%201" .
:teste dc:creator "Creator%202" .
:teste dc:title "Title%201" .
:teste dc:description "Description%201" .
}
WHERE
{
:teste dc:creator ?o0 .
:teste dc:title ?o1 .
:teste dc:description ?o2 .
}

最佳答案

对我来说,您仍想知道要达到的目标以及为什么给出的示例更新没有做到您想要的目的,这仍然不是很清楚,但是如果目标是要有一个更新来替换给定主题的三元组,您可以做一些事情像这样:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@prefix ex: <http://example.org/>

DELETE {?s ?p ?o}
INSERT {?s ex:title "foo" ;
ex:description "bar" ;
rdf:type ex:FooBar .
}
WHERE { ?s ?p ?o .
FILTER (?s = ex:subject1)
}

上面的操作将删除所有以 ex:subject1为主题的三元组,并插入新的标题,描述和类型。

或者,如果您不喜欢过滤器,也可以像这样编写上面的代码:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@prefix ex: <http://example.org/>

DELETE {ex:subject1 ?p ?o}
INSERT {ex:subject1 ex:title "foo" ;
ex:description "bar" ;
rdf:type ex:FooBar .
}
WHERE {
ex:subject1 ?p ?o .
}

如果您只想删除给定主题的特定属性(而不是删除该主题的所有三元组),则可以按如下方式修改操作:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@prefix ex: <http://example.org/>

DELETE {ex:subject1 ex:title ?t ;
ex:description ?d ;
rdf:type ?c .
}
INSERT {ex:subject1 ex:title "foo" ;
ex:description "bar" ;
rdf:type ex:FooBar .
}
WHERE {
ex:subject1 ex:title ?t ;
ex:description ?d ;
rdf:type ?c .
}

关于SPARQL更新示例,用于在单个查询中更新三个以上的三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502398/

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