2016-11-22 10 views

答えて

2

は、この文字列で検索してください:それはMarmottaの組み込みのものも含めてデータベース、内のすべてのトリプルを削除として

DELETE WHERE { ?x ?y ?z } 

は、注意してください。

私は実験のためにした物事のカップル:

  1. 私はMarmottaのsource codeをダウンロードし、以下のコマンドでDELETEクエリを検索するためのSilver Searcherツールを使用し:

    ag '"DELETE ' 
    

    これはやりましたあまり役に立たない。

  2. 私はMarmottaのインストールディレクトリに移動し、デバッグログを見て:

    tail -f marmotta-home/log/marmotta-main.log 
    

    これは、パーサーは、クエリDELETE DATA { ?s ?p ?o }を処理することができませんことを示しました。 「アップデートを実行中にエラー」の後ろの例外は次のとおり

    org.openrdf.sail.SailException: org.openrdf.rio.RDFParseException: Expected an RDF value here, found '?' [line 8] 
    [followed by a long stacktrace] 
    

    これは、パーサはDELETE DATA後、クエリ内の変数を許可しないことを示しています。 related StackOverflow answerに基づいて

  3. は、私がCLEAR/CLEAR GRAPH/DROP/DROP GRAPHを試してみましたが、彼らは動作しませんでした。

  4. は私がDELETE*?s ?p ?pの多くの組み合わせを試してみましたが、誤ってそれがDELETE WHERE構築物を用いて作業を得ることができました。

    DELETE動作はWHERE句で一致したバインディングを削除するグラフでトリプルを定義するために使用されるDELETE/INSERT動作のためのショートカット形式である:W3Cマニュアルに従って。

+0

これは仕事と返されませんでした私は、私は解決策を見つけたと思う –

+0

@SaraLafia「不正なクエリを、更新に失敗しました」 - 私は答えを更新し、すぐにいくつかの詳細を追加しますが。 –

関連する問題