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 是一种通用的、基于结构的软件模型搜索引擎,通过使用'路径集合'表示法对模型进行索引,实现高效的示例查询检索。它支持来自多种来源的超过 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 个模型),实现快速响应时间和高精度。
  • 提供可扩展、可扩展的架构,基于结构模式而非语法或文本特征对模型进行索引。
  • 支持新型应用,例如利用相同的索引和检索基础设施实现元模型分类。

提出的方法

  • 使用'路径集合'表示模型结构——即模型元素和属性值之间可配置最大长度的路径——以实现基于结构的索引。
  • 使用 HBase 存储索引路径,构建倒排索引,以实现高效查找和在大规模仓库中的可扩展性。
  • 实现基于示例的查询机制:用户提交模型片段;系统提取其路径,并与索引中的路径进行匹配。
  • 基于查询模型与索引模型之间的路径重叠程度,使用评分函数对结果进行排序。
  • 构建 REST API、Web 界面和 Eclipse 插件,将 MAR 集成到建模工作流和外部工具中。
  • 使用模型变异技术自动生成合成查询,用于精度评估。

实验结果

研究问题

  • RQ1基于路径的索引结构的搜索引擎是否能在大规模仓库中实现高精度和低延迟的模型检索?
  • RQ2与基于关键词或 OCL 的查询相比,使用模型片段的基于示例的查询方法在模型检索中的有效性如何?
  • RQ3MAR 的索引和检索机制在多大程度上能够支持跨多种建模语言的通用、与元模型无关的模型搜索?
  • RQ4MAR 的索引基础设施是否可复用于二次任务(如元模型分类),并达到具有竞争力的准确率?
  • RQ5MAR 的性能在仓库规模和模型多样性增加时如何扩展?

主要发现

  • MAR 索引了来自多种来源的超过 50,000 个模型,包括 Ecore、UML 和 BPMN,使其成为目前公开可用且具备搜索功能的最大模型仓库之一。
  • 系统在检索中实现了高精度,基于模型变异的评估显示其在从真实模型生成的合成查询上表现优异。
  • 在基准测试中,响应时间始终快速,证明其在实际建模工作流中的实用性。
  • MAR 基于路径的索引有效支持了使用 k-最近邻方法的元模型分类,精度与当前最先进方法相当。
  • 与 Eclipse 和 REST API 的集成使得其能够无缝融入建模环境,提升开发人员的生产力。
  • 与以往的搜索引擎相比,MAR 在规模上表现更优,支持的索引模型数量比现有解决方案(如 MOOGLE 或 WebML 搜索引擎)高出数个数量级。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。