王小婷
摘要:电子邮件系统是可支持关键词搜索的电子邮件数据集。但随着用户功能需求的增加,除了对信息的基本搜索,该系统还应支持其他复杂查询,如查找相似话题邮件以及邮件内容中提及的最火爆的关键词等。该文目的是通过使用语义网技术,如RDF、OWL以及数据挖掘技术建立一种机制,以丰富电子邮件系统功能来支持复杂查询。
关键词:语义网;电子邮件系统;RDF;OWL;PROV
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)25-0045-03
1 概述
电子邮件已被视为便捷实用的通信工具,其本身包含可用于找出消息或参与者之间的关系隐性和显性数据。电子邮件系统是电子邮件的数据集,并且可以支持关键词搜索,如作者和主题等。除了对信息的基本搜索,电子邮件系统还应该支持其他复杂查询,如提取邮件内容高频词,查找相似内容以及相关消息聚类结果等。
本文采用语义网技术,如RDF和PROV,创建一个工具来分析公共电子邮件档案。分析在这个邮件系统中的参与者的影响,并找出流行的消息主题和消息的聚类结果,以提高对公共电子邮件档案的综合使用效率。
本文拟找出以下问题的答案:
(1) 参与者发送消息频率的排序是什么?
通过消息频率的总数来确定排名顺序,消息频率越大表示参与者具有更高的排名。从某种程度上来说,排名顺序反映参与者的重要性。重要参与者的消息相对而言更值得信赖。
(2) 电子邮件讨论主题的顺序是什么?
该问题拟找出话题参与者对什么内容更加感兴趣。往往热门话题反映了与会者在某一时间段的重点。
(3) 与这封邮件内容相似的邮件有哪些?
该问题帮助用户获得关于与之邮件主题更多的信息。
(4) 该邮件系统大部分主要讨论了什么内容?
电子邮件归档的消息可聚成不同的组。每个群集组都有不同的特点。进而可以探寻出在一定时间段参与者所讨论的信息关于什么内容。
2 Provenance概述
Provenance一词最初来自于艺术领域,用来定义艺术品的可追溯性[1]。后指实体、对象和人或所涉及数据生成过程中任何其他的动态信息。这为分析生产经营活动过程中对象之间的关系提供了便捷方法。随着互联网的快速发展以及信息的指数增长,很难在网络大量数据中标识原始源。为了满足这种需求,Provenance被提出。
2.1 PROV家族
Provenance不仅是一个概念,它已经被W3C PROV工作组探讨并提出了一套PROV系列文件来介绍Provenance以及目前所使用的标准。PROV依赖于资源描述框架(RDF)和XML的表达。PROV涵盖本体语汇,以及多个层次。一共包含12个文件,4个建议文档和8个标注文件。
PROV-DM是基于开放Provenance模型的数据模型并且通过区分类型以及关系来定义核心结构。其基本类型为实体(Entity),代理(Agent)和活动(Activity)。在PROV数据模型中有两种结构,一是核心结构,另一种是扩展的结构。PROV的核心结构关注的重点是实体从活动过程中所涉及的信息转化的本质,以及代理对实体生成的影响。除了核心信息,PROV扩展结构提供了额外信息来丰富核心结构。它提供了产生实体的活动过程的详细说明并且表明了代理和活动之间的关联关系,如一个实体的生成时间,以及一个代理在一个活动的作用。该文档提供了一个基础指南和实例来讲解如何从自然人类语言建立PROV数据模型。
PROV-O包含类、属性和限制,这些都可以通过OWL2 Web本体语言来表达PROV数据模型(PROV-DM)。本文介绍如何映射PROV数据模型为PROV本体使得其便于在应用程序中使用的本体。
PROV-CONSTRAINTS定义了一组约束来确保对象和PROV实例的关系都符合标准,以便于进行推理、驗证和安全分析。这份文件是用于验证Provenance并保证其有效性的基本方针。
PROV-N为Provenance通信提供了人类可以理解的表达形式,它包括一套语法,使PROV数据模型的实例被编码成不同种语言。
上述四个文件是其中PROV系列文件的核心部分,描述了PROV的本质和建立应用程序的PROV数据模型的核心知识。除核心文件,其他文件是PROV的补充文件,以此丰富PROV的充分使用和发展。
PROV家族的文件为后续建立的RDF模型的标准和指南。后续RDF模型的设计是基于PROV-DM和PROV-O文件,并应用Provenance到RDF模型来设计的实体,代理,活动以及相互之间的关系。
2.2 PROV核心关系
PROV核心关系在图1中所示,每个关系的描述以下:
wasDerivedFrom:此关系表示从一个实体到另一实体或新实体的转换生成。
wasGeneratedBy:此关系表示一个活动产生新的实体。
wasAttributedTo:此关系表明一个实体是归因于一个代理。
wasInformedBy:此关系在两个不同活动之间使用,一个活动使用另一个活动的发生过程。
wasAssociatedWith:此关系是一个代理和活动之间使用。代理负责该活动。
used:这个关系用于实体和活动之间,表明了一个活动使用实体的情况。
ActedOnBehalfOf:这种关系为责任的分配。代理人的行为代表了另一种代理行为。
上述核心关系是让所有的实体,代理和活动结合起来并形成模型的关键,并找出彼此之间的联系。为了扩展电子邮件系统的查询功能,上述核心关系均用于建立系统模型。endprint
3 方法以及实现
为了提高邮件系统检索能力,探寻所研究对象的关系来解决所提出的问题。首先,从数据集捕获数据并将数据进行聚类分析;随后,将其转换成PROV模型生成RDF数据集,形成基本模型;最后,利用SPAQRL语句查询并分析。
3.1 数据采集
该项目的实施的第一步是从电子邮件系统中捕获数据。由于访问限制,研究只集中在电子邮件系统的公共部分。该电子邮件系统中包含有多个主题,针对于每一个主题有不同频率的邮件往来。针对于任何一份邮件,都有链接链路到同一主题下前一封以及后一封邮件,并指明作者、日期、邮件内容等。因此,我们可以提炼出关于邮件的基本信息以及邮件间的关系。
其中邮件信息包含邮件题目、发信人信息、发信日期、邮件编号、收信人信息、抄送者信息、邮件内容。邮件关系中包含有下一封邮件、前一封邮件、同主题的下一封邮件、邮件回复。
分析所述电子邮件归档文件的结构后,利用该结构顺序获取相关信息形成数据集并保存至XML文件中,每一封邮件由该邮件URI唯一标识。该数据集用于后续对邮件信息处理以及RDF模型的生成。
3.2 相似度计算和数据聚类
该相似度计算采用SimHash算法。在每封电子邮件抓取形成的数据集中,应用SimHash算法来计算一封邮件信息和除它本身以外其他邮件内容的相似程度。该算法通过计算SimHash串之间的汉明距离来判断相似性的程度。
数据聚类部分的计算是基于所述标题和每封电子邮件消息的内容。该项目采用是K-means算法、STC和Lingo算法分别进行聚类。数据聚类的所有过程在Carrot2文档聚类工作台中进行。Carrot2是一个支持将一组文件分为不同类别的自动聚类平台。它是由Java实现,并通过REST接口支持跨平台。除了支持K-means算法,STC和Lingo算法,它同时也提供了聚类部件,以獲得来自各种来源的数据,如Solr,Lucence和用户自己的XML文件。Carrot2的另一个特征是,它不仅提供了聚类功能,而且还提供了可视化界面演示集群,以及单独的对象和各簇之间的关系。
3.3 RDF模型设计
该步骤是设计基于此电子邮件归档的关系和数据的RDF模型。由于大量的消息数据,该部分仅使用部分数据进行模型演示,并由ProvTranslator生成SVG图形。根据W3C文档标准,实体显示为椭圆形,活动表示为矩形节点和代理为八角形。RDF模型设计的过程是明确该电子邮件系统数据集中实体,代理,活动和属性等各个部分,用PRO思想描述数据。
1) 实体
该模型包含有两个实体。其一是含在同一个时间段内所有消息的消息集合的实体。另一个实体是单封邮件信息。
(1) 某时间段内邮件集实体
图2展示出了单个集合的PROV图。用数字打表的实体是表示该集合内某封邮件。其包含以下核心属性:
pro:hadMember:表明一个邮件集和各消息成员之间的从属关系
ex:hadMessagesNumber: 它显示邮件集所具有的邮件数目
(2) 每封邮件实体
每封邮件均是由一个活动产生,同时具有发送人和收件人两个代理,以及与其它消息的关系。核心属性如下所示:
ex:clusterDocumentID: 表明该邮件的聚类唯一标识ID
ex:KmeansClusterGroupTitle: 采用Kmeans算法聚类后所归属类的类名
ex:KmeansClusterGroupID:采用Kmeans算法聚类后所归属类的ID
ex:LingoClusterGroupTitle:采用Lingo算法聚类后所归属类的类名
ex:LingoClusterGroupID: 采用Lingo算法聚类后所归属类的ID
ex:STCClusterGroupTitle: 采用STC算法聚类后所归属类的类名
ex:STCClusterGroupID: 采用STC算法聚类后所归属类的ID
foaf:PrimaryTopic:邮件名
rdfs:label: 表明邮件唯一标识ID
ex:hadRepliesNumber: 表明当前邮件所具有的回复总数
ex:hadSimilar: 是否具有相似信息,以及相关权重数值
prov:wasGeneratedBy: 表明产生该邮件的活动
prov:wasAttributedTo: 表明与当前邮件相关的代理信息
prov:wasDerivedFrom: 表明当前邮件是否为回复某一邮件
2) 代理
在该模型中,有两种代理,分别为个体和组织。组织代理具有以下特性:
foaf:name: 表示代理名称
foaf:mbox: 表示代理邮件地址
个体代理具有以下特性:
foaf:familyName: 表示该代理的姓
foaf:givenName: 表示该代理的名
3) 活动
该模型中共有两种类型的活动。一种是发送消息活动;另一种则是回复消息活动。这两种活动都具有以下特性:
prov:qualifiedAssociation: 该属性表明了活动和代理之间的具体信息
prov:agent: 表明具体代理信息
prov:hadRole: 表明代理角色是发信人、收信人还是抄送者
3.4 生成RDF文件
在形成RDF模型后,执行的最后一部是产生可以使用SPARQL查询的RDF文件。本项目最终将所有数据以及关系按照Turtle语法进行输出。endprint
4 测试
分析了实现部分后,使用SPARQL查询找到的概述部分问题的答案。由于数据量过大,所有查询测试仅使用部分数据。
4.1 SPARQL查询和结果
1) 参与者发送消息频率的排序是什么?
通过消息频率的总数来确定排名顺序,消息频率越大表示参与者具有更高的排名。从某种程度上来说,排名顺序反映参与者的重要性。重要参与者的消息相对而言更值得信赖。该问题测试结果如图5所示,结果由影响度从高到低排名。
2) 电子邮件讨论主题的顺序是什么?
该问题拟找出话题参与者对什么内容更加感兴趣。往往热门话题反映了与会者在某一时间段的重点。该问题测试结果如图6所示,结果中主题由URL代表并按照热门程度由高到低排序。
3) 与这封邮件内容相似的邮件有哪些?
该问题帮助用户获得关于与之邮件主题更多的信息。该问题测试结果如图7所示,指明了与某邮件相似的其他邮件,邮件均由URL表示。
4) 该邮件系统大部分主要讨论了什么内容?
电子郵件归档的消息可聚成不同的组。每个群集组都有不同的特点。进而可以探寻出在一定时间段参与者所讨论的信息关于什么内容。该问题测试结果如图8所示。
5 结论
结合语义网技术,尤其是PROV,相似度计算和数据聚类,该项目旨在建立一个科学实用的机制来分析公共电子邮件存档。 RDF模型在这个项目的设计是成功的,因为它包含的数据信息以及关系,可应用于通过发布频率,找出通过邮件频率,话题线程排序参与者的排名顺序,通过消息对排名顺序的相似程度以及每个群集组的成员,并通过邮件的总数量决定群集组的排名顺序。
这个项目在于它为邮件系统建立了支持复杂的查询的机制,这大大提高了用户体验度。同时,也能提高电子邮件档案的利用率,使得用户能够迅速而准确地找到相关数据。另外,该机制需要进一步优化以解决时间复杂度问题,以实现更好的效果。
参考文献:
[1] Luc M.The foundations for provenance on the web[J]. Foundations and Trends in Web Science, 2010,2: 99-241.endprint