skip to navigation
skip to content

doapfiend 0.3.3

Command-line tool and library for DOAP (Description of a Project) RDF.

Downloads ↓

Doapfiend is a command-line client and library for fetching, displaying, creating, and manipulating DOAP (Description of a Project) files.

Doapfiend uses RDFAlchemy/rdflib as an ORM to query and create DOAP.

See docs/api for Epydoc generated API documentation.

Features

  • Display metadata in DOAP in a human-readable format
  • Get DOAP by a !SourceForge, Freshmeat, PyPI, Ohloh etc. project name
  • Search all DOAP spidered on the web (pingthesemanticweb.com)
  • Access the metadata in the DOAP file using Python dot notation
  • Fetch DOAP by using the short name of a DOAP PURL doapurl.org
  • Fetch and display DOAP mentioned in FOAF by project homepage
  • Written in Python (Yes, that's a feature.)
  • Extensible with plugins using setuptools

Optional Plugins available

  • Generate a web page with CSS from a DOAP file (using hdoap)
  • Search for DOAP using a Gentoo Linux pacakge name (Thanks GLEP 46)

Plugins in development

  • Search for DOAP by names you know, such as your distribution's package names
  • Create a Gentoo ebuild from a DOAP file

Installaion

You can InstallDoapfiend using distutils, easy_install or subversion. There is also a Gentoo Linux ebuild available.

Example command-line usage

Fetch DOAP for SourceForge project named 'nut':

$ doapfiend --sf nut

You have a project's homepage, display DOAP if any has been spidered:

$ doapfiend -o http://librdf.org/raptor/

You have the URL or local path to a DOAP file:

$ doapfiend -d http://librdf.org/raptor/raptor.rdf

Display DOAP as RDF/XML for the SourceForge project 'nut':

$ doapfiend -x --sf nut

Display DOAP as N3 (Notation Three) for the SourceForge project 'nut':

$ doapfiend -n --sf nut

Example library usage

Use a Freshmeat project name to fetch and display DOAP:

>>> from doapfiend.doaplib import get_by_pkg_index

>>> print get_by_pkg_index('fm', 'nut')

Get some DOAP and access its metadata:

>>> from doapfiend.doaplib import get_by_pkg_index, load_graph
>>> doap = load_graph(get_by_pkg_index('fm', 'nut'))
>>> print doap.name
'nut'
>>> print doap.created
'2008-04-19'

Use a project's homepage to fetch DOAP and print the RDF/XML. Note there may be more than one DOAP profile out there; we just use the first found in our example.

>>> from doapfiend.doaplib import query_by_homepage, print_doap
>>> url = query_by_homepage('http://news.tiker.net/software/tagpy')[0][1]
>>> print fetch_doap(url)

Same as above but display DOAP in human readable text:

>>> print_doap(fetch_doap(url))
 
File Type Py Version Uploaded on Size # downloads
doapfiend-0.3.3-py2.5.egg (md5) Python Egg 2.5 2008-06-10 65KB 654
doapfiend-0.3.3.tar.gz (md5) Source 2008-06-10 257KB 561