Cyberborean Chronicles

DOAP, FOAF and SourceKibitzer

I contributed some code to generate DOAP/FOAF metadata from SourceKibitzer’s project and user profiles. My add-ons have been deployed recently, so SK is one of the largest (600+ projects) DOAP repositories now.

To access SourceKibitzer’s DOAP/FOAF services, you can use the following URL’s:

http://www.sourcekibitzer.org/ProjectsRDFList.ext
Returns a RDF Bag with the links to DOAP profiles of all OSS projects registered on the portal.

http://www.sourcekibitzer.org/ProjectDOAP.ext?sp=SprojectName
Returns a DOAP profile for the specified project. You can also navigate to a project page and click on “DOAP” button to get the profile.

http://www.sourcekibitzer.org/BioFOAF.ext?sp=luserId
Returns a FOAF profile of a user with specified ID (a number). You can also get the profile by clicking “FOAF” button on user’s Bio page.

DOAP

DOAP (Description Of A Project) is a RDF vocabulary to describe open source software projects (like ?ne, I once tried to invent myself). This is how typical SourceKibitzer DOAP looks:

<?xml version="1.0" encoding="UTF-8"?>
<doap:Project xmlns:doap="http://usefulinc.com/ns/doap#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<doap:name>Memoranda</doap:name>
<doap:homepage rdf:resource="http://memoranda.sourceforge.net/"/>
<doap:description xml:lang="en">
Memoranda (formerly known as jNotes2) is a cross-platform
diary manager and a personal project management tool.
</doap:description>
<doap:developer rdf:resource="http://www.sourcekibitzer.org/BioFOAF.ext?sp=l12"/>
</doap:Project>

Actually, DOAP vocabulary provides a lot more properties for project’s metadata, but there is a basic subset, derived from SK inner data model (it would be extended in future, I think, to be compatible with full DOAP semantics).

FOAF

Take a look at doap:developer properties – these are the links to FOAF (“Friend Of A Friend”) “foaf:Person” profiles of the project members, registered on the portal. FOAF profiles are RDF versions of the existing user Bio profiles, including backlinks to the user projects (DOAPs) as foaf:currentProject properties. Also, as a tribute to Social Networking philosophy, a FOAF profile is linked to all colleagues of the profile’s owner (with foaf:knows property) – that is the people working on the same projects:

<?xml version="1.0" encoding="UTF-8"?>
<foaf:Person xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<foaf:name>Alex Alishevskikh</foaf:name>
<foaf:givenname>Alex</foaf:givenname>
<foaf:family_name>Alishevskikh</foaf:family_name>
<foaf:title>Open Source Software Developer</foaf:title>
<foaf:holdsAccount>
<foaf:OnlineAccount>
<rdf:type rdf:resource="http://sourcekibitzer.org"/>
<foaf:accountName>alexeya</foaf:accountName>
<foaf:accountServiceHomepage rdf:resource="http://www.sourcekibitzer.org/Bio.ext?sp=l12"/>
</foaf:OnlineAccount>
</foaf:holdsAccount>
<foaf:currentProject rdf:resource="http://www.sourcekibitzer.org/ProjectDOAP.ext?sp=Smemoranda"/>
<foaf:currentProject rdf:resource="http://www.sourcekibitzer.org/ProjectDOAP.ext?sp=Ssourcekibitzer"/>
<foaf:knows rdf:resource="http://www.sourcekibitzer.org/BioFOAF.ext?sp=l8"/>
<foaf:knows rdf:resource="http://www.sourcekibitzer.org/BioFOAF.ext?sp=l20"/>
<foaf:knows rdf:resource="http://www.sourcekibitzer.org/BioFOAF.ext?sp=l119"/>
</foaf:Person>

So, an external agent can get an info about every developer of a specific project, and then learn which projects a given developer has, and who are his colleagues on those projects. Kinda Semantic Web stuff, huh?

Categories: Announcements · Tags: , , ,
Alex Alishevskikh @ 11:16 am
Share/Bookmark

Leave a comment

Comments feed  • TrackBack URL