<a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/RDFIntroduction_(zh_CN)">http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/RDFIntroduction_(zh_CN)</a><div><br></div><div><a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/RDFIntroduction_(zh_CN)"></a><br>
<br><div class="gmail_quote">2010/3/7 dbhrscom <span dir="ltr">&lt;<a href="mailto:dbhrscom@gmail.com">dbhrscom@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Nepomuk的资源描述框架(RDF)和本体(Ontologies) 大致翻译完成,大伙看看成否:-)<br><br>原文地址:<a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/RDFIntroduction" target="_blank">http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/RDFIntroduction</a><br>

<br>文中一些术语暂使用&ldquo;shared-desktop-ontologies 的中文翻译&rdquo;邮件提到的几个术语的商榷想法,若能形成一致,再进行修改<br clear="all"><br>PS:文中链接较多,所以附上word文档<br><br>译文:<br><br>原文地址:<a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/RDFIntroduction" target="_blank">http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/RDFIntroduction</a><br>

<br>Nepomuk的资源描述框架(RDF)和本体(Ontologies)<br>翻译:<a href="mailto:dbhrscom@gmail.com" target="_blank">dbhrscom@gmail.com</a><br><br>这个指南基于Sebastian Trueg 的博文 Nepomuk Appendix A - RDF for Dummies in a Nutshell?<br><br>在这儿讨论的所有本体随同kdebase-runtime 一起安装,因此这些本体总是存在于Nepomuk数据仓库中,另外,他们的资源URI可以通过 Soprano::Vocabulary namespace 进行访问 (NIE除外,它可以简单的使用Soprano的 onto2vocabularyclass 建立)<br>

译者注:Ontologies 直译本体,也有推荐翻译为&ldquo;知识本体&rdquo;,在语义学上可以简单理解为一些语义表达的基本模式的说明<br><br>RDF &mdash; 资源描述框架<br><br>RDF是一种描述数据存储的方法,与基于表格的经典数据库不同,RDF数据由三元组组成,被称之为语句(statement)的三元组组成方式是:<br><br>主语 &mdash; 谓语 &mdash; 对象<br><br>主语是一个资源,谓语是一个关系,对象可以是另外的资源或者一个值。这个值的数据类型可以是字符串、整数、双精度浮点数或者是在 XML Schema 中定义的类型,甚至可以是自定义的数据类型。那么关于事物(Thing)的RDF数据可以表现为如下语句:Mary - is mother of &ndash; Carl 或者 Mary - was born on - 1970-02-23。<br>

