1

PUT メソッドで新しいオブジェクトを作成し、SPARQL クエリで独自のプレフィックスをいくつか追加しようとしています。ただし、オブジェクトはプレフィックスを追加せずに作成されています。ただし、POST と PATCH で動作します。SPARQL が PUT メソッドで使用し、ユーザー定義のプレフィックスを使用して追加する別の方法があるのはなぜですか?

 PREFIX dc: <http://purl.org/dc/elements/1.1/>
 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>

 DELETE { }
 INSERT {
   <> indexing:hasIndexingTransformation "default";
      rdf:type indexing:Indexable;
      dc:title "title3";
      dc:identifier "test:10";
 }
 WHERE { }

私が言っているのは、insert句で指定された上記の値はすべてまったく追加されていないということです。

EDIT1:

url = 'http://example.com/rest/object1'
payload = """
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
PREFIX custom: <http://customnamespaces/custom#/>
DELETE { }
INSERT {
<> indexing:hasIndexingTransformation "default"; 
rdf:type indexing:Indexable; 
dc:title "title1";
custom:objState "Active";
custom:ownerId "Owner1";
dc:identifier "object1";
}
WHERE { }
""" 
headers = {
    'content-type': "application/sparql-update",
    'cache-control': "no-cache"
    }
response = requests.request("PUT", url, data=payload, headers=headers, auth=('username','password'))
4

1 に答える 1

0

プレフィックスはトリプルではないため、SPARQL クエリを使用して追加することはできません。SPARQL クエリでいつでもプレフィックスを指定でき、トリプル ストアに格納するための正しい URI が生成されます。

customまた、ハッシュとスラッシュの両方で終わる名前空間が誤って定義されていることにも注意してください。PREFIX custom: <http://customnamespaces/custom#>またはのいずれかである必要がありますPREFIX custom: <http://customnamespaces/custom/>

つまり、クエリ indexing:hasIndexingTransformation により、トリプル ストアに として格納され<http://fedora.info/definitions/v4/indexing#hasIndexingTransformation>ます。

プレフィックスをトリプル ストアに格納する理由はありません (実際には、プレフィックスはデータ自体ではなく、テキストのシリアライゼーションの成果物です)。そのため、後で 2 つの方法のいずれかでこのデータをクエリできます。

1) プレフィックスの使用

PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
SELECT ?o {
   [] indexing:hasIndexingTransformation ?o .
}

2) 完全な URI を使用する:

SELECT ?o {
   [] <http://fedora.info/definitions/v4/indexing#hasIndexingTransformation> ?o .
}
于 2016-04-05T13:36:52.663 に答える