我想使用 SPARQL DELETE/INSERT来确保在重复更新?performance
和某些连接的空白节点后没有多个属性值,而只有零(对于可选情况)或一个(对于强制情况)。
如果我将 DELETE/INSERT(见下文)发送到 Jena Fuseki 1.1.1 服务器,我会收到以下错误消息:“DELETE 模板中不允许有空白节点”。
但是,规范包含这句话:“DELETE/INSERT 操作可用于删除包含空白节点的三元组。”
那么在这种情况下,有效的 DELETE/INSERT 形式是什么?为便于维护,最好 DELETE 和 INSERT 部分可以保持结构相似。(这是一个后续问题。)
DELETE {
?performance
mo:performer ?_ ;
mo:singer ?_ ;
mo:performance_of [ ### error marked here ###
dc:title ?_ ;
mo:composed_in [ a mo:Composition ;
mo:composer ?_
]
]
}
INSERT {
?performance
mo:performer ?performer ; # optional
mo:singer ?singer ; # optional
mo:performance_of [
dc:title ?title ; # mandatory
mo:composed_in [ a mo:Composition ;
mo:composer ?composer # optional
]
]
}
WHERE {}