5

あなたが知っている誰かが、適切なxsd:dateTimeの代わりにxsd:datetimeのデータ型を持つRDFデータベースに誤っていくつかのトリプルを挿入したとしましょう。これを修正する最も簡単な方法は何ですか?

私は悪いデータを見つけるためにこのようなことをすることができることを知っています:

select * where {
  ?s ?p ?o.
  filter (datatype(?o)=xsd:datetime)
}

そして、それらの結果を取得し、テキストエディターで修正し、悪いものを削除して、良いものを挿入することができます...しかし、もっと簡単な方法があると信じて/願っています。

4

1 に答える 1

5

SPARQL 1.1 では、次のような SPARQL Update コマンドでこれを行うことができます。

DELETE { ?s ?p ?o }
INSERT { ?s ?p ?o2 }
WHERE
{
  ?s ?p ?o .
  FILTER(datatype(?o) = xsd:datetime)
  BIND(STRDT(STR(?o), xsd:dateTime) AS ?o2)
}

WITH <graph>更新コマンドは特定のグラフに適用されるため、修正する必要がある名前付きグラフごとにコマンドの先頭にa を追加して、この複数回発行する必要がある場合があります。

于 2012-07-09T01:29:01.403 に答える