(计算机应用技术专业论文)基于关系数据库的prolog持久事实研究与实现.pdf_第1页
(计算机应用技术专业论文)基于关系数据库的prolog持久事实研究与实现.pdf_第2页
(计算机应用技术专业论文)基于关系数据库的prolog持久事实研究与实现.pdf_第3页
(计算机应用技术专业论文)基于关系数据库的prolog持久事实研究与实现.pdf_第4页
(计算机应用技术专业论文)基于关系数据库的prolog持久事实研究与实现.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(计算机应用技术专业论文)基于关系数据库的prolog持久事实研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安徽理工大学硕上学位论文摘要 摘要 数据库技术是计算机技术体系中最重要的部分之一。数据库技术的发展,已 经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统 的基础和核心。面对日益复杂的企业应用,数据持久层被提出并不断发展,大幅 的提高了系统开发效率,在企业应用中扮演越来越重要的角色。持久层带给应用 系统的不仅仅是简化开发过程,缩短开发周期等好处。还会减少系统的维护、运 行、管理的工作量,方便系统升级维护,减少系统总体投入费用。 本文首先对目前研究比较多的持久层理论作了综合性的介绍,原理、常用类 型及数据装载方式等。针对其中的一些问题,给出了自已的解决方法。然后结合 智能中间件项目,用s 嘶p r o l o g 开发了一种基于关系数据库的数据持久层,最后 给出如何利用该持久层对p r 0 1 0 9 事实提供持久性支持。具体而言,本文主要做了 以下工作: 1 研究,选择并优化了数据持久层 2 编码实现数据持久层 3 利用现有的持久层设计一种动态生成事实并持久化的机制 关键字:持久事实p r o l o g 数据持久层关系数据库 安徽理工大学额士学位论文f 摘要 a b s t r a c t 鞭l ed a t a b 矗s et e c h n o l o g yi so n eo ft h em o s ti m p o r t a n tp a r t s0 ft l i ec o m p u t e f t e c h n o l o g y ,w i t ht 虹d c v 曼1 9 p m e n l d a 抽a s et e c 妇o l o g y 矗a l r e a d yb e c a m et h 毒 i m p o n a i l tp a no ft h e 确v a l t di n f o n n a t i o nt e c h n 0 1 0 9 y t h ed a t a b a s et e c h n o l o g yi st h e f o u n d 越o na n d f e 蜡t h e 糕o d e i n m p 毽t e fi 赫岛糯a t i o ns y s t c ma n da p p l i c a t i o n s y s t e m f 矗c i n gt ot h ec o m p l e xe n t e 翠“s ga p p l i c a t j o n ,l h ep e r s i s t e n t 】8 y e fw a sp f o p o s e d d a yb yd a ya n 硅d e v e l o p 8 d 娃n c e a s i n g l y t h ep e f s i s l e n t1 a y o rh a sl a 蜡e l ye n h a n c e dt h e e 塌c j e n c yo ft h es y s t e md o v e l o p m e n t ,i th a sa c l e da st h em o r e 粕dm o r ei 撙p 0 娃韪n 耋f o l e 瓤斑ee 娃o 诤蛀s e a p p l i e a t i o n t h ea 西a n t a g ew h i c hp e r s i s t e n t1 a y e rt a k e s t ot h e a p p l i c a t i o ns y s t e h li sn o to n l ys i m p l i f y i n g 如ep e f & l 艇推蕺c ep e f i o d ,f e d n c i n gt h e d e v e l o pp e r i o da n ds on n ,b u ta l s or e d u c i n g 也ew o f k l o a do f 攮em 鑫主秘t e n a 珏,n l 如毯珏g 赫dm a n a g e m e n to f s y s t 伽瞳s o ,i tw o u l db ec o n v e n i e n c et op r o m o t e 粕dm a 主n t a i ns y s t e m ,a l l dr e d l l c e st h e s to ft h # s y s 螗m 。 f i r s 订y t h i sa r t i d ei n t r o d u c e st h ep e r s i s t e n t1 a y e rt l l e o r y :p r i n c i p l e ,c o m m o n l yu s e l y p ea 娃d 糖o d eo fd a t 鑫l o 稚i n 岛a n d o b fq u e s l i o n s ,i th a sb r o u g h tf o r w a r d s 0 1 u t j o ns s e c o n d l y l l i l i t e dt h ei n t e l l i 擎n c em i d d l e w a r e 删e c t ,娃h 豁d e v e l 印e do 勰 k 汪d 辨f s i s t 锶tl a y e 珀a s 穗o nt h ef c l a f i o n a ld a t a b a s ew i t ht h es w i - p m l o & l a l l g u a g e 。 f j n a l l y i ts h o w sh o wt ou s et h j sp e r s i s t e 燃l a y 娌t op 嫱v i 娃e 捶ed 挂f a b 王e 秘p p o r t 毛。 刚。唔f r o t s s a y ss p e c i | 萱c a l l y t 缸i sa n i d eh a sm a i n i yd o n et h ef o l l o w i n g3p a r t s : 1 r e s e a f c h i n 岛c h o o s i n ga n d 神蛔i z i 珏gl k 弦癌s 结n ll a y e f 2 r e a 珏z i n gt h ec h o s e np e i 苫j s t e n t1 a y e rw i t hc o d e 3 。b a s i n gp 艄i o u s 懿i s 蛀鹋p e f s i s 锺l a 弦r t h ea r 耄i c 重ed o s i g n so n ek n n o f p e r s i s t e n tm e c h a n i s mw h i c hc o u i dg e n e r a t ef a c t sd y n a m i c ly 1 【e y w o r d s :p e r s i s t e n tf a c t ,p r 0 1 0 & p e f s i s t e n ll a y e f ,a t i o n a ld 垂a b a s e i f 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得塞徽理王太堂或其他教育机构的学位或证书而使用 过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文作者签名:昊舅幻签字日期:触辞6 月8 日 学位论文版权使用授权书 本学位论文作者完全了解塞徽理工太堂有保留、使用学位 论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位 属于安徽理工大学。学校有权保留并向国家有关部门或机构送交论文 的复印件和磁盘,允许论文被查阅和借阅。本人授权盘徵堡王太 l 可以将学位论文的全部或部分内容编入有关数据库进行检索,可 以采用影印、缩印或扫描等复制手段保存、汇编学位论文。( 保密的学 位论文在解密后适用本授权书) 。同时本人保证,毕业后结合学位论文 研究课题再撰写的文章一律注明作者单位为安徽理工大学。 学位论文作者签名:哭臼u 签字日期:卿毛年月8 日 导师签名:毒幺租 签字日期:莎6 年6 月腼 安徽联t 大学硕上学位论文 概逑 1 。1 号l 言 1 概述 智能化是当前计算机、自动化、通信、管理等信息科学技术领域中的新方法、 瓤技术、赫产鑫的重要发媵方向与开发策略之一。信息处理携餐鼹纯与信息社会 对管戆豹重大霉求是天工镶魅发震豹强大麓力。入工警旋替取褥进诲多令天注强 的成果,也走过不少弯路,经历过不少挫折。近几年来,髓着计算机及网络技术 的迅虢发展,特别是因特网的太规模普及,人工智能的研究再度满跃起来,并正 向更为广阔的领域发展。圈绕人工智能的研究和应用开发也迎来一个蓬勃发展的 耨时麓。霞踅,弓| 迸与消化困际上已经广泛溅行豹臻毙强大帮遴耀的餐能程痔设 诗语言、工其与环境,辩予中国开发智能纯缎矮系统十分必要。 p r 0 1 0 9 是当代最有影响的人工智能语言之一,由于该语言徽邋台表达人的思 维和推理规则,在自然语藩理解、机器定理诞明、专家系统等方灏得到了广泛的 应用,融经成为人工智能殿用领域的强有力的开发语言。【2 1 这种逻辑语言是一种 捶述瞧( 表示闼题) 语言,箕控裁( 魏鹰求熬 过程圭逻辑程廖设计系统本赛实 疆,无褥程序设诗入员绘遵阉题算法。 当前国际上p r o l 0 0 语言的研究热点主鼷集中在: 1 积极与其它成熟的视点、学科相结合。不但引入一些重要的观点,而且和 其它的学科也有更多的交流,鲡p r o l o g 秘灞义网。随着互联网络的爆炸性增长 秀来茨巨大爰求遣绘逶髯缡程舞发震疆供了诲雾糠会,鲡在警旋修复、蘩疑鼗瑾 领域的发震。 2 - 如何生成高水平的程序。随着人工智能语言在程序性能上的卓越表现,现 在逻辑编程的焦点回归到了它最初设计时的目标:追求高水平程序和有效的解决 问题艇稷的离级公式化的工具。未来的用户不仅可以以自已的方式去理解位,字 节,攘示澜窝鼗缀这些术添,嚣显霹激毓要求键入_ 卜分详缨戆代辐绦谤算疆中簿 放出来。最终,用户通道对话就可以编制一塑应用程序或者通过对问题的必要的 描述就可以生成智能代理。 3 如何提高逻辑编程l p 的健壮性。为逻辑编程系统提供可靠的支持是非常重 塞鲞垄王态慧簦圭兰墼鲨奎 墼垄 要的,媳也许最终使得”成为现实世界的主瓣计算机语言工具存在,因此健壮 可及性熄必要的。 1 2 磷究背景 1 2 1m i s 系统的困境 m l s ( 管理薅惠系绞m 凝a g e m e n l | n f o 辩鞋聪o n 姆s e m ) 系统圭蔟撑鹣是逶雩亍 日常事物操作的系统。这种系统主要用于管理需要的记录,并对记录数据进行相 关处理眠m i s 系统通常用于系统决策,例如,可以利用m i s 系统找出目前迫切 需要解决的问题,并将信息殿时反馈给上层管理人员,使他们了解幽前工作发展 的进震或不足。换句话说,m l s 系统静最终日蛉怒使管理太员及时了鼹公司瑗状, 楚撵穆柬鹣发震菇经。 基予w 曲的m i s 系统怒对传统m i s 系统概念上的扩展,它不仅可以用于高 层决策,而且可以用于进行酱通的商务管理。通过用户的具名登录( 溅匿名登录) , 以及相应的权限控制,可以宓现在远端对系统的测监、查询、控制耜审阅。随着 l n 搬强e l 的扩矮,理有的公司鞠学校不霉蜀袋予携壤煎有形豹囊实懿蟪域,网络本 身藏为饔实上发曩豹空闻。 m i s 有了很多成功的成用,但也有大量失败躐艰难维持的案例。造成m i s 研 发极易陷入困境的原因很多,如:研发和需求的脱节,开发期间客户需求发生变 更等等。m i s 是一个复杂的软4 牛系统,要经历需求分析、系统分柝和设计、编码、 溅试等矮黪往复酶过程,嚣艇l s 使爱者往经哭蠢凌系统试运行簇鬃楚歪式运嚣才 发觉缀多功髓移荔臻性上豹缺陷,这酵磅发方的修改代价是高鼙豹。当然,深入 细致、不厌其烦的需求分析可以适当缓解这个矛盾,但很难从根本上解决问题。 如何有效的解决这种滞对乏矛盾是一个重要的问题,m i s 生成系统就是为了解 决这种矛蓐诼产生的一种新的概念。m i s 生成系统的核心思想是:研发人员不需 要铮瓣察户夔菜一穗嚣袋泉开发较转产螽,只鬟簧在强s 生残系绞审浮麴懿箍透 各种可能辫需求,当客户霄其中静菜一嵇或死种鼹求融,坟擞摇需求相应匏生成 该部分代弼。这样做的好处鼹显而易见的,当阂为客户的需求变翼硪者由于企业 的发展原先的m i s 系统不能够满足企业需求的时候,只需要在m 【s 生成系统中 。2 星篁堡三二i 兰堡圭堂垡建塞 塑垄 重新定制它的功能,再次生成即可。 1 2 2 数据持久层的提出 数据是任何计算机应用程序最重要的部分之一。信息时代企业平台上,必须 不惜任何代价保护数据,保障其数据完整性和一致性,即使面临网络故障、服务 器崩溃等突发性事件时,也是如此。为此,应用程序组件必须能够处理并发性、 连接管理、数据完整性和一致性。 持久化数据存储就是即使在服务器崩溃的情况下仍能存在的数据存储 s 。持 久数据存在于应用程序的活动内存之外,通常在数据库或平面文件系统中。虽然 持久数据被读入内部存储器以供使用或修改,但它始终被写到外部数据存储中以 长期存储。 数据库持久层就是根据上面的思想提出并实现的。企业系统中经典的三层结 构划分,一般是指表示层( p r e s e n 锄i o n ) ,业务逻辑层( b 璐i n e s sl o g i c ) 以及基础架 构层( i n f r a s t m c t u r e ) 【5 】o 1 2 3p r o l o g 语言的优势 p r o l o g 是最著名的逻辑程序设计语言,一个逻辑程序是用形式逻辑进行说 明的语句的集合,它采用的是一阶谓词演算【4 】。用一阶谓词演算表达问题求解是 p r o l o g 对计算机科学和人工智能的主要贡献。对于程序设计语言来说,用一阶 谓词演算有清淅语法和合适语义等优点。 因为这些特征,p r o l o g 在程序自动生成、程序验证和高级规范语言设计等 方面是一门非常有效的工具,具有其它开发语言无法比拟的优势。 1 2 3 中间件 中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行的系统软 件,它能够使应用软件相对独立于计算机硬件和操作系统平台,为当今的大型分 布式应用搭起了一个标准的平台,把大型企业分散的系统和技术组合在一起,实 一3 型些丛塑楚型姿 墨鎏 现大型企业威用软件系统的集成 z o 】。 中闼 孛其毒檬准豹程序接秘移游汉,酉戳实现不同硬件稻操作系统乎台上豹 数据共李和应用互操作。 中间件屏蔽了低层操作系统的复杂性,减少程序设计的复杂性,大大减少了 技术土豹负掇。数据持久层就是一种数据库中间侔,其位于数据源之上,对数据 库进行包装,为应瘸逻辑提供更蠖捷熬数攥谚阚鼹务。 1 、中间件特点及优势: 通常意义下,中间件应其有以下的嫫特点:满足大艇应用的需臻;运行于 多秽疆馋积o s 乎螽;支持分布式计算,捱供踌臻络、硬件1 稻o s 平螽的透明经 的应用或服务的交甄功能:支持标准的协议;支持标准懿接口。 程序员通过调用中间件提供的大量a p i ,实现异构环境的通讯,从而屏蔽异 梅系统中复杂静搡律系统和两络协议。 中闽搏提供客户极与鼹务器之潮静遵接黢务,这些鼹务吴霄标准瓣稷窘接日 和协议n 针对不同的操作系统和硬件平台,它们可以肖符合接口靼协议规藏的多 种实现。 中淄侔楚一稃猿立鹣系统簸箨藏簸务程序,分布式应用软彳串借助这种软件在 不同的技术之间共攀资源。中阅传软 孛管理蓑容户蠛程序稠数摆疼或纛旱懿应雳 软件之间的通讯。 中间件在分布斌的客户和服务之间扮演着承上启下的角色,如事务管瑰、负 载均簿以及基予溉b 懿计算等。 利用这些技术有助于减轻威用软件开发者的负担,使他们利用现露的磺l 牛设 备、操作系统、网络、数据库管理系统以及对象模型创建分布式应用软件时更加 褥心应手。宙予中阉件畿够保护企盈靛投赘,保证应用软件的福对稳定,婪;现应 用软 牛憋功能扩展;固时中阕估产品在缀大程度上筵化了一个垂不霜嫒转构成斡 分布式处理环境的复杂性,所以它的出现征日益引起用户的关注。 具体地说,中间件屏蔽了低层操作系统的复杂性,使稔序开发人员面对一个 麓肇蘑绕一静开发环境,弦少糕彦设计秘笺杂毪,将浚意力集孛在鑫己静、韭务上, 不必再为程序在不阉系统软件上的移攘恧蹩复工作,从焉大大减少了技术上的受 担。 中间件带给应蠲系统的不只是开发韵简单、开发阁期的缩短,也减少了系统 的维护、运行期管毽的工作量,还躐少了诗冀戡慧终赞瘸懿投入。 2 、面临的一些问题 矗 安徽理工夫学骥学位论文 概述 中阀件瞧够屏蔽操作系绞秘网络协议鹩差异,为应用程序掇供多种通讯梳制; 并提供相应的平台以满足不同领域的震要。因此,中闻传为应赐程序了一个相对 稳定的商层应稻环境。然而,中间件服务也并非“万能药”。中阅传历应遵循驰一 些原则离实际还有狠大距离。多数流行的中间件服务使用专有的a p i 和专有的协 议,使褥应用建立予单一厂家瓣产品,来自不同厂家的实现很难互搡作。有垡中 间件服务只提供一些平台昀实现,从蕊限铡了应用在异擒系统之阕的移檀。应翔 开发者在这擅中间件服务之上建立自己的应用还要承担相当大的风险,随蓑技术 躲发展他们往往还需蘧写他们的系统。尽管中间件服务提高了分布计算的抽象化 程度,但应用好发者还嚣惩临许多艰难瓣设计选择,铡如,开发者还需决定分布 应用在c l i e n t 方和s e r v e r 方的功熊分耍己。遇掌姆表示服务教在c l i e 嫩以方便傻蹋显 示设备,将数据服务放在s e w e r 以靠近数据摩,但也并非总是如此,锕况其它应 用功能妻叠何分配也是不容易确定的。 出予柢准接姐对于可移楗性葶爨标准协议对于互操作牲的重要憔,中间件醴- 成 为许多标准化工作的主要部分。对于应用软传开发,中阙传远比操作系统帮潮络 服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不 管底鼷的计算桃硬件和系统软件怎样更新换代,只要将中间件升缴更新,并保持 中闻l 牛对於螅接固定义不变,皮弱软 牛几乎不需锰僻修改,献雨保护了企娩在癍 蠲软律开发和维护中的重大投资。 中间俘是软件技术发展的一种潮流,被磐为发展最快的软馋品祧,近年来势 头强劲,当然,这也是源予市场在全球范围内对中简件的支持。毫无疑问,中间 l 牛难在成为软 牛行业耨的技术与经济增长患。 3 、基于p r o l o g 的智能 p 间l 牛项目 基于p r o l o g 的智能中阐侔项目离在简化w e b 应用的体系,尤其针对强数攒瘁的应 髑。螺管理信怠系统。其关键特征为: l m i s 功能的动态管理。 2 1 元数据管理,用于抽象数据结构; 3 ) 基于持久事实和关系数据库的数据持久性。 4 、支持分布式环境的远程谓词调厢。 5 1s s l ( 安全s 妇t ) 恣接,必要时用于敏感数据鹘传输。 6 1 必最终用户提供麓单豹功娆定划语言。 7 1 数据缓冲机制,以摄筒系统吞吐率; 8 ) 功能驱动的w 曲应用的开发,快速反应需求a ,5 安徽理丁大学硕士学拉论文 概述 9 ) s q l 抽象层,采用p r 0 1 0 9 规则简化对数据层的访问 1o ) 应用的自动编译和部署。 本文的研究内容为智能中间件项目的子项目,研究并实现在关系数摄库上的 数据持久层,旗子数据持久层对p r o l o g 事实提供持久憷支持。 1 3 论文结构 本文的第一章为引言部分,介绍了当前p r o l o g 赡究中的国内辨现状,以及 持久层开发中的相关概念及知识点。 第二章至第四章是论文的主体部分,其中第二章分缨了s w l p 妁l o g 翱较 一般逻辑编程语言( p r o l o g 或l i 印) 的主娶优势以及燮o l o g 载运蟹枧理帮关键特 性等。其中花了很大篇幅分绍了s w i p r o l o g 蛇o d b c 接日部分( 该都分秘数据 库持久层设计褰切楣关) 。 第三章里主要描述了数据持久屡鹊原理,奔缨了当兹数据持久垂豹发展璜状 和研究热点,系统的介绍了常见的羧攥持久层类型跌及数据持久屡中数据船载方 法以及数据持久层的甓求和如侮支持数撂持久层设计。 第四章主要接述了数擐持久层掏建细繁。在第霆掌墨嚣系统静阕述了妊褥翻 用s w l ,p r o l o g 为拜发语言,构建数据持久瀑 懿 鼙对关系数据痒遴行数据暂 装) ,以及翅谚砖p r o l o g 事实持久支持。 第五章总续磺究与开发过程孛褥到的一些结论、经验戳及| 幂足之熊,展蓥迸 一一步磅究的方怒帮沲窖。 。6 - 塞墼堡:! 盔堂堡圭兰垒鎏苎 ! 受! :塑璺箜 2s 辫l p r o l o g s w l p r o l o g 是当今p 辩l 甥语奏中敬一个杰爨钱表,撵对于英它鼢p 羚l o g 语言 来说它具有许多优点,如:如它的运行速度要极快,比髓l z ip r o l o g 的解耩器还要 快,和a m z i 的编译之后的程序差不多快,如果下载图形软件包x p c e 的话,还可 以开发有界面的程序。它的语法和a m z ip r o l o g 桐同,程序也可以通用。 2 。 p 沁 o 警麓余 p r o l o g 是当代最有影响的人工智能语言之一。 p r o l o g ( p 姗蟛i l n m i i l gi nl o g i c 的缩写) 是一种逻辑编程语宙。窀建立在逻辑 学酌理论基础之上,最初被运用于自然语言等研究领域,现在它己被广泛的应用 在人工餐麓静研究中。瀣予该语言穰邋台表达入筋愚维和维理瓶掰,在裔然语言 理解、极嚣定理涯睨、专家系统譬方嚣褥到了广泛熬应用,已经成为天王餐应 用领域的强有力的开发谗言【4 j 。它可以用来建造专家系统、基然语富理熬、智能 知识库等。同时它对一然通常的威用程序的编写也很有帮助。使用它能够比其他 的语言更快速地开发程潆,因为它的编程方法更象是使用逻辑的语言张描述程序。 p r o 乙0 g 来源于j a r o b i i l s o n ( i 9 6 5 ) 对定理证明的研究,特羽是归结反驳 ( f e s o l 舔。拄糟f u 穗纛。矗) 舞法翡发魏。 p f o l o g 语言是一个綦于谡词瀵葵匏嚣怠闯题求解的语富,诞生予1 9 7 0 年,出 a i nc o u l m e r a u e r 期p h i l i p p er d u s s e l 所设计。最早的p l o g 语言版本是l9 7 2 年 由法国马赛大学实现的,它的理论基础是英国爱1 堡火学w a l s l 【i 教授所提出的 归结( 消解) 原理。k o w a l s k i 曾提出;算法= 逻辑+ 控制。随箫人工智能应用特别是 霜奉五代梳计稍在2 0 整纪8 0 年代静撬出,p r o l o g 语甯才逐步为入所知。 p l o g 语富敬标准纯工侔开始予1 9 s 4 年,在溪黼标猴铯维缀l s o 韪e cj 0 l s c2 2 之下成立了p r o l 嘴工作组w g1 7 ,幽英爝国家锈瑷实骏室( n 薹 l ) 的r o g e r s c o w e n 教授主持,参加者主要来自英、法、美等国。该标准工作历时十年左右, 在1 9 9 5 年正式出版了i s o i e c1 3 2 1l ,i n f o 邶a t i o nt e c h n o l o 科p r o g r i n g l a n g u a g e s p r o l o g p a r ti :g e n e 脚c o r e ,1 9 9 5 。标准化工作对一个计算机编程语言来 讲是狠重罄静,至魏,p r o l o g 有了国际标磴。 7 墨堂墼盔堂堡:妻兰竺垫苎 ! ! ! :! 坠墅垒 p l o g 滔言主要优点: 1 w h a :r 型语言: p r o l o g 由程序设计的“h o w t od o t l l ej o b ”向“w h a t y o u 聃靴t t od o ”前进一 步。霸户只要谎弼汪籍事实是仟么,定艾斑粥( 说确对象间的关系) ,褥告诉要解 决的问燧是什么( 询阕) 就行了,不必卷潺诗舞捉始 霉一步一步骰,阕题熬求鼹 是通过p r 0 i o g 的内部机制自动生成。 2 蒎予阶谓词逻辑,既有坚实的理论基础,又有较强的表现能力; p l o g 懿文法篱荸,灌述箍力强,更接运予蠡然语言,程序荔写翁读,程序 量小。 3 p r o l o g 自动实现模式匹配( 合一功能) ,自动凰溯,这两种是人工智能系统 中常蠲的基本操作; 4 ,内部豹强溯缝力及不骥定蛙使p l o g 对鞠一令阕爨爵绘蝰多令簿; p r o l o g 具有不确定的原因肖二个;过程蚀的不确定性:p r o l o g 谰词调瘸是 用模式瓯配方式、自顶向下的深度优先搜索自动回溯策略,当变元值不满足谓词 辩产生溺溯,求褥交元之勇一德,魏_ i 龟下去煮到谓谲为囊;凳元特髋的不确定 性:系攒垲词中变元既可用来佟输入变元又霹傍输出变元的这秘性震。变元特牲 的非确定性引起提问方式的多样性,增强了交曩能力( 会话能力) 。过稷的不确定 往和交元特性的不确定性,这怒传统程序设计语言殴及另一种a l 语言l i s p 所不 具奄的餐瞧特性。 5 p r o l o g 的数据和程序的绕一,p f o l o g 提供了一种统一的数攒结构一项 脯) , 用来构造数据和程序。数据和程序并没有明显酝别,同样存在数据库中。并且提 供了掺改数据痒觞搿令a d d c l 稻d 驻l e l 。在程痔执行中,可戳自行修改数据、 改变控制,因丽可以编制能自弦修改程序魏数撼的疆廖,为实理莱些絮毙摄供了 方便; 6 递归蔻p r o l o g 语言的垂蘩特点之一。 2 2p r o i o g 语义语法 p r o l o g 的簇本语句仪蠢三秽,即事实、趣则秘基撂三糖类型瓣语匈,且酆月 谓词表示,因而程序逻辑性强,文法简捷,清晰易懂【4 】。另一方砸,p r o l o g 是陈 一8 - 安徽理一f 大学颤圭学位论空 述性语言,凰给它掇交必要的事实和规则之后,p r o l o g 就使用内部的演绎推理 机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。 2 2 1 谓词 谓词:p r o l o g 语畜的基本组成元素,从原子命题中分离而得,可以是段程 序、个数据类型或者是一种关系。它由谓词名和参数组成。两个名称不同的谓 词是不同的谓词。而髓个名称相同丽参数的数目不同的谓词也是不同的谓词。 谓词仅反映了个体的特征性质,不能将原予命题完全表示出来,所以它不是命题。 如:令f :是大学生 成f ( x ) :x 是大学生 成f ( ) :是大学生。 2 2 2 事实 事实( f a c 忸) 是p r o l o g 中最简单的谓词( p r e d i c g t e ) ,它秘关系数据瘁中的记 录十分相似。事实用来说明一个问题中已知的对象和它们之阉的关系,一个事实 是褒示对象的属性或者对象之阅关系的一个实例。事实独立秽在,辫l o g 不必对 事实进行确认。事实是p m l o g 进行推理的纂础。 在p r o l o g 摆序中,事实由谖词名及用据号括起亲蛇一个或几个对象维盛。谓 词稠对象可由熙户鱼己定义。 事实的语法结橡如下: p r e d 8 糙l ,a 培乏甜g n ) 。 其中p 糟d 为谓潺瓣名称。8 瑶l 是参数,共有n 个。+ 憝掰有豹p r o l o g 子旬静结束祷。没有参数龄谓溺形式翔下: p 持硅, 铡螽:l i 秘m ,8 i k ) 。 表示稻m 喜欢自行车这一事实。蕤串谓诵l i 酶s 完全珂戬箱任意名称静谓词 代替,完全不影确程穿挠幸亍。筑者说事实l k e s ( t 孙m ,b i 疑) 哿| 噩表示:b 珏砖是韵m 豹,只要在程侉中相同名称谓词表示耩葡意义郯可。 q 。 型翌述塑垡鲨鳖 ! 翌:鬯! 壁1 2 2 。3 规则 规则由几个互相蠢依赖性的麓单旬( 撂调) 缀成,用来描述搴实之褥的依赖 关系。从形式上番,规则出左边表示结论戆嚣终谓霭猩右边表示条彳串的髓提谓词 组成。规则的实质就是继枣起来的聋谗。 它的语法如下: h e a d :曲。曲 其中,h e 嬲是谓调黪定义部分,与事实一样,毽侄捂谓谲名稻诣词的参数说 明。:一连接簿,一般霹以读嚣热粟。酗d y 一个或多个蘑标,与查询褶同。 铡如,援则b i 避洋l 一赣馥i 氆鞋x ) j 搽( x ,耘赫髓) + 表示凡是澳秘并嚣舂蕊毛,那么它就是骂。 p l o g 懿勰释器掇供了动态褚存事实藕裁刚的方法,并黛也提供了访问它们 熬方法。数据库静更新是遥:i 窭运行c o n s u i t 或r e c o n s u h 命令。我们也可以 壹谈奁解释器中输入谓词,餐是这些谓词不会被储存簧n 硬盘上。 2 2 4 目标( 闷遂) 稻事实和黼翔写遴p r o l o g 程序中衙,就可以向p m l o g 询问有关问题的答案, 询问韵问题就楚程序遣行的目标f 4 j 。目标的结构与事实或舰刘相同,可以是一个 简荦的谓词,诡可阻跫多个谓词的组合。萌标分内、外两种,内部目标写在稷序 中,外部目标在程序运行时由鞴户手工键入。 例知闻题? 一s t u d e n t ( j o h ) 表示i o h n 是学生嘲这个问题。执行的时候由系统去当前事实库中套询匹露己, 按照当前的目标去执行,而用户不必关心它们如何去运算。 2 3p r o l o g 程序的运行机理 p r 0 1 0 9 程序是慕于h o m 子旬的逻辑程序,其运行机理是基于归结原理的演绎 推理。p r o l o g 的程序的运行是从目标出发,不断进行践配、合一、归结,有时还 。1 0 。 安徽理二 大学硕0 学位论文 s w i - p r o l o g 要回溯,直到目标被完全满足或不能满足为此。 l 。鑫交变量释绞索交量 p r 0 1 0 9 中称无值的变量为自由变爨,有值的变量为约策变量。一个变量取了 菜筐簸蓼该变量终寒予菜篷,或者滋浚交囊被菜篷掰约束,躐者说该交量被菜值 实例化了。在程序运行期间,一个自由变量可以被实例化而成为约束变量,殿之, 一个约束交蚤氆胃酸被解除箕值丽成为垂由变量。 2 + 匹配合一 滔个谓词可匹醚会,怒指两个请词静名相同,参量颈的个数栩同,参量类 型对应相同,并且对应参量颁还满足下列条件之一; 1 ) 妇采两个都楚常量,刚必须竞全穗蔺。 2 ) 如果两个都是约束变擞,则鼹个约束俊必须相同。 3 ) 如采其中一个筵常量,一个髭约束交黛,鲻约束值与常量豁须相同。 4 ) 至少有个是自由变爨。 合一能授两个能甑配的谓词合一超来,鄄为参加匹配的扇由变爨和常量,或 者两个自由变量建立一釉对成关系,似的常爨作为对应变量的约束馕,使得鼹个 对应的自由变量始终保持一至,即着其中的个被菜值约束,则另一个也同时被 同一憾约束;反之,港其中个的值被鳞除,则另外一个的傻也被解除。 合搡律是p f o l o g 的一个特有机铡。 3 。回溯 所谓回溯,是指程程序运行期间,当菜一个子目标不能满足时,控制返网到 蘸一个已经满足的子匿标,并擞游其窍关交爨的约束德,然麓再使其霪瓤满怒f 4 l 。 成功艏,再集训满足原子目标,如果失败的予目标前再无予髓标,则控制就返回 到该予星标黪上一缀翳标( 即该垦标谩词赝在豹规则熬头部) 使它羹薮珏配。隧 溯是p r o l o g 的一个重骚机制。 以上解释了p r 0 1 0 9 程序遂行过程中的三个基本概念。p r o l o g 程序的执行过程 是一个归结溱绎接理熬过程,其特点楚:推爨方式炎反自接联,控蜊曩孽率是深疫 优先,具有回溯机制。具体实现方式摄;匹敞子旬的顺序是自上而下;子目标选 择蹶黟是扶炭裂袁;爨缝嚣产生魏颞子强撂慧是撬入羧消去豹鑫标位置凝( 瓣爨 标队列的左部) 。p r o l o g 的这种归结演绎方法被称为s l d ( l i n e a r r e s o l u t i o n 惭m s e l 。文i o 拄鑫l 珏e 圭i o 珏蠡臻犰萎珏沁e l a n s e ) 弱结,绒s l o 菠驳,瀵熬法。s 溺羟绪髋是 p r 0 1 0 9 程序的运行机理。 】l 一 安瓣理夫学颈士学挝谚文s v 娃p 姻l 露g 2 4s w l p r o l o g 的关键特性 s w l 一 婚l o 鐾是蓠兰a m s e 砖a 雉大学嚣c s ( 辩珏m a 贽一c c 蠛印挺 s l h d 癫实验室嚣爱 萋予p 鳓k 培语言静集成开发环境,蕻语言姆褴符台福疲静西黼标准l s 踟e e 1 3 2 1 1 1 :1 9 9 5 l 稍。s w i p f o l o g 怒当今颓一代开发键化或用躲强礴力王爨,它支赫 基于网络瓣开发、数据岸、多媒体等,并提供了蕊他语言的编程接翻。s w l 。p m l o 照 其有模式甄配、递! 琏、回溯、事实数撼库和谓词艨等强大功能。藏键含褥建大型 应臻稷穿辑嚣要魏一韬特瞧:臻澎舅麓嚣凌、缡潺器、连接嚣嚣壤试器、支黪覆 块纯程序设计、支持系统级编程、文件操作、字符枣处理、位运辫、鬓术与逻辑 运算,以搜与其他编程诺言的接目。s w l p 辩l o 冀逶包含个大鼙霹,内建了包括 o 粉b e 数据库谓词和因特阐谓词( s o c k e t ,s s l ,h t t p 等) 。s w l p r o l o g 支持 w l n d o w s9 蝴镰鲫q 玎2 0 0 彤x p ,0 s 2 ,琰n u x 和s c o ,u n l x 等搽终系缝。 s w l 撑鹂o g 鬟摸了令兔费溺慧疆謦开发骂凌,灌矮璩公荚诲霹。 s w i p 珊l o g 以及它鼹强影工艇包x p c e 懿开发始予1 9 掰年。譬瓣s w l p 翻o g 广 泛应翔予研究、教商帮裔地皮用中。 s w k p 删0 9 目前的最高版本是5 + 6 ,它包含以下的重要特征: 1 肉羧是基于璐魏诲可煞。扩矮蓐是基予蠢条终鲍g p l 许霹,允诲在菲 l 静斑愆中餐臻。 2 姨逮编译。 3 懈、拄。 4 小巧,全部开发骂蟪,镪括醋形王具毯,备m 萃孛类库和著千接目德在一起只 占大约2 7 淤熬窆闽。甭含整形凑梭黪包仅仅7 5 0 k 。 5 霹潋鼹寒舞发丈壅擎鳓l o g 罄彦,在疆_ 擎大,l 、,菰子长褰,谬谰颁鹣令数, 毅及整数类型上没有任何隈稍。 6 熬子g m p 库的蹙数和露理数的算法。 7 。大爨豹内嚣谱词兼裙l s o 标准,d i c - f a c t oe d i n b u r 砖p r o l o g 栎壤、q u i m s , s l e s 撼sp 鳓l 键弱蓬要熬分。 8 赞对,丰疆供了浃遽秘域两a p l 。攘褥它宙j 之随可戳褥甄踱调糟。 9 模块机制,垃圾回收机制,最近调用优化。 1 0 。溉可运行于u 矗i 彩l i 娃u x ,由可以运行在黼n d o w s 平台,m a co s 平台环境 下。同辩支持3 2 使和6 4 彼的硬件环境。 ,王2 塞墼型王奎鲎! ! :妻堂垫堕苎,。;! 型! ! 垦q ! 竺鱼 1 1 内部使用u n i c o d e 进行处理,对w 曲和国际化的艨用来说,非常理想。 1 2 机器无关的状态保存机制,在一个平台保存状态后,可以在其他乎蠹的 虚拟机上运行。 13 多线程支持,适合处理网络服务楣关的威用。 1 4 可以直接生成各孝申平台棚关的可执行代码。 1 5 提供快速,可扩展的类摩来解板s g m l ( h t m l ) ,旺l ,姻f 等。 s w i p r o l o g 提供了免费的集成开发毯境,可以方便邀行程枣运雩亍时x 壹程詹运 行状态进翻:监测、调试。s w l - p 燃o g 还提供了系统缡程、文 孛处理、字符魅理、 翼术及逻辑运算能力和强大的谓词痒,支持模块化软馋舞发,逶过将程序分解势 若干模块,用寒开发大型应用程廖。 2 。5s w l p l o 裔的0 d 8 c 接舀 p 羚l o 鬈豹r d m s 箨焉常常被离话,作为p r o l o g 本身就能够管理一定数量的数 据。不过懿果程序通过r d m s 提傻数据,并羹数据必须与其它应用程序共享,或 者有强劲持续酶数搽传输嚣求,或有很多数据婺装入内存的时候,使用 p l o g 艉d m s 按西藏蘩有效静多f 2 8 】。通用的o d b c 接口使向备平台下的多种多样 数据瘁提供一个单一酌鞠m s 接黼成为可能。 下面简单介韬下s w i p r o l o g 的o d b c 层 2 5 1 连接管理( e o n n e c t i o nm a n a g e m e n t ) 0 d b c 接口可以娥理在单一0 d b c 环境下的多并发联接。以下介绍的谓词都 用于逢接管理: 1 谓蕾a :o d b ce o n n e c t 格式:o d b 9 _ c o 岫o c “十d s n ,一c o i l l l e c t i o n ,+ o p t i o n s ) 功能:创建一个到数据资源d s n 的新o d b c 连接,并返回一个旬桶到事次 连接的量c o n n e c t i o n 中。下面给出常用的o p t i o n s 选项: 1 ) u s e r ( u s e r ) 定义本次连接的用户名。如果数据库须要认证,这个选项必须给出。 13 + 安徽理王天擎矮i 。学位论文 2 ) p a s s w o r d ( p a s s w o r d ) 提供连接的密码。密码般对应于用户名。 3 ) a l i a s ( a i i a s n a m o ) 使用别名( a l i a s n 锄e ) 作为涟接标识符可以使邋接更易识别,其有通用的意 义。一个比较好的做法是使用d s n 作为别名。 4 ) 叩e n ( o p e n m o d e ) 如果o p e n m o d e 设鼍成o n c e ( 默认,假设提供了别名) ,则对同个d s n 再 次连接的时候仅仅返回现有的连接。如果0 p e 心如d e 设鼹成m u l t i p l e ( 默认,假 如没商别名) ,则再次连接到同一个数据资源的时候就会打开连接。 例: o p e n _ m y c o n n e c t i o n :一 o d b 9 o n n e c t ( m y c o 苴1 1 1 e c l i o n ,一, 【u s e r ( i a n ) , p a s s w o r d ( x x x x 8 l i 粘0 “y c o n n e c 墩i n ) , 唧n ( o n c e ) 】) 本例定义了谓词o p e 毽- m y c o 黻e c l i o 娃,功姥是创建到数撂獒源垂y c o 赫e 艇醴 的连接,其中用户名必j 躺,密码是x x x ,捉开摸式是次。 2 谴邂;o 曲妇魏狂e e | 格式;醴踺泌。糯e 暖+ 。髓e c t i o 垮 功能:关阉给出豹连接( c o 黼积泌建) ,释放相关靛资源。辩除连接煞瘸名, 使褥露续锭用该连接麴操作势# 法。 3 甍;誊;:o d b c 声赣l l 孳珏专o 赫髓e 确o n 格式;o 曲e j u f 砖琏- c o 秘露e 韵n ( 瓮o n n e c t i o n ,? d s n ) 功能:列举密对予数据资源玲s n 静警前连接 4 谓谲:o 赫c - s e l c o 珏神t i o n 格式:o d b c _ s 岳t _ _ c o 瑚e c t i o n ( + e o n n e c t i o n ,+ o 埘o n ) 功能:设置一个蠢l 经存在连矮的o p t i o n 选项。所有这里设鬣的o p t i 衄选项 均应该在o d b c _ c o n n e c 坦谓词的o p t i o n 选项表中给出。可设鬣的常用选硕包括: 1 4 * 安徽理工大学硕士学位论义 1 ) a c c e s s _ m o d e ( m o d e ) 鲡果m o d e 设置为r e a d ,表示仅仅对数据库迸行读操作。如果m o d e 设鼹为 u p d a t e ( 默认) ,则表示可能对数据摩进行更毅操作。 2 ) 毫撒o j o 撞n h ( b 0 0 1 ) 如果其值为真( 默认) ,则每次更新会被立即执行。如果必假,则曼教可以被 捷行也可以擞港。 2 5 。2 运行s 魄查谗 o d b c 中照s q l 语句串字蘧直接执行与鑫蠢参数s c l 浯旬是奢区别黪。翦 一耱俸为一耱篱单的操作一般檄少使用( 鲡创建一个表) ,而含有参数揉作可以为 驱动程序和数据库简化查询并贮存优化代码。另外它能不邋过s q l 语甸传递参 数,这样就避免了交叉弓| 耀。 1 谓词o d b 冀i q u e r y ( 不含参数) 撰式:o d b e u e f y ( + c o n 弦蛀傩,+ s q l ,一凡料o f a 虢e 耄e d ,阳伽s ) 功能:在绘寇的数据连接上开始一个s q l 查询,这里的s q l 可以是任何有 效的s q l 语句。 如是s 札语句燕s e l e c t 语向受l j 查询结采会按r o w o r a f f b c t e d 选项疑示结 果,默认为r o w ,逐行取记渌,方便圊溯。如果使用n n d a l l 2 选项则会一次列戡 骺有查询结粱。 例;1 e m m a ( l e m m a ) :一 。曲c 辩翠( m y c o 珏珏。碟鳓, s e l e c t ( 1 e m m a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论