使Jena RDF API 开发脚本语言管理资源描述框架模型

摘要

挑选自《生活就如练习》肯威尔伯 著 北京:同心出版社,2012.6

  
  资源描述框架(Resource Description Framework
RDF)是一律种为XML格式描述元数据的正规化格式。Jena是一致种植用于将关系数据库或是文本文件被所表示的数目建立也长数据模型的框架方法。
Protégé 用用来创造RDF元数据文档的修工具。
建立这种数据库与文书之冠数据模型需要由用户自己定义脚本。本文介绍介绍了SemantiRDFUtils这种本子,它抱有多单功能块好用来掩护
Jena RDF 元数据模型.(2200歌词,2005-7-4) By Venkata N.VAsam
  
  同XML成为不同软件
厂商之间数据交互的正经过程一般,资源描述框架(RDF)也本着这长长的道前进,希望能变成叙和相首数据的标准。XML
使用文件类型定义(DTD)和XML格式定义(XSD)来讲述数据。RDF使用XML语法和RDF
Schema(RFDS)来用首批数据描述成多少模型。
  
  本文介绍了平等栽采取Jena RDF API
编写的用户从定义工具,使用这种工具来保管存储于关系数据库或是文本文件的数据模型。这种工具是由HP实验室开发的,Jena框架是一个RDF,RDFS以及OWL(Web
Ontology Language)的开源实现,
它富含在一个根据规则的推论引擎。它提供了起和操纵RDF模型的Java
API。本文介绍的SemanticRDFUtils.bat是相同栽采取Jena开发之台本。使用这种本子,我们得以保障存储当关系数据库和文件文件被的正负数据模型。本文还介绍了什么样利用Protégé来拿建RDF的语意描述文件(.rdfs)和数据文件(.rdf)。
  
  软件设置
  
  以动SemanticRDFUtils.bat之前务必先行安装以下的软件。关于以下工具的链接求参看文中所附的资源。
  J2SE 1.3 或更胜似之本子
  Jena 2.0
  Oracle 9.2.0.1.0
  Apache Ant 1.5.4 或更新的本
  Protégé 2.1
  
  RDF和RDFS 文件简要介绍
  
 
 下面的XML格式的RDF和RDFS文件用于展示一个假名逐一的交叉引用模型。它们是动Protégé
2.1
的图形界面工具创建的。当执行脚本和RDF查询工具的上咱们得动态的引入RDF文件。RDFS文件则在我们以Protégé
给RDF文件中投入更多多少常常以。
  
  

意识状态

列表1. RDFTest1.rdf

发现状态属于即太有趣之研讨世界,这个小圈子的习吧较为成熟。各种状态纷至沓来,持续片刻后又流失了,它们短暂而形成。我们每天都以各种状态中循环:高兴,厌烦,恐惧,失望,愤怒,觉醒,好奇······这些状态就这样循环,川流不息。

  

季象限内生的拥有现象都使更众多状态,这包括上之私房象限和凡的公共象限。如果某个公司经历了金融风暴,几个月下还要复苏恢复,那么,它便经历了右下象限的旋状态变化。你为堪考虑在吃恐怖分子袭击后,左下象限的成套文化中所激发的联名仇恨以及恐惧。每个象限都见面发生不久的状态变化,图5.16凡是几个其他例子。

 网球 1

情绪状态

冥想状态

创造状态

放松状态

高峰体验状态

大脑状态

生物状态(如健康、生病)

人际/关系状态

共同意义状态

共同感情状态

交流状态

经济状态

政治状态

天气情况

战争状态

  

 

列表 2. RDFTest1.rdfs

图5.16 季象限的状态

  

状态还可是拓展个人经历的神奇门户,经由它,我们得以体验及意识的极致潜力。此外,它吧能够短暂地映入眼帘其他世界。狂喜或高峰体验的状态颇醒目,你来没有产生曾经非常霸气地举行容易,以至于感觉温馨与性伴侣完全融为一体?打网球的下,你是不是就进入状态,可以拿球打及球场上之其他位置?在树林中穿行时,你但是已体验了跟身边郁郁葱葱的绿意完全融合之发?你是否听罢那个可观的音乐,感觉到好之心灵完全敞开,敏感而同时露无遗,原始的销魂和生活之痛浸透你的一体身心?想想最近那么不行吃您越平凡知觉、惊鸿般瞥见各种可能性的峰体验,有些上,那些会稳定要重随意地为更胜似意识状态的冥想者和神秘主义者还是会见再接再厉塑造这些状态。

 网球 2