<br>为了降低表达上的模糊,资源和关系必须是唯一标识。例如,在上面的语句中,确定了一个特定的&ldquo;Mary&rdquo;,用以区分和&ldquo;Baghdad &ndash; is mother of &ndash; all battles&rdquo; 的不同。 自RDF做为一个Web技术诞生以来,所有的资源和关系都是用URI(统一资源标识符)进行标识。(他们的命名空间经常用#和一个名字结束,典型的用法是缩写为foo:bar ),因此一个RDF数据集基本上是一个graph ,资源(主语)是节点,关系(谓语)是连接,值是叶子。<br>

<br>RDF定义了一个重要的默认属性 rdf:type ,通过这个属性指定资源的类型。<br><br>RDFS &mdash; The RDF Schema<br><br>RDFS扩展了RDF,定义了一个资源和属性的集合,这个扩展基本上允许定义Ontology(本体)。RDFS不但定义了两个重要的类 rdfs:Resource 和 rdfs:Class 用来引入实例和类型的区别,而且定义了属性的层次结构:rdfs:subClassof 和 rdfs:subPropertyof ,rdfs:domain 和 rdfs:range 指定属性的细节。<br>

<br>这些扩展允许建立新类和属性,与面向对象编程非常类似,例如:<br><br>@PREFIX foo: &lt;http://foo.bar/types#&gt;;<br><br>foo:Human rdf:type rdfs:Class .&nbsp; //Human的类型是类<br>foo:Woman rdf:type rdfs:Class .&nbsp; //Woman 的类型是类<br>foo:Woman rdfs:subClassOf foo:Human .&nbsp; //Woman类是Human类的子类<br>

<br>foo:isMotherOf rdf:type rdf:Property .&nbsp; // isMotherof 的类型是属性<br>foo:isMotherOf rdfs:domain foo:Woman .&nbsp; // isMotherof 隶属Woman域<br>foo:isMotherOf rdfs:range foo:Human .&nbsp;&nbsp; // isMotherof 用于Human范围<br><br>foo:Mary rdf:type foo:Woman . // Mary的类型是 Woman<br>

foo:Mary foo:isMotherOf foo:Carl . //一个Thing的三元语句描述<br><br>这是一个如何使用RDFS定义一个本体的简单例子(使用 Turtle 语言)。在RDFS中最后两个重要的谓语(关系)是 rdfs:label and rdfs:comment ,为任意资源定义可读性标签和注释。<br><br>NRL:Nepomuk表示语言<br><br>Nepomuk开发NRL是为了扩展RDFS。对于NRL,我不准备详细解释它的一切,但我会就目前KDE而言非常重要的信息进行解释。<br>

<br>NRL最为重要的改变是从三元组描述到四元组描述的改变,第四个参数是已定义(存储)的用语句描述的graph(可能为空),这个graph (在Soprano 中称为 context) 是这样一种资源,它可以对描述语句进行分组,允许对描述语句组进行追加。NRL定义了一组 graph(context)类型,其中很重要的是:nrl:InstanceBase 和 nrl:Ontology。第一个定义了graph 包含的实例,第二个,你猜对了,它定义了包含类型和谓语的graphs。<br>

<br>为了使之更加清楚,我们用NRL扩展上面的例子<br><br>@PREFIX foo: &lt;http://foo.bar/types#&gt;;<br><br>foo:graph1 rdf:type nrl:Ontology .&nbsp;&nbsp; // 资源foo:graph1的类型是本体<br>foo:graph2 rdf:type nrl:InstanceBase . // 资源foo:graph2的类型是基础实例<br><br>foo:Human rdf:type rdfs:Class foo:graph1. // 资源foo:Human类型是类,是本体 <br>

foo:Woman rdf:type rdfs:Class foo:graph1. // 资源foo:Woman类型是类,是本体<br>foo:Woman rdfs:subClassOf foo:Human foo:graph1 . //资源foot:Woman是foo:Human的子类,是个本体<br><br>foo:isMotherOf rdf:type rdf:Property foo:graph1 .<br>// 资源foo:isMotherOf的类型是属性,是个本体<br>

foo:isMotherOf rdfs:domain foo:Woman foo:graph1 .<br>// 资源foo:isMotherOf的作用域为foo:Woman,是个本体<br>foo:isMotherOf rdfs:range foo:Human foo:graph1 .<br>// 资源foo:isMotherOf的范围是foo:Human,是个本体<br><br>foo:Mary rdf:type foo:Woman foo:graph2 .<br>

资源Mary的类型为foo:Woman,是一个基础实例<br>foo:Mary foo:isMotherOf foo:Carl foo:graph2 .<br>资源Mary和资源foo:Carl是foo:isMotherOf的关系,是一个基础实例<br>但是,上述例子不能展现实体和本体的所有区别<br><br>NAO &mdash; Nepomuk 标注本体<br><br>你在KDE已经遇到过的由NAO定义的资源类型和属性是:nao:Tag 或 nao:rating 。其实NAO也定义了 nao:created 属性,它为资源 (在下面的例子里是一个graph)分配一个 xls:dateTime 类型数据。 当一些信息被加入到Nepomuk库时,我们用这个方法存储相关信息。<br>

<br>foo:graph1 nao:created<br>&quot;2008-02-12T14:43.022Z&quot;^^&lt;<a href="http://www.w3.org/2001/XMLSchema#dateTime" target="_blank">http://www.w3.org/2001/XMLSchema#dateTime</a>&gt; <br><br>NIE &mdash; Nepomuk 信息元素本体<br><br>
NIE 本体描述桌面资源文件像文件,文件夹,电子邮件,联系人,即时消息等等,它在文件索引系统诸如 Strigi 或者 tracker中用于描述提取的元数据。<br>
* NFO - The Nepomuk File Ontology 描述文件的元数据<br>* NCO - The Nepomuk Contact Ontology 描述地址簿条目<br>* NMO - The Nepomuk Message Ontology 描述各种消息包括电子邮件和即时通讯消息 <br>* NCAL - The Nepomuk Calendar Ontology 描述联系人条目<br>* NEXIF - The Nepomuk Exif Ontology 描述图像的元数据<br>

* NID3 - The Nepomuk ID3 Ontology 描述音频的元数据 <br><br>Xesam - 桌面文件元数据本体 因采用NIE而过时<br><br>Xesam是一个应用于strigi 索引桌面文件而开发出来的本体,它试图对桌面应用的大多数文件类型元数据定义类/类型和属性。简单的例子如id3标签或图像大小,或如发信人和收信任等电子邮件数据,在KDE桌面系统上strigi对文件元数据的检索结果使用Xesam定义的类和属性等数据保存在Nepomuk数据仓库内。<br>

<br><br>SPARQL &mdash; RDF 查询语言<br><br>我们用SPARQL 查询RDF 数据库,它的语句格式被设计成近似SQL,但因为它迄今为止十分年轻,所以还不是很强大。<br>尽管这样,搜索&ldquo;the mother of carl&rdquo;这样简单的查询大致如下:<br><br>prefix rdf: &lt;<a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#" target="_blank">http://www.w3.org/1999/02/22-rdf-syntax-ns#</a>&gt;<br>

prefix foo: &lt;http://foo.bar/types#&gt;<br><br>select ?r where {?r foo:isMotherOf foo:Carl . }<br><br>或者如果采用NRL <br>prefix rdf: &lt;<a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#" target="_blank">http://www.w3.org/1999/02/22-rdf-syntax-ns#</a>&gt;<br>

prefix foo: &lt;http://foo.bar/types#&gt;<br>prefix nrl: &lt;<a href="http://semanticdesktop.org/ontologies/2007/08/15/nrl#" target="_blank">http://semanticdesktop.org/ontologies/2007/08/15/nrl#</a>&gt;<br><br>select ?r where { graph ?g {?r foo:isMotherOf foo:Carl . } .?g rdf:type nrl:InstanceBase . }<br>

<br>SPARQL quick reference.是一份非常有价值的文档<br><br>其他本体/定制本体<br><br>这里所说的本体是Nepomuk数据的基本形式,但他们不能满足各方面的需求,如果你想在Nepomuk中存储你自己的数据并且和其他信息联系起来,建议按照以下过程来做:<br><br>* 在<a href="http://www.semanticdesktop.org/ontologies/." target="_blank">http://www.semanticdesktop.org/ontologies/.</a>中检查现有的标准本体中是否提供你所需要(或部分需要)的类和属性,这个网址中有很多标准本体,包括 NRL 和 NAO<br>

<br>* 如果没有,联系 The Oscaf project中与你需要获得的帮助相关的讨论组和开发组<br><br>* 如果你的需求还不能得到解决,那就开始开发你自己的本体,可能的话建议将其作为Oscaf标准本体。<br><font color="#888888"><br><br><br>-- <br><a href="mailto:dbhrscom@gmail.com" target="_blank">dbhrscom@gmail.com</a><br>

</font><br>_______________________________________________<br>
kde-china mailing list<br>
<a href="mailto:kde-china@kde.org">kde-china@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kde-china" target="_blank">https://mail.kde.org/mailman/listinfo/kde-china</a><br>
<br></blockquote></div><br></div>