暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

XML的半结构化数据表示方法及其在医学文档处理中的应用

非计算机专业数据库系统原理 2019-10-28
905

摘要


可扩展标识语言以其合理的数据组织结构和可扩展的特性,成为各种复杂数据,特别是半结构化数据表示和处理的良好工具。基于 一则医学文档管理的实例,详细介绍了使用表示和处理半结构化信息内容的方法、思想及特点。


关键词:XML;半结构化数据;DTD;样式单;数据表示;数据处理

半结构化数据因其异构性和自描述 (Semistructured Data) 性[3]一直缺乏良好的表示及处理手段。数据库的方法适于描 述同构数据即结构化的数据。虽然是在上大量使 HTMLWeb 用的一种方法,但的标志是描述如何显示而非描述数 HTML 据内容,因而无法反映数据的性质,不利于数据的传输、检 索、分析和挖掘。直到可扩展标识语言XML( Extensible Markup Language)[1]的出现,才从根本上解决了这一问题。

文档是文本的形式,使用标志和属性来描述数据XML 的性质,采用树形逻辑结构,这一点颇似。但与 HTMLXML 最本质的区别在于:是面向数据而非面向显示。HTM LXML 即文档并不考虑如何显示,而是集中于描述数据本身 XML 的性质与结构,这使得的标志更具直观性和准性。XML本文根据所作的关于在医学文档管理应用中的一个实 XML 例,来说明基于的半结构化数据的表示和处理方法。


1、数据模型的建立


半结构化数据具有异构性的特点,如同为患者病案,有的病案只有很简单的一份病历,而有的病案除了有多份病历外,还包括很多检查、化验报告。为了能够方便地进行同类型而不同结构的数据之间的交换及转换,需要找到一个高度灵活的、能够表达同类而异构数据的模型。XML目前用于建立数据模型的手段有两种:文档类型定义(DocumentType Definition, 和 DTD) XML大纲(XML Schema)。前者应用较早且较为广泛;后者提供了一系列新特色,对DTD的不足进行了改进,但是至今尚处于草案阶段,未形成正式标准本文以前者为背景对XML的建模方法进行介绍。


  • 1.1 数据模型结构的分析


XML采用树形逻辑结构描述数据,分析所描述数据类的结构,将其转换为树的形式。需要说明的是,结构分析是针对一个数据类而不是数据个体,应尽量全面地分析其最完整、最复杂的情况。考虑到半结构化数据的异构性,结构的分析要体现出灵活、适应性强的一面,不妨将每个子结构所允许出现的数目、出现顺序等作一标注。图1是我们对病案的数据结构进行分析后得到的部分结构树。


        图1 数据的结构树


