CN101093493A - 数据库查询语言转换方法、转换装置、数据库查询系统 - Google Patents

数据库查询语言转换方法、转换装置、数据库查询系统 Download PDF

Info

Publication number
CN101093493A
CN101093493A CNA2006100931687A CN200610093168A CN101093493A CN 101093493 A CN101093493 A CN 101093493A CN A2006100931687 A CNA2006100931687 A CN A2006100931687A CN 200610093168 A CN200610093168 A CN 200610093168A CN 101093493 A CN101093493 A CN 101093493A
Authority
CN
China
Prior art keywords
logic rules
predicate
query statement
query
sql
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006100931687A
Other languages
English (en)
Other versions
CN101093493B (zh
Inventor
胡岗
侯雪桥
钱乾
刘涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN2006100931687A priority Critical patent/CN101093493B/zh
Priority to US11/746,110 priority patent/US7668818B2/en
Publication of CN101093493A publication Critical patent/CN101093493A/zh
Priority to US12/061,742 priority patent/US9223827B2/en
Application granted granted Critical
Publication of CN101093493B publication Critical patent/CN101093493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种将基于概念模型的查询转换为结构化查询语言的查询语句的方法,包括:将输入的基于概念模型的查询转换成逻辑规则;对逻辑规则进行合法性检查;对检查合法的逻辑规则进行优化;根据优化结果,将逻辑规则翻译为结构化查询语言的查询语句。本发明还提供相应的转换引擎、数据库查询系统以及计算机程序产品。本发明支持利用更加具有描述性的查询语言查询存储在关系数据库中的数据,并且能够自动生成正确且有效的SQL查询语句,从而大大节省了人们在处理复杂数据查询时所需要付出的劳动。

Description

数据库查询语言转换方法、转换装置、数据库查询系统
技术领域
本发明总体上涉及语言转换,特别地,涉及将基于概念模型的查询转换为结构化查询的方法、转换装置、相应数据库查询系统和程序产品。
背景技术
计算机技术特别是网络技术的飞速发展使得计算机的信息存储、传输和处理能力增长迅速。概念模型,例如本体描述语言(RDF/OWL)、实体关系(ER)模型以及面向对象(OO)的模型,在语义和知识层次上描述了信息系统,为不同的应用程序和企业间进行数据共享和重用提供了一种通用的框架。这是一种对于当前网络的扩展,能够为信息的含义给出良好定义,并且使得计算机及其用户能够有效地进行协同工作。其中,RDF和OWL是Web语义描述的标准,为资产管理、企业集成、和网络数据的共享和重用提供了框架;ER模型是概念数据模型,它将客观世界描述为实体和关系;而OO模型在上世纪九十年代已经成为软件开发过程早期阶段的业界标准,而当前业界的主导标准是由工业发起并推动形成的统一建模语言(UML),它是一种用于描述、构造软件系统以及商业建模的语言,综合了在大型、复杂系统的建模领域得到认可的优秀的软件工程方法。
随着各种概念模型技术的普及和成熟,有越来越多的领域知识通过使用概念模型技术进行构建,以便能够跨网络、跨应用地对信息进行共享和重用。一方面,作为规则的领域扩展知识,例如在一定领域中存在的对象、概念以及其它实体是通过诸如RDF/OWL(本体)、ER模型、OO模型等的概念模型来表示的。而另一方面,由于关系数据库相较于概念模型对象例如RDF三元组来说,存储数据更加稳定并且存储技术更加成熟,因此作为事实的人为知识通常在关系数据库(RDB)中作为RDB记录进行存储,也就是说,相应的领域事实(人为知识)库通常是利用关系数据库(RDB)来实现的。
结构化查询语言SQL作为对于关系数据库的标准查询语言,是介乎于关系代数和元组演算之间的一种语言。SQL成为国际标准后,由于各种类型的计算机和数据库系统大都采用SQL作为其存取语言和标准接口,从而使数据库世界有可能链接为一个统一整体。这个前景意义十分重大。但是,面对数据库系统中庞大、复杂的存储信息,人们特别是例如企业中的产品销售员、金融顾问、风险评估师、企业决策者等非IT专业人员不愿使用SQL来查询关系数据库中的数据。这不仅因为SQL语言本身十分复杂、查询易出差错,而且因为SQL语言缺乏描述能力,使得非IT专业人员很难通过SQL语言表达自己所需的查询目标。
在现有技术中,还可以通过可扩展标记语言(XML)对关系数据库进行存取。这种方案是在关系数据库基础之上扩展有XML支持模块,它将XML数据存储在关系数据库中,在查询时将XML数据查询语言转换成关系数据库查询语言SQL。其优势在于充分利用了传统数据库的成熟技术。但是,这种方案需要通过编写XML命令行来实现查询,对于非IT专业人员来说实现有效查询仍然非常困难。
在另一种现有技术中,基于关系数据库系统增加规则处理层可以构造高效的演绎数据库系统,即该系统主要包括关系数据库管理系统和规则推理管理系统。这种演绎数据库的优势在于,能够基于用户查询进行有效地演绎和推理从而得到查询结果。但是,对于用户来说,需要编辑逻辑程序作为查询输入。同样,对于非IT专业人员来说实现有效查询仍然非常困难。
根据上文所述,在现有技术中,领域知识能够表述为概念模型和商业规则,而概念模型和商业规则合并成一种基于概念模型的查询语言(CQL)。虽然这种CQL继承了来自概念模型和商业规则的特征,例如概念归类、概念关系、递归、分层否定以及带有规则的程序等,但实际上在现有技术提供的查询系统中,还无法利用CQL这样的查询语言来查询作为关系数据库的相应的领域事实库。这使得那些非IT专业人员很难真正有效地利用领域事实库中的知识。
发明内容
因此,为使那些非IT专业人员能够利用基于概念模型的查询语言对关系数据库进行有效查询,本发明提供一种将基于概念模型的查询转换为结构化查询语言的查询语句的方案。
根据本发明的第一方面,提供一种将基于概念模型的查询转换为结构化查询语言的查询语句的方法,包括以下步骤:将输入的基于概念模型的查询转换成逻辑规则;以及将逻辑规则翻译为结构化查询语言SQL的查询语句;对逻辑规则进行合法性检查;以及对合法的逻辑规则进行优化。
上述方法中,所述将输入的基于概念模型的查询转换成逻辑规则的步骤进一步包括以下步骤:对该输入的基于概念模型的查询进行约束规范化;根据概念模型,对规范化了的查询语句执行概念模型关系推理;基于预先确定的映射表,执行概念模型中的概念到逻辑规则的谓词以及概念模型中的属性到逻辑规则的变量的转换;以及对转换所得的查询语句执行范式标准化以得到逻辑规则。
上述方法中,所述对规范化的查询语句执行概念模型关系推理的步骤包括:对规范化的查询语句执行包含关系推理;并且所述对转换过的查询语句执行范式标准化以得到逻辑规则的步骤包括:对转换过查询语句执行析取范式标准化。
上述方法中,所述对逻辑规则进行合法性检查的步骤进一步包括以下步骤:语法检查,用于检查范式标准化的逻辑规则是否符合所定义的逻辑规则描述语言的语法;以及语义检查,用于检查逻辑规则是否在逻辑上是有效的。
上述方法中,所述语法检查步骤进一步包括:逻辑规则的安全性规则检查,其中包括谓词和变量的存在性检查、谓词和变量的连贯性检查;并且所述语义检查步骤进一步包括:检查是否存在非线性递归的谓词、检查是否存在间接递归的谓词、检查是否存在非分层否定的情况。
上述方法中,所述对合法的逻辑规则进行优化的步骤进一步包括以下步骤:根据逻辑规则中谓词之间的依存关系,建立依存关系图,其中每个节点对应于逻辑规则中的一个谓词,并且用节点间的有向边表示各个谓词之间的依存关系;以及根据所述依存关系图对逻辑规则进行优化。
上述方法中,所述根据所述依存关系图对逻辑规则进行优化的步骤包括以下步骤:根据所述依存关系图,生成谓词的优化执行顺序;以及将处于依存关系图较高层的谓词中的约束下放到处于依存关系图较低层的谓词处。
上述方法中,所述将逻辑规则翻译为结构化查询语言的查询语句的步骤包括以下步骤:将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句;以及用关键字UNION ALL来连接各个独立的结构化查询语言的SELECT查询语句,其中,基于预先确定的映射表,将逻辑规则中的谓词转换为关系数据库的表名称并且将逻辑规则中的变量转换为关系数据库的列名称。
上述方法中,所述将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句的步骤包括以下步骤:通过使用对应于逻辑规则头部的参量所对应的列名称作为跟随关键字SELECT的属性,构造结构化查询语言的查询语句的SELECT部分;通过使用逻辑规则体部分中涉及的那些谓词所对应的表的名称作为跟随关键字FROM的表名称,构造结构化查询语言的查询语句的FROM部分;以及通过解析逻辑规则中各个谓词的变量之间的联系和表达关系操作的谓词,构造结构化查询语言的查询语句的WHERE部分。
上述方法中,将递归的逻辑规则翻译为使用公共表表达式的结构化查询语言的查询语句,其中使用该递归逻辑规则中递归的谓词所对应的表名称作为所述公共表表达式中的表名称。
上述方法中,在翻译过程中,通过在所述公共表表达式中增加用于记录在递归查询过程中用于递归变化的变量所经历路径的参量以及用于标记当前该变量的值是否曾经出现在所记录的路径中的参量,来避免在执行所翻译的结构化查询语言的递归查询语句时发生死循环。
上述方法中,利用结构化查询语言中的临时表翻译相互依存的多条逻辑规则。
根据本发明的第二方面,提供一种用于将基于概念模型的查询转换为结构化查询语言的查询语句的转换装置,包括:转换器,用于将输入的基于概念模型的查询转换成逻辑规则;翻译器,用于将逻辑规则翻译为结构化查询语言的查询语句;检查器,用于对所述转换器输出的逻辑规则进行合法性检查;以及优化器,用于对经所述检查器检查为合法的逻辑规则进行优化。
上述转换装置中,还包括映射表存储器,用于向所述转换器提供概念到谓词以及属性到变量的映射信息,并且所述转换器进一步包括:用于对该输入的基于概念模型的查询进行约束规范化的装置;用于根据概念模型对规范化的查询语句执行概念模型关系推理的装置;用于基于所述映射表存储器中存储的映射表、执行概念模型中的概念到逻辑规则的谓词以及概念模型中的属性到逻辑规则的变量的转换的装置;以及用于对转换而成的查询语句执行范式标准化以得到逻辑规则的装置。
上述转换装置中,所述用于对规范化的查询语句执行概念模型关系推理的装置包括:用于对规范化的查询语句执行包含关系推理的装置,并且所述用于对转换而成的查询语句执行范式标准化以得到逻辑规则的装置包括:用于对转换而成的查询语句执行析取范式标准化的装置。
上述转换装置中,所述检查器包括:语法检查器,用于检查范式标准化的逻辑规则是否符合所定义的逻辑规则描述语言的语法;以及语义检查器,用于检查逻辑规则是否在逻辑上是有效的。
上述转换装置中,所述语法检查器还进行逻辑规则的安全性规则检查,其中包括谓词和变量的存在性检查、谓词和变量的连贯性检查,并且所述语义检查器还检查是否存在非线性递归的谓词、检查是否存在间接递归的谓词、检查是否存在非分层否定的情况。
上述转换装置中,所述优化器进一步包括:用于根据逻辑规则中谓词之间的依存关系建立依存关系图的装置,其中每个节点对应于逻辑规则中的一个谓词,并且用节点间的有向边表示各个谓词之间的依存关系;以及用于根据所述依存关系图对逻辑规则进行优化的装置。
上述转换装置中,所述用于根据所述依存关系图对逻辑规则进行优化的装置包括:用于根据所述依存关系图生成谓词的优化执行顺序的装置;以及用于将处于依存关系图较高层的谓词中的约束下放到处于依存关系图较低层的谓词处的装置。
上述转换装置中,所述映射表存储器还用于向所述翻译器提供谓词到关系以及变量到实体的映射信息,并且所述翻译器包括:用于将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句的装置;用于用关键字UNION ALL来连接各个独立的结构化查询语言的SELECT查询语句的装置,其中,基于预先确定的映射表,将逻辑规则中的谓词转换为关系数据库的表名称并且将逻辑规则中的变量转换为关系数据库的列名称。
上述转换装置中,所述用于将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句的装置执行以下操作:通过使用对应于逻辑规则头部的参量所对应的列名称作为跟随关键字SELECT的属性,构造结构化查询语言的查询语句的SELECT部分;通过使用逻辑规则体部分中涉及的那些谓词所对应的表的名称作为跟随关键字FROM的表名称,构造结构化查询语言的查询语句的FROM部分;通过解析逻辑规则中各个谓词的变量之间的联系和表达关系操作的谓词,构造结构化查询语言的查询语句的WHERE部分。
上述转换装置中,所述翻译器将递归的逻辑规则翻译为使用公共表表达式的结构化查询语言的查询语句,其中使用该递归逻辑规则中递归的谓词所对应的表名称作为所述公共表表达式中的表名称。
上述转换装置中,所述翻译器在翻译过程中,通过在所述公共表表达式中增加用于记录在递归查询过程中用于递归变化的参量所经历路径的变量以及用于标记当前该变量的值是否曾经出现在所记录的路径中的参量,来避免在执行所翻译的结构化查询语言的递归查询语句时发生死循环。
上述转换装置中,所述翻译器利用结构化查询语言中的临时表翻译相互依存的多条逻辑规则。
根据本发明的第三方面,提供一种数据库查询系统,包括:基于概念模型的查询语句编辑器;上述用于将基于概念模型的查询转换为结构化查询语言的查询语句的转换装置;以及以关系数据库形式实现的领域知识库。
根据本发明的第四方面,提供一种计算机程序产品,包含用于执行上述将基于概念模型的查询转换为结构化查询语言的查询语句的方法的计算机程序代码。
由于在领域概念模型的基础上,商业逻辑能够更加容易地通过基于概念模型的查询语言来进行描述,因此本发明为利用更加具有描述性的查询语言来查询存储在关系数据库中的数据提供了支持。本发明能够自动生成正确且有效的SQL查询语句,大大节省了人们在处理复杂数据查询时所需要付出的劳动,从而显著提高了用户,特别是非IT专业人员的查询效率。
结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。
附图说明
图1示出了根据本发明一个实施例的将基于概念模型的查询转换为结构化查询语言的查询语句的处理流程图;
图2示出了作为基于概念模型的示例的领域本体;
图3示出了根据本发明一个实施例的将基于概念模型的查询转换为逻辑规则的处理流程图;
图4示出了根据本发明一个实施例所产生的依存关系图的示例;
图5示出了根据本发明一个实施例的将逻辑规则翻译为结构化查询语言的查询语句的处理流程图;
图6示出了根据本发明一个实施例的构造结构化查询语言的查询语句中的WHERE语句的处理流程图;
图7示出了图6中A部分的处理流程图;
图8示出了相互依存的多条逻辑规则的依存关系图的示例。
图9示出了根据本发明一个实施例的用于将基于概念模型的查询转换为结构化查询语言的查询语句的系统框图;
图10A和图10B示意性地表示了基于概念模型的查询语句编辑器中为了输入基于概念模型的查询所使用的用户界面示例;以及
图11示意性地表示了其中可以实现本发明的实施例的计算机系统。
具体实施方式
以下参照附图,对本发明的实施例进行详细描述。如果可能的话,在附图和描述中使用相同或者类似的参考标号以指代相同或者类似的部分。
图1示出了根据本发明实施例的将基于概念模型的查询转换为结构化查询语言的查询语句的处理流程图。概念模型是对概念、属性以及概念之间关系等进行描述的一种模型,例如如背景技术中所述,概念模型包括本体概念模型(ontology)、面向对象的模型(OO)以及实体关系模型(ER模型)。
如图1所示,在步骤S100中,开始该处理流程。
在步骤S102中,为了查询在关系数据库中存储的领域知识,用户根据预先定制的基于概念的模型(即领域本体),输入基于概念模型的查询。在该步骤中,用户可以使用某种基于概念的查询编辑器来编写查询,之后由该编辑器自动生成相应的查询语句脚本;或者用户可以直接通过编辑器输入查询语句脚本。
在步骤S104中,将上述输入的基于概念模型的查询转换为逻辑规则。这种转换例如可以通过约束标准化、概念模型关系推理、概念到谓词以及属性到变量的转换,以及范式标准化等步骤来实现。
在步骤S106中,对逻辑规则进行合法性检查。例如,检查该逻辑规则的语法、语义等是否符合预先确定的要求,是否属于系统能够分析处理的范围等。
在步骤S108中,判断该逻辑规则是否合法。如果判断结果为“是”,则继续执行步骤S110。如果判断结果为“否”,则该处理流程返回步骤S102,由用户对其输入的基于概念模型的查询进行修改,以便使得经过转换后的相应逻辑规则能够具有合法性。
在步骤S110中,例如通过对逻辑规则中谓词之间的关系进行建模,来优化具有合法性的逻辑规则,以便能够有效地进行逻辑规则到SQL语句的翻译。
在步骤S112中,通过应用一组翻译规则实现逻辑规则到SQL查询语句的翻译。根据本发明的实施例,这组翻译规则是预先为各种的逻辑规则种类所设定,其中可以包括:用于翻译非递归逻辑规则的翻译规则、用于翻译递归逻辑规则的翻译规则、用于翻译依存的多个逻辑规则的翻译规则等。
在步骤S114中,结束该处理流程。
在上述对图1的描述中,概括地说明了根据本发明的将基于概念模型的查询翻译为SQL查询语句的过程。以下将结合具体示例,对图1的处理流程的每一个步骤做出进一步说明,这将使得根据本发明实施例的处理流程更加清楚。
在该示例中,假设需要从实现为关系数据库的知识库中查询“由公司A持股并且进行担保的所有公司”。表1-5示出了知识库中存储的数据表。图2示出了作为基于概念模型的示例的当前领域本体。
表1 数据表“公司”
公司:
    uID     公司名称
    100000     公司A
    100001     公司B
    100002     公司C
表2 数据表“上市公司”
上市公司:
    uID     公司名称
    200000     公司D
    200001     公司E
    200002     公司F
表3 数据表“非上市公司”
非上市公司:
    uID     公司名称
    300000     公司H
    300001     公司I
    300002     公司J
表4 数据表“持股”
持股:
    uID     持股人   被持股人     报告日期
    400000     公司A     公司C     2005-03-31
    400001     公司C     公司F     2005-06-30
    400002     公司E     公司F     2004-12-31
表5 数据表“担保”
担保:
  uID   担保人   债务人   报告日期
  500000   公司A   公司C   2005-04-30
  500001   公司C   公司E   2005-08-20
  500002   公司E   公司F   2004-12-31
用户在查询时无需了解知识库中诸如表1-5所示的数据安排,仅需要例如通过图形化用户界面或者用户手册等了解到如图2所示的当前领域有关领域本体,即基于概念的模型。如图2所示,概念“公司”包括两个子概念“上市公司”和“非上市公司”,列表210列出了概念“公司”所具有的相应属性,包括“编号”、“公司名称”等;概念“持股”表示持股人和被持股人之间的关系,列表220列出了概念“持股”所具有的相应属性,包括“编号”、“持股人”、“被持股人”、表示报告该“持股”关系日期的“报告日期”等;概念“担保”表示保证人和债务人之间的关系,列表230列出了概念“担保”所具有的相应属性,包括“编号”、“担保人”、“债务人”、表示报告该“担保”关系日期的“报告日期”等。
用户根据图2所示的领域本体,即基于概念的模型,借助于基于概念的查询编辑器将“列出所有由公司A持股并且进行担保的所有公司”编写为基于概念的查询语句(相当于图1中的步骤S102)。该查询语句例如可以表示为:
?(y):-
持股(持股人:x(公司(公司名称:z=″公司A″)),被持股人:y),
担保(担保人:x,债务人:y).    (1)
其中,参量y代表要查询的公司,符号“:-”表示当且仅当该符号右侧表达式成立则符号左侧表达式成立,符号“,”分隔两表达式,表示二者之间是“逻辑与”关系。
需要注意的是,这里为了便于以后的说明,采用了上述式(1)的形式来表示基于概念的查询语句。本领域的技术人员可以理解,基于概念的查询还可以表达为其它的描述形式。虽然在此采用了基于概念的查询的一种具体描述方式,但是可以理解,本发明适用于其它各种基于概念的查询的描述方式。而且,不同类型的查询编辑器可以为式(1)或者式(1)的其它描述形式生成不同的输入查询脚本。因此,基于概念模型的查询的具体描述方式以及生成脚本的具体形式,不对本发明构成任何限制。
接着,例如可以按照图3所示的处理流程将该输入的基于概念模型的查询,即将式(1)转换为逻辑规则(相当于图1中的步骤S104)。
图3示出了根据本发明一个实施例的将基于概念模型的查询转换为逻辑规则的处理流程图。
如图3所示,首先在步骤S300中开始处理。
在步骤S302中,对该输入的基于概念模型的查询进行约束规范化。需要把所有的类对象约束作为分离的谓词,并且将所有数据类型约束转换为计算谓词。具体来说,式(1)约束规范化后的输出为:
?(y):-
公司(编号:x,公司名称:z),
z=″公司A″,
持股(持股人:x,被持股人:y),
担保(担保人:x,债务人:y).    (2)
由此,在式(2)中将式(1)对于变量“持股人:x”的约束“(公司(公司名称:z=′公司A′))”标准化为单独的谓词“公司”、“=”,并且将数据类型“公司名称:z=′公司A′”约束转换为计算谓词“=”。
在步骤S304中,对概念模型关系进行推理,主要指在概念层面上的推理,如判断一个概念是否是另一个概念的子类,即包含关系的推理。在下面的例子中执行包含关系的推理需要所有的概念扩展为其子概念。具体来说,式(2)进行概念模型关系推理后的输出为:
?(y):-
(上市公司(编号:x,公司名称:z);非上市公司(编号:x,公司名称:z)),
z=″公司A″,
持股(持股人:x,被持股人:y),
担保(担保人:x,债务人:y).    (3)
其中,符号“;”表示“逻辑或”。
在步骤S306中,基于预先确定的映射表,执行概念到谓词以及属性到变量之间的转换。本领域技术人员可以理解,这里所说的这种转换基本上是指概念名称到谓词名称、以及属性名称到变量类型名称的转换(例如,将概念名称A转换为谓词名称B;将属性名称C转换为变量名称D)。特别地,可以预先统一命名规则,使得概念和谓词之间的命名以及属性和变量类型之间的命名彼此相符合,这样就可以无需执行该转换步骤。当然,在实际的实现中命名统一是十分困难的。为了简便起见,假设在上述示例中,概念模型中概念和属性的命名和逻辑规则中谓词和变量类型之间的命名彼此相符合,则式(3)经过转换后的输出未发生改变,仍为:
?(y):-
(上市公司(编号:x,公司名称:z);非上市公司(编号:x,公司名称:z)),
z=″公司A″,
持股(持股人:x,被持股人:y),
担保(担保人:x,债务人:y).    (4)
此时,经过转换的式(4)在逻辑内容和命名上已经转换为一个逻辑规则。
在步骤S308中,对转换过的查询语句进行范式标准化以获得逻辑规则。通常来说,对逻辑规则的后续操作都是建立在范式操作的基础上。根据本发明一个实施例,对查询语句进行析取范式标准化。本领域技术人员可以理解,析取范式是指有限个合取式通过“或”操作符连接起来的表达式,其中每个合取式或者是原子表达式或者是有限个原子表达式通过“与”操作符连接起来的表达式。析取范式标准化就是将一般表达式转化为析取范式的过程。具体来说,式(4)进行析取范式标准化的输出为:
?(y):-
上市公司(编号:x,公司名称:z),
z=″公司A″,
持股(持股人:x,被持股人:y),
担保(担保人:x,债务人:y);
非上市公司(编号:x,公司名称:z),
z=″公司A″,
持股(持股人:x,被持股人:y),
担保(担保人:x,债务人:y).    (5)
此时,式(5)即为转换为析取范式的逻辑规则。本领域技术人员可以理解,逻辑规则基本上是指具有例如以下形式的表达式,P:-Q1,Q2,...,Qn,其中Q1,Q2,...,Qn为条件,P为结论,其含义为如果所有的条件都成立的话,则结论也成立,具有这样形式的表达式统称为逻辑规则。
在步骤S310中,结束该将基于概念模型的查询转换为逻辑规则的处理流程。
需要注意,这里采用了上述式(5)的形式来表示所获得的逻辑规则。本领域的技术人员可以理解,逻辑规则还可以表达为其它的描述形式。特别地,可以根据所采用的基于概念模型的查询的描述形式来定义逻辑规则的描述形式。虽然在此采用了逻辑规则的一种具体描述方式,但是可以理解,本发明适用于其它各种逻辑规则的描述方式。因此,这里逻辑规则的具体描述方式不对本发明构成任何限制。
接着,对范式标准化的逻辑规则进行合法性检查(相当于图1中的步骤S106)。如上所述该合法性检查涉及语法检查和语义检查,以便保证逻辑规则的正确性。
在语法检查中,可以检查诸如式(5)的范式标准化的逻辑规则是否符合所定义的逻辑规则描述语言的语法。根据本发明的实施例,还可以执行安全性规则检查,其中包括谓词和变量的存在性检查、谓词和变量的连贯性检查等。具体举例来说,可以检查在规则体中是否存在未定义的谓词和变量;检查出现在规则头部(例如,式(5)中符号“:-”左侧部分)中的变量是否也出现在规则体(即式(5)中符号“:-”右侧部分)中;检查在规则体中是否存在“自由变量”即仅在规则体中出现且仅出现一次的变量,等等。如果检查到出现上述或者其它语法问题,则报告语法错误,并且向用户例如返回通知消息以便进一步修改。本领域技术人员可以理解,由于定义的逻辑规则描述语言可能不同,可以根据不同的描述语言的语法特点来设计在语法检查中涉及的内容。
在语义检查中,可以检查诸如式(5)的范式标准化的逻辑规则的语义,以便使得逻辑规则在逻辑上是有效的。根据本发明的实施例,可以检查是否存在非线性递归的谓词,例如:
p(x):-p(y),q(x),p(z),
以及是否存在间接递归的谓词,例如:
p(x):-q(x).
q(x):-p(x).
由于SQL不支持非线性递归和间接递归的查询,因此在逻辑规则中出现的非线性递归和间接递归在转换到SQL时会发生错误,因此可以认为在逻辑上无效。还可以检查是否存在非分层否定的情况,例如:
p(x):-q(x),not p(x).
如果出现非分层否定的情况,则该逻辑规则显然存在逻辑错误,可以认为在逻辑上无效。如果确定检查到上述或者其它逻辑无效的情况,则报告语义错误,并且向用户例如返回通知消息以便进一步修改。
接着,如果逻辑规则通过了逻辑规则合法性检查,则继续执行对逻辑规则的优化(相当于图1中的步骤S110),以便简化后续处理过程,并且消除在后续处理中可能出现无关中间结果的因素。根据本发明一个实施例,可以通过对逻辑规则中谓词之间的依存关系进行建模,例如建立谓词之间的依存关系图来对逻辑规则进行优化。依据所建立的谓词之间的依存关系图,能够生成在之后的处理中对于谓词的优化执行顺序,并且可以将约束下放到所能约束的最低层谓词以提高后续流程的计算性能。
根据本发明的一个实施例,上述谓词的依存关系图可以按照如下方法来建立。例如,对于规则
p(x):-q(x),r(x).
则认为谓词p依存于谓词q和r。在依存关系图中,谓词p对应节点通过两条入边分别连接到谓词q和r对应的节点。作为一个示例,通过合法性检查的式(5)可以建立如图4所示的依存关系图。
依据谓词的依存关系图,按照预先确定的策略,可以生成一个包含该图中每个节点(对应于逻辑规则中的每个谓词)的序列,以便在后续的处理中按照该序列的顺序来处理每个谓词。例如,根据本发明的一个实施例,当某节点所依存的所有节点(不包括其自身)已经在该序列中时,则将该节点置入该序列,从而生成反映谓词优化执行顺序的序列。本领域的技术人员可以理解,可以通过各种公知的计算机算法、程序来实现该序列的生成,因此在这里不再对具体计算机算法、程序进行描述。
为了提高后续处理过程的性能,还可以将处于依存关系图较高层的谓词中的约束(类/数据类型约束)下放到处于依存关系图较低层的谓词处。给出一个简单的示例,例如逻辑规则定义为:
?(x):-p(x),x<100.
p(x):-q(x).
则经过约束下放处理的逻辑规则为:
?(x):-p(x).
p(x):-q(x),x<100.
显然,这种优化处理可以直接依据所生成的反映谓词优化执行顺序的序列来执行,因为该序列中的谓词顺序直接体现了谓词在依存关系图中的依存层次。
需要注意的是,本领域技术人员可以对上述描述的优化策略进行改进甚至采用其它的优化策略,来实现其具体优化目标。因此,具体采用何种优化策略对本发明不构成限制。
接着,将上述经过优化的逻辑规则  译为相应的SQL查询语句(相当于图1中的步S112)。
对于每个非递归的逻辑规则都可以在关系代数中进行表达,并且由此能够  译为SQL SELECT查询语句。其中,优化后逻辑规则的析取范式中的每个析取式可以译为一条SQL SELECT查询语句,然后再将所产生的SQL SELECT查询语句进行合取,也就是在SQL中采用“UNION ALL”来连接各个独立的SQL SELECT查询语句。
图5示出了根据本发明的一个实施例的将逻辑规则译为SQL查询语句的处理过程。
在步骤S500中,该处理过程开始。
在步骤S502中,将逻辑规则中的谓词和变量分别映射为关系数据库中的关系和实体。具体来说,每个谓词名称对应于RDB的关系名称,也即RDB数据库的表名(既可以是记录事实的表,也可以是谓词计算期间产生的中间结果表);变量类型的名称对应于列的名称,也即谓词参量的位置对应于列的位置。
该映射过程可以借助于预先确定的映射表来执行。特别地,可以预先统一命名规则,使得谓词和关系之间的命名以及变量和实体之间的命名彼此相符合,这样就可以无需执行该转换步骤。当然,在实际的实现中命名统一是十分困难的。具体来说,式(5)(经过优化后)应该借助于该映射表变换为:
?(y):-
上市公司(uID:x,公司名称:z),
z=″公司A″,
持股(持股人:x,被持股人:y),
担保(担保人:x,债务人:y);
非上市公司(uID:x,公司名称:z),
z=″公司A″,
持股(持股人:x,被持股人:y),
担保(担保人:x,债务人:y).    (6)
其中,式(5)中的变量类型“编号”被相应地映射为表的列名称(实体)“uID”。
在步骤S504中,构造当前析取式的SQL查询语句的SELECT部分。在逻辑规则头部的参量(变量)受到位于逻辑规则体部分中(当前析取式中)的、包含该参量的谓词的限制。因此,在该步骤中,使用对应于逻辑规则头部的参量的表名称和列名称来作为跟随关键字SELECT的属性。具体来说,基于式(6)的第一析取式所导出的SQL语句的SELECT部分为:
SELECT持股.被持股人
其中,“持股”为处于逻辑规则头部的参量y所出现的逻辑规则体部分的谓词(此时已映射为关系),“被持股人”为参量y的变量类型(此时已映射为实体)。
在步骤S506中,构造当前析取式的SQL查询语句的FROM部分。在FROM部分中必须包括的表的名称是在逻辑规则体部分中涉及的那些谓词所对应的表的名称。具体来说,基于式(6)的第一析取式所导出的SQL语句的SELECT部分为:
FROM上市公司,持股,担保
在步骤S508中,构造当前析取式的SQL查询语句的WHERE部分。WHERE部分的构造是比较复杂的,在图6和图7中示出根据本发明一种实施例的构造WHERE部分的处理流程。后文将参照图6和图7对构造WHERE部分的处理进行详细说明。
在步骤S510中,判断是否已经处理了逻辑规则中的所有析取式。如果判断结果为“是”,则执行步骤S518。如果判断结果为“否”,则执行步骤S514。
在步骤S514中,在当前构造的SQL查询语句后加入运算符关键字“UNION ALL”(加合)。
在步骤S516中,选取该逻辑规则中的下一析取式。
然后,处理返回步骤S504继续执行。
具体来说,此时基于(6)的第二析取式所构造的SQL语句的SELECT部分为:“SELECT持股.被持股人”(在该示例中,因为参量y所涉及的谓词均为“持股”所以两个析取式对应的SQL语言的SELECT部分相同);FROM部分为:“FROM非上市公司,持股,担保”;以及构造相应的WHERE部分。
在步骤S518中,输出为逻辑规则所构造的SQL语句。
这里需要注意的是,虽然图5中将谓词到关系和变量到实体的映射单独作为一个步骤(S502)来描述,但是本领域的技术人员可以理解还可以将该步骤分布在后续的各个步骤中执行。也就是说,在生成SQL SELECT查询语句的SELECT部分、FROM部分以及WHERE部分的处理过程中实现该谓词到关系和变量到实体的映射转换。
以下参考图6和图7,说明在根据本发明一个实施例中用于构造SQL语句的WHERE部分的处理流程。
首先要说明的是,图6和图7所示的处理流程是基于在逻辑规则优化步骤中生成的反映谓词优化执行顺序的序列来执行的。如果结合图5中所描述的内容,则在以下的描述中所述的逻辑规则体可以理解为仅包括逻辑规则的一个析取式。
图6示出了根据本发明一个实施例的构造结构化查询语言的查询语句中的WHERE语句的处理流程图。
如图6所示,在步骤S600中,开始该处理流程。
在步骤S602中,取逻辑规则体中一个未处理的谓词,也即从优化步骤中得到的反映谓词优化执行顺序的序列中取一个未处理的谓词。设该谓词为m。
在步骤S604中,判断当前谓词是否为内置谓词。如果判断结果为“是”,则处理转到A部分(将在后文参照图7予以说明)。如果判断结果为“否”,则处理继续执行步骤S606。
在步骤S606中,取谓词m的一个未处理参量。设该参量为a。
在步骤S608中,判断当前参量a是否为常量。如果判断结果为“是”则执行步骤S616。如果判断结果为“否”,则执行步骤S610。
在步骤S616中,向WHERE语句部分添加“m.列名称=a”。之后,该处理继续执行步骤S618。其中,该“列名称”是指当前参量a对应的列名称。
在步骤S610中,判断当前参量是否出现在之前处理过的任意谓词n中。如果判断结果为“是”,则执行步骤S612。如果判断结果为“否”,则执行步骤S614。
在步骤S612中,向WHERE语句部分添加“n.列名称=m.列名称”。该“列名称”是指当前参量a在谓词n和m中分别对应的列名称。
在步骤S614中,记忆当前参量a,和其所处当前谓词m。
在步骤S618中,判断当前谓词m是否还有其它参量。如果判断结果为“是”,则该处理返回步骤S606继续执行。如果判断结果为“否”,则执行步骤S620。
在步骤S620中,判断该规则体中是否还有未处理的谓词。如果判断结果为“是”,则该处理返回步骤S602继续执行。如果判断结果为“否”,则执行步骤S622。
在步骤S622中,该处理流程结束。
图7示出了图6中A部分的处理流程图。
如图7所示,在步骤S702中,判断该内置谓词m是否为关系操作谓词,例如==、<>、>、>=、<、<=等。本领域的技术人员可以理解,在WHERE语句部分中,只有内置谓词中的关系操作谓词才需要考虑。这样的关系操作谓词通常只有两个变元。因此,如果在该步骤中判断结果为“否”,则处理返回图6中的步骤S602,继续取下一个未处理的谓词;如果判断结果为“是”,则执行步骤S704。
在步骤S704中,取谓词m的两个参量a1、a2。
在步骤S706中,判断参量a1和a2是否均为变量。如果判断结果为“否”,则执行步骤S708。如果判断结果为“是”,则执行步骤S710。
在步骤S708中,设参量a1或者a2出现在谓词n中,则向WHERE语句部分加入“n.列名称1sq1操作符m.a1”或者“n.列名称2sq1操作符m.a2”。其中,列名称1为参量a1对应的谓词n所对应的表中的列名称,列名称2为参量a2对应的谓词n所对应的表中的列名称;sql操作符为该关系操作谓词对应的sq1操作符。
在步骤S710中,设参量a1出现在谓词n中,并且a2出现在谓词1中,则向WHERE语句部分加入“n.列名称1sq1操作符1.列名称2”。其中,列名称1为参量a1对应的谓词n所对应的表中的列名称,列名称2为参量a2对应的谓词1所对应的表中的列名称;sq1操作符为该关系操作谓词对应的sq1操作符。
在执行步骤S708或者S710之后,该流程返回图6,继续执行步骤S620。
需要注意的是,图7的流程也是基于在逻辑规则优化步骤中生成的反映谓词优化执行顺序的序列来执行的,而在该序列中,内置谓词,特别地关系操作谓词总是靠近于序列尾部,也就是说这些谓词总是处于依存关系图的较低层。因此,步骤S708中假设的谓词n以及步骤S710中假设的谓词n和谓词1在当前实施例的处理流程中总会先于当前关系操作谓词m被处理。这实际上表明,前述的根据该实施例的优化步骤能够提高整个翻译处理的效率和性能。
至此,描述了根据本发明的一个实施例将逻辑规则翻译为SQL查询语句的整个过程。
在上文的具体示例中,式(5)的逻辑规则被翻译为:
SELECT持股.被持股人
FROM上市公司,持股,担保
WHERE上市公司.公司名称=‘公司A’and持股.持股人=上市公司.uID and担保.担保人=持股.持股人and担保.债务人=持股.被持股人
UNION ALL
SELECT持股.被持股人
FROM非上市公司,持股,担保
WHERE非上市公司.公司名称=‘公司A’and持股.持股人=非上市公司.uID and担保.担保人=持股.持股人and担保.债务人=持股.被持股人
SQL标准在SQL99标准中,已经能够支持递归的查询。因此,根据SQL99标准递归的逻辑规则可以表达为公共表表达式(CommonTable Expression,CTE)。根据本发明的实施例,可以将递归的逻辑规则翻译为这种公共表表达式,其中使用“WITH表名称(a1,a2,...)AS”来定义整个递归查询语句。在该递归查询语句中,可以按照与对非递归逻辑规则进行翻译相同的处理流程来生成SELECT、FROM以及WHERE语句部分,并且可以在这些语句中引用该WITH语句部分中定义的“表名称”。最后,产生最后SELECT语句部分以便产生在递归查询结果中所需的列。
根据本发明的一个实施例,为了避免在执行所翻译的递归查询语句时产生死循环的情况,可以在该WITH语句部分中增加两个参量(也即增加列),一个用于记录在递归查询过程中递归变化的变量所经历的路径(例如定义为参量“路径”),另一个用于标记当前该变量的值是否曾经出现在所记录的参量“路径”中(例如,定义为布尔值的参量“死循环”)。可以理解,如果当前变量的值曾经出现在所记录的“路径”中,则表明该递归查询已经陷入死循环;反之,则表明当前该递归查询是安全的。
在一个具体示例中,含有递归的逻辑规则定义为:
间接持股(持股人:x,被持股人:y):-
持股(持股人:x,被持股人:y).
间接持股(持股人:x,被持股人:y):-
间接持股(持股人:x,被持股人:z),
持股(持股人:z,被持股人:y).                      (7)
根据本发明实施例的翻译递归逻辑规则的策略,式(7)可以翻译为如下SQL查询语句:
WITH间接持股(持股人,被持股人,路径,死循环)AS
{
      SELECT持股.持股人,持股.被持股人,
         varchar(hex(持股.被持股人),空间大小),false
      FROM持股
      UNION ALL
      SELECT间接持股.持股人,间接持股.被持股人,
         间接持股.路径||hex(间接持股.被持股人),
         locate_block(hex(间接持股.被持股人),
                      间接持股.路径)
FROM间接持股,持股
WHERE持股.持股人=间接持股.被持股人and
  间接持股.死循环=false
}
SELECT持股人,被持股人
FROM间接持股
其中,varchar()表示将十六进制数变为ASCII类型字符串的函数,hex()转换为十六进制数的函数,||表示将两个字符串进行合并的操作符,locate_block()为预先定义的功能函数,用于实现在一个字符串中定位另一个字符串并返回布尔值的功能。还可以在翻译后的SQL语句中使用其它SQL本身支持或再开发的功能函数,以提供所生成的SQL查询语句的性能。这可以通过对递归逻辑规则进行翻译的具体计算机算法或程序来实现。
本领域的技术人员基于以上所描述的对递归逻辑规则进行的SQL翻译的策略,可以设计各种计算机算法或程序来具体实现其处理流程。为了简洁的目的,这里不再对具体处理流程进行详细描述,但应理解,各种具体处理流程均包括在本发明的范围之内。
在将多条逻辑规则翻译为SQL查询语句的情况下,根据本发明的一个实施例,可以根据谓词之间的依存关系利用SQL所支持的临时表来翻译该多条逻辑规则,从而优化所翻译的SQL查询语句在执行查询时的性能。在依存关系图中,如果一个谓词依赖于多个(两个或两个以上)其它谓词,则将该节点和其各个父节点翻译为一条使用临时表的SQL语句。
结合具体示例,根据本发明对于多条逻辑规则的SQL翻译的处理过程将更加明显。例如,在一个示例中,多条逻辑规则如下所示:
控制(控制人:x,所有人:y):-
直接控制(控制人:x,所有人:y).
控制(控制人:x,所有人:y):-
间接控制(控制人:x,所有人:y).
直接控制(控制人:x,所有人:y):-
持股(持股人:x,被持股人:y).
直接控制(控制人:x,所有人:y):-
担保(担保人:x,债务人:y).
间接控制(控制人:x,所有人:y):-
直接控制(控制人:x,所有人:z),
直接控制(控制人:z,所有人:y).
间接控制(控制人:x,所有人:y):-
间接控制(控制人:x,所有人:z),
直接控制(控制人:z,所有人:y).                   (8)
根据本发明的一个实施例,首先利用拓扑分析方法对已经建立的依存关系图进行分析,确定各个谓词之间的依存关系。
图8示出了多条逻辑规则式(8)的谓词依存关系图。如图8所示,其中,谓词“直接控制”的节点具有两个父节点“持股”、“担保”;谓词节点“控制”具有两个父节点“直接控制”、“间接控制”;谓词节点“间接控制”具有一个父节点“直接控制”,而且谓词节点“间接控制”是递归谓词,其定义中引用了自身(如箭头示)。可见,谓词节点“控制”是最小公共祖先,因此根据一种优选的方式可以为“控制”创建临时表,从而实现对式(8)的翻译。
根据本发明一种实施例,翻译结果如下所示:
CREATE VIEW控制(控制人,所有人)AS
{
    WITH直接控制(控制人,所有人)AS
    {
      SELECT持股.持股人,持股.被持股人
      FROM持股
      UNION ALL
      SELECT担保.担保人,担保.债务人
      FROM担保
     },
        间接控制(控制人,所有人,路径,死循环)AS
   {
   SELECT d1.控制人,d2.所有人,
      varchar(hex(d2.所有人),空间大小),false
   FROM直接控制d1,直接控制d2
   WHERE d2.控制人=d1.所有人
   UNION ALL
   SELECT间接控制.控制人,直接控制.所有人,
      间接控制.路径||hex(间接控制.所有人),
      locate_block(hex(间接控制.所有人),间接控制.路径)
   FROM间接控制,直接控制
   WHERE直接控制.控制人=间接控制.所有人and
          死循环=false
      }
}
SELECT直接控制控制人,直接控制.所有人
FROM直接控制
UNION ALL
SELECT间接控制.控制人,间接控制.所有人
FROM间接控制
可以看到,其中除了通过CREATE VIEW...AS WITH语句来翻译最小公共祖先谓词节点“控制”,以创建可以被其它谓词使用的临时表以外,逻辑规则可以按照非递归逻辑规则以及递归逻辑规则的翻译处理流程进行翻译,以生成CREATE VIEW语句中包括的SQL SELECT查询语句。
本领域的技术人员基于以上所描述的对相互依存的多条逻辑规则进行的SQL翻译的策略,还可以设计各种计算机算法或程序来具体实现其处理流程。为了简洁的目的,这里仅给出一段实现多规则翻译的伪代码,但应理解,各种具体处理流程均包括在本发明的范围之内。
parentnodelist=null;
translation=“”;
FOR rule r=first..last rule IN program
 head h=r.head;
 IF r.parents.size()>=2 or parentnodelist<>null THEN
    parentnodelist.addAll(r.parents);
    IF r.parents.size()>=2 THEN
       translation+=“CREATE VIEW”+h.name+h.arguments
                      +“AS WITH”;
    ELSE
     translation+=“,”
   ENDIF
   translation+=non_recursive_rule_translation(r,nodesUsed);
   parentnodelist=DeleteNode(parentnodelist,nodesUsed);
 ELSE//单规则翻译
   translation+=“CREATE VIEW”;
   translation+=non_recursive_rule_translation(r);
 END IF
ENDFOR
图9示意性地示出了根据本发明一个实施例的将基于概念模型的查询转换为结构化查询语言的系统框图。其中,参考标号90表示基于概念模型的查询语句编辑器,参考标号900表示用于将基于概念模型的查询语句转换为SQL查询语句的转换装置,参考标号91表示作为关系数据的知识库。
如图9所示,用户利用基于概念模型的查询语句编辑器90编辑基于概念模型的查询。用户利用基于概念模型的查询语句编辑器90可以提供例如图10A所示的向用户提供领域本体的图形化用户界面。用户通过该界面可以获取有关查询所需的概念模型的信息。在图10A中,可以看到该图形化用户界面的OWL类标签部分1001以树形方式给出了在当前查询中可用的本体概念(类)以及其相应的子概念(子类)。通过对该图形化用户界面进行操作,用户还可以获取该领域本体涉及的其它信息,例如可以选中属性标签部分1002以查看当前类或者子类的属性等。用户通过例如图10A所示的用户界面获得了诸如概念模型和商业规则的领域本体,然后用户例如可以通过利用基于概念模型的查询语句编辑器90提供的图10B表示的图形化用户界面来输入或者编辑基于概念模型的查询。例如,在图10B中,通过窗体1003选择要查询或者要限定的关系中的概念(类)、子概念(子类),以及通过属性标签部分1004限定概念中的属性值等。之后,该基于概念的查询编辑器90能够根据用户的输入自动生成处理所需的查询表达式。
支持用户输入的查询语句编辑器90可以有多种形式。例如,提供诸如图10A和图10B示出的用户界面的适用于基于Web本体语言(OWL)的编辑器、使用基于统一建模语言(UML)的编辑器、基于Java模型定义的面向对象的编辑器,甚至仅为查询语句脚本提供简单编辑环境的编辑器。本领域的技术人员可以理解,本发明不受该编辑器实现方式的限制。
接着,将输入的基于概念模型的查询语句输入到用于将基于概念模型的查询语句转换为SQL查询语句的转换装置900。
如图9所示,转换装置900可以包括转换器901、检查器902、优化器903、翻译器904以及映射表存储器905。
在转换装置900中,基于概念模型的查询语句首先由转换器901转换为逻辑规则。根据本发明的一个实施例,该转换器901可以包括用于对该输入的基于概念模型的查询进行约束规范化的装置;用于根据概念模型对规范化的查询语句执行概念模型关系推理的装置;用于基于映射表存储器905中存储的映射表、执行概念到谓词以及属性到变量的转换的装置;以及用于对转换而成的查询语句执行范式标准化以得到逻辑规则的装置。
其中,用于进行概念到谓词以及属性到变量的转换的装置需要基于映射表存储器905提供的、预先确定的概念到谓词以及属性到变量映射表的信息来执行相应的转换。
其中,用于对规范化的查询语句执行概念模型关系推理的装置包括:用于对规范化的查询语句执行包含关系推理的装置。
其中,用于对转换而成的查询语句执行范式标准化以得到逻辑规则的装置包括:用于对转换而成的查询语句执行析取范式标准化的装置。
检查器902对转换器901输出的逻辑规则进行合法性检查。如果该逻辑规则不合法,则例如向基于概念模型的查询语句编辑器90发送消息,以通知用户对其输入的基于概念模型的查询进行修改;如果该逻辑规则合法,则将其输出到优化器903。
检查器包括:语法检查器,用于检查范式标准化的逻辑规则是否符合所定义的逻辑规则描述语言的语法;以及
语义检查器,用于检查逻辑规则是否在逻辑上是有效的。
其中,语法检查器还进行逻辑规则的安全性规则检查,其中包括谓词和变量的存在性检查、谓词和变量的连贯性检查。
其中,语义检查器还检查是否存在非线性递归的谓词、检查是否存在间接递归的谓词、检查是否存在非分层否定的情况。
在优化器903中,通过对逻辑规则中谓词之间的关系进行建模,来优化被检查器902检查为合法的逻辑规则,以便能够有效地进行逻辑规则到SQL语句的翻译。之后,优化器903将优化结果输出到翻译器904。
优化器进一步包括:用于根据逻辑规则中谓词之间的依存关系建立依存关系图的装置,其中每个节点对应于逻辑规则中的一个谓词,并且用节点间的有向边表示各个谓词之间的依存关系;以及用于根据依存关系图对逻辑规则进行优化的装置。
其中,用于根据依存关系图对逻辑规则进行优化的装置包括:用于根据依存关系图生成谓词的优化执行顺序的装置;以及用于将处于依存关系图较高层的谓词中的约束下放到处于依存关系图较低层的谓词处的装置。
在翻译器904中,通过应用一组翻译规则实现逻辑规则到SQL语句的翻译。根据本发明的一个实施例,对于逻辑规则中的谓词和变量到关系数据库中的关系和实体的翻译是根据映射表存储器905中预先确定的谓词到关系以及变量到实体的映射表来执行的。并且,这组翻译规则是预先为各种特定的逻辑规则种类所设定,其中可以包括:用于翻译非递归逻辑规则的翻译规则、用于翻译递归逻辑规则的翻译规则、用于翻译依存的多个逻辑规则的翻译规则等。这些规则可以包括优化所翻译的SQL语句的性能的策略。
其中,翻译器包括:用于将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句的装置;用于用关键字UNION ALL来连接各个独立的结构化查询语言的SELECT查询语句的装置,其中,基于预先确定的映射表,将谓词转换为关系并且将变量转换为实体。
其中,用于将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句的装置执行以下操作:
通过使用对应于逻辑规则头部的参量的表名称和列名称来作为跟随关键字SELECT的属性,构造结构化查询语言的查询语句的SELECT部分;
通过使用逻辑规则体部分中涉及的那些谓词所对应的表的名称来作为跟随关键字FROM的表名称,构造结构化查询语言的查询语句的FROM部分;
通过解析逻辑规则中各个谓词的变量之间的关系,构造结构化查询语言的查询语句的WHERE部分。
该实施例中的翻译器将递归的逻辑规则翻译为使用公共表表达式的结构化查询语言的查询语句,其中使用该递归逻辑规则中递归的谓词所对应的表名称作为所述公共表表达式中的表名称。
该实施例中的翻译器在翻译过程中,通过在公共表表达式中增加用于记录在递归查询过程中用于递归变化的参量所经历路径的变量以及用于标记当前该变量的值是否曾经出现在所记录的路径中的参量,来避免在执行所翻译的结构化查询语言的递归查询语句时发生死循环。
该实施例中的翻译器利用结构化查询语言中的临时表翻译相互依存的多条逻辑规则。
最后,利用转换而成的SQL查询语句对知识库91进行查询。
需要说明的是,在图9示出的实施例中,将转换所需的映射信息(映射表)集中在映射表存储器905中进行存储/提供。可以理解,也可以独立地存储/提供概念到谓词以及属性到变量的映射信息,和谓词到关系以及变量到实体的映射信息。因此,映射信息存储、提供的方式并不对本发明构成限制。
另外,对于图9中各部件的操作的更具体的描述,可参照前文结合图1至图8的描述,以节省篇幅。
图11示意性地表示了其中可以实现本发明的实施例的计算机系统。图11中所示的计算机系统包括CPU(中央处理单元)1101、RAM(随机存取存储器)1102、ROM(只读存储器)1103、系统总线1104,HD(硬盘)控制器1105、键盘控制器1106、串行接口控制器1107、并行接口控制器1108、显示器控制器1109、硬盘1110、键盘1111、串行外部设备1112、并行外部设备1113和显示器1114。在这些部件中,与系统总线1104相连的有CPU1101、RAM 1102、ROM1103、HD控制器1105、键盘控制器1106,串行接口控制器1107,并行接口控制器1108和显示器控制器1109。硬盘1110与HD控制器1105相连,键盘1111与键盘控制器1106相连,串行外部设备1112与串行接口控制器1107相连,并行外部设备1113与并行接口控制器1108相连,以及显示器1114与显示器控制器1109相连。
图11中每个部件的功能在本技术领域内都是众所周知的,并且图11所示的结构也是常规的。这种结构不仅用于个人计算机,而且用于手持设备,如Palm PC、PDA(个人数据助理)、移动电话等等。在不同的应用中,图11中所示的某些部件可以被省略。图11中所示的整个系统由通常作为软件存储在硬盘1110中、或者存储在EPROM或者其它非易失性存储器中的计算机可读指令控制。软件也可从网络(图中未示出)下载。或者存储在硬盘1110中,或者从网络下载的软件可被加载到RAM 1102中,并由CPU 1101执行,以便完成由软件确定的功能。
尽管图11中描述的计算机系统能够支持根据本发明的将基于概念模型的查询转换为结构化查询语言的方法,但是该计算机系统只是计算机系统的一个例子。本领域的熟练技术人员可以理解,许多其它计算机系统设计也能实现本发明的实施例。
本发明还可以实现为一种例如由图11所示计算机系统所使用的计算机程序产品,其包含有用于执行根据本发明的将基于概念模型的查询转换为结构化查询语言的方法的代码。在使用之前,可以把代码存储在其它计算机系统的存储器中,例如,存储在硬盘或诸如光盘或软盘的可移动的存储器中,或者经由因特网或其它计算机网络进行下载。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在所附权利要求的范围内做出各种变形或修改。

Claims (26)

1.一种将基于概念模型的查询转换为结构化查询语言的查询语句的方法,包括以下步骤:
将输入的基于概念模型的查询转换成逻辑规则;
将所述逻辑规则翻译为结构化查询语言的查询语句;
对所述逻辑规则进行合法性检查;以及
对合法的所述逻辑规则进行优化。
2.根据权利要求1所述的方法,其中所述将输入的基于概念模型的查询转换成逻辑规则的步骤进一步包括以下步骤:
对该输入的基于概念模型的查询进行约束规范化;
根据概念模型,对规范化了的查询语句执行概念模型关系推理;
基于预先确定的映射表,执行概念模型中的概念到逻辑规则的谓词以及概念模型中的属性到逻辑规则的变量的转换;以及
对转换过的查询语句执行范式标准化,以得到逻辑规则。
3.根据权利要求2所述的方法,其中所述对规范化的查询语句执行概念模型关系推理的步骤包括:对规范化的查询语句执行包含关系推理;并且所述对转换过的查询语句执行范式标准化以得到逻辑规则的步骤包括:对转换过查询语句执行析取范式标准化。
4.根据权利要求1所述的方法,其中所述对逻辑规则进行合法性检查的步骤进一步包括以下步骤:
语法检查,用于检查范式标准化的逻辑规则是否符合所定义的逻辑规则描述语言的语法;以及
语义检查,用于检查逻辑规则是否在逻辑上是有效的。
5.根据权利要求4所述的方法,其中所述语法检查步骤进一步包括:逻辑规则的安全性规则检查,其中包括谓词和变量的存在性检查、谓词和变量的连贯性检查;并且所述语义检查步骤进一步包括:检查是否存在非线性递归的谓词、检查是否存在间接递归的谓词、检查是否存在非分层否定的情况。
6.根据权利要求1所述的方法,其中所述对合法的逻辑规则进行优化的步骤进一步包括以下步骤:
根据逻辑规则中谓词之间的依存关系,建立依存关系图,其中每个节点对应于逻辑规则中的一个谓词,并且用节点间的有向边表示各个谓词之间的依存关系;以及
根据所述依存关系图对逻辑规则进行优化。
7.根据权利要求6所述的方法,其中所述根据所述依存关系图对逻辑规则进行优化的步骤包括以下步骤:
根据所述依存关系图,生成谓词的优化执行顺序;以及
将处于依存关系图较高层的谓词中的约束下放到处于依存关系图较低层的谓词处。
8.根据权利要求3所述的方法,其中所述将逻辑规则翻译为结构化查询语言的查询语句的步骤包括以下步骤:
将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句;以及
用关键字UNION ALL来连接各个独立的结构化查询语言的SELECT查询语句,
其中,基于预先确定的映射表,将逻辑规则中的谓词转换为关系数据库的表名称并且将逻辑规则中的变量转换为关系数据库的列名称。
9.根据权利要求8所述的方法,其中所述将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句的步骤包括以下步骤:
通过使用对应于逻辑规则头部的参量所对应的列名称作为跟随关键字SELECT的属性,构造结构化查询语言的查询语句的SELECT部分;
通过使用逻辑规则体部分中涉及的那些谓词所对应的表的名称作为跟随关键字FROM的表名称,构造结构化查询语言的查询语句的FROM部分;以及
通过解析逻辑规则中各个谓词的变量之间的联系和表达关系操作的谓词,构造结构化查询语言的查询语句的WHERE部分。
10.根据权利要求8或9所述的方法,其中将递归的逻辑规则翻译为使用公共表表达式的结构化查询语言的查询语句,其中使用该递归逻辑规则中递归的谓词所对应的表名称作为所述公共表表达式中的表名称。
11.根据权利要求10所述的方法,其中在翻译过程中,通过在所述公共表表达式中增加用于记录在递归查询过程中用于递归变化的变量所经历路径的参量以及用于标记当前该变量的值是否曾经出现在所记录的路径中的参量,来避免在执行所翻译的结构化查询语言的递归查询语句时发生死循环。
12.根据权利要求8或9所述的方法,其中利用结构化查询语言中的临时表翻译相互依存的多条逻辑规则。
13.一种用于将基于概念模型的查询转换为结构化查询语言的查询语句的转换装置,包括:
转换器,用于将输入的基于概念模型的查询转换成逻辑规则;
翻译器,用于将所述逻辑规则翻译为结构化查询语言的查询语句;
检查器,用于对所述转换器输出的逻辑规则进行合法性检查;
优化器,用于对经所述检查器检查为合法的逻辑规则进行优化。
14.根据权利要求13所述的转换装置,还包括映射表存储器,用于向所述转换器提供概念到谓词以及属性到变量的映射信息,并且
所述转换器进一步包括:
用于对该输入的基于概念模型的查询进行约束规范化的装置;
用于根据概念模型对规范化的查询语句执行概念模型关系推理的装置;
用于基于所述映射表存储器中存储的映射表、执行概念模型中的概念到逻辑规则的谓词以及概念模型中的属性到逻辑规则的变量的转换的装置;以及
用于对转换而成的查询语句执行范式标准化以得到逻辑规则的装置。
15.根据权利要求14所述的转换装置,其中
所述用于对规范化的查询语句执行概念模型关系推理的装置包括:用于对规范化的查询语句执行包含关系推理的装置,并且
所述用于对转换而成的查询语句执行范式标准化以得到逻辑规则的装置包括:用于对转换而成的查询语句执行析取范式标准化的装置。
16.根据权利要求13所述的转换装置,其中所述检查器包括:
语法检查器,用于检查范式标准化的逻辑规则是否符合所定义的逻辑规则描述语言的语法;以及
语义检查器,用于检查逻辑规则是否在逻辑上是有效的。
17.根据权利要求16所述的转换装置,其中
所述语法检查器还进行逻辑规则的安全性规则检查,其中包括谓词和变量的存在性检查、谓词和变量的连贯性检查,并且
所述语义检查器还检查是否存在非线性递归的谓词、检查是否存在间接递归的谓词、检查是否存在非分层否定的情况。
18.根据权利要求13所述的转换装置,其中所述优化器进一步包括:
用于根据逻辑规则中谓词之间的依存关系建立依存关系图的装置,其中每个节点对应于逻辑规则中的一个谓词,并且用节点间的有向边表示各个谓词之间的依存关系;以及
用于根据所述依存关系图对逻辑规则进行优化的装置。
19.根据权利要求18所述的转换装置,其中所述用于根据所述依存关系图对逻辑规则进行优化的装置包括:
用于根据所述依存关系图生成谓词的优化执行顺序的装置;以及
用于将处于依存关系图较高层的谓词中的约束下放到处于依存关系图较低层的谓词处的装置。
20.根据权利要求15所述的转换装置,其中所述映射表存储器还用于向所述翻译器提供谓词到关系以及变量到实体的映射信息,并且
所述翻译器包括:
用于将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句的装置;
用于用关键字UNION ALL来连接各个独立的结构化查询语言的SELECT查询语句的装置,
其中,基于预先确定的映射表,将逻辑规则中的谓词转换为关系数据库的表名称并且将逻辑规则中的变量转换为关系数据库的列名称。
21.根据权利要求20所述的转换装置,其中所述用于将析取范式化的逻辑规则中的每个析取式翻译为一条结构化查询语言的SELECT查询语句的装置执行以下操作:
通过使用对应于逻辑规则头部的参量所对应的列名称来作为跟随关键字SELECT的属性,构造结构化查询语言的查询语句的SELECT部分;
通过使用逻辑规则体部分中涉及的那些谓词所对应的表的名称作为跟随关键字FROM的表名称,构造结构化查询语言的查询语句的FROM部分;
通过解析逻辑规则中各个谓词的变量之间的联系和表达关系操作的谓词,构造结构化查询语言的查询语句的WHERE部分。
22.根据权利要求20或21所述的转换装置,其中所述翻译器将递归的逻辑规则翻译为使用公共表表达式的结构化查询语言的查询语句,其中使用该递归逻辑规则中递归的谓词所对应的表名称作为所述公共表表达式中的表名称。
23.根据权利要求22所述的转换装置,其中所述翻译器在翻译过程中,通过在所述公共表表达式中增加用于记录在递归查询过程中用于递归变化的参量所经历路径的变量以及用于标记当前该变量的值是否曾经出现在所记录的路径中的参量,来避免在执行所翻译的结构化查询语言的递归查询语句时发生死循环。
24.根据权利要求20或21所述的转换装置,其中所述翻译器利用结构化查询语言中的临时表翻译相互依存的多条逻辑规则。
25.一种数据库查询系统,包括:
基于概念模型的查询语句编辑器;
根据权利要求13-24中任何一个权利要求所述的用于将基于概念模型的查询转换为结构化查询语言的查询语句的转换装置;以及
以关系数据库形式实现的领域知识库。
26.一种计算机程序产品,包含用于执行根据权利要求1至12中任何一个权利要求所述方法的计算机程序代码。
CN2006100931687A 2006-06-23 2006-06-23 数据库查询语言转换方法、转换装置 Active CN101093493B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2006100931687A CN101093493B (zh) 2006-06-23 2006-06-23 数据库查询语言转换方法、转换装置
US11/746,110 US7668818B2 (en) 2006-06-23 2007-05-09 Database query language transformation method, transformation apparatus and database query system
US12/061,742 US9223827B2 (en) 2006-06-23 2008-04-03 Database query language transformation method, transformation apparatus and database query system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2006100931687A CN101093493B (zh) 2006-06-23 2006-06-23 数据库查询语言转换方法、转换装置

Publications (2)

Publication Number Publication Date
CN101093493A true CN101093493A (zh) 2007-12-26
CN101093493B CN101093493B (zh) 2011-08-31

Family

ID=38874651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100931687A Active CN101093493B (zh) 2006-06-23 2006-06-23 数据库查询语言转换方法、转换装置

Country Status (2)

Country Link
US (2) US7668818B2 (zh)
CN (1) CN101093493B (zh)

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963993A (zh) * 2010-10-21 2011-02-02 江苏科技大学 一种数据库单表记录快速查找的方法
CN102004766A (zh) * 2010-11-09 2011-04-06 北京神州泰岳软件股份有限公司 基于信息系统的可配置信息查询方法及系统
CN101350033B (zh) * 2008-09-05 2011-10-26 北京邮电大学 一种owl信息到关系数据库的转换方法及装置
CN102411580A (zh) * 2010-09-20 2012-04-11 腾讯科技(深圳)有限公司 可扩展标记语言文档的检索方法及装置
CN101853257B (zh) * 2009-03-31 2012-09-26 国际商业机器公司 Sparql查询的转换系统和方法
WO2013168058A1 (en) * 2012-05-07 2013-11-14 International Business Machines Corporation Optimizing queries using predicate mappers
CN104216891A (zh) * 2013-05-30 2014-12-17 国际商业机器公司 关系型数据库中的查询语句的优化方法和设备
CN104252509A (zh) * 2013-11-05 2014-12-31 深圳市华傲数据技术有限公司 一种表达式执行方法和装置
CN104462095A (zh) * 2013-09-13 2015-03-25 阿里巴巴集团控股有限公司 一种查询语句公共部分的提取方法及装置
TWI512510B (zh) * 2013-11-15 2015-12-11 Chunghwa Telecom Co Ltd 以多項獨立查詢條件查詢資料庫內容之方法
CN105183809A (zh) * 2015-08-26 2015-12-23 成都布林特信息技术有限公司 一种云平台数据查询方法
CN105224566A (zh) * 2014-06-25 2016-01-06 国际商业机器公司 在关系数据库上支持命令式图形查询的方法和系统
CN106126543A (zh) * 2016-06-15 2016-11-16 清华大学 一种关系型数据库到MongoDB的模型转换和数据迁移方法
CN106250565A (zh) * 2016-08-30 2016-12-21 福建天晴数码有限公司 基于分片关系型数据库的查询方法和系统
CN106294401A (zh) * 2015-05-21 2017-01-04 阿里巴巴集团控股有限公司 自动建立sql名单库的方法及装置
CN106503265A (zh) * 2016-11-30 2017-03-15 北京赛迈特锐医疗科技有限公司 基于权值的结构化搜索系统及其搜索方法
CN106802901A (zh) * 2015-11-26 2017-06-06 北京国双科技有限公司 数据库查询的方法及装置
CN106933893A (zh) * 2015-12-31 2017-07-07 北京国双科技有限公司 多维度数据的查询方法及装置
CN106959956A (zh) * 2016-01-11 2017-07-18 阿里巴巴集团控股有限公司 数据库间的语句转换方法和装置
CN107004158A (zh) * 2014-11-27 2017-08-01 爱克发医疗保健公司 数据存储库查询方法
CN107247811A (zh) * 2017-07-21 2017-10-13 中国联合网络通信集团有限公司 基于Oracle数据库的SQL语句性能优化方法及装置
CN107256218A (zh) * 2017-04-19 2017-10-17 江苏师范大学 一种xml流数据的快速查询方法
CN107506442A (zh) * 2017-08-24 2017-12-22 中国银行股份有限公司 一种模型的建模方法及装置
CN107679221A (zh) * 2017-10-19 2018-02-09 武汉大学 面向减灾任务的时空数据获取与服务组合方案生成方法
CN109324800A (zh) * 2018-10-25 2019-02-12 金蝶软件(中国)有限公司 一种避免死循环计算的优化方法及优化装置
CN109766355A (zh) * 2018-12-28 2019-05-17 上海汇付数据服务有限公司 一种支持自然语言的数据查询方法和系统
CN110019442A (zh) * 2017-09-04 2019-07-16 华为技术有限公司 取数方法及装置
CN110109951A (zh) * 2017-12-29 2019-08-09 华为软件技术有限公司 一种关联查询的方法、数据库应用系统及服务器
CN110377866A (zh) * 2019-06-05 2019-10-25 广州南方智能技术有限公司 基于表达式的地理信息系统数据应用方法、设备、介质
CN110727839A (zh) * 2018-06-29 2020-01-24 微软技术许可有限责任公司 自然语言查询的语义解析
CN111190917A (zh) * 2019-06-10 2020-05-22 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN111241296A (zh) * 2020-01-06 2020-06-05 大连民族大学 一种基于重写技术的完整性约束验证方法
CN111859990A (zh) * 2020-07-30 2020-10-30 威海微法信息科技有限责任公司 基于语义逻辑唯一性判断的处理问答数据的方法及系统
CN114647198A (zh) * 2022-03-09 2022-06-21 深圳市经纬纵横科技有限公司 基于物联网的智能家居控制方法、系统和电子设备

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774721B2 (en) * 2003-12-15 2010-08-10 Microsoft Corporation Intelligent backward resource navigation
US7962843B2 (en) * 2003-12-15 2011-06-14 Microsoft Corporation Browser session overview
US7647338B2 (en) * 2007-02-21 2010-01-12 Microsoft Corporation Content item query formulation
US8204856B2 (en) * 2007-03-15 2012-06-19 Google Inc. Database replication
US20090024590A1 (en) * 2007-03-15 2009-01-22 Sturge Timothy User contributed knowledge database
US20100174692A1 (en) * 2007-03-15 2010-07-08 Scott Meyer Graph store
US20100121839A1 (en) * 2007-03-15 2010-05-13 Scott Meyer Query optimization
US7725482B2 (en) * 2007-08-23 2010-05-25 International Business Machines Corporation Accessing objects in a service registry and repository using subclass inference
US8335778B2 (en) * 2008-09-17 2012-12-18 Oracle International Corporation System and method for semantic search in an enterprise application
US20110093500A1 (en) * 2009-01-21 2011-04-21 Google Inc. Query Optimization
US20100241893A1 (en) 2009-03-18 2010-09-23 Eric Friedman Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment
EP2246811A1 (en) * 2009-04-30 2010-11-03 Collibra NV/SA Method for improved ontology engineering
EP2246810A1 (en) * 2009-04-30 2010-11-03 Collibra NV/SA Method for ontology evolution
US8555263B2 (en) * 2010-01-20 2013-10-08 Aetna Inc. System and method for code automation
US8204903B2 (en) * 2010-02-16 2012-06-19 Microsoft Corporation Expressing and executing semantic queries within a relational database
US20110302220A1 (en) * 2010-06-08 2011-12-08 Albert Marcella Sql processing for data conversion
US8615526B2 (en) * 2010-06-21 2013-12-24 Tata Consultancy Services Limited Markup language based query and file generation
US9177017B2 (en) 2010-09-27 2015-11-03 Microsoft Technology Licensing, Llc Query constraint encoding with type-based state machine
US20120291002A1 (en) * 2011-05-10 2012-11-15 Paul William Watkinson System and method for describing software requirement logic
US8898145B2 (en) 2011-06-15 2014-11-25 Microsoft Corporation Query optimization techniques for business intelligence systems
US8645346B2 (en) 2011-06-16 2014-02-04 Microsoft Corporation Composable SQL query generation
US9177022B2 (en) * 2011-11-02 2015-11-03 Microsoft Technology Licensing, Llc User pipeline configuration for rule-based query transformation, generation and result display
US9558274B2 (en) 2011-11-02 2017-01-31 Microsoft Technology Licensing, Llc Routing query results
US9189563B2 (en) 2011-11-02 2015-11-17 Microsoft Technology Licensing, Llc Inheritance of rules across hierarchical levels
CN102693295B (zh) * 2012-05-15 2014-01-01 北京天威诚信电子商务服务有限公司 一种基于记录逻辑表示的数据库记录数据查询系统
CN102750483A (zh) * 2012-06-21 2012-10-24 无锡华御信息技术有限公司 基于数据库的sql注入攻击防护方法
CN103092621B (zh) * 2013-03-08 2016-08-03 广州市西美信息科技有限公司 一种图表生成的方法及装置
US10223637B1 (en) 2013-05-30 2019-03-05 Google Llc Predicting accuracy of submitted data
CN104252511A (zh) * 2013-11-05 2014-12-31 深圳市华傲数据技术有限公司 一种sql命令编译方法和装置
US9652451B2 (en) * 2014-05-08 2017-05-16 Marvin Elder Natural language query
US20160012038A1 (en) * 2014-07-10 2016-01-14 International Business Machines Corporation Semantic typing with n-gram analysis
US10437843B2 (en) * 2014-07-29 2019-10-08 Microsoft Technology Licensing, Llc Optimization of database queries via transformations of computation graph
US10169433B2 (en) 2014-07-29 2019-01-01 Microsoft Technology Licensing, Llc Systems and methods for an SQL-driven distributed operating system
US10176236B2 (en) 2014-07-29 2019-01-08 Microsoft Technology Licensing, Llc Systems and methods for a distributed query execution engine
US20160110673A1 (en) * 2014-10-15 2016-04-21 Wipro Limited Method and system for determining maturity of an organization
US10305985B1 (en) * 2014-12-29 2019-05-28 EMC IP Holding Company LLC Defining new properties using expressions in API calls
US10503706B2 (en) * 2015-06-01 2019-12-10 Sap Se Deferred data definition statements
WO2017031082A1 (en) * 2015-08-14 2017-02-23 California Institute Of Technology Algebraic query language (aql) database management system
CN105868436B (zh) * 2015-10-21 2019-04-26 成都信息工程大学 几何产品表面形貌公差规范设计与认证的方法和系统
CN105447143B (zh) * 2015-11-24 2018-11-02 许源平 基于范畴纤维丛模型的面向对象数据库系统及其构建方法
US10346401B2 (en) * 2016-07-07 2019-07-09 Accenture Global Solutions Limited Query rewriting in a relational data harmonization framework
EP3577624A4 (en) * 2017-02-03 2020-10-14 The Dun & Bradstreet Corporation SYSTEM AND METHOD FOR GENERATING DIFFERENT RELATIONSHIPS BETWEEN DIFFERENT UNITS USING A GRAPH DATABASE
US11074250B2 (en) * 2017-06-27 2021-07-27 OWOX Limted Technologies for implementing ontological models for natural language queries
US10691681B2 (en) 2017-09-21 2020-06-23 Microsoft Technology Licensing, Llc Query language distribution heuristics
CN109871393A (zh) * 2019-03-05 2019-06-11 云南电网有限责任公司信息中心 一种基于标签体系的取数方法
CN111190906B (zh) * 2019-12-31 2023-06-20 全球能源互联网研究院有限公司 一种传感网数据异常检测方法
CN111259037B (zh) * 2020-01-14 2023-09-19 重庆特斯联智慧科技股份有限公司 一种基于规则配置的数据查询方法、装置、存储介质及终端
US11693884B2 (en) 2020-03-04 2023-07-04 Hcl Technologies Limited Adapative system for processing distributed data files and a method thereof
US11853937B1 (en) * 2020-07-24 2023-12-26 Wells Fargo Bank, N.A. Method, apparatus and computer program product for monitoring metrics of a maturing organization and identifying alert conditions
CN112434061B (zh) * 2020-08-25 2024-04-16 上海幻电信息科技有限公司 支持循环依赖的任务调度方法和系统
CN112132420B (zh) * 2020-09-04 2023-11-28 广西大学 一种面向sql查询的细化评分方法
CN113051285B (zh) * 2021-03-25 2024-04-02 未鲲(上海)科技服务有限公司 Sql语句的转换方法、系统、设备及存储介质
CN113553339B (zh) * 2021-07-13 2024-03-19 杭州安恒信息技术股份有限公司 数据查询方法、中间件、电子装置和存储介质
CN116541414B (zh) * 2023-07-05 2023-09-26 广州信安数据有限公司 基于多源异构数据的统一本体连接查询方法、介质及系统
CN117251477B (zh) * 2023-11-17 2024-02-20 吉贝克信息技术(北京)有限公司 基于sql解析的数据开发脚本标准化检查方法及系统

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5584024A (en) 1994-03-24 1996-12-10 Software Ag Interactive database query system and method for prohibiting the selection of semantically incorrect query parameters
US5799309A (en) * 1994-12-29 1998-08-25 International Business Machines Corporation Generating an optimized set of relational queries fetching data in an object-relational database
US6182060B1 (en) * 1997-04-15 2001-01-30 Robert Hedgcock Method and apparatus for storing, retrieving, and processing multi-dimensional customer-oriented data sets
US6477527B2 (en) * 1997-05-09 2002-11-05 International Business Machines Corporation System, method, and program for object building in queries over object views
US5873075A (en) * 1997-06-30 1999-02-16 International Business Machines Corporation Synchronization of SQL actions in a relational database system
US5895465A (en) * 1997-09-09 1999-04-20 Netscape Communications Corp. Heuristic co-identification of objects across heterogeneous information sources
US6601058B2 (en) * 1998-10-05 2003-07-29 Michael Forster Data exploration system and method
US7080062B1 (en) * 1999-05-18 2006-07-18 International Business Machines Corporation Optimizing database queries using query execution plans derived from automatic summary table determining cost based queries
US6847962B1 (en) * 1999-05-20 2005-01-25 International Business Machines Corporation Analyzing, optimizing and rewriting queries using matching and compensation between query and automatic summary tables
US6601026B2 (en) * 1999-09-17 2003-07-29 Discern Communications, Inc. Information retrieval by natural language querying
US20030195880A1 (en) * 2000-01-05 2003-10-16 Mancinelli Renato L. Method and system for providing a graphical interface to a database
US20010053968A1 (en) * 2000-01-10 2001-12-20 Iaskweb, Inc. System, method, and computer program product for responding to natural language queries
US6560590B1 (en) * 2000-02-14 2003-05-06 Kana Software, Inc. Method and apparatus for multiple tiered matching of natural language queries to positions in a text corpus
US6681383B1 (en) 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US20020010574A1 (en) * 2000-04-20 2002-01-24 Valery Tsourikov Natural language processing and query driven information retrieval
EP1311970A4 (en) * 2000-05-24 2007-07-25 Haley Systems Inc SYSTEM FOR CORPORATE KNOWLEDGE MANAGEMENT AND AUTOMATION
WO2001093105A2 (en) * 2000-05-26 2001-12-06 Computer Associates Think, Inc. System and method for automatically generating database queries
AU2001290646A1 (en) 2000-09-08 2002-03-22 The Regents Of The University Of California Data source integration system and method
US6640231B1 (en) * 2000-10-06 2003-10-28 Ontology Works, Inc. Ontology for database design and application development
US20020078041A1 (en) 2000-10-13 2002-06-20 Wu William Chyi System and method of translating a universal query language to SQL
US20020184208A1 (en) * 2001-04-24 2002-12-05 Saul Kato System and method for dynamically generating content on a portable computing device
US6970881B1 (en) 2001-05-07 2005-11-29 Intelligenxia, Inc. Concept-based method and system for dynamically analyzing unstructured information
US6662175B1 (en) * 2001-05-08 2003-12-09 Ncr Corporation Semantic query optimization using value correlation
US7107255B2 (en) * 2001-06-21 2006-09-12 International Business Machines Corporation Self join elimination through union
US20030004706A1 (en) * 2001-06-27 2003-01-02 Yale Thomas W. Natural language processing system and method for knowledge management
BR0210863A (pt) 2001-07-05 2004-08-24 Computer Ass Think Inc Sistema para transformar um primeiro dado em um primeiro formato em um segundo dado em um segundo formato, meio legìvel por computador, método implementado por computador para adaptar dados de diretriz de processo comercial, e, sistema para facilitar interações entre diretrizes de processo comercial incorporadas em componentes de computador
US20030041047A1 (en) 2001-08-09 2003-02-27 International Business Machines Corporation Concept-based system for representing and processing multimedia objects with arbitrary constraints
US20030212954A1 (en) 2001-12-17 2003-11-13 Patrudu Pilla Gurumurty Conceptual process redactor
US7225183B2 (en) 2002-01-28 2007-05-29 Ipxl, Inc. Ontology-based information management system and method
CA2397405C (en) * 2002-08-09 2009-10-13 Joint Technology Corporation Method for transforming sql queries
US7565642B2 (en) * 2002-08-09 2009-07-21 Corticon Technologies, Inc. Rule engine
AU2003284118A1 (en) * 2002-10-14 2004-05-04 Battelle Memorial Institute Information reservoir
US7287025B2 (en) * 2003-02-12 2007-10-23 Microsoft Corporation Systems and methods for query expansion
US20040249808A1 (en) * 2003-06-06 2004-12-09 Microsoft Corporation Query expansion using query logs
TWI260497B (en) 2003-06-13 2006-08-21 Hon Hai Prec Ind Co Ltd System and method of flash file
US7383255B2 (en) * 2003-06-23 2008-06-03 Microsoft Corporation Common query runtime system and application programming interface
US20050050042A1 (en) 2003-08-20 2005-03-03 Marvin Elder Natural language database querying
US7529728B2 (en) * 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US7814127B2 (en) * 2003-11-20 2010-10-12 International Business Machines Corporation Natural language support for database applications
CN1560763B (zh) * 2004-02-19 2010-05-05 北京大学 一种可扩展标记语言路径查询翻译为结构查询的方法
CN100485666C (zh) * 2004-04-29 2009-05-06 Nec软件有限公司 结构化自然语言查询和知识系统
US7617232B2 (en) 2004-09-02 2009-11-10 Microsoft Corporation Centralized terminology and glossary development
US7337170B2 (en) * 2005-01-18 2008-02-26 International Business Machines Corporation System and method for planning and generating queries for multi-dimensional analysis using domain models and data federation
US7908242B1 (en) * 2005-04-11 2011-03-15 Experian Information Solutions, Inc. Systems and methods for optimizing database queries
US8719250B2 (en) * 2005-04-18 2014-05-06 Oracle International Corporation Integrating RDF data into a relational database system
US7734619B2 (en) * 2005-05-27 2010-06-08 International Business Machines Corporation Method of presenting lineage diagrams representing query plans
US7761451B2 (en) * 2005-06-17 2010-07-20 Microsoft Corporation Efficient querying and paging in databases
US7475056B2 (en) * 2005-08-11 2009-01-06 Oracle International Corporation Query processing in a parallel single cursor model on multi-instance configurations, using hints
US8843481B1 (en) * 2005-09-30 2014-09-23 Yongyong Xu System and method of forming action based virtual communities and related search mechanisms
US8280867B2 (en) * 2005-10-20 2012-10-02 Teradata Us, Inc. Identifying database request sources
US8001021B1 (en) * 2006-05-16 2011-08-16 Intuit Inc. System and method for compensation query management

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350033B (zh) * 2008-09-05 2011-10-26 北京邮电大学 一种owl信息到关系数据库的转换方法及装置
CN101853257B (zh) * 2009-03-31 2012-09-26 国际商业机器公司 Sparql查询的转换系统和方法
CN102411580A (zh) * 2010-09-20 2012-04-11 腾讯科技(深圳)有限公司 可扩展标记语言文档的检索方法及装置
CN102411580B (zh) * 2010-09-20 2016-04-27 深圳市世纪光速信息技术有限公司 可扩展标记语言文档的检索方法及装置
CN101963993B (zh) * 2010-10-21 2012-08-29 江苏科技大学 一种数据库单表记录快速查找的方法
CN101963993A (zh) * 2010-10-21 2011-02-02 江苏科技大学 一种数据库单表记录快速查找的方法
CN102004766A (zh) * 2010-11-09 2011-04-06 北京神州泰岳软件股份有限公司 基于信息系统的可配置信息查询方法及系统
CN104285222B (zh) * 2012-05-07 2018-03-02 国际商业机器公司 用于重写查询的方法和系统
WO2013168058A1 (en) * 2012-05-07 2013-11-14 International Business Machines Corporation Optimizing queries using predicate mappers
US8812491B2 (en) 2012-05-07 2014-08-19 International Business Machines Corporation Optimizing queries using predicate mappers
CN104285222A (zh) * 2012-05-07 2015-01-14 国际商业机器公司 使用谓词映射器优化查询
CN104216891A (zh) * 2013-05-30 2014-12-17 国际商业机器公司 关系型数据库中的查询语句的优化方法和设备
CN104216891B (zh) * 2013-05-30 2018-02-02 国际商业机器公司 关系型数据库中的查询语句的优化方法和设备
US9811557B2 (en) 2013-05-30 2017-11-07 International Business Machines Corporation Optimizing query statements in relational databases
CN104462095A (zh) * 2013-09-13 2015-03-25 阿里巴巴集团控股有限公司 一种查询语句公共部分的提取方法及装置
CN104462095B (zh) * 2013-09-13 2018-06-12 阿里巴巴集团控股有限公司 一种查询语句公共部分的提取方法及装置
CN104252509A (zh) * 2013-11-05 2014-12-31 深圳市华傲数据技术有限公司 一种表达式执行方法和装置
TWI512510B (zh) * 2013-11-15 2015-12-11 Chunghwa Telecom Co Ltd 以多項獨立查詢條件查詢資料庫內容之方法
CN105224566B (zh) * 2014-06-25 2019-03-01 国际商业机器公司 在关系数据库上支持命令式图形查询的方法和系统
CN105224566A (zh) * 2014-06-25 2016-01-06 国际商业机器公司 在关系数据库上支持命令式图形查询的方法和系统
CN107004158A (zh) * 2014-11-27 2017-08-01 爱克发医疗保健公司 数据存储库查询方法
CN106294401A (zh) * 2015-05-21 2017-01-04 阿里巴巴集团控股有限公司 自动建立sql名单库的方法及装置
CN105183809A (zh) * 2015-08-26 2015-12-23 成都布林特信息技术有限公司 一种云平台数据查询方法
CN106802901A (zh) * 2015-11-26 2017-06-06 北京国双科技有限公司 数据库查询的方法及装置
CN106933893A (zh) * 2015-12-31 2017-07-07 北京国双科技有限公司 多维度数据的查询方法及装置
CN106933893B (zh) * 2015-12-31 2019-12-10 北京国双科技有限公司 多维度数据的查询方法及装置
CN106959956A (zh) * 2016-01-11 2017-07-18 阿里巴巴集团控股有限公司 数据库间的语句转换方法和装置
CN106126543B (zh) * 2016-06-15 2019-09-03 清华大学 一种关系型数据库到MongoDB的模型转换和数据迁移方法
CN106126543A (zh) * 2016-06-15 2016-11-16 清华大学 一种关系型数据库到MongoDB的模型转换和数据迁移方法
CN106250565B (zh) * 2016-08-30 2019-05-07 福建天晴数码有限公司 基于分片关系型数据库的查询方法和系统
CN106250565A (zh) * 2016-08-30 2016-12-21 福建天晴数码有限公司 基于分片关系型数据库的查询方法和系统
CN106503265A (zh) * 2016-11-30 2017-03-15 北京赛迈特锐医疗科技有限公司 基于权值的结构化搜索系统及其搜索方法
CN107256218A (zh) * 2017-04-19 2017-10-17 江苏师范大学 一种xml流数据的快速查询方法
CN107247811A (zh) * 2017-07-21 2017-10-13 中国联合网络通信集团有限公司 基于Oracle数据库的SQL语句性能优化方法及装置
CN107506442A (zh) * 2017-08-24 2017-12-22 中国银行股份有限公司 一种模型的建模方法及装置
CN107506442B (zh) * 2017-08-24 2020-09-29 中国银行股份有限公司 一种模型的建模方法及装置
CN110019442A (zh) * 2017-09-04 2019-07-16 华为技术有限公司 取数方法及装置
CN110019442B (zh) * 2017-09-04 2023-10-13 华为技术有限公司 取数方法及装置
CN107679221B (zh) * 2017-10-19 2021-03-16 武汉大学 面向减灾任务的时空数据获取与服务组合方案生成方法
CN107679221A (zh) * 2017-10-19 2018-02-09 武汉大学 面向减灾任务的时空数据获取与服务组合方案生成方法
CN110109951A (zh) * 2017-12-29 2019-08-09 华为软件技术有限公司 一种关联查询的方法、数据库应用系统及服务器
CN110109951B (zh) * 2017-12-29 2022-12-06 华为技术有限公司 一种关联查询的方法、数据库应用系统及服务器
CN110727839A (zh) * 2018-06-29 2020-01-24 微软技术许可有限责任公司 自然语言查询的语义解析
CN110727839B (zh) * 2018-06-29 2024-04-26 微软技术许可有限责任公司 自然语言查询的语义解析
CN109324800A (zh) * 2018-10-25 2019-02-12 金蝶软件(中国)有限公司 一种避免死循环计算的优化方法及优化装置
CN109766355A (zh) * 2018-12-28 2019-05-17 上海汇付数据服务有限公司 一种支持自然语言的数据查询方法和系统
CN110377866A (zh) * 2019-06-05 2019-10-25 广州南方智能技术有限公司 基于表达式的地理信息系统数据应用方法、设备、介质
CN111190917A (zh) * 2019-06-10 2020-05-22 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN111241296A (zh) * 2020-01-06 2020-06-05 大连民族大学 一种基于重写技术的完整性约束验证方法
CN111859990A (zh) * 2020-07-30 2020-10-30 威海微法信息科技有限责任公司 基于语义逻辑唯一性判断的处理问答数据的方法及系统
CN111859990B (zh) * 2020-07-30 2023-11-21 韩朝晖 基于语义逻辑唯一性判断的处理问答数据的方法及系统
CN114647198A (zh) * 2022-03-09 2022-06-21 深圳市经纬纵横科技有限公司 基于物联网的智能家居控制方法、系统和电子设备

Also Published As

Publication number Publication date
CN101093493B (zh) 2011-08-31
US20070299836A1 (en) 2007-12-27
US20090094216A1 (en) 2009-04-09
US7668818B2 (en) 2010-02-23
US9223827B2 (en) 2015-12-29

Similar Documents

Publication Publication Date Title
CN101093493B (zh) 数据库查询语言转换方法、转换装置
Osman et al. Ontology integration: approaches and challenging issues
US6845380B2 (en) Method and system of valuing transformation between extensible markup language (XML) documents
US8032828B2 (en) Method and system of document transformation between a source extensible markup language (XML) schema and a target XML schema
US7444330B2 (en) Methods and systems for model matching
EP1686495B1 (en) Mapping web services to ontologies
Xue et al. Knowledge base and database representation for intelligent concurrent design
Hao et al. Integrating and navigating engineering design decision-related knowledge using decision knowledge graph
Amiri et al. Data‐driven business process similarity
Schorlemmer et al. Institutionalising ontology-based semantic integration
Calvanese et al. ADaMaP: automatic alignment of relational data sources using mapping patterns
Deb Nath et al. High-level ETL for semantic data warehouses
Lécué et al. Semantic and syntactic data flow in web service composition
Hagedorn et al. Semantic rule checking of cross-domain building data in information containers for linked document delivery using the shapes constraint language
Boukhari et al. The role of user requirements in data repository design
Kulvatunyou et al. A framework to canonicalize manufacturing service capability models
Benslimane et al. Deriving Conceptual Schema from Domain Ontology: A Web Application Reverse Engineering Approach.
Pan et al. Model-driven ontology engineering
Skjæveland et al. OTTR: Formal Templates for Pattern-Based Ontology Engineering.
Yin et al. A deep natural language processing‐based method for ontology learning of project‐specific properties from building information models
Song et al. Visual XML schemas based on reserved graph grammars
Muñoz-García et al. A workflow for the networked ontologies lifecycle: A case study in fao of the un
Nath et al. High-Level ETL for Semantic Data Warehouses---Full Version
Karnok et al. Data type definition and handling for supporting interoperability across organizational borders
Wenzel The Numerate Web: Mathematical Formulas and Computations on the Web of Data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant