信息追凶---DB2 PureXML 技术在刑侦破案的应用

信息追凶

DB2 PureXML 技术在刑侦破案的应用

developerWorks
文档选项
<script language=JavaScript type=text/javascript> </script>
将打印机的版面设置成横向打印模式

打印本页

<script language=JavaScript type=text/javascript> </script>
将此页作为电子邮件发送

将此页作为电子邮件发送

未显示需要 JavaScript 的文档选项


级别: 中级

吴敏达 (wuminda@cn.ibm.com), 信息管理软件高级技术顾问, IBM

2008 年 6 月 04 日

" People lie, Numbers don't ",看过美国连续剧 NUMB3RS 后都会为运用信息技术来进行刑侦破案的方法印象深刻。随着信息时代的到来,信息化发展也为公安工作带来了新的挑战和机遇。如何对公安数据资源进行整合和复用,实现全局性数据的综合应用、各种信息自动关联以及各类线索的自动挖掘的功能,从而为信息办案提供综合应用的结果?本文结合实例介绍了利用 DB2 PureXML 技术进行信息破案的相关技术。

综合信息关联

信息破案的重要部分就是数据线索的关联,美国 911 恐怖袭击后的嫌疑人分析就是利用信息线索关联实现快速破案。随着“金盾工程”的推进,逐步建成了八大信息资源库的综合资源数据库平台,这就有了信息线索关联分析的基础,同时也有迫切的需求。

公安的人口基本信息资源库、出入境人员资源库、机动车驾驶人信息资源库、警员基本信息资源库、在逃人员信息资源库、违法犯罪人员信息资源库、被盗抢汽车信息资源库、安全重点单位信息资源库包含了很多关联性分析,这些关联具有相应的扩展性。

我们先来看一个例子来了解信息关联的含义。如图我们看到三个孤立的信息数据,他们来自不同的数据源。第一个人的记录来源于信息源 A 的 2002 年的数据,主键编号 701;第二个人的记录来源于信息源 B 的 2003 年的数据,主键编号 9103;第三个人的记录来源于信息源 C 的 2004 年的数据,主键编号 6251。


图 1. 没有信息关联情况下的源数据
没有信息关联情况下的源数据

这种没有上下文的孤立信息在案件侦破中很难发挥重要作用。但是如果通过数据清洗和线索关联,就会发现这其实是一个有联系的上下文信息。比如通过电话关联,会发现 B-9103 的数据和 C-6251 是关联的;通过驾驶证号关联,又会发现 A-701 和 C-6251 是关联的。在整个信息关联的背后,一个完整的上下文信息就浮现出来,这给刑侦破案带来巨大的帮助。


表 1. 上下文信息的累计
元素内容来源
姓名Marc R SmithA-701
Randal SmithB-9103
Mark Randy SmithC-6251
地址123 Main St.A-701
456 First StreetC-6251
电话(713) 730-5769A-701
(713) 731-5577B-9103
(713) 730-5769C-6251
社保号537-27-6402A-701
驾驶证号0001133107A-701
1133107C-6251
出生日期06/17/1974B-9103

通过这个例子我们发现这些信息尽管对事物的描述不同,但实际上是对同一事物相互补充的描述,这就是综合信息关联。通过综合信息关联,我们可以把看似孤立的信息联系起来,在本例中,三个不同信息源的信息 A-701、B-9103 和 C-6251 被认为是同一个人相关信息。


图 2. 综合信息关联场景举例
综合信息关联场景举例

综合信息关联在公安的信息应用中有至关重要的作用,在实现上有以下特点:

  • 新的数据能够与历史的数据和线索建立联系。
  • 上下文的累积是实时实现的。
  • 数据发现数据,不是通过已知的查询。
  • 线索发布并展现给用户。

这些关联性的分析很难用 E-R 模型来描述,因为 E-R 模型本质上是一个二维的模型,通过一系列二维的关系组合来描述复杂实体对象,每个表所代表的所有实体在建模设计时没有差异性。由于在关联分析时,这种个体间的差异性不是仅仅表现在属性上,而且涉及到结构和关系,如果采用 E-R 模型,则需要为有差异的实体建立不同的表和对应关系。数据库的结构变得十分复杂,数据库中的信息变得难以理解。

