资源描述框架(Resource Description Framework RDF)是一种以XML格式描述元数据的标准格式。Jena是一种用于将关系数据库或是文本文件中所表示的数据建立为元数据模型的框架方法。Protégé 用用来创建RDF元数据文档的编辑工具。 建立这种数据库和文件的元数据模型需要由用户自己定义脚本。本文介绍介绍了SemantiRDFUtils这种脚本,它拥有多个功能块可以用于维护Jena RDF 元数据模型。
与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 数据挖掘研究院
<?xml version=′1.0′ encoding=′UTF-8′?>
<!DOCTYPE rdf:RDF [
<!ENTITY rdf ′http://www.w3.org/1999/02/22-rdf-syntax-ns#′>
<!ENTITY rdfs ′http://www.w3.org/TR/1999/PR-rdf-schema-19990303#′>
<!ENTITY Maana ′http://www.vvasam.com/Maana#′>
]>
<rdf:RDF xmlns:rdf="&rdf;"
xmlns:Maana="&Maana;"
xmlns:rdfs="&rdfs;">
<Maana:ASCII rdf:about="&Maana;RDFTest_Instance_0"
Maana:Name="A"
Maana:value="65"
rdfs:label="A:65">
<Maana:system rdf:resource="&Maana;RDFTest_Instance_2"/>
</Maana:ASCII>
<Maana:System rdf:about="&Maana;RDFTest_Instance_1"
Maana:Name="lowercase"
rdfs:label="lowercase"/>
<Maana:ASCII rdf:about="&Maana;RDFTest_Instance_10000" 数据挖掘研究院
Maana:Name="b"
Maana:value="98"
rdfs:label="b:98">
<Maana:system rdf:resource="&Maana;RDFTest_Instance_1"/>
</Maana:ASCII>
<Maana:ASCII rdf:about="&Maana;RDFTest_Instance_10001"
Maana:Name="B"
Maana:value="66"
rdfs:label="B:66">
<Maana:system rdf:resource="&Maana;RDFTest_Instance_2"/>
</Maana:ASCII>
<Maana:AscXRef rdf:about="&Maana;RDFTest_Instance_10002"
rdfs:label="b:98:B:66">
<Maana:keyName rdf:resource="&Maana;RDFTest_Instance_10000"/>
<Maana:keyValue rdf:resource="&Maana;RDFTest_Instance_10001"/>
</Maana:AscXRef>
<Maana:AscXRef rdf:about="&Maana;RDFTest_Instance_10005"
rdfs:label="a:97:A:65">
<Maana:keyValue rdf:resource="&Maana;RDFTest_Instance_0"/>
<Maana:keyName rdf:resource="&Maana;RDFTest_Instance_8"/>
</Maana:AscXRef>
<Maana:System rdf:about="&Maana;RDFTest_Instance_2"
Maana:Name="uppercase"
rdfs:label="uppercase"/>
<Maana:ASCII rdf:about="&Maana;RDFTest_Instance_8"
Maana:Name="a"
Maana:value="97"
rdfs:label="a:97">
<Maana:system rdf:resource="&Maana;RDFTest_Instance_1"/>
</Maana:ASCII>
</rdf:RDF> 数据挖掘研究院
列表 2. RDFTest1.rdfs
<?xml version=′1.0′ encoding=′UTF-8′?>
<!DOCTYPE rdf:RDF [
<!ENTITY rdf ′http://www.w3.org/1999/02/22-rdf-syntax-ns#′>
<!ENTITY system ′http://protege.stanford.edu/system#′>
<!ENTITY Maana ′http://www.vvasam.com/Maana#′>
<!ENTITY rdfs ′http://www.w3.org/TR/1999/PR-rdf-schema-19990303#′>
]>
<rdf:RDF xmlns:rdf="&rdf;"
xmlns:system="&system;"
xmlns:rdfs="&rdfs;"
xmlns:Maana="&Maana;">
<rdf:Property rdf:about="&system;maxCardinality"
rdfs:label="system:maxCardinality"/>
<rdf:Property rdf:about="&system;minCardinality"
rdfs:label="system:minCardinality"/>
<rdf:Property rdf:about="&system;range"
rdfs:label="system:range"/>
<rdfs:Class rdf:about="&Maana;ASCII"
rdfs:label="ASCII">
<rdfs:subClassOf rdf:resource="&rdfs;Resource"/>
</rdfs:Class>
<rdfs:Class rdf:about="&Maana;AscXRef"
rdfs:label="AscXRef">
<rdfs:subClassOf rdf:resource="&rdfs;Resource"/>
</rdfs:Class>
<rdf:Property rdf:about="&Maana;Name"
rdfs:label="Name">
<rdfs:domain rdf:resource="&Maana;ASCII"/>
<rdfs:domain rdf:resource="&Maana;System"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</rdf:Property>
<rdf:Property rdf:about="&Maana;RDFTest_Slot_10003"
rdfs:label="RDFTest_Slot_10003">
<rdfs:range rdf:resource="&rdfs;Literal"/>
</rdf:Property>
<rdfs:Class rdf:about="&Maana;System"
rdfs:label="System"> 数据挖掘研究院
<rdfs:subClassOf rdf:resource="&rdfs;Resource"/>
</rdfs:Class>
<rdf:Property rdf:about="&Maana;keyName"
rdfs:label="keyName">
<rdfs:range rdf:resource="&Maana;ASCII"/>
<rdfs:domain rdf:resource="&Maana;AscXRef"/>
</rdf:Property>
<rdf:Property rdf:about="&Maana;keyValue"
rdfs:label="keyValue">
<rdfs:range rdf:resource="&Maana;ASCII"/>
<rdfs:domain rdf:resource="&Maana;AscXRef"/>
</rdf:Property>
<rdf:Property rdf:about="&Maana;system"
rdfs:label="system">
<rdfs:domain rdf:resource="&Maana;ASCII"/>
<rdfs:range rdf:resource="&Maana;System"/> 数据挖掘研究院
</rdf:Property>
<rdf:Property rdf:about="&Maana;value"
rdfs:label="value">
<rdfs:domain rdf:resource="&Maana;ASCII"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</rdf:Property>
</rdf:RDF> 数据挖掘研究院
Jena和Protégé概述 数据挖掘研究院
本节在宏观层面上介绍Jena和Protégé。用户可以在附加资源中得到关于这两个产品更多的信息。本文的目的是使您对Jena和Protégé有一个比较清晰的理解。 数据挖掘研究院

