没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记271(2011)63-78www.elsevier.com/locate/entcsDES:一个演绎数据库系统FernandoS'aenz-P'erez1声明式编程组(GPD)部Ingenier'ébiadelSoftwareeInteligenciaArtificialUniversidad Complutense de Madrid,Spain摘要这项工作描述了一种新的演绎数据库系统的实现,填补了其他系统没有的一些空白。事实上,这个系统就是为此而诞生的,从一开始,就添加了许多新的功能(空值,外部连接,聚合...)。特别是,它包含了Datasheet和SQL查询语言,可以查询相同的数据库。它享有任何平台(Windows,Linux,Macintosh等)的实际交互环境。 它已经被插入到Java GUI IDE中,以简化用户交互(语法突出显示,项目等)。该系统在GPL许可下分发,由sourceforge托管,并在世界各地广泛使用关键词:演绎数据库,数据库,SQL,聚合。1引言关系数据库、逻辑和人工智能的交叉点是演绎数据库的大熔炉演绎数据库系统包括用于从所谓的内涵数据库(演绎规则)以及从所谓的外延数据库(没有主体的演绎规则,即,遵循逻辑编程命名法的事实演绎数据库语言与Prolog语言相关,并且Datasheet已经成为事实上的标准演绎数据库查询语言。Datasheet允许将查询编写为正常的逻辑程序(没有函数符号),并且确保它们在某些条件下终止(例如,避免无限关系作为算术谓词)。1 电子邮件地址:fernan@sip.ucm.es1571-0661 © 2011 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2011.02.01164F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)63这种语言已经得到了广泛的研究,并且由于它们在本体[10],语义网[6] , 社 交 网 络 [16] , 策 略 语 言 [2] , 甚 至 优 化 [11] 中 的 应 用 而 此 外 ,LogicBlox、Exeura、Semmle和Lixto等公司在其开发的解决方案中体现了基于Datalog的演绎数据库技术因此,Datasheet及其扩展的高级表达能力被认为是处理基于知识的信息的强大功能。与广泛使用的关系数据库语言SQL相比,Datasheet增加了两个主要优点。首先,它干净的语义允许更好地推理问题的具体说明。它更紧凑的公式,特别是当使用递归谓词时,允许更好的理解和程序维护。其次,它提供了更多的表达性,因为SQL中的线性递归限制没有被强加。事实上,在演绎规则体中可以找到多个递归调用。随着时间的推移,出现了几种演绎系统,其中大多数来自学术研究。参见例如DLV [14]、XSB [19]、bddbddb [13]、LDL++[1]、ConceptBase [12]和.QL [15]。将这些结果转化为实验并扩大这种演绎系统的最先进特征的传播是困难的,因为没有人满足以下期望的特性:多平台、交互性、多语言支持、自由性和开源等。在本文中,我们列出了DES(数据库教育系统)[18]的主要特征,突出了使该工具与任何(现有的,可用的)其他工具不同的一些特征本文件的结构如下。第2节总结了该系统当前版本的主要特点第3节描述了可以在DES中使用的第4节解释了我们对Datasheet中空值和外部连接操作符的管理的建议,这些操作符反过来又用于将SQL语句编译为Datasheet程序。此外,第4节描述了一种新的聚合方法,包括聚合函数和谓词。最后,第6节得出了一些结论。2主要特点本节简要总结了DES的主要特性:全递归与递归SQL相反,数据库规则可以是递归的,相互递归的,在主体中包括否定,并根据需要包含尽可能多的递归调用F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)6365层次否定DES确保可以从具有否定目标的程序中收集否定信息,前提是使用限制形式的否定:策略否定[23]。这广泛地意味着否定不涉及递归计算路径,尽管它可以使用递归规则。系统可以在一个程序的上下文中正确地计算一个查询Q,该程序被限制在为Q构建的依赖图(它显示了谓词之间的计算依赖关系)中,以便可以找到一个分层。用户可以通过命令要求系统显示谓词依赖图以及分层。内置函数有一些常用的比较运算符(=,\=,>,.).所有这些运算符都需要基础(无变量)参数(即,到目前为止,不允许有约束),但平等,它执行统一。此外,算术表达式可以通过in fix运算符is来实现,它将变量与算术表达式联系起来。计算此表达式的结果被赋值/与变量进行比较。谓词not/1实现了分层否定。其他内置插件将在第4节和第5节中解释。成熟的算术与其他演绎系统(特别是DLV)相比,算术表达式可以根据需要复杂,使用最先进的Prolog系统中几乎完整的函数和运算符集,遵循标准ISOProlog。安全性和可计算性内置谓词很有吸引力,但它们是有代价的:它们的参数域是无限的,与任何用户定义的谓词的每个参数的有限域相反由于(扩展地)给出无限答案既不合理也不可能,因此当要计算涉及内置的子目标时,其参数需要受到范围限制,即,参数必须采用其他子目标提供的值。DES为源到源的翻译提供了一个预处理器,允许决定规则是否安全([23,25]中安全规则的条件扩展),如果是,则通过重新排序其目标来翻译它,以便使其可计算。临时视图临时视图允许在数据库上编写复合查询(例如,合取和析取)。临时视图是添加到66F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)63数据库,其头部作为查询提交并执行。之后,该规则被删除。例如,给定由事实定义的关系a/1和b/1,视图d(X):-a(X),not(b(X))计算实例关系(集合)a和b之间的集合差。请注意,视图是在程序的上下文中计算的;因此,如果有更多的规则已经定义了相同的名称和规则头的arity例如,视图a(X):-b(X)计算a和b的并集。自动临时视图自动临时视图,简称autoviews,是不需要标题的临时视图。当提交一个合取查询时,一个新的临时关系,名为答案,是建立与相关变量在合取查询中出现一样多的参数。答案是一个保留字,不能用于定义其他关系。合取查询a(X),b(Y)是autoview的一个例子,它计算a和b的笛卡尔积。两种查询语言。 一个演绎数据库提供了Datasheet和SQL语言,它们查询同一个数据库。此外,Datasheet程序可以无缝地引用在SQL端创建的对象,如表和视图2。而所谓的扩展(演绎)数据库(EDB)由数据库事实和表中的元组组成,所谓的内涵数据库(IDB)由数据库规则和关系视图组成该系统包括一个解析器和预处理器的数据库,以及一个解析器和编译器从SQL到数据库。使用演绎引擎处理SQL查询Datasheet Declarative数据库在[4]中,提出了一种将Datasheet程序锚定到语义级而不是计算级的调试方法这种方法已经在DES中实现,作为一种将声明式调试(也称为算法调试)应用于数据库程序的新方法。可以调试查询并诊断丢失的答案(未计算预期的元组)以及错误的答案(不应计算给定的计算元组)。系统使用一个问答程序,用户在以下情况下启动该程序:2请注意,SQL视图不能引用数据库关系,因为SQL表和视图附加了有关列名和类型的关系元数据,而数据库规则则没有。F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)6367他检测到某个查询的意外答案。然后,如果可能的话,它会指向导致错误的程序片段。测试例生成器DES在[5]之后实现了一个新颖的SQL视图测试用例生成器。测试用例生成为所涉及的输入表提供元组,这些元组可以与视图的预期解释相匹配,因此可以用于捕获视图中可能的设计错误。生成阳性(PTC)和阴性(NTC)测试用例。执行PTC的视图应至少返回一个元组。用户可以使用这个元组来捕获视图中的错误(如果有的话)。这样,如果用户发现这个元组不应该是答案的一部分,它肯定是视图设计错误的见证相反,执行否定测试用例的视图应该返回至少一个不应该在查询结果集中的元组同样,如果找不到这样的元组,这个元组就是设计错误的见证命令系统控制台接受与数据库签名隔离的几个命令,即,即使当关系与命令采用相同的名称时,也可以避免名称冲突这是可能的,因为提交命令意味着在它前面加上符号命令被分类为:1)规则数据库命令,用于插入、删除和列出程序和单个规则。2)操作系统命令,用于处理操作系统文件系统和外部命令。3)扩展表命令,用于有关记忆化结果的信息4)Log命令,用于将系统输出记录到文件中。5)信息命令,用于显示谓词依赖图,分层,系统状态,帮助和其他。6)Miscel- lanea命令,如退出会话和调用Prolog。批处理命令processfilename允许将文件名处理为一批用户输入。此外,如果文件des.ini位于安装目录中,则其内容将被解释为输入提示,并在将控制权交给用户之前执行。因此,自动化是可能的,例如,将DES应用程序设置为更复杂系统的组件在这种情况下,进程间通信是通过文件进行的。批处理文件可以包含注释,因为以符号%开头的提示输入行被解释为这样,这意味着没有计算。此外,命令/log允许将系统输出写入文件,该文件可供其他应用程序使用68F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)63系统状态系统的行为方式可以通过设置系统标签来修改允许几种配置:1)简化模式,其中允许自动2)程序转换,用于试图找到安全的配方(参见。“安全性和可计算性”)。3)开发模式,用于显示编译规则和内部表示的详细列表。4)Datasheet和SQL漂亮的打印列表。5)详细输出,列出有关执行的信息性报告。6)计算求反的算法的选择7)经过的时间显示,无论是基本的还是详细的。终止只要不考虑无限谓词/运算符,就确保查询的评估是终止的(数据是常数,因此不允许有无限深度的术语)。目前,只有infix运算符表示无限关系,可以提供无限对。例如,让我们考虑规则p(0)。和p(X):-p(Y),Y是X+1。 然后,查询p(X)不是终止的,因为它的含义是无限的({p(0),p(1),. })中。然而,通过明确限制其域,也可以终止涉及该运算符的程序(参见。第3节)。执行该系统已实现以下ISO Prolog,其二进制文件使用一个高效的Prolog引擎(SICStus Prolog),并实现了备忘录化技术[21,9],以提高效率。计算由查询引导,而不是遵循自底向上的方法。然而,重点并不是放在性能上,而是放在有用功能的快速原型上,因此该系统不能被视为大量数据的实际演绎数据库,此外,既不提供索引,也不允许并发访问自由和开放源码DES是免费的,开源的,并在GPL许可证下分发影响许多大学和研究人员已经使用它( http://des.sourceforge.net/des_facts ) ,其下 载statis- tics(http://des.sourceforge.net/statistics)将其作为一个活项目(预计每两三个月发布一个新版本)。统计值F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)6369下载量显著增加,过去几个月每月下载量超过1,500次(XSB为300次),自2004年以来下载量超过27,000次,Google中的条目超过32,000个图1显示了自其首次发布以来一个月的下载量(左轴以千为单位,数字为蓝色条)和带宽(右轴以GB为单位,数字为黄色表面)。此外,作为影响的问题,如果在任何网络搜索引擎中查询“数据库”一词Fig. 1. 2004年以来的统计数据交互式ShellDES已经被开发为通过交互式命令shell使用(参见下面其他系统,如DLV,不提供交互式外壳,我们发现这对学习和快速实验系统非常有用。IDEs尽管如此,还是有更吸引人的环境一方面,DES已经被插入到多平台、基于Java的IDE ACIDE中[17]。它具有语法着色,项目管理,具有版本和历史的交互式控制台,DES命令的可配置按钮,快捷方式等等(参见图2)。另一方面,Markus Triska发布了一个Emacs环境作为对该项目的贡献它包括70F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)63DES在一个缓冲器,并允许编辑和运行数据库程序与键盘快捷键。图二. DES的ACIDE集成开发环境配置多平台由于DES被移植到几个Prolog系统(包括Ciao Prolog [3],GNU Prolog[8],SICStus Prolog [20]和SWI-Prolog [24]),因此它可以在它们支持的任何平台上运行的任何环境中使用(例如,Windows,Linux glibc 2. MacOS X 10. x、Solaris 10、AIX 5.1L、.).便携式系统便携式应用程序不需要安装,可以从存储它们的任何目录运行。这相当于一个简单的启动过程:只需将文件夹复制到所需的目标并运行应用程序。DES已被编译成两个可移植的应用程序,用于Windows和Linux OS命令shell。此外,还为前一个操作系统提供了一个可移植的Windows应用程序(具有主要针对底层Prolog引擎和操作系统的配置菜单F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)63713数据库和SQL本节介绍DES中支持的查询语言。尽管如此,Prolog目标也可以提交到两种查询语言共享的演绎数据库。3.1Datalog• DES程序由一组规则组成。• 规则的形式为head:- body,或者简单地称为head,以点结尾。• 中心是一个没有内置谓词符号的正原子• 主体包含文字的合取(用• 一个字面量要么是一个原子,要么是一个否定的原子,要么是一个内置的。• 一个查询是一个文字,它的参数可以是变量或常量(一些内置的是例外,如第4节所示,并包括其他原子作为参数)。此外,还记得临时视图也可以作为查询提交,如第2节所述。不允许使用复合项,但可以作为算术表达式使用,这可以出现在某些内置程序中(用于编写算术表达式和条件)。数据库程序通常通过系统命令进行查询/consult文件名,并在DES系统提示符下键入查询。的对查询的回答是在程序的上下文中从外延数据库和内涵数据库推导出的与查询匹配的事实的集合。一个所有参数都带有变量的查询给出了定义查询关系的全部事实(意思)如果查询在参数位置中包含常数,则这意味着查询处理将从关系的含义中选择类似于具有相等条件的选择关系操作)。3.2SQLDES涵盖了遵循ISO标准的SQL语言的广泛集合,包括递归查询。该语言中包含数据在DML中,数据库更新允许通过SQL、SQL和UPDATE语句进行。此外,完整性约束作为主键和外键可以在SQLCREATE TABLE语句中指定,也可以由系统监视。已实现类型系统来检查72F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)63并推断视图和查询的类型。 DQL部分包括SELECT和WITH报表同样,SQL语句也可以在系统提示符下提交。然而,与Datasheet程序相反,它们不能被查阅,而是通过系统命令/进程文件名进行批处理。SQLDQL语句被转换为Datasheet程序并作为Datasheet程序执行,并且保留Datasheet语句的关系元数据,并且可以与命令/dbschema对象进行协商,其中可选对象可以是表或视图。提交一个DQL查询相当于解析它,编译成一个Datasheet程序,其中包括关系答案/N,其参数与语句中预期的一样多,断言这个程序并提交Datasheet查询答案(X),其中X是N个新变量。执行后,该程序将被删除。相反,如果提交了一个定义视图的XML语句,则其翻译后的程序和元数据确实会持久存在。3.3数据库与SQL数据库包含SQL,因为前者基于一阶逻辑,而后者基于扩展的关系代数。此外,Datasheet更具可读性和简洁性(参见第5.2节)。让一个可能的递归SQL公式如下:%视图:创建或替换视图shortest_paths(Origin,Destination,Length)与递归path(Origin,Destination,Length)AS(SELECT edge.*,1从边缘)联盟(选择路径。原点,边缘。目标,路径。长度+1从路径,边WHERE path.Destination=edge.OriginAND path.Length(SELECT *)从边))选择起始点、目的地、最小(长度)从路径组按原产地,目的地;%查询:F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)6373SELECT* FROM最短路径;同样的问题在Datasheet中可以表述为:% Program:path(X,Y,1):-edge(X,Y). path(X,Y,L):-path(X,Z,L0),edge(Z,Y),count(edge(A,B),Max),L0 Max,L是 L0+1。% Query:shortest_paths(X,Y,L):-min(path(X,Y,Z),Z,L).4外部联接由于未知性在现实世界的应用程序中无处不在,关系数据库很早就开始处理尽管声称由于语义不干净而存在危险(例如,参见[7]中的讨论),但表示未知数的空在数据库系统中包含空值意味着还提供内置程序来处理它们,如外部连接操作。DES包括关系数据库中常见的外部连接操作,为空值范围内的运算符提供了非常相同的语义4.1空值空值包含在每个程序签名中,用于表示未知数,以类似的方式,它是当前关系数据库系统的固有部分在Datasheet中比较空值打开了一个新的场景:两个空值不相等(已知),并且不同(未知)。所以,null = null和null \= null都不成立。然而,在not(null = null)中出现了一个语义语法,它成功了!3同样的情况发生在SQL中:条件A>B和not(A=B),其中A和B是列,在考虑空值时不会产生因此,用户必须意识到这种行为。因此,提供了两个内置谓词,而不是对可能接受空值的变量使用比较• isnull/1:测试其单个参数是否为空值。(3)平等的否定应表现为不平等。74F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)63• isnot null/1:测试其单个参数是否不是空值。4.2外部连接内置提供了三种外部连接操作,遵循关系数据库查询语言(SQL,扩展关系代数):左,右和完全外部连接。外连接计算满足第三个关系的两个关系的叉积,第三个关系扩展了一些特殊的元组,包括空值,如下所述在外部连接中,前两个关系之一中的元组在另一个关系中没有对应部分(w.r.t.第三关系)被包括在结果中(对应于没有对应元组的关系的值然后被设置为空)。如果这对叉积A×B中的关系A为真,则它是左外联接;如果对B为真,则它是右外联接;如果对两者都为真,则它是全外联接。左,右,右,和全)外连接对应于构造lj(A,B,C)(resp. rj(A,B,C)和fj(A,B,C)),具有A,B和C关系。在where条件中不能漏掉连接条件。 让假设x和y分别是表a和b的列,这些查询可以分别用SQL编写如下:SELECT* FROM a LEFT JOIN b ON x=y;SELECT* FROM a LEFT JOIN b WHERE x=y;外部联接关系也可以嵌套,如lj(a(X),rj(b(Y),c(U,V),Y=U),X=Y)这相当于下面的SQL语句:SELECT* FROM a LEFT JOIN(b RightJoin c ON y=u)ON x=y;请注意,复合条件必须括在括号内,如:lj(a(X),c(U,V),(X>U;X>V))5聚集体聚合指的是针对值的集合而不是单个值来计算值的函数和谓词我们提供了五个常用的聚集:sum(累积和),count(元素计数),avg(平均值),min(最小元素)和max(最大元素)。此外,通常情况下,4 注意,变量X对于关系a和b是共享的。F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)6375还提供了时间(累积产品)它们的行为接近大多数SQL实现,即,忽略空值。5.1聚合函数聚合函数可以出现在表达式中并返回一个值,如R=1+sum(X),其中sum预计计算X的可能值的累积和,并且X必须通过谓词绑定在一个组的上下文中(参见。下一节),其中表达式也出现。5.2同品种器械分组依据这个谓词包含一个查询,给定的变量列表为这些变量的所有可能值构建答案集(组)。如果我们考虑关系employee(Name,Department,Salary),则每个部门的雇员数量可以使用查询group by(employee(N,D,S),[D],R=count)进行计数。如果员工还没有签入部门(即, Department中的空值),则此查询的行为与SQL用户所期望的一样:从计数结果中排除那些employee。如果我们宁可要数ac-我们可以使用group by(employee(N,D,S),[D],R=count(S))查询。包括群上的聚集的条件(参见SQL中的HAVING条件例如,要统计多人部门的在职员工,可以查询:group_by(employee(N,D,S),[D],count(S)>1)条件包括元组上没有聚集体(参见SQL中的WHERE条件)的输入关系(参见SQLFROM子句)也可以使用。例如,下面的查询按部门计算工资大于1,000的员工数量:group by((employee(N,D,S),S>1000),[D],R=count(S))。请注意,下面的查询与最后一个查询不等价,因为输入关系中的变量在分组计算后不需要绑定,并且它在执行时引发运行时异常:group by(employee(N,D,S),[D],R=count(S)),S>1000。谓词groupby允许比它的SQL对应项更紧凑的表示。让q(X,C):-group_by(p(X,Y),[X],(C=count;C=sum(Y)这相当于:76F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)63Create View q(X,C)AS(SELECT X,SELECT(Y)AS C FROM p GROUP BY X)联盟(SELECT X,SUM(Y)AS CFROM P GROUP BY X);5.3聚合同品种器械聚合谓词在其最后一个参数位置返回其结果,如sum(p(X),X,R),它将R绑定到由输入关系p提供的X的值的累积和。除了上面解释的方式之外,这些聚合谓词只允许另一种例如,允许以下查询:count(employee(N,D,S),S,T)。group by操作只是通过在子句的头部包含分组变量来指定,如以下视图所示,该视图按部门计算活动员工的数量:c(D,C):-count(employee(N,D,S),S,C)。也允许有条件,包括它们作为聚合谓词的第一个参数的另一个目标,例如,在下面的视图中,它计算收入高于平均水平的员工数量:count((employee(N,D,S),avg(employee(N1,D1,S1),S1,A),S>A),C)。注意,这个查询在相同的参数位置使用不同的变量来表示两次出现的关系employee。将此查询与下面的查询进行比较,该查询计算雇员的数量在这里,相同的变量名D被用来表示计算计数和平均值的部门:count((employee(N,D,S),avg(employee(N1,D,S1),S1,A),S>A),C)。6结论本文列出了演绎数据库教育系统DES的主要特点,并描述了一些最相关的区别它作为一个独特的系统。遵循这些功能,可以从该系统中受益的预期用户包括学生,教师,从业者和研究人员,因为它可以用于在单一的数据库共享环境中学习和教授SQL和Datasheet语言。第二,试验它的特性,因为它是免费的,开源的,而且完全用Prolog(一种高抽象级编程语言)实现一方面,这允许更改其行为并添加新功能,这比使用较低抽象级别的语言或使用几种语言更容易。F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)6377另一方面,它允许在逻辑领域测试自己的建议(例如,语言和数据库扩展,本体和语义Web应用程序)。第三,作为其他系统的演绎组件,例如,需要基于知识推理的本体语义资源。我们认为,DES成功的关键特征是:易于使用/安装的交互式系统,强大的,多平台和设计已在教学中的需求为导向。然而,由于该系统是一个正在进行的项目,因此可以(并且很可能会)包括更多的改进,如与现有关系DBMS的连接,增强的性能,精确的语法错误报告,多行输入,多集等。确认这项工作得到了项目TIN 2008 -06622-C 03 -01、S- 0505/TIC/0407、S2009 TIC-1465和UCM-BSCH-GR 58/08-910502的支持。也感谢Jan Wielemaker提供了SWI-Prolog [24],Markus Triska提供了SWI-Prolog FD库[22],Daniel Diaz提供了GNU-Prolog [8],CLIP组提供了CiaoProlog [3]。最后,感谢Rafael Caballero和Yolanda Garc 'ıa-Ruiz,感谢他们为实现Datasheet声明式调试器和测试用例生成器所做的贡献。引用[1] Faiz Arni,KayLiang Ong,Shalom Tsur,Haixun Wang,and Carlo Zaniolo.演绎数据库系统LDL++。逻辑程序设计的理论与实践,3(1):61[2] 莫里茨·贝克尔塞德里克·福内特和安德鲁·戈登一种分布式授权语言的设计与语义。在CSFIEEE计算机协会。[3] F.Bueno,D.Cabeza,M.Carr o,M.Herrmenegildo,P.我是说,我是说。 Puebla.Ciao Prolog系统参考手册。技术报告CLIP 3/97.1,马德里技术大学计算机科学学院,1997年8月。可查阅http://www.clip.dia.fi.upm.es/。[4] R.Caballero,Y.Garc'ıa-Ruiz和F. 是的,是的。一种用于数据库程序的声明式编译的理论框架。在International Workshop on Semantics in Data and Knowledge Bases SDKB 2008,Lecture Notes in Computer Science的第4925卷,第143-159页中Springer,2008.[5] R. Caballero,Y. Garc'ıa-Ruiz和F. 是的,是的。一个面向SQL测试用例生成的并行逻辑编程.在Proc. International Symposium on Functional and Logic Programming(FLOPS[6] 还有一个Cal`l'abe,GeorgGotlob,和T.H. O.S.L.a.siewicz。 Datalog±:一个统一的本体和完整性约束。在ICDTACM。[7] C J日期。SQL和关系理论:如何编写准确的SQL代码。O’Reilly, Sebastopol, CA,78F. Sáenz-Pérez/Electronic Notes in Theoretical Computer Science 271(2011)63[8] 丹尼尔·迪亚兹。GNU Prolog 1.3.1.一个原生的Prolog编译器与有限域上的约束求解,2009年。可查阅http://www.gprolog.org/。[9] 苏珊娜·W迪特里希扩展表:逻辑程序设计中的备忘录关系。在SLP,第264-272页[10] 理查德·菲克斯帕特里克·J·海耶斯伊恩·霍罗克斯OWL-QL -语义Web上的演绎查询应答语言。J.Web Sem. ,2(1):19[11] 塞尔吉奥·格列柯,伊琳娜·特鲁比辛娜,还有埃斯特·尊帕诺。 NP数据库:逻辑 语言 NP搜索和优化数据库工程与应用研讨会,国际,0:344[12] 放大图片作者:A. Jeusfeld,and Christoph Quix. ConceptBase V7.1用户手册。技术报告,亚琛工业大学,2008年4月。[13] Monica S. 放 大图 片创 作 者: Michael C. Martin ,Dzintars Avots ,Michael Carbin ,andChristopher Unkel.作为数据库查询的上下文敏感程序分析。在Chen Li,编辑,Proceedingsof the Twenty-fourth ACM SIGACT-SIGMOD- SIGART Symposium on Principles ofDatabase Systems(PODS),第1ACM,2005年。[14] Nicola Leone,Gerald Pfeifer,Wolfgang Faber,Thomas Eiter,Georg Gottlob,Simona Perri,and Francesco Scarcello. 用 于 知 识 表 示 和 推 理 的 DLV 系 统 。 ACM Transactions onComputational Logic,7(3):499[15] G. Ramalingam和Eelco Visser,编辑。Proceedings of the 2007 ACM SIGPLAN Workshop onPartial Evaluation and Semantics-based Program Manipulation,2007,Nice,France,January 15-16,2007. ACM,2007年。[16] Royi Ronen和Oded Shmueli 在社交网络上评估非常大的数据库查询。在EDBTACM。[17] 我是一 个 叫 S'aenz-P'erez 的 人 。ACIDE : AnInegratedDevelopm environmentCon f igurbleforLaTeX.的PracTeX日记,2007年(3),8月 2007年可在www.example.com上查阅http://acide.sourceforge.net。[18] 我是一个叫 S'aenz-P'erez的人。DatalogEducationalSystemV1.8.1, Marc h2010.http://des.sourceforge.net/网站。[19] Konstantinos Sagonas,Terrance Swift和David S.沃伦XSB是一个高效的演绎数据库引擎。在SIGMODACM。[20] SICStus Prolog,2010. http://www.sics.se/isl/sicstus。[21] H. Tamaki和T.佐藤OLDT决议与制表。 第三届国际逻辑程序设计会议,第84-98页[22] 马库斯·特里斯卡在有限域上推广约束求解。 国际逻辑编程会议(ICLP),第820-821页,2008年[23] Je Escherey D.厄尔曼数据库和知识库系统,卷。I(经典数据库系统)和II(新技术)。计算机科学出版社,1995年。[24] 简·维勒梅克。SWI-Prolog编程环境的概述。在Fred Mesnard和Alexander Serebenik,编辑,Proceedings of the 13th International Workshop on Logic Programming Environments,第1-16页[25] 放大图片作者:Carlo Zaniolo,Stefano Ceri,Christiane Faloutsos,Richard T. 草,V.S. 苏布拉马尼安和罗伯托·齐卡里高级数据库系统摩根·考夫曼,1997年。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功