本系列的前两篇文章中,我分析了描述开放源代码项目的XML/RDF 词汇表的原理和设计问题。DOAP(Description of a Project,项目描述)词汇表应该能够满足项目维护者(他们发现需要在无数的网站上注册自己的软件)以及寻找并交换这类信息的人员的需要。第 1 部分列举了目前这方面的研究,定义了项目的边界。第 2 部分提出了词汇表的候选术语,并强调了一些设计问题。
本文将给出 DOAP 词汇表的初步草案,和一些项目的示例描述。本文中包含大量的例子,建议在阅读的过程中练习创建自己的DOAP 描述。
概述
我将使用 RDF 模式语言讨论 DOAP。虽然 DOAP 很容易作为 XML 使用,但是您将看到它从根本上是一个 RDF 词汇表。要注意本文中使用的两个 RDF 模式概念: 类和 属性。在 RDF 中,类是一种资源类型,就像在 Java 编程语言中类是对象的类型一样。属性是资源和其他资源或者文字值的联系。其他介绍 RDF 的developerWorks文章请参阅 参考资料.
在开始介绍 DOAP 词汇表的术语之前,先看一看这个简单的示例 DOAP 文件,清单 1 是 DOAP 项目本身的最小化描述:
清单 1. DOAP 项目的最小化描述
<Project xmlns="http://usefulinc.com/ns/doap#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<name>DOAP</name>
<homepage rdf:resource="http://usefulinc.com/doap" />
<created>2004-05-04</created>
<shortdesc xml:lang="en">
Tools and vocabulary for describing community-based
software projects.
</shortdesc>
<description xml:lang="en">
DOAP (Description of a Project) is an RDF vocabulary and
associated set of tools for describing community-based software
projects. It is intended to be an interchange vocabulary for
software directory sites, and to allow the decentralized
expression of involvement in a project.
</description>
<maintainer>
<foaf:Person>
<foaf:name>Edd Dumbill</foaf:name>
<foaf:homepage rdf:resource="http://usefulinc.com/edd" />
</foaf:Person>
</maintainer>
</Project>
从 清单 1可以看到编写 DOAP 文件的一些一般规则:
类用首字母大写的词汇标记,如“Project”和“Person”。这是编写 RDF 词汇表的一般约定,它似乎工作得很好。属性用小写书写。
DOAP 文档的最外层元素是 <Project> 。2004 年 2 月的RDF 语法规范(请参阅 参考资料)允许省略 <rdf:RDF> 容器,描述可以用外层节点编写。
朋友的朋友(Friend-of-a-Friend ,FOAF)词汇表用于描述人。我曾对此写过几篇文章(请参阅 参考资料)。
DOAP 名称空间是 http://usefulinc.com/ns/doap# 。
标准属性 xml:lang 表示文本属性的语言。
DOAP 词汇表目前包括三个类:
Project:主项目资源
Version:发布软件的实例
Repository:源代码资料库
事实上,Repository 有几个子类,后面将说明。现在我们来依次分析各个类。