季镜子,和另行胜似状态? 
                                                                                                          

  Jena和Protégé概述
  
  本节当本层面达到介绍Jena和Protégé。用户可以增大资源遭受落关于这片只活又多之信。本文的目的是一旦您对Jena和Protégé有一个于清楚的了解。
  
  Jena RDF 和RDQL
  
  RDF数据模型是一个声明(statement)的聚合,每一个声称还连三单部分:资源,属性与价值。
资源(resource)可以是另利用URI标示的始末,它好分包其他性质。每一个属性有一个值。
  
 
 Jena可以用RDF模型保存在关系数据库或是文件中。RDQL是用来查询RDF模型的言语。RDF提供平等种植节点可以吗资源或文本的出往图(有于图
的概念请参见《离散数学》)。RDQL则提供相同种方式,由用户定义一栽图模式,使用这种模式对目标图集合进行匹配,获得有符合定义模式的结果。图1
使用RDF图来代表列表1暨列表2挨文件
  

一些伟大之苦思冥想传统描述了另外两单状态,据说只有充分有更的冥修者才会上。这点儿独状态还“超越”了复明、做梦和深睡眠就三单关键状态。

 网球 3

当图里亚(字面意识是“第四”)状态,个人既不关注粗重的复明体验,也非体贴梦境和视觉经验被重新深邃的现象。事实上,注意力不再集中吃其他现象,甚至为不体贴极精微的沉寂状态和深无梦睡眠的稳步状态。无论发啊,或什么吗不发出,意识还保持在稳定。意识但是中心或持有涉的路人,它鲜明而苏,贯穿觉醒、梦和深无梦睡眠状态。如果这种内观意识(“witnessing
awareness)变得死去活来强劲,它可以当分分秒秒都维持在稳定!不论有了呀事情,也随便身心做在啊工作,这种觉解都能坦然地安住于本人内部。

  

假使当图亚塔亚状态(字面意思是“第四境界之上“),这种祥和的内观意识会继续增进,最终,觉察的心跟所觉的物中的分别消失了。”体验的中心“和“被体验到的成立”之间的隔离感消失了。这时,个人就是会体会到内在世界以及外在世界是环环相扣的,并跨越其他主体/客体的分别(既内外无次,心境同体)!

图1:范例RDF文件的RDF 图表示

 

  
  上图中,椭圆代表资源,长方形表示描述。资源通过箭头连接到另外的资源或描述值(一个目标可能一个值)上,这样同样组关系形成一个三元组,成为一个宣称(statement)。
  
  下面给本人一个RDQL查询的事例。三元组(?x
“97”)是一个宣称。X是一个绑定的变量用来表示一个资源;http://www.vvasam.com/Maana\#value是一个叫做“value”的属性;97是这个属性的值。
  
  SELECT ?x WHERE (?x “97”)
  
  Jena的toolkit提供了一个当命令执行措施履行之Java仿佛(jjena.rdfquery)来进行RDQL查询。下面的例证演示了要利用这个令进行询问并以查询结果存入test1.rdql中间。
  java jena.rdfquery –data RDFTest1.rdf –query test1.rdql
  x
  ================================================
  http://www.vvasam.com/Maana\#RDFTest\_Instance\_8
  
  注意:通过文后底资源链接来取得有关RDF和RDQL更多之音讯。
  
  RDF 中使用Protégé
  
  Protégé
是一个于是来起与编辑ontologies和知识库的GUI工具。Protégé可以当RDF格式下开创与保存数据。在使Protégé建立RDF模型时,需要在新建一个工程的下择RDF
Schema,如图2所展示。
  

君属于什么品种

 网球 4

有些差异不是纵向的或提高的,可能有数独对象差异非常好,却并没有层次高低的比较。AQAL框架用种是词描述这好像横向差异。关于项目的例子很多:

  

音乐类别:爵士、摇滚、经典、重金属。

图2. RDF Schema工程

语彩类型:积雨云、层云、卷云、雨云。

  
  在Protégé’s工程菜单选择新建工程时,选择格式(Select
Format)对话框会弹出。点击OK按钮,图3的窗口会起。
  

言语类:印欧语系、汉藏语系、南太平洋语系。

 网球 5

论及项目:亲子、手足、友谊、职业、爱情。

  

发色类型:金色、褐色、白色、红色、黑色。

祈求3. 缺省Protégé工程视图

