【关键词】化学标记语言 化学结构检索 化学结构数据库系统
1 引言
化学标记语言CML (Chemical Markup Language)最初于1995年由Peter Murray-Rust等人基于HTML2.0开发,尝试解决在Internet上进行化学信息交换的问题。1998年2月W3C发布了XML:可扩展标记语言推荐标准1.0版。化学标记语言CML也根据XML的规范进行了更改和修订,成为根据XML的规范重新定义的一种标记语言,是XML的一个应用。
CML目前的应用已相当广泛,如MaterialsGrid、SPECTRA等项目都采用了CML,Web上也存在着大量的以CML表示的化学结构信息。由于化学学科的专业性和内容的相对独立性,目前化学信息的检索都是基于特定的数据库,如SciFinder、Chembank、ZINC、Pubchem、ChemDB、ChemMine等化学数据库。本文提出一种设计方案,将CML转换为SMILES,利用DayLight公司的THOR-MerLin系统,建立针对Web上大量存在的CML表示的化学结构的web搜索引擎。
2 系统设计框架
2.1文档的采集与内容分析
文档采集即页面抓取工作,由crawler来完成。由一组种子URL开始,从种子集URL中取出一个URL,确定相应的主机IP地址,发出抓取页面请求。对非重复文档提取出包含于其中的链接,根据制定的过滤策略(相对链接转为绝对链接,并判断链接是否需要下载),把过滤后的URL存入URL集中。同时对抓取的网页的内容进行简单的分析,保存包含CML内容的网页。最终的THOR数据库中并不保存整个网页的内容,而只是保存含有CML内容的网页URL。
CML表示的化学结构信息具有区别于网页其它内容的显明特征,它以
2.2 文档CML内容的抓取与有效性验证
经过crawler的简单过滤,文档内容存储器中的文档都含有CML内容。将文档中CML内容复制到单独的文件中。文档URL与文档产生的CML文件具有一对n关系,n为CML文件的个数。
CML内容的有效性验证分三步[2, 3]。第一步确定CML内容是否由
SMILES是一种线性的用ASCII码来表示原子和化学键的化学语言。和其它化学结构表示方法相比,SMILES简短易读。同一种化学结构用SMILES来表示要比用连接表(Connection Table)节省50%至%70的存储空间。典范SMILES能够保证每个化学结构的SMILES具有唯一性,因而常被作为化学数据库中的索引关键字。
CML 到SMILES的转换,本设计采用开源软件OpenBabel提供的API函数。OBConversion为转换类,转换伪码如下: