我正在用java写一个sparql查询来删除具有特定ID的rdf数据。我想用要删除的sparql查询
Delete ?ID ?name Where {
?ID rdf:type ex:example ex:name ?name
FILTER(?ID ="something")
}
但它什么也没做。有谁知道我的错误是什么?
我正在用java写一个sparql查询来删除具有特定ID的rdf数据。我想用要删除的sparql查询
Delete ?ID ?name Where {
?ID rdf:type ex:example ex:name ?name
FILTER(?ID ="something")
}
但它什么也没做。有谁知道我的错误是什么?
查询是可能失败的,越接近SPARQL查询可能工作是...
DELETE WHERE {
?id rdf:type ex:example;
ex:name ?name .
FILTER(?id = <http://foo.com/some/example/uri>)
}
的VAR ?id
不能是字符串,因为它被定位为主题,在RDF所有科目都IRIS,不是文字。
如果您发布一些示例数据,我们可能会提供更好的帮助。
RDF表示意味着我们只能通过删除(子)图来进行删除。任何试图删除SELECT查询中字段的等效内容都会导致错误。此外,还有多种DELETE查询形式可以在SPARQL 1.1 Update specification中看到。在问题中的查询的另一个问题是,所使用的DELETE格式是WHERE子句用于定义将被删除的三元组时的快捷方式,但过滤器会混淆快捷方式。使用完整DELETE语法应该只是罚款:
PREFIX ex: <http://example.org#>
DELETE {
?id a ex:Example ;
ex:name ?name .}
WHERE {
?id rdf:type ex:Example ;
ex:name ?name .
FILTER(str(?id) != "")
}
我觉得现在的问题是SPARQL更新,因为我得到的遭遇“‘删除’”删除‘’第6行的错误,列1 期待一个作者: “前缀”... “select”... “construct”... “describe”... “ask”... 你知道我是否可以做任何事情来运行删除查询? – user1259487 2012-03-17 11:13:41
您正在使用哪个三重商店? – 2012-03-17 16:49:15
错误消息与SPARQL查询和SPARQL更新之间的差异有关。他们在Jena中使用不同的类来表示(我猜可能是您正在使用的类),并且它们通常会作为不同的端点URL公开:s。这些不符合设计,因此是错误。 – 2017-05-15 11:21:46