图中所标注的符号借用DTD的使用方法,加号(+)表示可出现一次或多次,问号(?) 表示可出现零次或一次,星号(*)表示可出现零次或多次,逗号 ,( )用于在顺序列表中分隔元素,竖线(|)用于在选择性列表中分隔元素。所加的符号表示,"病案"节点中依次包含 个1 "患者概况,个 " 1 "病历,零 "到个"帐目",零到 个1 "检验报告" , 1 零到 个" " 其他档案节点;"病历" 节点包含1到多个""" 诊治记录 节点;而 检验报告"节点中可出现"血检报告 ," "尿检报告",...,"B " 超报告等节点的任意组合。


  • 1.2 DTD文档的编写


文档类型定义DTD是目前常用的定义XML数据模型的工具,通过对元素标志、内容模式、属性和实体等方面的描述来规定用于检查XML文档有效性的语法。符合XML的基本语法的XML文档被称为构造良好的文档,遵循某个DTD的构造良好的XML文档被称为有效的文档。有效的文档使同类的数据遵循相同的模型,便于数据之间的传递和转换,所以在表示半结构化数据,特别是在处理大量同类型数据时应有使用DTD检验XML文档有效性的习惯。对 XML HTML最大的改进之一是可扩展性,用户可以通过DTD自己设计扩展的元素标志,而不是局限于若干固定的元素标志。通过对字符集的XML声明,还可以使用非英文元素标志,如汉字元素标志。这使得XML文档中各部分的含义清晰了。


下面是根据前文对病案结构的分析所编写的DTD文档的一部分,将文档保存为"病案 .dtd".


<?xml version='1.0' encoding="gb2312"?>

<!ELEMENT病案(病人概况,病历,帐目?,检验报告?,其他档案 ?)>

...

<!ELEMENT   检验报告(血检报告|尿检报告|...|B超报告)*>

...

<!ELEMENT  B超报告 (检查部位,检查目的,检查结果,诊断意见,诊断医师+,检查日期,报告日期,照片*)>

<!ELEMENT 检查部位 (#PCDATA)>

<!ELEMENT 检查目的 (#PCDATA)>

...

<!ELEMENT 报告日期 EMPTY>

<!ATTLIST  报告日期年CDATA #REQUIRED

                            月CDATA #REQUIRED

                            日CDATA #REQUIRED>

<!ELEMENT  照片EMPTY>

<!ATTLIST  照片编号    CDATA #REQUIRED

     文件名 CDATA #REQUIRED

     说 明  CDATA #IMPLIED>


其中,首行是为了在XML文档中应用汉字标志而使用的XML声明。



2 XML 基于 的半结构化数据的表示


遵循DTD规定的模式,我们就可以编写XML文档了。XML文档的编写应符合以下原则:(1)包含所需要的XML声明。XML声明用于给出文档需要声明的信息,如版本号、字符集、样式单等。(2)一个单一的用于嵌套所有其他的元素和内容的顶级元素。如本例中的"病案 " 元素。(3)所有元素、属性和实体都必须使用正确的语法。XML有很严格的结构化语法规则,如元素必须使用配对的开始标记和结束标志;标志不允许交叉;空元素必须以"/"结束;属性值必须加上引号等。与HTML松散的语法要求相比,XML严格的结构化语法形式大大减少了浏览器的解析错误。


下面是按一例病案编写的部分XML文档:


<?xml version='1.0' encoding="gb2312"?>

<!DOCTYPE 病案SYSTEM "病案.dtd">

<病案>

...

<检验报告>

<B超报告>

<检查部位>肝部</检查部位>

<检查目的>确认肝部炎症或肿瘤</检查目的>

<检查结果>肝大, 肝右叶见13.3 cm ×11.9 cm 回声增强团块,边界清

心部见10.2 cm×5.9 cm不规则液性暗区,其内见细密点状回声。在团块周

围, 于后叶见1.9 cm×1.7 cm回声增强团块,于右前叶近膈顶部见4.2 cm。1.9 cm回声增强团块。</检查结果>

<诊断意见>右肝恶性神经鞘瘤</诊断意见>

<诊断医师>杨燕</诊断医师>

<诊断医师>周华</诊断医师>

<检查日期年="2000"  ="5" ="17"/>

<报告日期年="2000"  ="5" ="17"/>

<照片编号="11000517004-01" 文件名="01.gif" 说明="肚恶性神经鞘瘤的超声表现(RL:右肚)"/>

<照片编号="11000517004-02" 文件名="02.gif" 说明="肿块组织病理切片HE染色"/>

</B超报告>

</检验报告>

</病案>



3 基于XML的半结构化数据的处理


XML文档所关注的是对数据结构和内容的描述,XML文档虽然不能直接在浏览器中显示,但由于其良好的数据存储格式、高度的结构化、可扩展性等特点,在更大的范围内适应了各种类型的处理需求。


                图2 XML 采用样式单的 文档在浏览器中的显示效果


  • 3.1 XML 基于 的半结构化数据的显示


XML文档是通过样式单在浏览器中实现其数据显示的。样式单是一种专门描述结构文档表现方式的文档,它既可描述这些文档如何在屏幕上显示,也可以描述它们的打印效果,甚至声音效果等。目前,有两种样式单语言的推荐标准,一种是层叠样式单CSS(Cascading Style Sheets),另一种是可扩展样式单语言XSL(eXtensible Stylesheet Language)[4]。样式单一般不包含在XML文档内部,而以独立的文档方式存在。一个XML文档可以使用多个样式单,一个样式单也可以作用于多个XML文档。样式单与ASP、DOM等技术结 合使得XML文档的显示丰富多彩。


图2是利用XSL结合ASP技术显示一份病案的XML文档中B超报告的部分显示结果。


  • 3.2 XML 基于 的半结构化数据的管理应用


对于半结构化数据,用传统的数据库方式进行管理存在诸多弊端。如医学文档种类繁多,数据结构复杂,数据类型各异,如果用单一数据库来存放数据,则数据库过于庞大而难以实现。且由于患者病案中包含的内容各不相同,势必造成大量存储空间的浪费。如用多数据库来存放数据,则每个病案可能涉及数个数据库,一次操作也就可能包括多个库文件的相互作用,增加了系统设计的难度且影响系统运行性能。XML为半结构化数据的管理提供了一个全新的思路。


XML的如下特点适合于半结构化数据的管理需求:(1)树形数据组织形式。使XML对格式的定义严格,具有层次结构,易于规范数据的处理。(2)自描述性。标志或属性可以反映数据的性质,可被不同程序用于不同用途。使得XML不仅成为一种新的数据组织形式,而且它的面向数据交换的特性推动了半结构化数据管理应用模式的发展。(3)可格式化。由于数据和显示是分离的,可以为同一数据指定不同的样式单用于不同输出,并很容易在将来使用新的格式。(4)强大的链接能力。XML的链接机制Xlink和引用机制Xpointer可以定义双向链接、多目标链接、扩展联结和两个文档间的链接,使得数据之间的联系更加方便。


这样,对于在传统数据库中分属一个或多个数据库的一个病案,可以将其置于一个XML文档中,使得数据间横向的复杂联系转变为单一的纵向联系。


  • 3.3 XML 基于 的半结构化数据的挖掘

数据挖掘是指从大量的数据中发现隐含的规律性的内容,解决数据的应用质量问题。在XML出现之前,对半结构化数据的挖掘,由于数据本身缺乏好的表示手段,因此一直是一个研究的难题。而XML的出现为解决这个难题带来 了机会。XML能够使不同来源的半结构化数据很容易地结合在一起。XML的扩展性和灵活性允许它描述不同种类应用软件中的数据,从而通过多种应用得到数据。数据可以在中间层的服务器上进行集成,然后被发送到客户端或其他服务器做进一步的集合、处理和分发。同时,由于基于XML的数据是自我描述的,其标签和属性可以反映数据本身的性质,发送给客户端的XML格式的数据可以方便地使用应用软件、脚本或其他编程语言进行解析、编辑和处理,不需要回到服务器进行。XML为网络和半结构化数据的知识挖掘提供了许多便利的条件。


如在大量基于XML的医学文档中,我们尝试抽取符合一定条件的文档进行分析并总结诸如某种疾病多发人群的年龄段及地域分布等规律时,只要使用DOM的方法根据标签和条件值从文档中抽取特定的元素进行分析,而无需在如何获取相关信息上花太多的精力。


4 结束语


XML以其合理的数据组织结构和可扩展的特性,成为各种复杂数据,特别是半结构化数据表示和处理的良好工具。但是也应看到,由于XML推出的时间短,特别是由于大多数行业组织尚未形成公开的,标准化 的 DTD或Schema,XML的应用尚未普及,其潜力未得到充分挖掘。相信随着各项标准的不断完善,XML必将在越来越多的领域中得以大显身手。


文章转载自非计算机专业数据库系统原理,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论