Skip to main content
QUICK REVIEW

[論文レビュー] Simplified SPARQL REST API - CRUD on JSON Object Graphs via URI Paths

Markus Schröder, J.J. van Hees|arXiv (Cornell University)|May 3, 2018
Semantic Web and Ontologies被引用数 4
ひとこと要約

本論文は、SPARQLエンドポイントを単純なパスベースのJSONインターフェースにマッピングするゼロ構成のREST APIを提案している。これにより、開発者は直感的なURIパスを用いてRDFグラフに対してCRUD操作を実行できる。SPARQLクエリをネストされたJSONオブジェクトに変換し、ワイルドカード、プロパティパス、RQL拡張をサポートすることで、セマンティックウェブの初心者にとっての学習障壁を低減しつつ、複雑なグラフナビゲーションのための完全な表現力を維持する。

ABSTRACT

Within the Semantic Web community, SPARQL is one of the predominant languages to query and update RDF knowledge. However, the complexity of SPARQL, the underlying graph structure and various encodings are common sources of confusion for Semantic Web novices. In this paper we present a general purpose approach to convert any given SPARQL endpoint into a simple to use REST API. To lower the initial hurdle, we represent the underlying graph as an interlinked view of nested JSON objects that can be traversed by the API path.

研究の動機と目的

  • RDF、SPARQL、トリプルストアの複雑さに苦しむセマンティックウェブ初心者の学習障壁を低減すること。
  • 任意のSPARQLエンドポイントを単純なJSONベースのREST APIにマッピングする汎用的でゼロ構成のインターフェースを提供すること。
  • オブジェクト指向的リンクデータナビゲーションを模倣するパスベースの比喩を用いて、直感的なCRUDワークフローを可能にすること。
  • ワイルドカード、プロパティパス、RQL拡張を用いて、低レベルのSPARQL構文やトリプルベース表現を抽象化しながら、表現力を維持すること。
  • JSONペイロードとSPARQL更新の間で一貫性を持ったラウンドトリップ操作を可能にし、バッチ処理やBNodeの取り扱いをサポートすること。

提案手法

  • APIは二つの主要なエントリポイントを使用する:/class は特定のクラスのインスタンスを参照するためのもので、/resource はCURIEによって特定される特定のリソースにアクセスするためのものである。
  • パス文法を用いてHTTPリクエストをSPARQLクエリに変換し、リソースセグメントとプロパティセグメントを交互に繰り返すことで、任意の深さのトラバーサルを可能にする。
  • 結果は、id(リソース)、value(リテラル)、およびid-map/value-map(複雑な構造)のフィールドを持つネストされたJSONオブジェクトとしてシリアル化され、一貫性とラウンドトリップを保証する。
  • 標準的なHTTPメソッドをサポートする:GETは取得のため、POSTはランダムIDを付与して新しいリソースの作成のため、PUTは更新のため、DELETEは深さに応じた意味論を備える。
  • ワイルドカード(*)を用いて部分的ビューを提供し、ブラケット内にSPARQL風のプロパティパス(例:/:x/(foaf:name|rdfs:label)/)を組み込み、sort、limit、集計関数などのRQL拡張(例:count、avg)を統合することで表現力を拡張する。
  • URI長の制限を避けるために、バッチ処理はJSON-RPCを介して実装され、BNodeは固定されたスコレマイズドURIを用いてシームレスに統合される。

実験結果

リサーチクエスチョン

  • RQ1汎用的でゼロ構成のREST APIを構築することは可能か? これによりSPARQLの複雑さを抽象化し、RDFグラフに対する直感的なCRUD操作を可能にできるか?
  • RQ2パスベースの比喩をどのように活用すれば、RDF や SPARQL の知識がなくても、ネストされたJSONオブジェクトを通じてリンクデータをナビゲートできるか?
  • RQ3ワイルドカード、プロパティパス、RQL拡張をRESTフルインターフェースに統合することで、表現力を保ちつつ単純さを維持できる範囲はどの程度か?
  • RQ4SPARQL更新操作を標準HTTPメソッドにマッピングし、一貫性がありラウンドトリップ可能なJSONペイロードを提供することは可能か?
  • RQ5内部表現を露呈せずに、REST API内でBNodeの取り扱いをシームレスに行うことは可能か?

主な発見

  • 提案されたREST APIは、SPARQLエンドポイントを単純なパスベースのJSONインターフェースに抽象化し、SPARQL や RDF 構文を学ぶ必要なく、完全なCRUD操作を実行可能にした。
  • URIパスにおけるワイルドカードとプロパティパスの使用により、グラフの動的でネストされたビューが可能となり、各 * がJSONレスポンス内の新たなネスティングレベルを表す。
  • 透明なラウンドトリップ操作がサポートされる:POSTはランダムIDを付与して新しいリソースを作成し、PUTは既存のリソースを更新し、DELETEはパスの深さに応じてリソース、プロパティ、または三元組を削除する。
  • SPARQLプロパティパス(例:/:x/(foaf:name|rdfs:label)/)のパス比喩への統合により、複雑なグラフトラバーサルが可能になりつつ、結果ではパス式が明確に要約される。
  • sort、limit、count や avg などの集計関数を含むRQL拡張の統合により、APIパス内での強力なフィルタリングと変換が直接可能になる。
  • http://purl.com/sparql-rest-api に公開されたライブデモは、生成されたSPARQLクエリ、ソースコード、包括的なAPIドキュメンテーションを含む、完全なスタックを示している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。