Skip to main content
QUICK REVIEW

[論文レビュー] RocketRML - A NodeJS implementation of a use-case specific RML mapper

Umutcan Şimşek, Elias Kärle|arXiv (Cornell University)|Mar 12, 2019
Semantic Web and Ontologies被引用数 5
ひとこと要約

RocketRML は、観光分野の use case における大規模な XML 及び JSON ファイルから高パフォーマンスで RDF を生成することを目的とした Node.js ベースの RML マッパーである。JavaScript のネイティブな JSON パースィングおよび最適化されたイテレータを活用することで、Java ベースの RML マッパーを上回る性能を発揮し、ネストされた非結合可能なデータに対して高速処理を実現しているが、現在は JOIN サポートおよび名前付きグラフのサポートが欠如している。

ABSTRACT

The creation of Linked Data from raw data sources is, in theory, no rocket science (pun intended). Depending on the nature of the input and the mapping technology in use, it can become a quite tedious task. For our work on mapping real-life touristic data to the schema.org vocabulary we used RML but soon encountered, that the existing Java mapper implementations reached their limits and were not sufficient for our use cases. In this paper we describe a new implementation of an RML mapper. Written with the JavaScript based NodeJS framework it performs quite well for our uses cases where we work with large XML and JSON files. The performance testing and the execution of the RML test cases have shown, that the implementation has great potential to perform heavy mapping tasks in reasonable time, but comes with some limitations regarding JOINs, Named Graphs and inputs other than XML and JSON - which is fine at the moment, due to the nature of the given use cases.

研究の動機と目的

  • 大規模な観光データ(例:500MB を超える XML/JSON ファイル)を処理する際、既存の Java ベースの RML マッパーに見られるパフォーマンスのボトル neck を解消すること。
  • 観光 IT システムに一般的な深くネストされた非結合可能なデータ構造を効率的にマッピングすること。
  • semantify.it および MindLab プロジェクトで既存の Node.js ベースのデータパイプラインにネイティブに統合すること。
  • グローバルな言語タグの付与や動的入力ファイルの処理といった実用的要件を満たすこと。
  • ドメイン固有のワークロードに特化した、一般用途の RML マッパーとは異なるパフォーマンスに優れた代替ソリューションを提供すること。

提案手法

  • JavaScript の効率的なネイティブな JSON および XML パースィング機能を活用するため、Node.js アプリケーションとして構築した。
  • 結合キーを必要とせず、階層的なデータを直接処理できるように、カスタムイテレータ機構を実装した。
  • マッピング構成および出力のための中間形式として JSON-LD を使用し、操作の簡素化とパフォーマンス向上を図った。
  • 論理ソースとして JSON および XML のみをサポートし、拡張機能として JavaScript 関数のみを採用した。
  • ネストされた構造をトレバーサル中に直接処理することで、後続の結合処理にかかるコストを回避するようにマッピングパイプラインを最適化した。
  • すべての文字列リテラルに指定された言語を自動的に付与するグローバル言語タグパラメータを導入し、マッピングファイルの複雑さを低減した。

実験結果

リサーチクエスチョン

  • RQ1Node.js ベースの RML マッパーは、大規模な XML 及び JSON データソースに対して、Java ベースの実装と比べて顕著なパフォーマンス向上を達成できるか?
  • RQ2JOIN 機能の欠如が、実世界の観光データワークロードにおける RML マッパーの表現力およびパフォーマンスに与える影響はいかほどか?
  • RQ3外部の結合キーを必要としないカスタムイテレータロジックが、深くネストされた非結合可能なデータ構造をどの程度正しく処理できるか?
  • RQ4JavaScript ランタイムにおけるネイティブな JSON パースィングおよびメモリ内処理によって、どの程度のパフォーマンス向上が達成できるか?
  • RQ5グローバル言語タグ機能は、大規模な RDF マッピング構成において、保守の負荷をどの程度低減できるか?

主な発見

  • RocketRML は、レガシ RML Mapper や rmlmapper-java よりも大規模な XML 及び JSON ファイルの処理において優れたパフォーマンスを示し、特にネイティブな JSON パースィングにより JSON 入力に対して顕著な高速化を達成した。
  • パフォーマンスの優位性は、I/O オーバーヘッドの低減、効率的なメモリ内処理、および JOIN 関連の処理ステップが不要であることに起因する。
  • JOIN や名前付きグラフを必要とするテストケースを除き、すべての RML テストケースを正常に通過し、コア的な RML 機能の正しく実装されていることを確認した。
  • JOIN 機能の欠如により、RMLTC0009a-XML のようなテストケースで失敗した。このケースでは、学生とスポーツの2つの別々のソースが条件に基づいて結合されなければならない。
  • グローバル言語タグ機能により、指定された言語ですべての文字列リテラルに自動的にタグを付与できるため、マッピングファイルの複雑さが顕著に低減した。
  • カスタムイテレータ拡張により、結合キーを必要とせず、階層的であるがゆえにリレーショナルではなく、本質的に構造的なデータを正しく処理できるようになった。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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