XML 是一种崭新的数据模型,这种新型的数据组织方式在信息管理领域应对信息的复杂性、可理解性和灵活性的挑战开启了新的道路,迎合了技术发展的方向和潮流。

在综合信息关联的数据模型中只有采用 XML 模型才能真正实现公安业务的需求,这是基于以下几个原因:

  • 数据模式易变,信息结构的不确定性和线索本身的扩展性。
  • 数据在本质上就是层次的,包含着来自不同数据源的信息。
  • 数据所代表的是业务对象,其中的部分信息如果脱离了业务对象的上下文环境就没有意义。
  • 信息的属性非常分散。
  • XML 是易于理解的数据,可以方便地被使用。
  • 可以保留所有源系统的信息,同时保留源系统的主键。

清单 1. 把关联分析用 XML 模型来进行存储线索
                
<?xml version="1.0" encoding="UTF-8" ?>
<clue id="101">
  <信息源A id="701">
    <姓名>Marc R Smith</姓名>
    <地址>123 Main St</地址>
    <电话>(713) 730 5769</电话>
    <社保卡号>537-27-6402</社保卡号>
    <驾驶证>0001133107</驾驶证>
  </信息源A>
  <信息源B id="9103">
    <姓名>Randal Smith</姓名>
    <出生日期>06/17/1974</出生日期>
    <电话>(713) 731 5577</电话>
  </信息源B>	
  <信息源C id="6251">
    <姓名>Mark Randy Smith</姓名>
    <地址>456 First Street</地址>
    <电话>(713) 731 5577</电话>
    <驾驶证>1133107</驾驶证>		
  </信息源C>	
</clue>	      
      

众所周知,DB2 从 9 版本开始实现了 PureXML 技术,开辟了 XML 数据存储和管理的新天地,是第一个以 Native 方式同时支持关系型数据和 XML 数据的双引擎数据库。在存储方面,DB2 PureXML 可以将 XML 进行 Native 方式存储。在应用访问方面,支持 SQL 和 XQuery 两种访问方式。

管理着数百万的 XML 文档的 XML 应用程序并不罕见,因此要提供高查询性能就要为大量的 XML 数据编制索引。DB2 支持在 XML 列上建立路径特定的索引,因此元素和属性常用作谓词且可以编制跨文档连接的索引,利用索引可以快速直接访问文档中的节点,并避免文档遍历。

由于 DB2 PureXML 从根本上解决了 XML 模型的存储、管理和查询的技术问题,极大提高了 XML 模型的性能,这使得 XML 能够在公安综合信息关联应用中得到真正应用。

例如我们可以把清单 1的线索存放在 DB2 pureXML 数据库表 NUM3RS 的 TEST 字段中,然后可以使用 XQurey 轻松得到线索的相关信息,包括具体信息和与其他源系统的关联信息。查询场景和代码参见图 3清单 2


图 3. 利用 DB2 PureXML 中的 XQuery 对线索库进行查询
利用 DB2 PureXML 中的 XQuery 对线索库进行查询

清单 2. 利用 DB2 PureXML 中的 XQuery 对线索库进行查询
                
xquery
  for $i in db2-fn:xmlcolumn("NUM3RS.TEST")
  let $tel := $i//电话/text()  
  where $tel = "(713) 730 5769"
  return $i	      
      

采用 XML 模型以后,可以很容易实现线索的扩展。比如开始没有根据护照号进行关联,生成了两个独立的线索,每个独立线索都是独立的 XML。新增护照号关联以后,非常容易地通过 DB2 的 XQuery transform 来实现 XML 拼接成为一个完整的线索。


图 4. 上下文关联具有扩展性
上下文关联具有扩展性

清单 3. 利用 DB2 PureXML 中的 XQuery transform 进行线索的拼接
                
