综合信息关联
信息破案的重要部分就是数据线索的关联,美国 911 恐怖袭击后的嫌疑人分析就是利用信息线索关联实现快速破案。随着“金盾工程”的推进,逐步建成了八大信息资源库的综合资源数据库平台,这就有了信息线索关联分析的基础,同时也有迫切的需求。
公安的人口基本信息资源库、出入境人员资源库、机动车驾驶人信息资源库、警员基本信息资源库、在逃人员信息资源库、违法犯罪人员信息资源库、被盗抢汽车信息资源库、安全重点单位信息资源库包含了很多关联性分析,这些关联具有相应的扩展性。
我们先来看一个例子来了解信息关联的含义。如图我们看到三个孤立的信息数据,他们来自不同的数据源。第一个人的记录来源于信息源 A 的 2002 年的数据,主键编号 701;第二个人的记录来源于信息源 B 的 2003 年的数据,主键编号 9103;第三个人的记录来源于信息源 C 的 2004 年的数据,主键编号 6251。
图 1. 没有信息关联情况下的源数据
这种没有上下文的孤立信息在案件侦破中很难发挥重要作用。但是如果通过数据清洗和线索关联,就会发现这其实是一个有联系的上下文信息。比如通过电话关联,会发现 B-9103 的数据和 C-6251 是关联的;通过驾驶证号关联,又会发现 A-701 和 C-6251 是关联的。在整个信息关联的背后,一个完整的上下文信息就浮现出来,这给刑侦破案带来巨大的帮助。
表 1. 上下文信息的累计
元素 | 内容 | 来源 |
姓名 | Marc R Smith | A-701 |
Randal Smith | B-9103 | |
Mark Randy Smith | C-6251 | |
地址 | 123 Main St. | A-701 |
456 First Street | C-6251 | |
电话 | (713) 730-5769 | A-701 |
(713) 731-5577 | B-9103 | |
(713) 730-5769 | C-6251 | |
社保号 | 537-27-6402 | A-701 |
驾驶证号 | 0001133107 | A-701 |
1133107 | C-6251 | |
出生日期 | 06/17/1974 | B-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 对线索库进行查询
清单 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 的智能创新应用