SPARQL DELETE/INSERT을 사용하여 반복적으로 업데이트 한 후 ?performance
과 연결된 특정 빈 노드에 여러 속성 값이 있지만 0 개 (선택 사항 인 경우) 또는 1 개 (필수 경우) 만 사용해야합니다.DELETE/INSERT 작업은 빈 노드를 포함하는 트리플을 제거하는 데 사용할 수 있습니다.
Jena Fuseki 1.1.1 서버에 DELETE/INSERT (아래 참조)를 보내면 "DELETE 템플릿에서 빈 노드를 사용할 수 없습니다"라는 오류 메시지가 나타납니다.
그러나이 사양에는 "DELETE/INSERT 작업을 사용하여 빈 노드가 포함 된 트리플을 제거 할 수 있습니다."
이 경우 작업을 수행하는 올바른 형태의 DELETE/INSERT가 무엇입니까? 유지 보수를 쉽게하기 위해 DELETE 및 INSERT 부분이 구조적으로 유사하게 유지 될 수 있다면 좋을 것입니다. (이것은 follow-up 질문입니다.)
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 {}
이 문장에서 문제가 발생했음을 이제는 추측합니다. "그래프 패턴의 빈 노드는 참조가 아닌 변수로 사용됩니다. 질의되는 데이터의 특정 빈 노드에 적용됩니다. " 그것들을'_ : b1','_ : b2','_ : b3'라고하면 ... – Drux