update NUM3RS 
set TEST = xmlquery('transform
                     copy $new := $i
                     modify do insert 
                     db2-fn:sqlquery ("select TEST FROM NUM3RS where CID=1000")/clue
                     into $new return $new' 
                     passing TEST as "i") 
where CID = 2000
      

架构设计如图 5,通过 IBM Information Server 对源系统的数据进行清洗、标准化后,进行上下文的分析,最后进入到 DB2 pureXML 的线索资料库中,分析和展现可以采用 IBM 的数据仓库平台 DB2 Warehouse 来完成。


图 5. 系统架构设计
系统架构设计

图 6,运用 Info 2.0 和 Mashup 相关技术,还可以轻松融合不同信息源并展示出复杂的线索关联,开发出基于 Web 2.0 的智能创新应用。

  • Resource Network :用来定义不同的信息源,保存着各种信息源的关系。这些关系一部分是数据结构间固有关系,另一部分是跟随应用不断扩展的。
  • Case Network Builder :揭示了具体案件的侦破思路和线索关联,采用 Mashup 技术在整合的界面展现出不同信息源的丰富交互。


图 6. 基于 Web 2.0 的智能创新应用
构建 Mashup 应用

智能关联语义分析

通过综合信息关联和 DB2 PureXML 的存储和查询技术,我们可以找到信息关联并方便地运用。刑侦破案除了会通过查询方式来利用信息关联,也会涉及到处理大量的文本信息,比如对案件相关人员的访谈记录、对嫌疑人的审讯笔录等。如何在这些文本信息处理中使用已知的综合信息关联,提高破案效率呢?

IBM LanguageWare Miner for Multidimensional Socio-Semantic Networks (以下简称Miner)提供了信息关联网络中语义分析的信息处理解决方案,它通过获取已知节点的信息数据,推断出新的信息节点,从而完成整个信息网络中的语义关联。

Miner 提供了信息关联网络中涉及到的语义和词典的映射功能。首先需要把已知的信息节点构建成词典,词典是基于 XML 的模型,存放在 DB2 PureXML 中。词典内容分为以下两部分内容:

  • 节点部分:存放对同一内容不同描述的定义,如 Mang David、David Mang、David F Mang、Dave Mang、David 和 Dave 都是表述同一个人。这部分 XML 信息会被 Miner 编译成为 *.lex.dic。
  • 关联部分:存放信息节点之间的关系,如 Mang David 和 Marc R Smith 是老乡,Mang David 和 Emma Doyle 同住在一起。这部分 XML 信息会被 Miner 编译成为 *.sem.dic。

针对本文的综合信息关联部分的例子,在 DB2 PureXML 存放语义词典内容如下所示。


清单 4. DB2 PureXML 中建立语义分析词典
                
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<lsxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:noNamespaceSchemaLocation="lsxml.xsd">
  <relations>
    <graph name="关联"/>
  </relations>	
  <nodes>
    <node id="A-701" type="人">
      <name text="Marc R Smith"/>
      <property name="地址" value="123 Main St"></property>
      <property name="电话" value="(713) 730 5769"></property>
      <property name="社保卡号" value="537-27-6402"></property>
      <property name="驾驶证" value="0001133107"></property>
      <link rel="关联" id="B-9103"/>
      <link rel="关联" id="C-6251"/>
    </node>
    <node id="B-9103" type="人">
      <name text="Randal Smith"/>
      <property name="出生日期" value="06/17/1974"></property>
      <property name="电话" value="(713) 731 5577"></property>
      <link rel="关联" id="A-701"/>
      <link rel="关联" id="C-6251"/>
    </node>   
    <node id="C-6251" type="人">
      <name text="Mark Randy Smith"/>
      <property name="地址" value="456 First Street"></property>
      <property name="电话" value="(713) 731 5577"></property>
      <property name="驾驶证" value="1133107"></property>
      <link rel="关联" id="A-701"/>
      <link rel="关联" id="B-9103"/>
    </node> 
  </nodes>
</lsxml>
	

