Skip to main content
QUICK REVIEW

[論文レビュー] MAR: A structure-based search engine for models

José Antonio Hernández López, Jesús Sánchez Cuadrado|arXiv (Cornell University)|Aug 26, 2020
Model-Driven Software Engineering Techniques被引用数 3
ひとこと要約

MARは、ソフトウェアモデルのための汎用的で構造ベースの検索エンジンであり、モデルを「パスの袋(bag of paths)」表現でインデックス化することで、効率的で例示による検索を可能にする。50,000を超える多様なソースからのモデルをサポートし、検索精度が高く、HBaseをバックエンドに持つインデックスにより低レイテンシを実現しており、メタモデル分類やモデルリポジトリ検索への応用が可能である。

ABSTRACT

The availability of shared software models provides opportunities for reusing, adapting and learning from them. Public models are typically stored in a variety of locations, including model repositories, regular source code repositories, web pages, etc. To profit from them developers need effective search mechanisms to locate the models relevant for their tasks. However, to date, there has been little success in creating a generic and efficient search engine specially tailored to the modelling domain. In this paper we present MAR, a search engine for models. MAR is generic in the sense that it can index any type of model if its meta-model is known. MAR uses a query-by-example approach, that is, it uses example models as queries. The search takes the model structure into account using the notion of bag of paths, which encodes the structure of a model using paths between model elements and is a representation amenable for indexing. MAR is built over HBase using a specific design to deal with large repositories. Our benchmarks show that the engine is efficient and has fast response times in most cases. We have also evaluated the precision of the search engine by creating model mutants which simulate user queries. A REST API is available to perform queries and an Eclipse plug-in allows end users to connect to the search engine from model editors. We have currently indexed more than 50.000 models of different kinds, including Ecore meta-models, BPMN diagrams and UML models. MAR is available at http://mar-search.org.

研究の動機と目的

  • MDE(モデル駆動開発)エコシステムにおいて、ソフトウェアモデルに特化した汎用的で効率的な検索エンジンの不足に対処すること。
  • 開発者がキーワードや複雑なクエリではなく、例示モデル(例としてのモデル)を用いて再利用可能なモデルを検索できるようにすること。
  • 50,000以上のモデルを含む大規模なモデルリポジトリを、高速な応答時間と高い精度でサポートすること。
  • 構文的・テキスト的特徴ではなく、構造的パターンに基づいてインデックス化するスケーラブルで拡張可能なアーキテクチャを提供すること。
  • 同じインデックス化および検索インfrastrucutureを活用して、メタモデル分類のような新たな応用を可能にすること。

提案手法

  • モデル要素と属性値間の、最大長が設定可能なパスの集合(「パスの袋」)を用いて、モデル構造を表現することで、構造的インデックス化を可能にする。
  • HBaseを用いてインverted indexにパスを格納し、大規模リポジトリにおける効率的な照会とスケーラビリティを実現する。
  • ユーザーがモデル断片を提示する例示ベースのクエリメカニズムを実装し、システムがそのパスを抽出してインデックスと照合する。
  • クエリとインデックス済みモデル間のパスオーバーラップに基づくスコアリング関数を用いて、検索結果をランク付けする。
  • モデルワークフローおよび外部ツールへの統合を可能にするために、REST API、Webインターフェース、Eclipseプラグインを構築する。
  • 精度評価のため、自動的に合成クエリを生成するためのモデル変異技術を用いる。

実験結果

リサーチクエスチョン

  • RQ1パスベースのインデックス化を用いた構造ベースの検索エンジンは、大規模リポジトリから関連するモデルを高精度かつ低レイテンシで検索できるか?
  • RQ2キーワードやOCLベースのクエリと比較して、モデル断片を用いた例示ベースのアプローチは、モデル検索においてどの程度有効か?
  • RQ3MARのインデックス化および検索メカニズムは、多様なモデリング言語にわたる汎用的かつメタモデルに依存しないモデル検索をどの程度サポートできるか?
  • RQ4MARのインデックスインfrastrucutureは、競争力のある正確性を達成できるメタモデル分類といった二次的タスクの再利用が可能か?
  • RQ5リポジトリサイズおよびモデル多様性の増加に伴い、MARのパフォーマンスはどの程度スケーリングするか?

主な発見

  • MARは、Ecore、UML、BPMNを含む多様なソースから50,000を超えるモデルをインデックス化し、検索機能を備えた公開リポジトリとしては、その規模で最も大きいものの一つとなった。
  • システムは検索精度が高く、実モデルから導出された合成クエリを用いた変異ベースの評価で優れたパフォーマンスを示した。
  • ベンチマークにおいて一貫した高速応答時間が達成され、実世界のモデルワークフローにおける実用性が裏付けられた。
  • MARのパスベースインデックス化により、k-Nearest Neighbors法を用いた効果的なメタモデル分類が可能となり、最先端の手法と同等の正確性を達成した。
  • EclipseおよびREST APIとの統合により、モデル環境でのシームレスな利用が可能になり、開発者の生産性が向上した。
  • MOOGLE や WebML 検索エンジンなどの既存ソリューションと比較して、インデックス化モデルの数のオーダーが桁違いに多く、性能で優れている。

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

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

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

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