地理类型:沙漠、森林、热带草原、沼泽、苔原 、山岳。

  
  正使您当图3面临所见到的那么,Protégé有一部分标签。本文主要介绍其中的Classes,Instances和Algernon标签。
  
  图4显示了Protégé的保存对话框。在内部用户可填充入工程,类公事,实例文件,和命名空间的讳。如图4所显示,类公事称受到包括RDF
Schema的音讯,实例文件称受连RDF的数目。命名空间中以唯一URI的章程标示出RDF模型。
  

你或发现自己通常更欣赏某种类型,例如你恐怕好爵士胜过摇滚,喜欢住在濒海而不喜欢住在山脚下,喜欢金发胜过黑发,或者迷恋雨云。但要再行重申的凡,我们无能够说某个项目又浓、更繁荣、比任何种类又好,它们只是不同之类。每种型且发生异乎寻常之风味、优点和缺陷,天赋和缺陷。AQAL认为,所有项目且同样要,我们无应有忽视任何类型。氦和碳是简单栽原子类型。分子于原子更复杂,因为分子超越同含了原子。层次代表纵向差异,类型代表横向差异。

 网球 6

探这些名:拿破仑·波拿马、海伦·凯勒、亨利·福特、弗里德里希·尼采、米开朗琪罗、帕特·罗伯逊、马莉·库里、开膛手杰克、芭比·鲁斯、马克·吐温、圣女贞德。他们都格外资深又十分不同,对吧?对活蒙之题目,如“你是何人?”或者“你要什么”或者“你的极关怀是啊?”他们的答案自然乱七八次。虽然上面列举的这些人口的觉察层次并不相同,但她俩都享有同等码相似的动学类型:左撇子。你可以是左撇子奴隶,左撇子科学家,左撇子圣人(也许在您的一生一世中兼任具有这三栽身份),虽然你在不同之迈入路子中前行之层系越来越大、越来越厚,但若的类别基本不换。

  

现今,我们来更密切地观察道德发展路子的花色,读者或许还能记得,它们于自我中心变及种族中心,再变到世界中心(及重新胜)。研究者发现,男性与坤的道德发展各个相同,但主体或态度不同。男性化方向更胜的人数会见经与坤一样之垂直发展阶段,但再努力强调权利及公,女性化取向更胜之口虽然再度注重责任和关切。

希冀4: Protégé’s保存对话框

任由你是男或女性,你的型且只有体现了进步之性状而非是组织。男人和家还负有男性特征面和女性特征面(就像他们还发左及右边)。只不过,在老公身上,男性角色占主导地位,而当爱人身上,女性取向更强(就比如我们便更多地用有独自手,而未是另外那不过)。当然,有的丈夫可能来重新胜似之女性化倾向,有的女人则男性化倾向还强。这说明了她们能取向的档次差异。

  
  图5和图6显示的是Protégé’s类标签和实例标签,分别表示了列表1跟列表2遭遇之.rdf和.rdfs文件。这些文件使用Protégé’s
schema 格式创建。
  

乘势整体意识的成才,我们虽可知善待自己在的一切,包括自己与别人内在的男与女能。这不代表我们必须减两方,不为任何一方占据主导地位。恰恰相反!根据性和当下的需,我们得又男性化或又女性化!区别在于,我们不为按女性风度呢代价来鼓舞男性气质,反之亦然。例如,我们可以在工作中更产生进取心(男性化),但回家后倒激起起再柔软、温良的女性化气质。这取决于我们内在的男性化和女性化趋势如何产生作用,以及我们于具体地中选取哪回应世事。

 网球 7

 

  

图5: Protégé的切近标签

  

 网球 8

  

祈求6: Protégé的实例标签

  
  Protégé中的Algeronon 查询
  
   Protégé’s的Algernon
query标签为进行Algernon查讯提供了一个图形界面,用户可以这个UI当中进行查询,并查阅结果。Algernon是平种植基于三首届组的查询语
言,如图7所示Algernon将资源以遍历(traversal)路径的方法回给用户。缺省之Algernon并无会见要下图那样显示。要观看此标
签,用户必须从工程菜单的设置子菜单中选择。
  

 网球 9

  

图7. Algernon 标签

  
  Jena和Protégé之间的命名(terminology)映射
  
  由于Jena和Protégé是片只不同之开源技术,所以他们的RDF
命名(terminology)存在差距。下表中列有了这些命名规则,用户可以再有这些命名规则来创造同拍卖RDF文件。
  
  

表1. Jena 以及 Protégé 命名比较

  

 网球 10

  Jena 的语义RDF工具
  
 
 一省讲解了片用以保护Jena数据库和文件模型的实惠之家伙/脚本。这些本子文件包含在SemanticRDFUtils-scripts-
