• 検索結果がありません。

REST API を使用したトリプルの操作

ドキュメント内 Semantics Developer’s Guide (ページ 145-149)

6.3 REST API を使用したトリプルのクエリ

6.3.7 REST API を使用したトリプルの操作

同じ

SPARQL

のASKクエリで、ブール型の結果が

JSON

として返されるようにする場合 は、次の例のようになります。

curl --anyauth --user user:password -i -X POST --data-binary @./ask-sparql.sparql

-H "Content-type: application/sparql-query"

-H "Accept: application/sparql-results+json"

http://localhost:8050/v1/graphs/sparql

=>

HTTP/1.1 200 OK

Content-type: application/sparql-results+json Server: MarkLogic

Content-Length: 17 Connection: Keep-Alive Keep-Alive: timeout=5 {"boolean":true}

6.3.6.5

サポートされていないシリアライゼーション

サポートされていないシリアライゼーションの応答に対してGETリクエストを実行する と、「406 Not Acceptable」エラーが発生します。また、SPARQLペイロードのパースで 障害が発生すると、応答によって「400 Bad Request」エラーが発生します。

次に例を示します。

<rapi:error xmlns:rapi="http://marklogic.com/rest-api">

<rapi:status-code>400</rapi:status-code>

<rapi:status>Bad Request</rapi:status>

<rapi:message-code>RESTAPI-INVALIDCONTENT</rapi:message-code>

<rapi:message>RESTAPI-INVALIDCONTENT: (err:FOER0000) Invalid content:

Unexpected Payload: c:\space\example.ttl</rapi:message>

</rapi:error>

このエンドポイントがパラメータなしで呼び出されると、データベース内のすべてのト リプルに関してデータベース内の主語ノードのリストが返されます。

Web

ブラウザにおける応答の例は、次に示すとおりです。

注:

このエンドポイントは、表示する項目数を

10,000

件に制約するようにハー ドコーディングされています。ページネーションはサポートされません。

ノードをドリルダウンすると、データベース内のトリプルをトラバースおよびナビゲー トできます。

例えば、

IRI

をクリックすると、

1

つあるいは複数の関連トリプルが返されることがあ ります。

オプションのiriパラメータを使用して、返す情報に関する特定の

IRI

Turtle

トリプ ルのシリアライゼーションで指定できます。

次に例を示します。

http://localhost:8050/v1/graphs/things?iri=http://dbpedia.org/resource /Abraham_Lincoln

IRI

http://dbpedia.org/resources/Abraham_Lincolnで選択されたノードが、Turtleシリア ライゼーションで返されます。

curlまたは

HTTP

リクエストを発行する同等のコマンドラインツールを使用している場 合は、次のacceptをリクエストヘッダに追加できます。

パラメータが指定されていない場合は

text/html。

iriパラメータが使用されている場合は

MIME

タイプ。「サポートされている

RDF

トリプルのシリアライゼーション」(

36

ページ)を参照してください。

注:

このエンドポイントでは、GETが唯一のサポートされている動詞です。要 求した情報を返すには、

rest-reader

権限が必要です。

次の例では、GETリクエストが、指定されているiriパラメータで選択されたノードを

Turtle

トリプルのシリアライゼーションで返します。

curl --anyauth --user admin:password -i -X GET \ -H "Accept: text/turtle" \

http://localhost:8051/v1/graphs/things?iri=http://dbpedia.org/ \ resource/Aristotle

=>

HTTP/1.1 200 OK

Content-type: text/turtle; charset=UTF-8 Server: MarkLogic

Content-Length: 628 Connection: Keep-Alive Keep-Alive: timeout=5

@prefix xs: <http://www.w3.org/2001/XMLSchema/> .

<http://dbpedia.org/resource/Aristotle>

<http://dbpedia.org/ontology/deathPlace>

<http://dbpedia.org/resource/Chalcis> .

<http://dbpedia.org/resource/Aristotle>

<http://dbpedia.org/ontology/birthPlace>

<http://dbpedia.org/resource/Stagira_(ancient_city)> .

<http://dbpedia.org/resource/Aristotle>

<http://www.w3.org/1999/02/22-rdf-syntax

-ns#type/> <http://xmlns.com/foaf/0.1/Person> .

<http://dbpedia.org/resource/Aristotle>

<http://xmlns.com/foaf/0.1/name>

"Aristotle" .

<http://dbpedia.org/resource/Aristotle>

<http://purl.org/dc/elements/1.1/description>

"Greek philosopher" .

注:

指定されている

IRI

が存在しない場合の応答は、「

404 Not Found

」です。

サポートされていないシリアライゼーションの応答に対してGETリクエス トを実行すると、「406 Not Acceptable」が発生します。

ドキュメント内 Semantics Developer’s Guide (ページ 145-149)