我们会发现 清单 4清单 1 的内容十分类似,不同的是在语义分析词典中会包含下列指定的 XML 元素:

  • 节点:每个节点要有唯一 ID 标识,在本例中就是用信息源和主键编号作为 ID。类型属性是用来分类,而名称则是用来定义界面的显示。
    <node id="A-701" type="人"><name text="Marc R Smith"/></node>

  • 属性:每个信息节点都可以有很多附属的信息,这些信息可以作为属性部分列出。
    <node id="A-701" type="人">		 
      <property name="地址" value="123 Main St"></property>
      <property name="电话" value="(713) 730 5769"></property>
      <property name="社保卡号" value="537-27-6402"></property>
      <property name="驾驶证" value="0001133107"></property>
    </node>
    

  • 关联:一系列的关联揭示出复杂的信息网络,每个连接都是描述两个信息节点之间的关系。
    <node id="A-701" type="人"><link rel="关联" id="B-9103"/></node>
    

    多级关联之间的权重可以通过 XML 的属性的配置实现,配置可以针对特定名称的关联或者用通配符表示。在多级关联中,每次关联都会使关系权重衰减,该参数就是 strength。不同关联的连接可以人为修改 strength,这个参数就是 changing

    <relation name="manager" strength="0.7" changing="0.5" />
    <relation name="*" strength="0.4" changing="0.2" />
    

    关联的种类分为:有方向的关联、对等关联和树状关联。

    • 有方向的关联:是最常见的关联方式,需要说明正向关联和反向关联的名称。
      <digraph name="管理" reverse="被管理"/>
      <node id="John Smith">
        <link rel="管理" id="Mary Allen"/>
      </node>
      <node id="Mary Allen">
        <link rel="被管理" id="John Smith"/>
      </node>
      

    • 对等关联:用来表示对等的关系。
      <graph name="关联"/>

    • 树状关联:表明有层次的关联方式,需要说明根节点、正向关联和反向关联的名称。
      <tree name="manages" reverse="manager" root="IBM"/>

下图可以看到在 DB2 PureXML 中建立好语义分析词典后 Miner 的界面,我们可以直观浏览每个信息节点的具体内容,更重要的是可以浏览到每个信息节点相关联的其他信息节点。


图 7. 语义分析词典
语义分析词典

在使用 Miner 做语义分析的时候,只需要打开相关文本文件,如访谈记录或者审讯笔录,Miner 就会智能分词并根据词典中的线索提炼出关键信息突出显示。点击这些关键信息节点,就可以浏览相关联的信息内容。在 图 8 右边显示的是 Miner 推断出的重要信息节点,这些推断是根据上下文和词典智能推断的。举例而言,即使信息A内容没有在文本中出现,Miner 也会根据文本中多个与信息 A 关联的其他信息节点推断出建议信息 A,而这些建议信息往往是案件侦破的关键所在。通过 Miner 的智能语义关联,极大提高了了刑侦办案效率。


图 8. 信息关联的智能语义分析
信息关联的智能语义分析

信息共享平台

在刑侦破案领域,信息共享是非常重要的,信息不能被方便的使用就等同于没有信息。当发现无法快速地查询几百个公安和司法数据库的罪犯信息,所采取的行动只能是地毯式的搜查,大大降低了破案的效率。因此资源整合、信息共享正成为公安信息化的主要发展方向。建立及时的、完整的、准确的信息共享平台会极大增强刑警统一指挥、信息共享、协同作战和处置紧急情况、突发事件的快速反应能力。

XML 作为一种数据格式在上世纪 90 年代中期出现,一开始其主要的目的应用于系统间的数据交换。为便于数据交换,其设计包含了几个主要的特点。首先是采用自描述的标签式数据描述方式,数据本身描述自己的含义,从而使数据的可读性大大提高,十分易于人或程序理解。另外 XML 采用层次型(树型)的方式组织数据,通过层次关系体现出数据与数据之间的关系。层次模型能够比较清晰地描述复杂对象。而且 XML 十分灵活易于扩展,数据交换结构的变化不会影响到应用程序。

