Sparql 更新特定图形中的值

Sparql 更新特定图形中的值,sparql,jena,Sparql,Jena,我想更新特定图形中的值。调用此查询时,我在两个不同的图中得到两个三元组: select * where { GRAPH ?g { ?s ?p ?o . FILTER(?s = <http://mre.zcu.cz/id/2285692c932c88f8673a162ef7b5c997993da41cc>) . FILTER(?p = ds:diagDetail). FILTER(?o = 123) } } 选择* 何处{ 图?g{ ?s?

我想更新特定图形中的值。调用此查询时,我在两个不同的图中得到两个三元组:

select *
where {  
  GRAPH ?g {
    ?s ?p ?o .
    FILTER(?s = <http://mre.zcu.cz/id/2285692c932c88f8673a162ef7b5c997993da41cc>) .
    FILTER(?p = ds:diagDetail).
    FILTER(?o = 123)
  }
}
选择*
何处{
图?g{
?s?p?o。
过滤器(?s=)。
过滤器(?p=ds:diagDetail)。
过滤器(?o=123)
}
}
但是当我尝试用这个查询更新这些值时,什么都没有发生。服务器返回success,但三元组不变。我做错了什么

DELETE {?s ?p ?o}
INSERT {?s ?p 12345}
where {  
  GRAPH ?g {
    ?s ?p ?o .
    FILTER(?s = <http://mre.zcu.cz/id/2285692c932c88f8673a162ef7b5c997993da41cc>) .
    FILTER(?p = ds:diagDetail).
    FILTER(?o = 123)
  }
}
删除{s?p?o}
插入{s?p 12345}
何处{
图?g{
?s?p?o。
过滤器(?s=)。
过滤器(?p=ds:diagDetail)。
过滤器(?o=123)
}
}

尝试在DELETE和INSERT语句中包含GRAPH关键字

DELETE {GRAPH ?g {?s ?p ?o   } }
INSERT {GRAPH ?g {?s ?p 12345} }
where {  
  GRAPH ?g {
    ?s ?p ?o .
    FILTER(?s = <http://mre.zcu.cz/id/2285692c932c88f8673a162ef7b5c997993da41cc>) .
    FILTER(?p = ds:diagDetail).
    FILTER(?o = 123)
  }
}
DELETE{GRAPH?g{s?p?o}
插入{GRAPH?g{s?p 12345}
何处{
图?g{
?s?p?o。
过滤器(?s=)。
过滤器(?p=ds:diagDetail)。
过滤器(?o=123)
}
}

否则,它可能会在“默认图形”中进行更改,但不会更改它们“活动”的实际图形中的三元组。

您是否应该在
插入
删除
部分中也使用
图形?g{…}
?否则,这些图形不会受到影响,我认为,否则它只是默认图形,除非您不使用…指定默认图形-这不是您案例中需要的东西,因此,您当前的UPDATE语句只是尝试从不包含三元组的默认图中删除,并向默认图中添加一个新的三元组-您可以使用SELECT查询进行检查,而无需指定
graph?g