files.zip文件中,您可以资源中找到。下面的列表中讲述了这些本子文件可以推行之任务。当用户以无任务ID号作为参数的一声令下执行措施实行
SemanticRDFUtils批判处理文件时,下面的情节将会见现出于你的控制台当中
  

 网球 11

  以上各级任务ID的意分别吗:
  
  1:建立并初始化一个Jena系统表,系统模型名吧JenaRDFSystem
  2:建立数据库模型
  3:删除一个数据库模型
  4:列出所给有模型中的情节
  5:将RDF/XML文件导入数据库
  6:列出存在数据库模型的名
  7:将数据库模型导出到RDF/XML文件中
  8:删除一个数据库模型中的兼具情节
  9: 为不同RDF/XML文件模型建立一个统一之RDF/XML文件
  10:建立不同RDF/XML文件一直的夹文件。
  11: 建立不同RDF/XML文件一直的差集文件。
  12:得到给定模型的轻重缓急
  13:将RDF查询结果保存在RDF/XML文件中
  14:从RDF查询结果模型中去资源
  
  SemanticRDFUtils脚本使用SemanticRDFUtils.properties文件储存配置信息。下表给闹了配置信息被之兼具属性:
  
  

表 2. 性能设置

  

网球 12

  任务
  
  第一单任务是在数据库被建立一个Jena 系统表并要求下列属性之正确值:
  
  rdf_sytem_model_name
  db_user
  db_password
  isRDFInDB
  url
  
  第二个任务是以数据库建立一个新的RDF模型并求下列属性之正确值:
  
  rdf_sytem_model_name
  db_user
  db_password
  isRDFInDB
  url
  modelName (如果此特性也空,那么脚本会提示用户从键盘输入值)
  
  第三只任务是于数据库被去RDF模型并求之下属性之正确值:
  
  rdf_sytem_model_name
  db_user
  db_password
  isRDFInDB
  url
  modelName (如果这个特性也空,那么脚本会提示用户从键盘输入值)       

 

季个任务是列出RDF数据库被的内容连求之下属性之正确值:
        rdf_sytem_model_name
        db_user
        db_password
        isRDFInDB
        url
        modelName (如果是特性也空,那么脚本会提示用户从键盘输入值)

第五只任务是拿RDF导入到数据库模型中,并求之下属性之正确值:
        rdf_sytem_model_name
        db_user
        db_password
        isRDFInDB
        url
        modelName (如果这特性也空,那么脚本会提示用户从键盘输入值)
        import_rdffile_abs_name
属性import_rdffile_abs_name值将为置为.rdf文件的绝对路径(如下的例证所示)。如果此价值吗空那脚本会提示用户从键盘输入值。
import_rdffile_abs_name=C:/temp/RDFTest1.rdf

第六单任务是列出一个数据库模型中所有的型,需要以下的性能之正确值:
        rdf_sytem_model_name
        db_user
        db_password
        isRDFInDB
        url

第七单任务是用指定数据库模型的情节导出到一个RDF文件中,需要以下的属性之正确值:
        rdf_sytem_model_name
        db_user
        db_password
        isRDFInDB
        url
        modelName (如果这属于性值为空,脚本将唤起用户从键盘输入)
        import_rdffile_abs_name
属性export_rdffile_abs_name值将吃置为.rdf文件的绝对路径(如下的事例所示)。如果这价吗空那脚本会提示用户从键盘输入值。
export_rdffile_abs_name=C:/temp/export.rdf

第八个任务是自数据模型中删除内容,需要以下是的属性值:
        rdf_sytem_model_name
        db_user
        db_password
        isRDFInDB
        url
The ninth task performs a union operation on two file models and
requires appropriate values for the following properties:

第九个任务是本着少数单文档模型进行并集操作,需要以下是的属性值:
        isRDFInDB
        url
               file_rdfmodel1_abs_name
        file_rdfmodel2_abs_name
        result_rdfmodel_abs_name
下是一个范例的属性值:

file_rdfmodel1_abs_name=C:/temp/RDFTest1.rdf

file_rdfmodel2_abs_name=C:/temp/RDFTest2.rdf

result_rdfmodel_abs_name=C:/temp/RDFTestUnion.rdf

当使用SemanticRDFUtils执行任务9的下,两独.rdf文件会让合。如果只要以一个联之.rdf文件上建一个Protégé工程,.rdfs文件必须被手工生成。

