3.2 トリプルのロード
3.2.5 REST API を使用したトリプルのロード
このQuery Consoleの表示形式は、[Result]部分から簡単にコピーできるようになって います。
注: コレクションレキシコンは、REST APIインスタンスのグラフストア HTTPプロトコルで必須です。
5. ポート8000に関連付けられたデフォルトのREST APIインスタンスを使用でき ます。新しいREST APIインスタンスを作成する場合は、『REST Application Developer’s Guide』の「
3.2.5.2 グラフストアの処理
グラフエンドポイントは、W3CのグラフストアHTTPプロトコルの実装であり、
SPARQL 1.1グラフストアHTTPプロトコルで指定されています。
http://www.w3.org/TR/2012/CR-sparql11-http-rdf-update-20121108
グラフストアのベースURLは次のとおりです。
http://hostname:port/version/graphs
「hostname」はMarkLogicサーバーのホストマシン、「port」はREST APIインスタン スが実行されているポート、「version」はAPIのバージョン番号です。グラフストア HTTPプロトコルは、RESTful HTTPリクエストから対応するSPARQL 1.1更新操作への マッピングです。『REST Application Developer’s Guide』の「
3.2.5.3 パラメータの指定
グラフエンドポイントでは、特定の名前付きグラフに対してオプションのパラメータを 利用できます。例えば以下のようになります。
http://localhost:8000/v1/graphs?graph=http://named-graph 省略した場合、デフォルトグラフが値なしのデフォルトパラメータとして指定されてい る必要があります。
例えば以下のようになります。
http://localhost:8000/v1/graphs?default
パラメータなしでGETリクエストが発行されると、グラフのリストがリスト形式で返 されます。詳細については、GET:/v1/graphsを参照してください。
3.2.5.4 サポートされている動詞
RESTクライアントでは、MarkLogicサーバーとやり取りするためにGETやPUTと いったHTTP動詞を使用します。次の表は、サポートされている動詞と、それぞれを使 用するために必要なロールを示したものです。
MarkLogicのREST APIリクエストを実行するために使用するロールでは、HTTP呼び
出しによってアクセスされるコンテンツに対して適切な権限(例えば、ターゲットデー タベース内のドキュメントを読み取りまたは更新するパーミッション)が必要です。
REST APIのロールと権限の詳細については、『REST Application Developer’s Guide』
の「Security Requirements」を参照してください。
注: このエンドポイントは、要素sem:tripleがルートであるドキュメント だけを更新します。
3.2.5.5 サポートされているメディア形式
Content-type HTTPヘッダでサポートされているメディア形式のリストについては、
「サポートされているRDFトリプルの形式」(31 ページ)を参照してください。
3.2.5.6 トリプルのロード
トリプルを挿入するには、PUTまたはPOSTリクエストを次の形式のURLにします。
http://host:port/v1/graphs?graph=graphname リクエストを構築するときは、次の手順に従います。
1. トリプルの読み込み先グラフを指定します。
動詞 説明 ロール
GET 名前付きグラフを取得します。 rest-reader POST 名前付きグラフにトリプルをマージするか、空のグラフ
にトリプルを追加します。
rest-writer
PUT 名前付きグラフ内のトリプルを置換するか、空のグラフ にトリプルを追加します。機能的には、DELETEの後に POSTを実行することと同等です。例については、「トリ プルのロード」(50 ページ)を参照してください。
rest-writer
DELETE 名前付きグラフ内のトリプルを削除します。 rest-writer
HEAD グラフが存在するかどうかをテストします。ボディなし で、名前付きグラフを取得します。
rest-reader
a. デフォルトグラフを指定する場合は、graphパラメータをデフォルトグラフに 設定します。
b. 名前付きグラフを指定する場合は、graphパラメータをその名前付きグラフに 設定します。
2. リクエストのボディにコンテンツを配置します。
3. Content-type HTTPヘッダでコンテンツのMIMEタイプを指定します。
「サポートされているRDFトリプルの形式」(31 ページ)を参照してください。
4. ユーザー資格情報を指定します。
トリプルがデフォルトディレクトリの/triplestoreに読み込まれます。
UNIXまたはCygwinコマンドラインインタプリタでのcurlコマンドの例を次に示し
ます。このコマンドは、PUT HTTPリクエストを送信して、ファイルexample.nt のコンテンツをXMLドキュメントとしてデータベースのデフォルトグラフに挿入 します。
# Windows users, see Modifying the Example Commands for Windows
$ curl -s -X PUT --data-binary '@example.nt' \ -H "Content-type: application/n-triples" \ --digest --user "admin:password" \
"http://localhost:8000/v1/graphs?default"
注: PUTまたはPOSTを使用してRESTエンドポイントでトリプルをロードす る場合は、デフォルトグラフまたは名前付きグラフを指定する必要があり ます。
上記の例では、次のcurlコマンドオプションを使用しています。
オプション 説明
-s サイレントモードを指定します。そのため、curlの 出力には、HTTPレスポンスヘッダは含まれません。
レスポンスヘッダを含める場合の代替オプションは -iです。
-X http_method curlで送信するHTTPリクエストのタイプ(PUT)。 サポートされているその他のリクエストは、GET、
POST、およびDELETEです。「サポートされている動 詞」(50 ページ)を参照してください。
REST APIの詳細については、『REST Client API』でセマンティックのドキュメントを参 照してください。RESTおよびセマンティックの詳細については、「RESTクライアント APIでセマンティックを使用する」(194 ページ)を参照してください。
3.2.5.7 レスポンスエラー
このセクションでは、MarkLogicのREST APIで採用されているエラーレポートの表記 規則について説明します。
MarkLogicのREST APIインスタンスに対するリクエストで障害が発生すると、エラー
レスポンスコードが返され、追加情報の詳細がレスポンスのボディに含まれます。
次のようなレスポンスエラーが返されます。
• パラメータがまったくないPUTまたはPOSTリクエストのときは、
400 Bad Requestが返されます。
• パースで障害が発生するペイロードのPUTまたはPOSTリクエストのときは、
400 Bad Requestが返されます。
• 存在しない(コレクションレキシコンにIRIが存在しない)グラフに対するGET リクエストのときは、404 Not Foundが返されます。
--data-binary data リクエストのボディに含めるデータ。データは、
--data-binaryの引数としてコマンドラインに直接 配置したり、@filenameを使用してファイルから読 み取ったりできます。Windowsを使用している場合は、
「@」演算子をサポートするcurlのWindowsバージョ ンが必要です。
-H headers リクエストに含めるHTTPヘッダ。このガイドの例で
は、Content-typeを使用しています。
--digest ユーザーのパスワードは、指定した認証手法によって
暗号化されます。
--user user:password リクエストを認証するために使用されるユーザー名と
パスワード。リクエストされた操作を実行するのに十 分な権限を持つMarkLogicサーバーユーザーを使用し ます。詳細については、『REST Application Developer’s Guide』の「Security Requirements」を参照してくだ さい。
オプション 説明
• サポートされていないシリアライゼーションのトリプルに対するGETリクエス トのときは、406 Not Acceptableが返されます。
• サポートされていない形式のPOSTまたはPUTリクエストのときは、
415 Unsupported Media Typeが返されます。
注: POSTおよびPUTリクエストのrepairパラメータは、trueまたは falseに設定できます。デフォルトではfalseです。trueに設定する と、適切にパースを実行しないペイロードであっても、パースを実行する トリプルを挿入します。falseに設定すると、どのようなペイロードエ ラーでも400 Bad Requestレスポンスが返されます。