




已阅读5页,还剩62页未读, 继续免费阅读
(计算机应用技术专业论文)udlc中化学知识描述的语义实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 目前,计算机化学受到越来越多的重视,很多化学家以计算的方式来从事化学研 究。化学家从事计算化学研究往往需要掌握多种形式不一的脚本语言,熟悉和使用这 些脚本语言给化学家带来较大的负担。为了提高化学家的科研效率,化学领域需要有 统一的描述语言标准。另外,近年来网格技术发展迅速,以网格技术为基础的化学研 究环境受到越来越多的重视。因此,设计和实现一种面向化学家的化学网格通用作业 描述语言( u d l c ) ,是一个具有重要研究和应用意义的问题。语义解析是u d l c 的 设计和实现过程中的一个非常重要的组成部分,对u d l c 的语义实现进行研究也具 有较高研究和应用价值。 本文主要对u d l c 中化学知识描述的语义解析进行研究。首先,论文从计算化学 和网格应用的角度提出了此研究课题的研究背景,并且从化学知识描述和语义解析两 个方面介绍了相关研究问题的研究现状。其次,本文通过s m a r t s 、c h e m i c a lt e r m s 和c m l 分析了化学知识描述的发展,总结了化学知识描述的特点和方法。再次,本 文总结了编译理论的成果,重点概括了高级语言的语法、语义分析方法和a n t l r 工 具。针对u d l c 语义解析的特点,本文在第四章提出了u d l c 中化学知识描述的语 义实现方法和解决方案,并建立了u d l c 与中间语言的语句对应关系。最后,本文 介绍了转换中间件系统一i y d l c m a p p e r 的总体结构、系统边界、实现细节和示范应 用。 关键词:u d l c 、化学知识描述、语义分析、c m l 、解析器、网格 i i i a b s t r a c t a tp r e s e n t ,c o m p u t a t i o n a lc h e m i s t r yh a sb e e na l li m p o r t a n tb r a n c ho fc h e m i s t r ya n dm o r ea n dm o r e c h e m i s t sd ot h e i rr e s e a r c hb yc o m p u t a t i o n c h e m i s t sn e e dt om a s t e rav a r i e t yo fd i f f e r e n tf o r m so f s c r i p t i n gl a n g u a g et od ot h e i rr e s e a r c h , i ti sag r e a tb u r d e nf o rc h e m i s t st om a i n t a i na n d 眦m a n y s c r i p t i n gl a n g u a g e s i no r d e rt oi m p r o v et h ee f f i c i e n c yo fr e s e a r c h ,t h e r eh a v et ob eau n i f i e ds t a n d a r do f s c r i p t i n gl a n g u a g ei nc h e m i s t r y i na d d i t i o n ,、) l ,i mt h er a p i dd e v e l o p m e n to f 面d c h e m i c a lr e s e a r c h e n v i r o n m e n tb a s e do ng r i dh a sb e e np a i dm o r ea n dm o r ea t t e n t i o n t h e r e f o r e ,d e s i g n i n ga n dd e v e l o p i n g ac h e m i s t 吣f i e n t e du n i f i e dj o b - d e s c r i p t i o nl a n g u a g eo nc h e n f i c a l - g r i d ( u o l c ) i sa nu r g e n tp r o b l e m t h es e m a n t i cp a r s i n gi sv e r yi m p o r t a n td u r i n gt h ed e s i g na n di m p l e m e n t a t i o no fu 】d l c ,a n di ti sa m e a n i n g f u lr e s e a r c ht o p i cw i t hg o o dt h e o r e t i c a la n da p p l i e dv a l u e t h i sp a p e rd e s c r i b e st h es e m a n t i ca n a l y s i so fc h e m i c a lk n o w l e d g ed e s c r i p t i o ni nu d l c a tf i r s t , t h ep a p e rp r e s e n t st h er e s e a r c hb a c k g r o u n do ft h i sr e s e a r c ht o p i cf r o mt h ep e r s p e c t i v eo fc o m p u t a t i o n a l c h e m i s t r ya n dg r i d ,a n dd e s c r i b e st h er e l a t e ds t a t u sq u oi nt e r m so fc h e m i c a lk n o w l e d g ea n ds e m a n t i c a n a l y s i s s e c o n d l y , t h ep a p e ra n a l y s e st h eh i s t o r yo fc h e m i c a lk n o w l e d g ed e s c r i p t i o n ,a n ds u m su pt h e c h a r a c t e r i s t i c sa n dm e t h o d so f c h e m i c a lk n o w l e d g ed e s c r i p t i o nv i as m a r t s ,c h e m i c a lt e r m sa n dt h e c m l a g a i n ,t h ea r t i c l es u m m a r i z e st h er e s u l t so fc o m p i l i n gt h e o r y , o u t l i n e sm e t h o & o fs y n t a xa n d s e m a n t i ca n a l y s i n gi nh i g h - l e v e ll a n g u a g ea n dat o o l - a n t l r f o rt h es p e c i a lr e q u i r e m e n t so fc h e m i c a l k n o w l e d g ed e s c r i p t i o ni nu d l c ,t h ep a p e ri n t r o d u c e st h em e t h o do fs e m a n t i ca n a l y s i sa n db u l i d st h e t h em a pb e t w e e nu d l ca n dc m li nt h ef o u r t hc h a p t e r f i n a l l y , t h ep a p e rd e s c r i b e st h eo v e r a l ls t r u c t u r e , s y s t e mb o u n d a r y , d e t a i l si ni m p l e m e n t a t i o n ,a n dd e m o n s t r a t i o ni nt h et r a n s f o r m a t i o nm i d d l e w a r e s y s t e m u d l c m a p p e r k e yw o r d s :u d l c , c h e m i c a lk n o w l e d g ed e s c r i p t i o n ,s e m a n t i ca n a l y s i s ,c m l , p a r s e r ,鲥d i v 原创性声明 本人郑重声明:本人所呈交的学位论文,是在导师的指导下独立进行 研究所取得的成果。学位论文中凡引用他人已经发表或未发表的成果、数 据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含 任何其他个人或集体己经发表或撰写过的科研成果。对本文的研究成果做 出重要贡献的个人和集体,均已在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:耋勉囝鱼因e l论文作者签名:壅醴! 绳! 型剑 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属 兰州大学。本人完全了解兰州大学有关保存、使用学位论文的规定,同 意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许 论文被查阅和借阅;本人授权兰州大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本学 位论文。本人离校后发表、使用学位论文或与该论文直接相关的学术论 文或成果时,第一署名单位仍然为兰州大学。 保密论文在解密后应遵守此规定。 论文作者签名:稳困蜩导师签名: i l 第一章绪论 1 1 研究背景 第一章绪论 计算机化学( c o m p u t e rc h e m i s t r y ) 是应用计算机研究化学反应和物质变化的 科学,是多学科高度交叉、相互渗透的新兴学科,处在迅速发展和不断演变之中 1 。目前,计算机化学已经受到越来越多的重视,很多化学家以计算的方式来 从事化学研究 2 。计算机化学中的计算多是基于已有理论和软件的计算,因此 计算化学软件在化学家的研究中具有重要地位。计算化学软件内部实现了多种算 法和操作流程,为化学家的科研工作提供了极大的帮助。现在,已经有很多计算 化学软件得到了广泛的应用,它们中杰出的代表包括:g a u s s i a n 3 ,m o p a c 4 , s y b y l 5 ,i n s i g h ti i 6 】,a u t o d o c k 7 等。计算化学软件最基本的用户接口是脚 本语言,而且每一种软件都会有一种脚本语言与之相对应【8 】。化学家从事化学 研究往往要同时使用多种软件,这也就意味着化学家要掌握多种脚本语言。对于 化学家来说,熟悉和使用多种脚本语言是一个很大的负担 9 】。因此设计开发一 个通用的化学作业描述语言,使得化学家不必再去花费很多的精力来掌握那些五 花八门的脚本语言,而把翻译成具体目标脚本语言的任务交给计算机去完成,已 成为越来越迫切的任务。 近年来,网格技术发展迅速,科学家和工程师越来越多地借助网格技术来完 成自己的任务 1 0 。网格能够吸收各种计算资源,将它们转化成一种随处可得的、 可靠的、标准的且相对经济的计算能力,这样一个分布式的集成的计算与资源环 境,为实现快速、可扩展和可靠的科学计算提供了支持 1 1 】。在化学领域,化学 家采用众多的软件来协同完成研究工作,这使得以网格技术为基础的化学研究环 境受到越来越多的重视。现在已经建立起来的这种研究环境包括c c g r u d 【1 2 , o p e n m o l c n i d 【1 3 ,c o m b e c h e m 1 4 ,c h a r o n 1 5 】和g e m s t o n e 1 6 等。 从以上两段,我们可以看到一方面化学家需要一种通用的化学作业描述语 言,另一方面化学家需要网格提供的计算环境,因此设计和开发一种面向化学家 的化学网格通用作业描述语言- i7 d l c ( u n i f i e dj o b d e s c r i p t i o nl a n g u a g eo n c h e m i c a l g r i d ) ,使之能够在面向多种资源应用时,例如网格环境,可方便地转 第一章绪论 换为相应资源的操作语言,帮助化学家从繁杂的软件语言学习中解脱出来,使他 们把更多的精力专注于解决具体化学问题上,是一个具有很好的理论背景和应用 意义的研究课题。 “化学网格通用作业描述语言研究 是国家自然科学基金委支持的面上项 目,主要解决的就是上面的研究课题。此项目拟解决三方面的相关问题:第一, 设计通用化学描述语言u d l c 研究u d l c 的语法规则和语义实现;第二,u d l c 中间件的开发,实现从u d l c 到( 扩充的) c m l ,以及由c m l 到具体资源描 述语言的转换中间件;第三,u d l c 的参考实现以及开发u d l c 的用户应用环 境。在此项目中,语义解析 1 7 1 是一个非常重要的组成部分,因此对u d l c 的语 义实现进行研究具有一定的研究意义和价值。u d l c 的语义实现既包括对网格操 作流程的解析也包括对化学知识的解析,由于后者是语义解析的重点和核心,因 此本文拟从语义映射方案和具体实现角度对u d l c 中化学知识描述部分的语义 解析进行研究。 1 2 研究现状 1 2 1 化学文件格式的现状 在计算机化学中,化学知识的描述 1 8 】是一个重要问题,它是化学信息在计 算机内存储、表达和处理的基础。化学家一直在寻求一种化学分子式和反应方程 式的简便易学的表达方式。计算机化学中化学信息主要以文件或流的形式来提 供,目前已经出现了许多表达化学信息的化学文件格式,典型的如s m i l e s 1 9 , p d b 2 0 ,m o l 2 1 等。 s m i l e s ( s i m p l i f i e dm o l e c u l a ri n p u tl i n ee n t r ys p e c i f i c a t i o n ,简化分子线性输 入规范) ,是一种用a s c i i 字符串明确描述分子结构的规范。s m i l e s 由a r t h u r w e i n i n g e r 和d a v i dw e i n i n g e r 于2 0 世纪8 0 年代晚期开发,并由其他人,尤其是 日光化学信息系统有限公司( d a y l i g h tc h e m i c a li n f o r m a t i o ns y s t e m si n c ) 修改和 扩展。s m i l e s 是面向用户的语言而不是面向计算机的数据结构。s m i l e s 的词 汇表很简单只有原子和键的描述,语法限制也很少,便于使用 2 2 】。s m i l e s 中 含有连通性信息但不包括二维或三维坐标信息。在s m i l e s 中,氢原子不表达, 2 第一章绪论 其他原子用它们的元素符号来代替,“= 用来表示双键,“撑”用来表示三键,子 部分由括号来表达,环由数对来表示。s m i l e s 短语所描述的分子结构可以在化 学信息和化学情报中使用。s m i l e s 具有很多优点,其中之一就是其表达的唯一 性。一个标准的s m i l e s 表达式只会表示一个唯一的分子结构,相反一个分子结 构也只有一种标准的s m i l e s 表达式。这种分子名字和表达式的一致性方便化学 信息的交流。与链接表相比,s m i l e s 的表达式很简洁。例如:一个含有2 3 ,1 3 7 个分子结构,平均每个分子含有2 0 个原子的数据库,其中每一个原子的s m i l e s 表达式只需1 6 个字节。 p d b ( p r o t e i nd a t ab a n k ,蛋白质数据银行) 2 3 是储存3 维大生物分子如蛋 白质、核酸等的数据仓库。p d b 中的数据由全世界的生物学家和化学家用x 射 线晶体学或核磁共振光谱等方法来提供,并且可以在网上免费使用。p d b 由全 球蛋白质数据银行( w w p d b ) 来监督和管理。在结构生物学领域如结构基因组 学中,p d b 是一个非常重要的资源。大多数主要的学术期刊以及一些供资机构, 如美国国立卫生研究院,现在要求科学家们提交其结构数据到p d b 中。如果把 p d b 中的数据看作是原始数据,那么由此所衍生出的二级数据库成百上千,这 些衍生的数据库对数据的分类方式不同,例如s c o p 和c a t h 以结构类型和假 定的发展关系为依据对数据进行分类,而g o 则以基因对数据进行分类【2 4 】。 p d b 所使用的文件格式被称为p d b 文件格式。它从当初被设计到现在都是 固定列宽的,并且这种趋势将会继续持续下去,由于有这样的特点,所以其内部 物质的最大原子数是固定的,它常将大结构分割为多个文件来存储,如核糖体被 分成3 1 1 m ,3 1 1 n ,3 1 1 0 ,3 1 1 p 等文件来存储。另外,有些p d b 文件包含一个 可选部分用来描述原子连接以及位置。由于这些文件常用来描述高分子组件或溶 液中的分子,他们的数据量很大,所以其数据多是压缩存储的。p d b 自身来维 护p d b 文件格式的详细规格说明,以及其x m l 版本p d b m l 2 5 1 的规格说明。 2 0 0 7 年8 月p d b 的规格说明有较大改动,这也引出了现有p b d 数据库中的很 多问题。p d b 文件典型的扩展名是p d b ,早期使用过的扩展名包括e n t 和b r k 。 在实际中,有些分子建模工具对标准p d b 文件的格式进行了扩展以便满足自己 的需要。 m o l 是由美国m d l 信息系统公司开发的一个分子文件格式。m o l 文件格 第一章绪论 式以基于文本的连接表为基础来编码化学结构、子结构和构型信息。m o l 文件 包含原子类型,连接性和部分2 维或3 维的信息。每个m o l 文件描述一个分子 结构或查询结构,这些结构描述可以包含一些连续的片段如限定查找范围在盐或 混合物中等。由于m o l 文件不能存储晶体晶胞或对称信息,所以其相应的程序 也就无法显示单元格或接触网等 2 6 】。 1 2 2 语义实现的现状 编译理论和技术是计算机领域中的核心理论与技术之一。语义分析是编译程 序的重要部分,常与中间代码的生成同时进行。语义分析的主要任务是按照语法 范畴进行语义处理,翻译成相应的中间代码或目标代码。目前实际中比较流行的 语义描述和处理的方法是属性文法和语法制导翻译 2 7 】。语法制导翻译与语言的 语法分析的方法密切相关。语法分析是编译过程的核心,它在单词符号的基础上, 分析并判定给定语言的句子( 程序) 的语法结构,看其是否符合语法规则。根据 语法树的建立方法,语法分析方法分为两种:自上而下分析法和自下而上分析法。 自上而下的语法分析就是l l 分析 2 8 】,其中第一个l 代表从左到右的扫描输入 单词符号,第二个l 表示构造句子的最左推导。l l 分析试着从开始符号出发, 自上而下地建立起一棵语法分析树,使得该树的叶结点自左而右地排列起来,刚 好就是所给的输入串,l l 分析的本质是一种自上而下的试探分析。自下而上分 析法将源程序单词符号串自左而右地扫描输入,并逐步进行自下而上的归约,直 至归约到文法的开始符号。 目前,编译理论己经发展得比较成熟,相应实现过程比较规范,编译程序 自动生成工具相应得到了很好的发展。编译程序自动生成工具利用语言的词法规 则、语法规则和语义解释,自动产生语言的编译程序,免去很多繁琐的编程细节 工作,使程序员将主要精力用在对语言本身的分析上面,极大地减轻了程序员的 负担。现在,很多的编译程序自动生成工具已被广泛使用,如l e x ,y a c c 2 9 】, a n t l r 3 0 ,j a v a c c 31 ,d p a r s e r 3 2 ,s a b l e c c 3 3 ,j f l e x 3 4 ,g r a m m a t i c a 3 5 , c u p 3 6 ,r u n c c 3 7 ,j t o p a s 3 8 ,b e a v e r 3 9 ,s j p t 4 0 等。 4 第一章绪论 1 3 本文的主要工作 “化学网格通用作业描述语言研究是国家自然科学基金委支持的面上项 目,语义解析是此项目中非常重要的组成部分,本文所做的研究工作一u d l c 中化学知识描述的语义实现,受到此项目的支持。u d l c 的后台编译系统需要对 u d l c 进行语义解析,使u d l c 中描述的计算化学任务得到解释和执行。由于 u d l c 是面向化学家的,所以这里的语义解析有一些具体的问题需要解决。本文 的主要工作就是针对上面的具体问题展开的。本文的主要研究内容将从如下几个 方面来开展: 【1 】 分析化学知识描述的发展和研究现状,总结化学知识描述的特点和方法, 并且重点跟踪s m a r t s 、c h e m i c a lt e r m 和c m l 。 【2 】总结编程语言的发展历史和编译理论的成果,研究高级语言的语法、语义 分析方法,掌握编译程序自动生成工具a n t l r 。 【3 】研究c m l 的层次结构,设计u d l c 中化学知识描述部分的语义映射关系 和实现方案。 【4 】实现u d l c 语言到c m l 的转换中间件。 【5 】 研究g a u s s i a n 0 3 输入文件的格式特点,具体实现c m l 到g a u s s i a n 0 3 的 转换。 1 4 本文的组织结构 本文分六个部分来阐述相关工作。 第一章绪论,通过计算机化学中对软件的多样化需求以及网格计算平台的 普遍应用引出了化学网格通用作业描述语言u d l c ,提出本文的研究课题 u d l c 中化学知识描述的语义实现;在此基础上,本文又从化学文件格式和语义 解析两个角度对当前研究现状进行了分析。 第二章化学知识描述基础,从总体上阐述了化学知识描述的意义,并重点 对s m a r t s 、c h e m i c a lt e r m 和c m l 进行了讨论。 第三章语义实现概述,首先对编程语言的发展进行简介,之后总结了编译 理论的成果,并重点介绍了编译程序自动生成工具a n t l r 的使用。 5 第一章绪论 第四章u d l c 中化学知识描述的语义实现,从思路和设计的角度提出了 u d l c 中化学知识描述的语义实现方法。 第五章转换中间件的设计和实现,详细解释语义实现的细节,说明重要组 件的执行逻辑,并且展示了具体的示范应用。 第六章结论与展望,总结了本文所作的工作,分析了当前系统的不足之处, 并对未来的改进工作提出了自己的见解。 6 第二章化学知识描述基础 第二章化学知识描述基础 2 1 计算机化学 计算机化学是化学与计算机科学,乃至于数学等学科高度交叉、相互渗透的 新兴学科,深受当今计算机与网络通讯技术飞速发展的影响,处在迅速发展和不 断演变之中。以计算机为技术手段,建立化学化工信息资源化和智能化处理的理 论和方法,认识反应、控制反应过程和创造新反应、新过程是计算机化学研究的 主体。计算机化学研究的主要内容包括:化学知识如化学表达式、化合物的物理 化学性质、化学反应及其机理和条件等的计算机表示;化学信息的组织、管理、 检索和深度利用;化学数据挖掘;化学反应机理的理论计算;结构解析;药物设 计与发现;分子模拟;合成路线设计;定量构效关系研究;化学数据库等。 2 2 化学知识的描述 在计算机化学研究的主要内容中,化学知识的描述是一个重要问题,它是使 化学信息在计算机内存储、表达和处理的基础。通常,用反应方程式直接描述化 学知识的方式符合化学家的习惯,但这种描述方式十分复杂且不易被计算机所理 解。所以,化学家一直在寻求一种化学分子式和反应方程式的简便易学的表达方 式,使这种表达方式既符合化学家的日常习惯,又容易被计算机所理解和处理。 计算机化学中化学信息主要以文件或流的形式来提供,目前已经出现了许多表达 化学信息的化学文件格式,典型的如t o o l ,m 0 1 2 ,m o p o u t ,p d b ,x y z ,s y b y l , s m i l e s ,m d l ,d a t ,o u t ,s d f 等。与这些文件格式不同,目前比较流行的更偏重于 表示化学知识的方法有s m a r t s 4 1 ,c h e m i c a lt e r m 4 2 】和c m l 4 3 等。本文 下面的篇幅会详细介绍这3 种方法。 2 3s l , t a r t s 2 3 1 概述 s m a r t s 是一种可以表达子结构的语言,其表达子结构所使用的规则直接扩 7 第二章化学知识描述基础 展自s m i l e s 。例如,要在数据库中搜索具有苯酚结构的化合物,在s m a r t s 中的表达方式便是 o h c l c c c c c l 这个表达式与在s m i l e s 中的形式是很相似的。 在s m a r t s 中大多数的s m i l e s 规则说明可以直接使用,但是s m a r t s 中具有 一些灵活、高效的,且易于被化学家理解和使用的子结构查询的描述规则。 2 3 2 语言元素 s m i l e s 语言有2 种基本类型符号:原子和化学键,使用这2 种基本符号便 可以描述化合物的分子图。具体的,原子用来表达图的端点,化学键用来表达图 的边,分子的种类和性质可以通过指定原子和化学键的属性符号来实现。 s m a r t s 与s m i l e s 类似,也是通过原子和化学键符号来表达分子图,但是 s m a r t s 的属性符号比s m i l e s 丰富,它提供了逻辑操作符和更通用的属性符 号。例如,在s m a r t s 中 c ,n 】表示脂肪族的碳或氮,一( 波浪号) 可以表示任 意的化学键。 在s m a r t s 中,原子和化学键符号都可以通过逻辑运算符来组合。表1 列 出了s m a r t s 中的逻辑操作符,在表1 中,e 表示任意的原子或化学键表达式, 逻辑运算符按着优先级递减的顺序排列。 表1s m a r t s 逻辑操作符 符号 表达式含义 感叹号 ! e非e 与符号e l & e 2e l 并且e 2 ( 高优先级) 逗号e l ,e 2e l 或e 2 分号 e l ;e 2e l 并且e 2 ( 低优先级) s m a r t s 可以表达化学反应查询,它扩展的方式与s m i l e s 类似。反应查询 一般包括反应物,反应条件,生成物等部分,这几部分通过 ( 大于号) 来分隔。 第二章化学知识描述基础 通过这种方式用户可以按着需要对目标范围内的相应反应一一进行比对。 s m a r t s 支持以分子查询的方式来指定反应查询。 2 3 3s m a r t s 与s m i l e s 的比较 所有的s m i l e s 表达式都是有效的s m a r t s 表达式,但是它们的语义是不 同的。s m i l e s 描述的是分子本身而s m a r t s 描述的是模式。例如,s m i l e s 表 达式c i = c c = c c = c 1 ”描述的是苯分子,而同样的表达式 c i = c c = c c = c 1 在 s m a r t s 中的含义是:6 个脂肪碳在一个环中并且交替的出现碳碳单键和碳碳双 键。这个表达式会匹配苯分子,但不会匹配苯醚阳离子c 1 = c c = c c = c h + 】1 。 2 4c h e m i c a lt e r m s 2 4 1 概述 c h e m a x o n 公司的c h e m i c a lt e r m s 语言主要是用来描述化学表达式的 4 4 】, 它提供分子属性预测、数学函数和子结构匹配等功能,这些功能在c h e m i c a l t e r m s 语言中是以函数的形式来提供的。c h e m i c a lt e r m se v a l u a t o r 引擎是 c h e m i c a lt e r m s 的核心,内置化学计算、子结构查询等功能。目前,c h e m i c a lt e r m s 语言已经提高了数据库过滤、药效筛选、药物设计、合成及虚拟代谢途径预测等 工具的可用性。 2 4 2c h e m i c a lt e r m s 表达式 c h e m i c a lt e r m s 的语言元素包括常用运算符如加( + ) 、减( ) 、乘法( 枣) 和除( ) ;逻辑运算符如与( & ) 、或( i j ) 、非( ! ) ;化学和通用功能以及匹配条件 等。c h e m i c a lt e r m s 的表达式由赋值语句构成,以分号结束,表达式之间可以相 互引用。表达式的例子如下: a = f ( 2 ,3 ) ; b = g ( 4 ,5 ) ; x = a + b : 9 第二章化学知识描述基础 x 事x : 其中f 和g 是预定义的函数。 c h e m i c a lt e r m s 提供预定义的分子和原子团,以便简化引用分子的方法。例 如,在匹配函数中用户可以直接输入硝基( n i t r o ) 或羧基( c a r b o x y l ) 作为查 询条件,而不必书写复杂的s m a r t s 模式表达式。一个使用预定义分子的例子 如下: ; x 一 a c i d _ h a l i d e ,a l c o h o l , 【拍】c c 【群8 】- y = a l k e n e ,a m i d e ,i m i d e ,i m i n e z2 a l k e n e ,a m i d e ,a m i n e ,a l c o h o l ,i s o c y a n a t e ) 2 4 3c h e m i c a lt e r m s 函数 c h e m i c a lt e r m s 提供的函数包括通用函数、原子函数、分子函数和计算器函 数。通用函数提供简单的数组实用功能,如最小、最大值、求和、数组元素计数、 数组元素排序等。原子函数提供原子相关功能,如原子属性查询,检查原子索引 是否在原子索引数组中。分子函数处理分子的性质和属性。计算器( e v a l u a t o r ) 函数以内部的表达式作为参数,先计算内部表达式的值,根据表达式计算结果进 行后面的操作。c h e m i c a lt e r m s 函数的例子如下: , m i n ( c h a r g 7 ) ,c h 鹕e ( 8 ) ,c h a r g e ( 9 ) ) h c o u n t ( 2 ) s o r t a s c ( c h a r g e ( f i l t e r ( ”c h a r g e 0 o ”) ) ) a c c e p t o r c o u n t ( r e a c t a n t ( 1 ) ,”7 4 ”) 一a c c e p t o r c o u n t ( r e a c t a n t ( 1 ) ) l l o g d ( p r o d u c t ( o ) ,”7 4 ”) - l o g d ( p r o d u c t ( o ) ,”3 8 ”) 0 5 p k a ( r e a c t a n t ( o ) ,”a c i d i c ”,l ) 2 5c m l 2 5 1c m l 简介 c m l ( c h e m i c a lm a r k u pl 锄g u a g e ) 基于x m l 4 5 】,用于描述化学分子、化学 反应、光谱等化学数据的标记语言,它是x m l 在化学领域的具体实现 4 6 】,具 l o 第二章化学知识描述基础 有良好的健壮性,在精确信息管理方面被广泛使用。c m l 由m u r r a y - r u s t , r z e p a 等人开发,在多个领域多个机器平台上都进行了测试。传统化学信息以多种文件 形式来存储,文件类型的多样性抑制了文档的重用,c m l 利用x m l 的可移植 性帮助化学家写出可互操作的文档,提高了化学家的工作效率。为方便使用 c m l ,现在已经出现了很多可以生成、处理和查看c m l 文档的工具【4 7 】。通过 内置在x m l 中的c m l ,出版社现在也可印刷化学相关资料。c m l 为原子、分 子和晶体信息的表示提供了基本的功能 4 8 】,并且允许扩展其它化学应用。其它 格式( 宰m o l ,霉x y z 等) 的合法文件可以被引入到c m l 中而不会丢失文件中的任何 信息。 2 5 2c m l 的设计目标 c m l 的设计目标如下: 1 、c m l 应该支持各种不同的应用方式;2 、处理c m l 文档的程序应该容易 编写;3 、c m l 文档应该具有良好的可读性,并且比较清晰;4 、c m l 的设计应 该采取公开的方式;5 、c m l 文档应该容易编制;6 、c m l 不提供任何约定;7 、 c m l 是一种中立的格式;8 、c m l 应该能够支持演化,以支持未来的发展;9 、 c m l 应该能够把内容与表现相分离,从而支持对同一文档的不同显示和表现。 2 5 3c i v i l 的特点 c m l 具有很多优点。与x m l 一样c m l 具有可扩展性,只是它有自己的名 称空间。可扩展性意味着,c m l 易于管理复杂的对象结构,因此c m l 可以管理 包含其他分子的分子,这样c m l 便可以支持大分子、盐、化合物等的管理。另 外,如果科学文章是用c m l 来写的,那么借助x m l 工具这些文章就可以很容 易的进行搜索和印刷。当前的分子信息都是局限在特定的分子文件格式中的,但 是c m l 提供了一种解决方案,使得不同文件格式的分子转换时信息不会丢失。 尽管立体化学使用的并不多,但c m l 支持以原子或键为基础的立体化学。c m l 能完整记录对分子或化学系统的操作,因此适合用于管理日志系统。c m l 一个 显著的优点是显示方式与内容的分离。这种分离有利于我们查找信息、交换数据。 c m l 是自描述语言,因此c m l 文件是清晰可读的。随着c m l 技术的成熟和所 第二章化学知识描述基础 支持软件的不断增多,它将得到越来越广泛的应用。c m l 的应用主要包括:l 、 数据文件,例如支持m o l 和p d b 格式;2 、出版印刷;3 、分子格式转换;4 、 计算化学中的日志文件;5 、计算化学中的输人、输出文件。 2 5 4c 礼的元素和属性 c m l 有很多元素和属性用于描述化学信息。c m l 中的基本分子元素包括: a n g l e ,a t o m ,b o n d ,c r y s t a l ,e l e c t r o n ,f e a t u r e ,f o r m u l a ,m o l e c u l e ,r e a e t i o n , s e q u e n c e ,t o r s i o n 。其他的基本元素有f l o a t ,f l o a t a r r a y ,f l o a t m a t r i x ,i n t e g e r , i n t e g e r a n a y ,s t r i n g ,s t r i n g a r r a y 4 9 】。c m l 所支持的结构元素有c m l ,l i n k , l i s t 。c m l 中的公共属性包括c o u n t ,d i c t r e f ,s i z e ,r i f l eu n i t s ,i d 5 0 ,5 1 。 一个e m l 文档的例子如下所示: 4 5 0 0 4 5 0 0 4 5 0 0 9 0 9 0 9 0 1 2 第二章化学知识描述基础 9 4 6 2 0 8 3 9 2 0 5 2 2 1 0 9 0 0 0 0 0 110 18 0 0 9 0 0 0 0 0 a t o mi d = ”a 4 ” e l e m e n t t y p 萨”o x f r a c t = ”0 10 9 7 y f r a c t = ”0 0 8 2 3 z f r a c t = ”0 14 0 6 ”胁 , a t o ml d = a 5 e l e m e n t t y p e = ”o x f r a c t = 0 3 6 4 7 y f r a c t = ”0 2 6 71 什 z f r a c t = ”0 3 0 0 5 ”胁 由上例可见,c m l 中包含m o l e c u l e ,m o l e c u l e 中包含a t o m ,f o r m u l a ,b o n d , e l e c t r o n ,c r y s t a l ,l e n g t h ,n a m e ,p r o p e r t y ,t o r s i o n ,s y m m e t r y 。这种层次关系很 直观,符合化学家的使用习惯。 1 3 第三章语义实现概述 第三章语义实现概述 3 1 编程语言简介 3 1 1 概述 编程语言是编写程序的符号系统,这些程序一般表达一个计算过程或一个算 法【5 2 】。编程语言是用于人与计算机之间进行通讯的语言,是人与计算机之间传 递信息的媒介。对于编程语言来说以下几个方面比较重要:l 、功能和目标:计 算机编程语言是一种用于编写计算机程序的语言,其中涉及各种计算或算法任 务,并且会控制一些设备如打印机、磁盘驱动器、外部设备等等。一般来说,一 种编程语言要可以描述在具体或抽象机器上的计算任务。2 、抽象:编程语言通 常包含对定义或处理数据结构和控制流程的抽象【5 3 】。3 、表达能力:计算理论 按着编程语言表达计算的能力来对它们进行分类。所有图灵完全语言可以实现相 同的算法集 5 4 】。编程语言分成机器语言、汇编语言、高级语言三大类 5 5 】。目 前绝大多数编程者选择高级语言来编写程序,和汇编语言相比,它不但将多条相 关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的 细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令 5 6 】。 高级语言程序的执行方式有两种:编译执行和解释执行。编译执行:编译程 序将高级语言源程序全部转换成目标程序,运行时目标程序连同运行系统一起, 接受程序的输入,输出执行结果。解释执行:解释程序把源程序作为输入接收, 边解释边执行。面向对象程序设计以及数据抽象在现代程序设计思想中占有重要 地位,未来的语言将会是完全面向对象的形式,更易表达现实世界,更易为人编 写,具体的包括简单性、安全性、平台无关性、面向对象等特点。现在应用比较 广的计算机语言包括:c 语言,c + + 语言,汇编语言,p a s c a l 语言,v i s u a l b a s i c , j a v a ,c 舟等。 3 1 2 组成 编程语言的基本单元由语法和语义来定义 5 7 】。一种编程语言的表层形式被 1 4 第三章语义实现概述 称为它的语法。一种语言的语法描述语法上正确的程序在符号上的可能组合。大 多数语言是文字性的所以其语法也是文字性的语法 5 8 】。编程语言的语法通常使 用正则表达式和巴科斯范式( b a c k u s n a u rf o r m ) 来定义。一般编程语言的语 义说的是静态语义。静态语义定义了有效程序结构的限制,难以或无法用形式化 方法来表达。对于编译执行的语言,静态语义基本上包括那些可以在编译时检查 的语义规则。比如检查每个标识符使用之前是否声明,一个c 弱e 语句内的标签 是否相同等。 编程语言的实现与编译理论和编译技术有很大的关系,下面的篇幅文章将介 绍此方面的内容。 3 2 编译理论和编译技术 3 2 1 发展过程 编译理论和技术是计算机领域中的核心理论与技术之一,一般认为出现在2 0 世纪5 0 年代早期 5 9 】。编译技术的相关理论主要有形式化语言、自动机理论、 形式化语义理论等,这些理论的发展早于编译技术的发展。2 0 世纪3 0 年代,a l a n t u r i n n g 提出了图灵机模型;4 0 至5 0 年代,有限自动机方面的研究取得一定成果; 5 0 年代中期,k l e e n e 提出用自动机来识别语言,c h o m s k y 提出语言形式化定义 和用规则定义文法的概念,并证明了文法和自动机的等价性;6 0 年代b n f 范式取 得成功,形式语言取得很大发展。 2 0 世纪5 0 年代中期,f o r t r a n 等高级语言出现,相应的一批编译系统得 以成功开发。2 0 世纪5 0 年代,计算机科学家提出并研制编译程序的编译程序, 用于编译程序的自动生成【6 0 】。编译程序自动化工具利用语言的词法规则、语法 规则和语义解释,自动产生语言的编译程序 6 l 】。目前很多的编译程序自动生成 工具已被广泛使用,如l e x ,y a c c ,a n t l r ,j a v a c c ,d p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高项质量管理讲解
- 湖南体育职业学院《资本论选读》2023-2024学年第二学期期末试卷
- 2025至2031年中国摩托车灯头行业投资前景及策略咨询研究报告
- 2025至2031年中国大扁头自攻自钻钉行业投资前景及策略咨询研究报告
- 《员工培训与成长专题》课件
- 沟通有方法教育有温度-如何做好家校沟通经验分享发言稿
- 2025至2030年中国纬纱传感器数据监测研究报告
- 2025至2030年中国硬质合金可转位铣削刀具数据监测研究报告
- 2025至2030年中国电力调度自动化系统数据监测研究报告
- 2025标准版私人购房合同样式
- 浙江省湖州市德清县2025年中考语文模拟考试试卷(附答案)
- 2025年无锡南洋职业技术学院单招职业技能测试题库带答案
- T-SSFSIDC 021-2024 认股权综合服务工作准则
- T-ZMDS 10019-2024 经颅电刺激仪基本技术规范
- 2024年广东省中考数学试卷(附答案)
- 人教版六年级下册科学全册教案
- 2024福建中闽能源股份有限公司招聘12人笔试参考题库附带答案详解
- 2025年江西省旅游集团股份有限公司招聘笔试参考题库含答案解析
- 湖南省2025届新高考教学教研联盟(长郡二十校)高三第二次预热演练数学试题
- 咨询公司费用报销制度及流程标准
- 《墨家思想》课件
评论
0/150
提交评论