代码之家  ›  专栏  ›  技术社区  ›  Dervin Thunk

如何构建特定于域的查询语言?

  •  10
  • Dervin Thunk  · 技术社区  · 15 年前

    我有一个生物学数据库要查询。还有一个我可以访问的具有可形式化谓词的给定术语库。我想使用上面提到的谓词为这个数据库构建一种查询语言。你会怎么做?我的解决方案如下:

    1. 将谓词形式化
    2. 转换为查询语言(sql、sparql、depends)
    3. 使用ANTLR或其他此类工具构建特定语言
    4. 从3翻译为2。

    这是有效的方法吗?有更好的吗?任何指点都会受到赞赏。

    4 回复  |  直到 9 年前
        1
  •  4
  •   t0mm13b    11 年前

    使用bnf可以让您对语言语义有一个初步的了解。.goldparser将帮助您处理语义和语法(链接如下: http://www.devincook.com/ )一旦对bnf语义进行了分类,就可以根据输入构建操作,例如,bnf语法部分处理提取肢体的遗传组成分类的组合(我不知道是否存在这种情况,这里是抽象示例,但您得到了要点),以用于特定的查询…'获取肢体的统计信息,其中limB是LEG’,然后在后台对列别名或预定义表中的名称发出SQL select…我可能是错误的…希望有帮助吗?

        2
  •  5
  •   PaulMcG    15 年前

    看一看 Booleano .

        3
  •  2
  •   Rimian    9 年前

    我建议你看看 i2b2 framework 它是一种图形查询语言和用于患者数据库的查询引擎平台。

    首先可能很难掌握所有内容,但请看一下其中的CRC单元或WebService,您会发现它们是如何以一种有趣的方式从临床图形查询语言接近SQL生成的(尽管,不是很好的性能:)

        4
  •  -1
  •   Babu James    10 年前

    从这里考虑使用Irony.net: Irony.NET