第10独任务是履行两个文件模型的插花操作,需要为下属性的正确值:
        isRDFInDB
        url
        file_rdfmodel1_abs_name
        file_rdfmodel2_abs_name
        result_rdfmodel_abs_name
脚是一个范例的属于性值:

file_rdfmodel1_abs_name=C:/temp/RDFTest1.rdf
file_rdfmodel2_abs_name=C:/temp/RDFTest2.rdf
result_rdfmodel_abs_name=C:/temp/RDFTestInterSection.rdf

第11个任务是实行两单公文模型的差集操作,需要以下属性的正确值:
        isRDFInDB
        url
        file_rdfmodel1_abs_name
        file_rdfmodel2_abs_name
        result_rdfmodel_abs_name
下面是一个范例的属性值:

file_rdfmodel1_abs_name=C:/temp/RDFTest1.rdf
file_rdfmodel2_abs_name=C:/temp/RDFTest2.rdf
result_rdfmodel_abs_name=C:/temp/ RDFTestDifference.rdf

第12单任务是列出指定数据库模型的尺寸,需要坐下属性的正确值:
        rdf_sytem_model_name
        db_user
        db_password
        isRDFInDB
        url
        modelName (如果这个价值为空那脚本会提示用户从键盘输入值)

第13独任务将本着数据库模型的一个RDF查询结果导出到一个RDF文件中,需要以下属性的正确值:
        rdf_sytem_model_name
        db_user
        db_password
        isRDFInDB
        url
        modelName (如果是属于性值为空,脚本会要求用户从键盘输入值)
        rdf_query
        bind_var_name
        export_rdffile_abs_name
下面是一个范例的属于性值:

rdf_query=SELECT ?x WHERE (?x    "65")
bind_var_name=x
export_rdffile_abs_name=C:/temp/exportquery.rdf

第14个任务是以一个以数据库模型的RDF查询结果删除,需要以下属性的正确值:
        rdf_sytem_model_name
        db_user
        db_password
        isRDFInDB
        url
        modelName (如果是属于性值为空,脚本会要求用户从键盘输入值)
        rdf_query
        bind_var_name
下是一个范例的属于性值:

rdf_query=SELECT ?x WHERE (?x    "65")
bind_var_name=x

结论

首文章介绍了什么样使用Jena和Protégé来创造RDF源数据模型。并讲述了怎么用SemanticRDFUtils在指令行脚本方式下护
RDF模型。在这首文章的资源面临之SemanticRDFUtils-source-files.zip文件包含了能够用来创造基于Web接口或是
Protégé的插件的源文件,使用其得以管理RDF模型。针对各国一个RDF模型所加载的脚文会有所不同,所以需要区分对待,每一样种情景还要单独处理。

至于作者:
Venkata N. Vasam 主要办事圈子是J2EE/Web services/EAI
架构。目前外动用SeeBeyond集成工具包(eGate和ICAN)为A2A和B2B集成要求提供Web服务/J2EE/EAI
架构。他收获了J.N.T University,Hyderabad,
India的微机是与工程学位。业余时间Vasam喜欢自网球看喜剧和倒电影。

gracepig是(Matrix.org.cn)的会员,可以经过zhangchi_nwpu@hotmail.com和外沟通。

资源
文中的源码下载地址
http://www.javaworld.com/javaworld/jw-07-2005/jena/jw-0704-jena.zip
“What is RDF?” 作者 Tim Bray (XML.com, 一月 2001):
http://www.xml.com/pub/a/2001/01/24/rdf.html
        RDF 规范
http://www.w3.org/RDF/
        Jena下充斥地址
http://jena.sourceforge.net/downloads.html
        RDF和Jena RDF API简介
http://jena.sourceforge.net/tutorial/RDF\_API/index.html
        Jena2: 一栽语意Web框架
http://www.hpl.hp.com/semweb/jena2.htm
        RDQL:
http://jena.sourceforge.net/tutorial/RDQL/index.html
        RDF 入门
http://www710.univ-lyon1.fr/~champin/rdf-tutorial/
        Protégé 入门
http://protege.stanford.edu/doc/tutorial/get\_started/index.html
        Protégé 下载
http://protege.stanford.edu/download/download.html
        Algernon标签
http://algernon-j.sourceforge.net/doc/algernon-protege.html
        ava 下充斥地址
http://java.sun.com/
        Oracle下载地址
http://www.oracle.com/technology/software/index.html 

转载:http://blog.csdn.net/bittermelon/article/details/1866025

http://java.chinaitlab.com/core/34654.html