1

私はこの奇妙な問題を抱えていました.PythonでSPARQLWrapperライブラリを使用して名人グラフに挿入しようとしています. でブラウザ ベースのエンドポイントを介してトリプルを挿入できますlocalhost:8890\sparqlが、python SparqlWrapper を介して同じクエリを試行すると、次のエラーがスローされます。

SPARQLWrapper.SPARQLExceptions.QueryBadFormed: QueryBadFormed: 不正なリクエストがエンドポイントに送信されました。おそらく、sparql クエリの形式が正しくありません。

構成の最後に何か問題があるように感じますが、同じものを特定できませんでした。

PREFIX dbpedia: <http://dbpedia.org/resource/> Insert Data  { GRAPH <test> { <http://dbpedia.org/resource/life> <http://umbel.org/umbel/rc/Artist> '2' . } }
Traceback (most recent call last):
  File "test.py", line 33, in <module>
    sys.exit(process.run("1"))
  File "test.py", line 27, in run
    result = self.sparql.query().convert()
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/SPARQLWrapper/Wrapper.py", line 390, in query
    return QueryResult(self._query())
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/SPARQLWrapper/Wrapper.py", line 363, in _query
    raise QueryBadFormed()
SPARQLWrapper.SPARQLExceptions.QueryBadFormed: QueryBadFormed: a bad request has been sent to the endpoint, probably the sparql query is bad formed.
4

2 に答える 2

3

これを sparql.org のSPARQL update validatorに持っていくと、これが間違っていることと、構文エラーの場所がすぐにわかります。

入力:

  1 PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>
  2 PREFIX rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
  3 PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>
  4 PREFIX owl:     <http://www.w3.org/2002/07/owl#>
  5 PREFIX fn:      <http://www.w3.org/2005/xpath-functions#>
  6 PREFIX apf:     <http://jena.hpl.hp.com/ARQ/property#>
  7 
  8 PREFIX dbpedia: <http://dbpedia.org/resource/>
  9 Insert Data Into GRAPH <test> {
 10   <http://dbpedia.org/resource/life> <http://umbel.org/umbel/rc/Artist> '2'^^xsd:integer .
 11 }

構文エラー:

Encountered " "into" "Into "" at line 9, column 13.
Was expecting:
    "{" ...

もちろん、やろうとしていることを実行する方法を見つけるには、仕様に目を向ける必要があります。SPARQL 1.1 Updateを参照することをお勧めします。そこに何が含まれているかを把握するために目を通しておくことをお勧めしますが、何を書く必要があるかを示すには 1 つの例で十分です。

例 2:

この SPARQL 1.1 Update リクエストは、書籍の価格を提供するためにトリプルを追加します。デフォルトのグラフに影響を与えた前の例とは対照的に、要求された変更は IRI によって識別される名前付きグラフで発生しますhttp://example/bookStore

PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX ns: <http://example.org/ns#>
INSERT DATA
{ GRAPH <http://example/bookStore> { <http://example/book1>  ns:price  42 } }

あなたのクエリは

PREFIX dbpedia: <http://dbpedia.org/resource/>
Insert Data 
{ GRAPH <test> { <http://dbpedia.org/resource/life> <http://umbel.org/umbel/rc/Artist> '2'^^xsd:integer . } }
于 2013-12-17T15:50:54.960 に答える