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:

[sourcecode language='xml']

xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”>
Memoranda


Memoranda (formerly known as jNotes2) is a cross-platform
diary manager and a personal project management tool.



[/sourcecode]

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:

[sourcecode language='xml']

xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”>
Alex Alishevskikh
Alex
Alishevskikh
Open Source Software Developer



alexeya









[/sourcecode]

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?

News ยท , , ,
Share

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.