Обновить значение в графике c - PullRequest
0 голосов
/ 16 февраля 2020

Я хотел бы обновить значения в конкретном графике c. Когда я вызываю этот запрос, я получаю две тройки на двух разных графиках:

select *
where {  
  GRAPH ?g {
    ?s ?p ?o .
    FILTER(?s = <http://mre.zcu.cz/id/2285692c932c88f8673a162ef7b5c997993da41cc>) .
    FILTER(?p = ds:diagDetail).
    FILTER(?o = 123)
  }
}

Но когда я пытаюсь обновить эти значения с помощью этого запроса, ничего не происходит. Сервер возвращает успех, но тройки не меняются. Что я делаю не так?

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)
  }
}

1 Ответ

0 голосов
/ 17 февраля 2020

Попробуйте включить ключевое слово GRAPH в операторы DELETE и INSERT.

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)
  }
}

В противном случае оно может вносить изменения в «график по умолчанию», но не изменять тройки в реальных графах, где они » жить».

...