信息共享平台可以通过XML的Schema来定义 XML 模型的标准,通过 Schema 来定义交换数据所包含的信息字段以及是否符合标准,比如法庭审讯时间的字段类型等。经过近 10 年的发展,XML 已经成为数据交换的事实标准,国际上形成了很多行业性的 XML 技术标准,对信息技术产生的很大的影响。在司法和公安领域进行数据交换的行业标准称为 Global Justice XML Data Model,国外已经有使用该标准构建公安信息共享平台的案例。


清单 5. Global Justice XML Data Model 代码示例
                
<xsd:element name="ArrestArraignmentTime">
  <xsd:annotation>
    <xsd:documentation>
      A time a subject is due to appear in court 
      after an arrest to answer the charges filed.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:simpleContent>
      <xsd:extension base="xsd:time"/>
    </xsd:simpleContent>
  </xsd:complexType>
</xsd:element>

由于 DB2 pureXML 对于 XML 的 Native 方式存储,XML 报文可以作为整体、无需额外开销地存储在 DB2 的 XML 的字段中,并且在存储时对 XML 进行了解析。这样既节省了将 XML 拆分映射到数据库表的麻烦,又能提供对 XML 任意节点的查询。同时一次解析多次查询也提高了对 XML 的查询速度。这些交换的 XML 可以被 DB2 数据库原生态地管理起来。应用可以非常便捷地将 XML 以灵活的格式送入“信息高速公路”(企业总线),或者从企业总线中获得 XML,信息共享平台的能力大大增强了。信息中心可以采用 DB2 Warehouse 提供信息服务和数据分析服务。整个平台的架构如下:


图 9. 信息共享平台架构设计
信息共享平台架构设计

XML 数据不仅具有灵活性和易理解性等优势,在 DB2 pureXML 中也非常容易被查询和使用。XQuery 是查询 XML 数据的一种新语言,非常容易被业务人员所理解。

下面以 Global Justice XML Data Model 为例查询身高超过 5 英尺 11 英寸的罪犯。我们可以直接在 DB2 中执行以下 XQuery 语句,在代码中除去了命名空间 NameSpace 的声明使得逻辑更加清晰。执行结果返回两条罪犯记录,一个罪犯身高为 6 英尺,一个罪犯身高为 9 英尺 1 英寸。


清单 6. 查询身高超过 5 英尺 11 英寸的罪犯
                
XQUERY 
for $doc in db2-fn:xmlcolumn("DB2INST1.MCJE.DOCUMENT")
  /Incident/Participants/Participant/Subject
where ($doc/PersonPhysicalDetails/PersonHeightMeasure gt "511")
return
  <Perpetrator subjectheight = "{$doc/PersonPhysicalDetails/PersonHeightMeasure}">
    {$doc/PersonName/PersonPrefixName}
    {$doc/PersonName/PersonGivenName}
    {$doc/PersonName/PersonMiddleName}
    {$doc/PersonName/PersonSurName}
  </Perpetrator>     
      


清单 7. 返回结果示例
                
<Perpetrator subjectheight="600">
  <PersonPrefixName>Mr.</PersonPrefixName>
  <PersonGivenName>Berni</PersonGivenName>
  <PersonMiddleName>K</PersonMiddleName>
  <PersonSurName>White</PersonSurName>
</Perpetrator>
<Perpetrator subjectheight="910">
  <PersonPrefixName>Mr.</PersonPrefixName>
  <PersonGivenName>Cyc</PersonGivenName>
  <PersonSurName>Lops</PersonSurName>
</Perpetrator>    
      

总结

本文从信息破案的热点领域之综合信息关联、智能关联语义分析和信息共享平台进行了 DB2 pureXML 应用的探讨,DB2 pureXML 在公安行业的应用仅仅是个开始,但是我们仍然很欣喜地看到未来的前景。每一种技术都是伴随需求和挑战应运而生,为适应利用信息快速破案的业务挑战,由层次模型与传统的关系型模型结合的 DB2 pureXML 技术开创了崭新的信息应用模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值