In the first two articles of this series, I analyzed the principles and design issues of the XML/RDF glossary that describes open source projects. DOAP (Description's a project, description) glossary should be able to meet the needs of Project Maintainers (who find themselves registering their own software on numerous web sites) and those who seek and exchange such information. The 1th part enumerates the current research and defines the boundaries of the project. The 2nd part presents the candidate terminology of glossary, and emphasizes some design problems.
This article will give a preliminary draft of the DOAP Glossary and a sample description of some projects. This article contains a number of examples that suggest practicing creating your own doap descriptions during the reading process.
Overview
I'll use RDF schema language to discuss DOAP. Although DOAP is easy to use as XML, you will see that it is fundamentally an RDF glossary. Note the two RDF schema concepts used in this article: Classes and attributes. In RDF, a class is a resource type, just as a class is a type of object in the Java programming language. Attributes are links to resources and other resources or literal values. For other developerworks articles that introduce RDF, see Resources.
Before you begin to introduce the terminology of the DOAP glossary, take a look at this simple example DOAP file, listing 1 is a minimal description of the DOAP project itself:
Listing 1. Minimum description of DOAP project
<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>
<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 a 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>
You can see from Listing 1 some general rules for writing DOAP files:
Class with a first-letter word mark, such as Project and person. This is a general agreement to write an RDF glossary, and it seems to work very well. Properties are written in lowercase.
The outermost element of the DOAP document is <Project>. The February 2004 RDF Syntax specification (see Resources) allows you to omit <rdf:RDF> containers, which can be written with an outer node.
Friend's friend (Friend-of-a-friend, FOAF) glossary is used to describe people. I have written a few articles about this (see Resources).
The DOAP namespace is http://usefulinc.com/ns/doap#.
Standard properties Xml:lang A language that represents text properties.
The DOAP glossary currently includes three classes:
Project: Master project Resource
Version: Example of publishing software
Repository: Source code Repository
In fact, Repository has several subclasses, which are described later. Now let's analyze each class in turn.