电子叙词表——结构性置标语言应用实例,本文主要内容关键词为:词表论文,结构性论文,标语论文,应用实例论文,电子论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
长期以来,叙词表作为一种将文献、标引人员和信息用户的自然语言转换成规范化语言的术语控制工具,在文献标引和信息检索等诸多方面有着广泛的应用。为了满足不同部门和单位的需要,国内外业已编制了很多种叙词表。综合性词表有《汉语主题词表》、《军用主题词表》,专业性词表有《教育主题词表》、《NASA叙词表》和《国防科学技术叙词表》等等。
一个优秀的计算机辅助标引(和著录)系统,应该是一个开放的系统,能够提供一个通用的接口,导入不同的叙词表。在此基础上可以很容易地实现不同叙词表间的切换。也就是说,该系统中的检索语言既有综合性叙词表,又有一部或多部专业性叙词表。鉴于目前的系统大都采用专用的数据格式,实现开放,只有在对等系统也开放的时候才有意义。所谓对等系统,可以是另一个计算机辅助标引(和著录)系统,也可以是一个计算机辅助检索系统,还可以是一个计算机辅助词表编制系统。对最后一种情况,开放意味着计算机辅助词表编制系统也提供一种接口,把词表数据从内部专用格式转换成一种标准和开放的格式。不同系统间词表数据导出及导入的过程见图1。
图1 词表数据共享示意图
由于这种格式与具体的应用系统无关,很自然会想到SGML和XML。对等系统必须通过解析(parse)和验证(validate)才能利用XGML和 XML置标的数据。那么解析和验证过程的基础是什么呢?或者更进一步,置标(准确地说是结构性置标)的依据是什么呢?要回答这个问题,有必要先看看关于置标的一个假设。
1 OHCO假设[1]
OHCO(Ordered Hierarchy of Content Objects)假设是指:文本(text)是树状的有序内容对象。例如一本书,可能分为若干章,每一章下面又有若干节等等。文本的内容可以分解为若干内容单元,这些内容单元又可以分解为更小的一些单元,最终结果是一个反映文本内容的树状结构,并且这一结构也必然是有序的。把文本看作OHCO的好处是:在不同的环境下创建、修改和打印文本更为容易;文本也更容易被不同的系统使用。这一假设被看作是文本置标理论与实践的基础。尽管早就有人举出很多反例来证明这是一个有缺陷的假设,但是迄今为至,人们还没能找到一个完备的假设(或论断)。[1]
2 文档类型定义
SGML和 XML都认为,文本的类型 (genre)决定了文本对象的具体结构。国外通常将SGML这一类的置标语言称为描述性置标语言,国内有人称之为结构性置标语言。笔者认为后一种说法更为明确,也更易于理解。 SGML和 XML应用的第一步是划定文本的类型,在若干实例的基础上,分析出文本的结构,最后得到一个文档类型定义(Document Type Definition:DTD)。
通常见到的叙词表都属于单语种叙词表,尽管虽然国内编制的大多数叙词表,每个款目词中都附有一个对应的英文译名,但这些英文译名和汉语叙词之间并未能做到地地对应关系,直接用它们进行英文标引(和著录)从理论上讲是有缺陷的。笔者认为,这些叙词表应看作单语种叙词表。因此下文依据单语种叙词表的国际标准ISO2788,对这些叙词表进行结构分析。[2]
3 叙词表的结构分析[2]
叙词表采用关系指示符作为主要描述手段,显示并清楚地区分入选叙词之间的基本语义关系,使众多款目词构成精巧的语义关系网。叙词表中的款目词分为优选词和非优选词(入口词)两类。首先可以定义一个“叙词表”这个元素。它是整个文档类型定义的根元素(root element)。
〈!ELEMENT叙词表 ——(优选词│非优选词)+〉
其中:
□ "〈!ELEMENT "表示开始定义一个元素
□ │
表示“或”
□ +
表示“一个或多个”
理论上讲,叙词表中没有无关联词(orphan term),即叙词表中不存在与其他款目词没有任何关系的词。为了方便地构建词间关系,有必要给每个款目词都加上一个“词号”属性。也就是说,词号是款目词的一个必备属性。
〈!ELEMENT 优选词 ——(词面,词间关系+)〉
〈!ATTLIST 优选词
词号 ID # REQUIRED〉
〈!ELEMENT 非优选词 ——(词面,词间关系+)〉
〈!ATTLIST 非优选词
词号 ID # REQUIRED〉
其中:
□"〈!ATTLIST" 表示开始定义某个元素的属性
叙词表中的款目词之间的基本关系分为三种:1) 等同关系;2) 等级关系;3) 相关关系。这三种关系对应的关系指示符及缩写见表1。
表1 款目词间基本关系指示符号及缩写
“用”还有一种变化形式——复合词组代参照:“用…和”("USE…AND"或者"USE…+")。当某个复合词(compound term)被拆解成两个组分、在标引或检索时必须组配使用的情况下,需要用这种关系。
采煤
用煤炭和采掘
与之相对,还有一种“和代”关系。例如:
煤
和代 采煤
采掘
和代 采煤
等级关系的变化形式有:
1) 属种关系,表示某个类与其成员或物种之间的关系。相关联的两个款目词称为上位词(属)(broader term (generic))与下位词(属)(narrower term (generic)),分别表示为BTG和NTG。例如:
啮齿动物
下位词(属) 鼠
鼠
上位词(属) 啮齿动物
2) 整部关系,表示一种概念内在地被包含在另一种概念之中。相关联的两个款目词称为上位词(部)(broader term (partitive))与下位词(部)(narrower term (partitive)),分别表示为BTP和NTP。例如:
生物学
上位词(部)
科学
科学
下位词(部)
生物学
3) 特称关系,表示事物与事物的类称之间具有通称和特称的关系。相关联的两个款目词称为上位词(特称)(broader term (instance))与下位词(特称)(narrower term (instance)),分别表示为BTI和NTI。例如:
童话
下位词(特称) 爱丽斯漫游仙境
4 从SGML到XML
尽管早就成为国际标准(《ISO 8879:1986信息处理——文本和办公系统——标准通用置标语言》)和国家标准(GB 14814-1993),并且有类似CALS这样成功的项目,SGML的发展主要局限在学术和工业范围之内,不象XML这样引人注目。人们经常会因此以为两者之间有很大的区别,其实不然。正是因为这一点,某些应用,例如 EAD(Encoded Archival Description:编码档案著录),能够在最大程度上同时兼容SGML和XML。[3]
XML官方站点专门对SGML和XML进行了比较。[4]两者的主要区别是:
①XML中元素名和属性名大小写敏感,SGML则大小写不敏感;
这些关系经常会交织在一起,例如,“头骨”类属于“骨骼”,同时又是“头部”的一部分,可以表示为:
头骨
上位词(属) 骨骼
上位词(部) 头部
现在可以定义“词间关系”这个重要元素了。
〈!ELEMENT 词间关系——(关系词)+ 〉
〈!ATTLIST 词间关系
关系类型(用|代|组代 |和代|上位词|下位词|上位词(属)|下位词(属)|上位词(部)|下位词(部)|上位词(特称)|下位词(特称)|相关 ) # REQUIRED〉
〈!ELEMENT 关系词——EMPTY〉
〈!ATTLIST 关系词
词号 IDREF # REQUIRED〉
叙词表的文档类型定义参见图2。当然这是一个简化的叙词表模型。只需加上不多的一些元素和属性,就能成为实用的文档类型定义。例如,每个款目词中英对照并附上拼音,叙词表加上一个前导元素,把标题、编著人、出版单位和版本信息纳入其中。
图2 叙词表文档类型结构示意图
②XML文本实例的第一行必须是这样的:
〈? xml version ="1.0"standalone="no"encoding="UTF-8"?〉
其中:
□"standalone"是可选的,表示是否需要外部文件作为文档类型定义。
□"encoding"表示UNICODE编码方案。XML1.0要求解析器必须支持UTF-8和UTF-16这两种编码方案。
③XML要求除空元素之外,所有元素的标签必须成对出现,而且空元素的写法也有一定的规定。例如有一个空元素是“换行”,它的写法应该是“〈换行/〉”。在上文的有关元素定义的叙述中,遗留了一个问题。以“词间关系”的定义为例:
〈! ELEMENT 词间关系——(关系词)+〉
其中:
□“——”表示所有标签必须成对出现,不能省略。
上文介绍的是一个SGML DTD,同时也是一个XML DTD。
5 DTD之外的选择[5]
除了XML DTD,还有可以使用其他模式语言(schema language)来描述文本结构。其中最看好的可能是W3C提出的XML Schema(上文介绍的XML DTD也是他们提出的)和微软提出的XDR(XML-Data Reduced:简化的XML数据)。
三者之中,只有XML DTD不是用XML写的,也只有它不支持名字空间(name space)。名字空间使得模式语言能够利用现有的其他成果,迅速构建文本结构模型。例如,如果使用XML Schema重新定义叙词表结构,其中的标题、编著者和出版单位等信息可以借用都柏林元数据元素集(DCMES)中的有关元素。
〈xsd:schema xmlns:dc="http://purl.org/dc/elements/1.1/" /〉
〈xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"elementFormDefault=" qualified"〉
〈xsd:element name=“叙词表”〉
〈xsd:complexType〉
〈xsd:element name=“标题”type="dc.title" /〉
〈xsd:element name=“编著者”type="dc.creator"/〉
〈xsd:element namd=“出版单位”type="dc.publisher" /〉
……
〈/xsd:complexType〉
〈/xsd:element〉
〈/xsd:schema〉
三者之中,XML Schema最为强大,包含了很多XML DTD和XDR不具备的特性,W3C希望XML Schema能够最终取代XML DTD。而XDR 虽然比不上XML Schema,却已经被微软用于BizTallk框架中。由于XML DTD支持的特性最少,所有XML DTD都可以转变成XML Schema或者XDR。
6 支持的工具
目前市面上较为流行的XML工具有:SoftQuad公司的XMetal[6]、TBICO Extensibility公司的Turbo XML套件[7]、Altova公司的XML Spy[8]。SoftQuad公司很早就涉足SGML/XML领域,几年前因为其免费的SGML察看软件Panorama而一举成名。三者的主要特点比较见表2。
表2 主要产品特点
笔者认为,下载测试版本免费试用是一种经济可行的办法。30天时间通常足以构造较为完备的叙词表文档类型定义,并且通过试用,也可以比较准确地了解这些产品的优缺点。但是构造文档类型定义只是结构性置标语言应用的第一步。
如果现有的叙词表存储在数据库中,转换成XML格式并不是一件困难的事情。因此,将历史数据先存入数据库中,再从数据库格式转换成XML格式是一种不错的办法。
XML的输出是一个很重要的问题。总的说来,目前的游览器对XML的支持还不够。微软从Internet Explorer(IE)5.0之后才开始支持XML ,Netscape 从Navigator 6.0之后才开始支持XML 。显示样式方面,IE支持 XSL和CSS,Navigator 只支持CSS。[9]微软的XML 解析器,如果不是最好的,至少也最流行的。微软的IE是支持 XML最好的游览器。微软的办公套件 Office XP(Excel 和 Access)开始支持XML。这些只是微软 XML战略的一部分。但微软站点宣称,与其说 XML会取代 HTML,还不如说它是对 HTML的一种补充。其中一个原因是,尽管微软的IE已经占据游览器市场的龙头,但支持 XML的IE5.x推出时间并不长,绝大多数网页仍然使用HTML编写。因此,国外的很多XML应用的最后一步,往往是将XML转换成HTML,当然这一点实现起来也很容易。
(本文写作过程中得到中国国防科技信息中心龚昌明研究员的悉心指导,在此表示衷心感谢。)
标签:element论文; xml格式论文; xml数据库论文; xml解析论文; 文本分析论文; 类型系统论文; xsd论文; schema论文;