




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
iv 基于语义基于语义 p2p 技术的资源检索系统研究技术的资源检索系统研究 摘摘 要要 p2p 网络是近年来的研究热点,如何在分布广泛、数量庞大、节点行为不 可控制的复杂环境下实现高效的检索服务是 p2p 应用面临的巨大挑战。 目前的 p2p 资源检索一般仅支持简单的关键词检索,对模糊检索或多关键词检索的准 确率不高,资源缺少统一的语义描述,难以实现相关资源的语义融合。 本文将 p2p 技术和语义 web 技术相结合,以宿州学院计算机学科学习资 源的共享为切入点,设计了基于语义的 p2p 网络资源检索系统 sprrs。该系统 实现了对计算机学科学习资源的共享和语义检索功能,能使宿州学院教师和学 生更好更准确地获得计算机方面的学习资源。 本文所做的主要工作如下: (1) 设计了 sprrs 的总体结构和详细功能模块图,将 sprrs 系统分为本 体推理服务器端和 peer 端两大部分,这两大部分相结合,能共同完成 sprrs 系统的各项功能。 (2) 以 w3c 标准中的 owl 语言作为本体的描述语言,使用 prot g 软件 创建了描述计算机科学与技术学科分类的本体文件和用于描述各 peer 端资源 的本体文件。 (3) 以创建的本体为基础,采用 sun 公司的 jxta 作为 sprrs 系统的开发 平台,用 rdf/rdfs 作为资源标记语言实现了对各对等点端资源的语义化标 注,并借助 jena 作为工具,实现了对用户所输入的查询关键词的语义扩展和信 息查询。 关键词:关键词:对等网络,语义网,本体,资源共享,语义检索 v research of semantic and p2p-based resource retrieval system abstract p2p network is a research focus in recent years. the vast challenge in the fields of p2p is how to carry out the searching service in a highly effective way under the complicated condition of widely distributing users, enormous quantities and node behaviors being out of control.the current p2p resource retrieval systems only support simple keywords query and have some defects that the results of accuracy is not high for some vague query and keywords search and that the semantic integration of relevant resources is very difficult because the resources are lack of general semantic describing. combining p2p with semantic web and making the computers learning resources of suzhou university sharing as the starting point, this thesis designs a semantic and p2p-based resource retrieval system sprrs. the system realizes computers learning resources sharing and semantic search function and makes our teachers and students more accurately achieve learning resources. the major contributions of the thesis are as follows: (1) the framework and detailed function module of sprrs system is designed. sprrs system is divided into the the two main parts which are ontology reasoning server and peer side.the two parts can finish all functions of sprrs. (2) w3c standard owl is choosed as the ontology description language,the thesis creates two ontology files that are used to describe the classification of computer science and technology subjects and each peer side resources. (3) based on the ontology library that has been constructed and adopting jxta as sprrs development platform, rdf/rdfs is as resources markup languagethe to realize semantic labeling each peer side,and jena is used to realize ontology reasoning and information query in this system. key words: p2p network, semantic web, ontology, resource sharing, semantic retrieval ix 图表清单图表清单 图 2.1 c/s 网络和 p2p 网络结构.5 图 2.2 napster 的原理结构.7 图 2.3 gnutella 的原理结构8 图 2.4 语义 web 的体系结构.10 图 2.5 rdf 语句.11 图 3.1 sprrs 系统的总体结构图.14 图 3.2 sprrs 系统的详细功能模块图.15 图 4.1 w3c 提出的本体语言栈.18 图 4.2 本体构建工具 prot g 3.3.1 的界面.19 图 4.3 计算机科学与技术学科英文分类划分.20 图 4.4 图形化结构图.21 图 4.5 中文分类.22 图 4.6 共享文档的属性设计.23 图 5.1 利用管道发送/接收过程.25 图 5.2 jxta 的层次结构.25 图 5.3 jxta 的协议结构.26 图 5.4 rdf 操作 api.27 图 5.5 jena 的推理系统结构.30 图 5.6 系 统 登 陆 界 面 .33 图 5.7 资源文件发布界面.33 图 5.8 普通检索结果界面 1.34 图 5.9 语义扩展检索结果界面 1.34 图 5.10 普通检索结果界面 2.35 图 5.11 语义扩展检索结果界面 2.35 iii 独独 创创 性性 声声 明明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所 知, 除了文中特别加以标志和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得 合肥工业大学 或其他教育机构的学位或证书而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签字:汪材印 签字日期: 2010 年 12 月 13 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解 合肥工业大学 有关保留、使用学位论文的规定,有权保留并向 国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人授权 合肥工业大 学 可以将学位论文的全部或部分论文内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本授权书) 学位论文者签名:汪材印 导师签名:侯整风 签字日期:2010 年 12 月 13 日 签字日期:2010 年 12 月 13 日 学位论文作者毕业后去向: 工作单位:宿州学院 电话通讯地址:宿州市汴河路 55 号宿州学院 邮编:234000 1 第一章第一章 绪论绪论 1.1 研究背景及研究意义研究背景及研究意义 随着计算机网络的迅速发展,网络中的信息成几何级数爆炸式增长。 据权威机构统计, 网上约有 5500 亿的网页。 传统检索机制以服务器为中心, 用户向服务器发送请求,服务器将检索结果发送给用户(即基于传统 client/server 结构)。c/s 机制中,即便有数以万计的 server 仍难以满足不 断增长的网络终端用户的要求。而且,目前互联网中的资源形式多样、缺 乏统一的描述方式,资源的内容以及用户的检索需求不能很好的被机器理 解。例如 html 格式的文档,对人来讲很直观、易懂,但这种非结构化的 表现形式对机器而言,则完全无法理解,这使信息检索的查全率及查准率 很难进一步提高,这就造成了传统的检索机制有信息丢失、返回过多无用 信息等方面的局限性,因此有必要对传统检索机制进行改进。 近年来,对等网络(peer-to-peer network,p2p)的迅速发展受到人们的 普遍关注。p2p 系统由一组地位平等的节点构成,节点间可以直接相互通 信,无须第三者参与。与集中式结构相比,p2p 结构在可扩展性、实时性、 可靠性和负载平衡方面具有较大优势1。基于 p2p 对等检索理念的技术克 服了 c/s 结构的搜索引擎的弊端, 使人们在 internet 上的共享行为被提升到 了一个更高的层次,能够使人们以更主动的方式参与到网络活动中去。但 是,使用 p2p 网络检索信息时,只是对查询的词语进行机械式的匹配,缺 少对信息更深的理解能力2。 语义 web 能够较好的解决以上问题。1998 年,万维网之父 tim berners-lee 提出了下一代万维网“语义 web”的概念。语义 web(semantic web)不是一个孤立的网络,而是当前万维网的扩展,是 www 的发展和前 进方向,是基于 web 的一个完整的体系结构。语义 web 的目标就是要建 立一个同时满足人类认知理解和计算机理解的知识网络,对网络信息资源 实现语义化检索3。 1.2 p2p 网络研究现状网络研究现状 p2p 技术作为计算机科学与技术领域一种革命性的技术,主要用于合 理而高效率的组织利用因特网边缘上的大量分布式的计算、存储和信息等 资源,充分挖掘 internet 所蕴含的大量边缘性资源。现在,p2p 网络已经成 为发展速度最迅速、最时髦的互联网应用。另外,p2p 网络允许用户与用 户之间通过 internet 直接交互, 这样能使网络上用户的沟通交流变的更容易 和更直接,从而可以真正消除中间商。可见,p2p 网络自我组织性强、可 扩展性能好、容错能力也较强,因此 p2p 网络具有广泛的应用前景。p2p 2 网络应用所面临的巨大挑战是如何在用户广泛分布、数量宏大、节点的行 为不可控制、计算能力和网络的连接不太均匀的复杂情况下实现高效率的 搜索服务,目前,国内外各科研机构以及大学对 p2p 网络的资源检索技术 进行了大量的研究,主要包括中心式 p2p 网、结构化以及非结构化检索技 术4。 1.2.1 中心式 p2p 网络 在中心式 p2p 网络结构中,只有一台中心服务器,该服务器可以用来 记录共享资源以及响应对这些资源的查询,可见,此种网络结构具有中心 化的特点,但它与 c/s 结构有着本质的区别。napste 是最早采用中心式网 络结构的系统,在 napste 中,每一个对等点必须登录至服务器上,使用服 务器来维护和保存每一个对等点所共享文件资源的索引信息。napster 把文 件查询和文件传输分开执行,当用户想查询到某个文件时,首先必须和 napster 服务器相连接,随后检索服务器中的索引信息,服务器会返回保存 有此文件的对等点信息,用户直接连到保存有此文件的对等点,直接下载 所需要的文件5。中心式 p2p 网络最大的缺点是如果中心服务器坏了,那 么整个 napste 系统都会被破坏。 1.2.2 结构化 p2p 网络 结构化p2p网络是p2p网络领域的研究热点,其最大特征是结构化p2p 网络都要有一个真正的覆盖网络的拓扑结构,其经常使用的拓扑结构有带 弦环、多维空间、蝴蝶形、跳表、超立方体等等。另外,绝大部分结构化 p2p网络一般是采用散列表distributed hash table (分布式哈希表, dht)来 将结点、数据对象映射到覆盖网络中,为保证这种映射一对一、均衡、随 机分布,dht散列表采用了安全的一致散列函数。可见,在结构化p2p网 络,节点路由和定位的方式通常取决于覆盖网拓扑结构和路由表结构这两 个因素。2001年由加州大学伯克利分校提出的can6算法、2001年由麻省 理工学院提出的chord7 算法、plaxton 提出tapestry8 算法,都是属于结 构化p2p网络。实际上,目前大量p2p网络的实际应用还大都是基于非结构 化的泛洪或拓扑广播机制,目前多数采用dht散列表方式的p2p网络系统 缺少在因特网中大规模真实运行的实例,成功的应用还是非常少见。 1.2.3 非结构化 p2p 网络 所谓非结构化p2p网络,就是在此网络结构中,没有中央索引服务器, 所有的对等节点都是平等的,每一个节点不仅提供文件下载服务,也提供 文件搜索服务。当搜索文件时,搜索请求遍历整个p2p网络,拥有相关文 3 件的节点就会返回搜索结果,因此,非结构化p2p网络就是一种完全分散 式的p2p文件共享系统。在非结构化p2p网络中检索文件时,通常采取随机 图的查找方式,主要利用time-to-live策略、 洪泛机制或有选择转发等策略。 可见,非结构化p2p 网络解决了网络结构中心化的问题,扩展性和容错性 较好。由开发mp3播放软件“winamp”的nullsoft公司所制作的gnutella是 一个典型的非结构化p2p网络9。但是,非结构化p2p网络不是一个理想的 网络,主要存在如下缺点:查询到所需的信息要很长的时间,检索信息要 占用大量带宽,网络规模的可扩展性非常不好,随着检索信息的频率和数 量不断增加,以及网络物理范围的持续扩展,正确率和可扩展性能已成为 非结构化p2p网络要考虑的两个最为重要的问题。 1.3 主要工作和创新点主要工作和创新点 本文研究受安徽省高等学校优秀青年人才基金项目“基于语义 web 和 web 挖掘的 blog 智能检索引擎的研究”(no. 2010sqrl192)支持。本文 所做的主要工作和创新点如下: (1) 设计了基于语义的 p2p 网络资源检索系统 sprrs(research of semantic and p2p-based resource retrieval system),本系统将整个信息检 索过程分为本体推理服务器端和 peer 端两大部分,这两大部分相互联系并 各司其职,共同完成了 sprrs 系统的各项功能。本系统采用了语义 web 技术,把对资源信息的语义处理引入到 p2p 检索领域中。 (2) 以创建的本体为基础,用 rdf/rdfs 作为资源标记语言实现了对 文档资源的语义化标注,并使用 jena 实现了对用户所输入关键字的语义检 索。 (3) 采用了 sun 公司的新一代通用 p2p 开发平台 jxta10,设计并实 现了基于语义的 p2p 资源共享和检索系统 sprrs。 通过对资源进行 “语义” 标注,使资源检索具有一定的知识处理与理解能力,从而可以实现对关键 字的语义扩展检索,使检索结果在查准、查全有很大的提高。 (4) 本论文以宿州学院计算机学科学习资源的共享为背景,所设计的 sprrs 系统,能帮助我校师生快速而准确地检索到自己所需的资源。 1.4 论文组织结构论文组织结构 第一章 绪论,主要介绍课题的研究背景、来源、国内外研究现状、研 究内容及论文的组织结构。 第二章 p2p 与语义 web 技术,主要介绍了 p2p 的概念、特征、分类, 语义 web 的发展简史和语义 web 的体系结构。 第三章 sprrs 系统的设计,从整体上设计出了 sprrs 系统的结构, 4 将 sprrs 系统分为本体推理服务器端和 peer 端两大部分,这两大部分各 司其职、相互协调,实现了 sprrs 系统的各项功能。 第四章 本体文件的建立,本章主要介绍了使用本体编辑工具 prot g 构建本体的方法,在此基础上,重点论述了计算机科学与技术学科的本体 库和用于描述各 peer 端资源的本体 doct 的建立过程。 第五章 sprrs 系统的实现, 是本系统的实现部分, 首先, 介绍了 jxta 的有关知识,比如什么是 jxta 核心构件和层次结构等;随后重点论述了 如何对各 peer 端资源进行语义化标注,以及对用户的检索语句如何实现语 义扩展;最后,对 sprrs 系统进行了测试。 第六章 总结和展望,对本文工作首先进行了总结,并提出了有待改进 的几个问题,最后对基于语义 p2p 技术的网络资源检索系统的进一步发展 进行了展望。 5 第二章第二章 p2p 与语义与语义 web 技术技术 2.1 p2p 技术技术 2.1.1 p2p 的概念 对等网络技术在英文中表示是 peer-to-peer network,缩写为 p2p。p2p 网络中, 每一个节点的地位、 每一个节点所具有的能力和责任都是相同的, 所有的节点在一起共同完成任务11。简单地说,p2p 就是用于不同计算机 用户之间,不经过中继设备直接交换数据或服务的技术,它允许 internet 用户直接和对方用户的计算机连接,使用对方所提供的文件和数据,根本 不像客户端/服务器(client/server,简写为 c/s)网络结构那样,必须连接 到服务器上进行文件和数据的浏览或下载12。p2p 网络结构和 c/s 网络如 图 2.1 所示: peer peer p2p结构 server client c/s结构 图 2.1 p2p 网络和 c/s 网络结构 2.1.2 p2p 的特征 和 c/s 网络结构相比较,p2p 网络主要有如下几个特点: (1) 节点的分散性、网络的健壮性和可扩展性能都比较好:在 p2p 网 络中,由于每一个节点的地位都是相等的,资源信息的传递和任务的实现 不需要中心服务器的参与,可以在节点之间直接进行传输,避免了可能存 在的性能上的缺点13。 在中心式 p2p 网络中, 即使需要中心服务器的参与, 但是,主要的信息传输和任务的实现还是仍然在节点上和节点之间完成。 节点的分散性为 p2p 网络的健壮性和可扩展性能提供了良好的条件。 网络的健壮性是指 p2p 网络可以依据节点数目的变化、网络带宽值的 变化等变化随时调整 p2p 网络,所有的节点都可以不受限制地加入或离开 p2p 网络。另外,当部分节点或部分网络出现故障时,p2p 网络还能自动调 整整个网络的拖布结构,以保证剩余的节点之间依然是联通的。 网络可扩展性指整个 p2p 网络系统的服务需求、整体资源和服务能力 会随着用户的增加同步地进行扩充。 (2) 性价比非常高:在 p2p 网络结构中,可以高效利用该网络中的许 多普通节点,将存储资料或计算任务分别存储在这些节点上,利用普通节 6 点上剩余的存储容量和计算能力,可以达到整个 p2p 网络的海量存储和高 效计算的目的。 (3) 负载均衡:p2p 网络中,每一个节点都扮演着服务器和客户机两个 角色,避免了 c/s 结构中服务器存储空间有限和计算能力有限的缺点。另 外,整个 p2p 网络的负载是均衡的,因为资源均匀的分布在每一个节点上, 用户从多个节点获取资源。 2.1.3 p2p 的应用 p2p 已经成为当今科学研究和产品开发的热点,internet 上 p2p 应用软 件层出不穷,用户数量急剧增加。纵观国内外,关于 p2p 的应用和研究主 要分成五类: (1) 文件共享:内容共享和文件交换是到目前为止最引人注目的 p2p 应用。p2p 网络在用户遵循 p2p 网络协议的前提下,可以让用户从存放所 需要文件的对等点上直接下载此文件。电驴、chord、bitcomet 都是基于文 件共享的 p2p 应用系统。 (2) 分布式数据存储:随着世界信息化进程的加快,每时每刻都在增 加的海量数据,这些数据的存储和备份,已成为许多信息系统的沉重负担。 基于 p2p 技术构建的分布式存储系统能为这一问题的解决带来希望。p2p 网络可以充分收集和利用位于网络边缘的空闲存储空间,并将其聚合成为 一个容量近乎无限的存储系统,从而节约购买昂贵存储设备的费用。当前 已出现很多基于对等网的存储系统模型, 例如 freenet14和 freehaven15等。 另外,大部分建立在 dht(distributed hash table,分布式哈希表)上的 对等网系统都是为分布式存储而设计的, 使用比较广泛的有: can、 chord、 tapestry、farsite16等。 (3) 对等式计算:对等式计算是把网络上计算机的闲置资源和剩余的 的计算能力充分利用来执行以前必须用巨型计算机才能完成的任务。在 p2p 网络的对等式计算中,把一个非常大的计算任务分成许多块,然后, 把每一块任务分给网络中的许多节点去执行17。其实,对等式计算就是分 布式计算在广域网上的扩展。 (4) 协同工作:是指借助于 p2p 网络,不同地方的用户可以在一起工 作,以共同完成一项任务。p2p 技术随时能使分散的组织和个人建立在线 的或者非在线的协作场景,还能确保网络中的每个用户总是能获取最新的 信息。 (5) 即时通讯:在基于 p2p 网络的即时通讯软件环境中,不仅可以随 时知道对方是不是在线,而且双方的通讯是全部点对点进行的,用户之间 的交流不受服务器的带宽、性能的限制18。 7 (6) 分布式深度检索: p2p 网络下的分布式检索机制是传统的目录式检 索引擎无法相比的,检索深度远远高于传统的目录式检索引擎。分布式深 度检索技术不受文档格式和服务器性能的约束,也不需要通过中心服务器 进行检索19。 2.1.4 典型的 p2p 系统 (1) napster napster其工作原理如图2.2所示,采用集中式的网络架构,要求各peer 登录中心服务器,通过中心服务器保存并维护所有对等点的共享资源的信 息列表。当用户想查询所需的信息时,首先必须登录到中心服务器上,并 向中心服务器发出查询信息的请求,服务器依据查询信息的请求,返回存 储该信息的相关节点信息。用户接收到服务器返回的信息之后,对存储资 源信息的所有peer进行ping指令,依据网络的流量和延迟信息的多少选择 最佳的节点,来下载自己所需的信息。可见,napster系统中,文件的查询 和文件的下载是分开的,从而降低了文件传输的延迟时间,减少了中心服 务器性能压力和带宽使用。系统也有一个缺点,如果napster服务器出现故 障了,整个napster系统就会不能使用了。napster系统中,不提供对等点的 逻辑命名机制,仍然以ip地址和端口号作为对等点的标识20。 目录服务器 peer peer peer (3) request (4) response (1) search (2) response 图 2.2 napster 的原理结构 (2) gnutella系统 gnutella工作原理如图2.3所示, gnutella是一种分布式的p2p网络结构。 所有节点的地位都是平等的,没有中心服务器。新加入的节点可以在p2p 网络的地址缓存列表中选择一个代表某个节点的地址,并以该地址对应的 8 节点建立连接,从而新加入的节点就加入了gnutella 网络,然后这个节点 就可以和其它节点进行通信了21。 (4) response (3) request (1) search (2) location 图 2.3 gnutella的原理结构 (3) chord系统 chord系统是一种采用dht的结构化p2p网络。它能提供一个适合p2p 网络的分布式资源发现服务,chord系统通过使用dht中的(key,value)中 的key与网络节点进行哈希计算,使发现指定的节点只需维护长度为 o(logn)的路由表就可以了。 (4) can 由at connection lj=new connection( “ jdbc:mysql:/:3306/cy?user=wang modelmaker mk=mode1factory.createmodelrdbmaker(lj); model m=mk.createmodel(“owl”); model.read(ofs,” /wang.owl”); 如果从数据库读出 owl 本体,将 mk.createmodel 改成如下: model m=mk.openmodel( publicconst.owl_db_model_name); 4.4 本章小结本章小结 本章主要介绍了使用本体编辑工具 prot g 3.3.1 构建本体的方法,以 及使用本体描述语言 owl 描述本体的过程;重点论述了计算机学科类领 域本体和文档 doct 本体的建立过程;最后论述了 doct 本体如何保存至 mysql 中。 24 第五章第五章 sprrs 系统的实现系统的实现 5.1 jxta 介绍介绍 5.1.1 jxta 的核心构件 (1) 对等体(peer)与对等组(peer group) 对等体是实现一个或多个jxta协议的实体。 该实体不一定是一台计算 机,可以是移动电话或一个跨越多台计算机的分布式应用程序。对等组是 共享服务和资源的对等体集合。逻辑上,任何对等体都可以加入任意多个 不同类型的对等组,也可以从一个组离开39。 (2) 通告(advertisement)与服务(service) 通告用以发布和接收jxta网络所使用的资源,如对等体、对等组、服 务等,通告以xml文档表示40。服务是一个对等体或对等组提供的某种功 能。服务通过服务通告进行发布,其它对等体通过获取服务通告来定位和 使用服务41。对等组服务由整个组提供,对等体服务由一个peer 提供。 (3) 消息(message)与管道(pipe) 在jxta中, 用户之间的所有通信都是通过接收和发送消息 (messages) 的方式实现的,这些messages就是jxta的消息,jxta的消息都具有标准的格 式,这也是jxta网络具有互操作性的关键。可见,消息是peer之间数据交 换的基本单元。管道是在jxta环境中建立的虚拟通信信道,用于在服务和 应用之间传递消息。jxta中使用两种方式传递消息,一种使用xml消息, 另一种使用二进制消息。 jxta提供三种管道类型:单播型、单播安全型和广播型。一个应用如 果接收来自其它的对等体发送的消息,就立即建立一个输入管道,然后该 管道绑定相应的管道通告,最后将其通告发布出去,其它的应用或服务可 以获取该通告并建立一个与之对应的输出管道,该输出管道就能将消息发 送到对应的输入管道,实现peer间的通信42。消息的发送和接收过程如图 5.1 所示: 25 启动jxta平台 启动管道服务 发布管道通告 创建输入管道 加入侦听队列 读取消息 启动jxta平台 启动管道服务 启动发现服务 获取广告通道 创建输出通道 发送消息 发 送 消 息 端 接 收 消 息 端 图 5.1 利用管道发送/接收过程 5.1.2 jxta 的层次结构 jxta体系架构由三个不同的层次组成,即内核层、服务层和应用层。 如图5.2所示: community jxta applications community jxta services core jxta services peer commands jxta shell peer groupspeer pipespeer monitoring security jxta applcations jxta applcations jxta applcations 图 5.2 jxta 的层次结构 (1) jxta内核层(jxta core) 它包含了服务所需要的核心功能,本层封装了最重要的内容,包括对 等点、对等组、对等点发现、对等点通信、对等点监视和相关的安全原语。 内核层包含6个主要的协议,这些协议为上层提供最基本和最重要的 服务的标准,是整个jxta架构的骨架,如图5.3所示。 26 对等体发现协议 pdp 管道绑定协议 pbp 对等体信息协议 pip 对等体解析协议 prp 端点理由协议 erp 汇聚对等体协议 rvp 图5.3 jxta的协议结构 关于这六个协议的详细介绍,可以查看参考文献43。 (2) jxta服务层(jxta services) jxta服务层扩展了jxta核心层的能力, 它为p2p网络提供了不是必需 但是很常用的一些功能,最为重要的是它提供了访问jxta协议的接口,本 层的功能有文件共享、目录索引、内容查找、代码缓存和内容缓存等。这 些服务需建立在核心层提供的基本操作基础之上,一般作为构件包含在 p2p系统当中。 (3) jxta应用层(jxta applications) 应用层是jxta的最顶层,提供了即时消息通信、邮件、文件共享、资 源共享之类的应用服务,为用户提供整体解决方案和最终的界面。服务层 和应用层之间的界限不是很严格,一个节点的应用对于另一个节点来说就 是一个服务,应用层是面向用户的一个抽象层次,采用jxta开发出来的整 个p2p程序工作在应用层,例如jxta chess,jxta view等 44。 5.2 sprrs 系统的开发系统的开发 (1) 导入 jxta 平台基本类 使用jxta进行编程,首先要下载并安装一个jxta。本系统使用的是 jxta的最新版,它包含三个压缩文件:jxse-src-2.5.zip 、jxse-lib-2.5.zip、 jxse-doc-2.5.zip。sprrs系统的开发使用myeclipse,首先建立sprrs工程, 然后把jxta的包导入sprrs工程中,这些包位于jxse-lib-2.5.zip中,例如: jxta异常处理包 net.jxta.exception.*; jxta对等组包 net.jxta.peergroup.*; jxta共享相关包 net.jxta.share.client.*、import net.jxta.share.*、 net.jxta.share.metadata.*。 (2) 定义类成员变量 peergroup wangpg;/定义对等组wangpg 27 cms wangcms;/定义cms对象wangcms contentadvertisement jieguo;/定义内容广告数组 listcontentrequest qingqiu;/定义listcontentrequest对象 defaultlistmodel jieguomodel=new defaultlistmodel(); defaultlistmodel filemodel=new defaultlistmodel(); 5.3 peer 端文档资源的语义化标注端文档资源的语义化标注 jena的接口resource、property和literal分别表示资源、属性和文本, 在jena中,所有图(graph)都被抽象为数据模型,每一个模型都有对应的 model接口。rdf数据模型是由声明(statement)组成的集合,所有声明都由 资源,属性和值三个部分构成45,rdf数据模型的应用程序接口,如图5.4 所示: rdfnode resourceliteral propertycontainerstatement bagseqalt 图5.4 rdf操作api 在jena中,modelfactory类能够创建不同类型的model数据模型。调用 方法modelfactory.createdefau1tmodel()可以创建一个空的内存模型,并且 返回一个model类型的对象,然后创建每门学科的资源(resource)实例及 其property。最后将statement 加入到模型中去46。 对文档资源的语义标注要依据第四章中所构建的本体,本系统采用对 owl的处理间接实现对rdf描述资源的创建。第四章建立了本体描述文档 doct,以此本体为模型创建peer端所有文件的标注。首先,将每一个对等 点的共享文件都创建为doct实例,即owl语言中的对象individual,对应的 程序代码如下所示: ontmodel btmodel=modelfactory.createontologymodel(); btmodel.read(ofs,” /wang.owl”); ontclass btclass=ontmodel.getontclass( 28 “/ wang.owl #doct”); /将本体文档读入 individual ind=ontclass.createindividual(); /本体individual对象创建 datatypeproperty dtp=ontmodel.getdatatypeproperty (“/wang.owl #dockeywords”); ind.addpropetery(dtp,”数据库”); /将其关键词属性赋值为数据库 ontmodel.write(fos,lang); /将资源保存到硬盘中 可以得到如下的 rdf 标注: access 程序设计上机操作练习题 access peera 5.4 文档资源共享的实现文档资源共享的实现 (1) cms的初始化 程序代码如下: public void startwang() try wangpg=peergroupfactory.newnetpeergroup(); wangcms=new cms(); wangcms.init(wangpg,null,null); wangcms.addsearchlistener(new wangsearchlistener(); string wangshare=system.getproperty(wang); wangshare =( wangshare! =null)? wangshare +p2pshare:p2p; if(wangcms.startapp(new file(wangshare)=- 1) system.out.print(cms 初始化失败); system.exit(-1); catch(exception exp) 29 exp.printstacktrace(); (2) 查看共享文档 通过contentmanager类的getcontent方法可以获取用户共享的资源,源 代码如下: content mycon= wangcms.getcontentmanager().getcontent(); jtable1.rmall();/删除jtable中全部内容 int k=0,len=mycon.length; do w.addelement (content i .getcontentadvertisement().getname(); k+; while(klen); jtable1.setmodel(jtablemodel); (3) 设置共享文档 本系统设置共享文档由setshare()方法来实现,主要用到cms 服务提 供的contentmanager 类中的share()方法,关键代码如下: jfilechooser jfc=new jfilechooser(); int i = jfc.showopendialog(this); if(i=0) f=jfc.getselectedfile(); jtf1.settext(f.getname(); file myfile = jtf1.gettext() try wangcms.getcontentmanager ().share (myfile); /文件共享实现 catch(exception exp) exp.printstacktrace(); 5.5 sprrs 系统的语义扩展检索系统的语义扩展检索 5.5.1 jena 的推理机制 jena 的主要功能是推理,在 jena 的推理子系统(inference subsystem) 中,我们可以将某些推理引擎或者是推理机引入至 jena 中,从而能够获取 本体数据中隐含的信息。 jena 提供给用户的推理工具是基于规则的推理机, 30 有基于 owl 推理、 基于 rdf 推理等, jena 的推理可以执行从实例 (instance) 到类(class)的推理。基于规则的推理机中包含了一般的推理功能,用户 根据需要还可以自定义一些推理规则, 或者注册第三方推理引擎工具使用, 例如 racer、fact 和 pellet 等47。jena 的推理结构如图 5.5 所示: 图 5.5 jena 的推理系统结构 jena 推理机原理如下: jena 推理机根据本体和 rdf 三元组的描述创建 出推理机,生成包含推理机制的推理机模型实例,然后应用本体应用程序 接口和推理机应用程序接口模型进行推理。本文采用 modelfactory 将推理 机和数据集结合起来创建一个新的推理模型,推理结果既包含经过推理机 的推理而得到的陈述,也包含原有数据的陈述。 5.5.2 系统推理功能实现 本系统的推理实现采用 jena 的 owl 推理机,其推理功能主要涉及同 义词汇和下位词汇的扩展检索。用 owl 中 owl:sameas 映射描述同义词汇, 用 rdfs:subclassof 映射描述下位词汇,即父类和子类之间的关系。 在 owl 语言中, rdfs:subclassof、 owl:sameas 都具有传递性, 如果, 那 么 就 可 以 得 到。但是,此 m1 和 m3 关系是无法直接得到的,需要经 过 jena 推理机才能得出。 推理结果需要调用 infmodel 类提供的 liststatements 方法,例如: resource wangres=infmodel.getresource( “/wang.owl #数据库”); resource res=null; stmtiterator sti=infmodel.liststatements(res, owl:subclassof, wangres); 变量 sti 迭代了“数据库”包含的所有子类资源陈述,通过遍历 sti 就 可 以 得 到 符 合 这 个 三 元 组 关 系 的 陈 述 。 将rdfs:subclassof 替 换 为 31 owl:sameas,同样可以得到每个词汇的同义词汇。 5.6 资源检索的实现资源检索的实现 cms的算法是向每一个peer发送检索字符串,收到检索字符串的peer 立即以该字符串为关键字进行检索,如果找到与关键字匹配的文件,就将 相应的内容广告回送给请求的peer。本系统主要从两个方面实现其检索功 能: (1) 向其它peer发出检索请求和处理返回结果,通过检索请求类 p2prequest实现。 p2prequest 类继承cachedlistcontentrequest 类,我们将其定义为一 个内部类,并且重写了类中的notifymorerequest()函数。定义一个 p2prequest对象,利用其构造函数传递对等组名称和检索字符串。一旦检 索结果返回,立即自动调用类中的notifymorereque
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度仓储物流园区车位租赁协议
- 2025年度大型企业代理记账与战略咨询委托合同
- 2025版海洋工程包船运输及水下作业合同参考模板
- 2025年度房产租赁合同及房产权益转让与物业管理服务协议
- 2025年新型数字内容平台合作伙伴加盟合同
- 麻醉处方管理课件
- 二零二五版代收款与农业技术推广合同
- 2025版大型基础设施项目大清包劳务合同范本
- 二零二五年度地产公司房地产项目法律顾问合同
- 二零二五年度工业地产销售代理合作协议
- 楼宇自控施工与方案-
- 伸缩缝安装工程劳务分包合同修改
- 岩石可钻性测试实验
- GB/T 7260.2-2009不间断电源设备(UPS)第2部分:电磁兼容性(EMC)要求
- GB/T 1885-1998石油计量表
- GB 7231-2003工业管道的基本识别色、识别符号和安全标识
- 健康体检报告解读
- T-CCPITCSC 060-2020直播营销人员职业能力要求
- (新版)混合集成电路装调工(初级工)理论考试题库大全-下(判断题)
- -镇村卫生室绩效考核方案
- 并网系统调试记录表
评论
0/150
提交评论