ADMS.SW Plugin

From FusionForge Wiki
Jump to: navigation, search
ADMS.SW Plugin
This plugin provides support for querying via content-negociation the /projects/... pages, and complements the 'doaprdf' plugin.
Plugin Changelog
Plugin Changelog for admssw
Olivier Berger (+ help by Roland Mas)
available in a dedicated branch for deployment over 5.2.1, or in trunk post 5.2


This document describes the features of the ADMS.SW FusionForge plugin.

The ADMS.SW plugin for FusionForge allows administrators of a forge to publish meta-data about the public projects hosted on the forge.

The exported meta-data complies with the Asset Description Metadata Schema For Software 1.00 specifications (ADMS.SW 1.0).

The reader will need some familiarity with the concepts of the Semantic Web technology like the RDF model (RDF (Resource Description Framework)) and its Turtle representation format.


  • The URLs documented below illustrate the location of the different pages or documents served by a fictitious FusionForge instance running on the `forge.example.com` domain.
  • URIs of RDF resources are represented between angle brackets like <http://forge.example.com/#resource>


This section documents the different features that are provided by the plugin.

These are summarized in the following list :

  • The plugin is capable of exporting the description metadata linked to a single software project, including related software releases, software packages, licences, etc in a format that conforms to the ADMS.SW specification;
  • The plugin is capable of exporting the description of an entire software forge, including all software projects, software releases, software packages, licences, etc in a format that conforms to the ADMS.SW specification;
  • The plugin is capable of exporting the Trove taxonomies used by the FusionForge instance in a format that conforms to the SKOS specification;

List of projects

The http://forge.example.com/projects URL will provide a list of (public) projects :

  • when viewed in a Web browser as HTML, for regular users (redirecting to the classic list of all projects at http://forge.example.com/softwaremap/full_list.php);
    • the HTML page provides alternate links pointing at its alternate RDF representations as Turtle and RDF/XML
    • the submenu adds a new link to the ADMS.SW meta-data page (see below).

  • for retrieval by an RDF client, there are also 2 versions published as Turtle and RDF/XML of the same RDF meta-data, describing :
    • a foaf:Document for the meta-data about <http://forge.example.com/projects> itself
    • an admssw:SoftwareRepository resource for <http://forge.example.com/projects#repo>, which has links to each public project's description (at URIs like <http://forge.example.com/projects/PROJNAME/#project>), whithout any other details about the projects (see below for the RDF document containing all the projects at once).

Per project information

The http://forge.example.com/projects/PROJNAME/ URL already exists and provides :

  • the classic HTML home page of hosted projects. It has been improved to add :
    • TODO metalinks / add alternate links
  • in the Project info widget, an additional link pointing to the page which provides an HTML preview of the project's ADMS.SW meta-data Turtle document (see below).
  • for retrieval by an RDF client, there are also 2 versions published as Turtle and RDF/XML of the same RDF meta-data, describing the project (see below).

Project meta-data

The same meta-data is available either as Turtle or RDF/XML, describing the <http://forge.example.com/projects/PROJNAME/#project> resource.

It is both a doap:Project and admssw:SoftwareProject (so that not ADMS.SW aware clients which understand doap can retrieve meta-data even though they don't have reasoning).

It contains references to the forge's trove categories (links to the trove URIs, see below) and links to the project contributors that can be published by the 'foafprofiles' plugin.

It references the project's releases and points (rdfs:seeAlso) to the corresponding document (see below).

Human-readable preview

In order to give a glimpse of what meta-data are exported for the project, an HTML preview of a Turtle-like colorized representation is provided, to be viewed in a regular Web browser.

It contains instructions on how to access the real Turtle RDF corresponding meta-data (using the cUrl tool).

Project releases

The http://forge.example.com/frs/?group_id=GROUP_ID URL already exists and provides :

  • the classic "Project filelist" HTML page which lists details about the releases and files for different packages of the same project (in FusionForge packages group subsequent releases of the same files).
  • for retrieval by an RDF client, there are also 2 versions published as Turtle and RDF/XML of the same RDF meta-data, describing these elements.

The RDF meta-data are published only for public and not-hidden artefacts of the project, and are organized along the following principles :

  • an un-typed resource for every FusionForge project's package <http://forge.example.com/frs/PROJNAME/PACKAGENAME> ;
  • an admssw:SoftwareRelease resource for every release with a URI like <http://forge.example.com/frs/PROJNAME/PACKAGENAME/RELEASENAME>, which among other attributes, points to its project and to its files;
  • an admssw:SoftwarePackage resource for every files of each release, with a URI of the form <http://forge.example.com/frs/download.php/file/RELEASE_ID/FILENAME#package>, reusing the same URL as the one of the downloadable file itself (suffixed by #package).
TODO document licenses of the files

Full metadata page

The plugin implements a new Web page (at http://forge.example.com/plugins/admssw/index.php) that points to different scripts providing additional pages or documents :

  • an HTML preview of the RDF meta-data for the FusionForge Trove categories (see below);
  • an HTML preview of the RDF meta-data for the compact list of projects (cf. above);
  • the extensive project list (detailed in the next sub-section).

Extensive project list

The URL http://forge.example.com/plugins/admssw/full.php gives access, through content-negotiation, to :

  • A full export of all meta-data about the list of projects (Cf. above), every project's details (Cf. above) , including their releases and their files (Cf. above), in one single RDF document (available both as Turtle or RDF/XML). This document should be the preferred source for harvesting for software catalogue indexers.
  • a colorized HTML preview of the Turtle version of the document, for visualization in a Web browser (including instructions on how to download the RDF documents).

Should the number of projects hosted on the forge be high, then these documents will be rendered through pagination. The RDF pagination is conformant to the LDP 1.0 standard of the W3C (Linked Data Platform)

Trove categories

The URL http://forge.example.com/softwaremap/trove_list.php gives access, through content-negotiation, to :

  • the classic "project tree" views of projects, browsed by different categorization schemes (usually "Development Status", "Environment", "Intended Audience", "License", "Natural Language", "Operating System", "Programming Language" or "Topic").

TODO fix the alternate links of the trove

  • the RDF meta-data describing the trove categories using the SKOS ontology.

Every category of the forge is identified by an URI in the form <http://forge.example.com/softwaremap/trove/CONCEPTSCHEME/CONCEPT/CONCEPT/...>.



This plugin was developed with support from the ISA Programme of the European Commission, following the requirements set in the ISA deliverable SC6DI06692 D2.1.1 - Functional specifications and test scenarios for a GForge / FusionForge ADMS.SW Exporter Plugin.

Context in the ISA programme

The creation of the ADMS.SW plugin for FusionForge is related to Action 4.2.1 of the Interoperability Solutions for European Public Administrations (ISA) Programme. This action is about setting up a platform that supports the sharing and reuse of interoperability solutions, including software that has been financed by public administrations. As part of this Action, the ISA Programme will create an enhanced federation of e-government software repositories on Joinup. This will make the software easily discoverable on the web from a single point of access available through several interfaces. Further background into the rationale and need is available in the studies "Vision for an enhanced software description metadata schema and software catalogue for e-Government” and “Report on existing Software Forges” which offers an overview and context for the work.

To benefit from it, Member States, Standardisation Bodies and Pan-European projects are required to describe the software in their local software catalogues and software forges with the Asset Description Metadata Schema for Software (ADMS.SW) and to share them on ISA’s Collaborative Platform, Joinup. According to the “Report on existing Software Forges”, a large subset of these forges is based GForge / FusionForge instances. Therefore, developing an ADMS.SW plugin for FusionForge would stimulate the adoption and implementation of ADMS.SW on the regional and national forges.

Accessing RDF meta-data as Turtle or RDF/XML

The cUrl tool can be used to access Turtle or RDF/XML documents at URLs served by the forge, using the `-H` option allowing the definition of a particular `Accept` HTTP request header, respectively set to `text/turtle` or `application/rdf+xml`.

To navigate query the projects repository, one may try :

curl -k -H 'Accept: application/rdf+xml'  https://fusionforge.example.com/projects

See more details at : Debugging Semantic Web sites with cURL, for instance.

Availability of the plugin

The plugin should be available for FusionForge 5.2.1 and above.

The plugin's code is developped in the 5.2-admssw branch of the main git repository on `fusionforge.org`


The plugin requires the following PHP libraries :

  • ARC2 : at least version 2~20101006-2 (as available in Debian wheezy, for instance)
  • Graphite : at least 1.5-1 (as available in Debian unstable only, at the time of writing, for instance)


alternate link
the HTML pages of the forge for which there exist a corresponding RDF meta-data document may publish a link to that alternate representation using 'rel="alternate"' <link> HTML header. See more details in Cool URIs for the Semantic Web.
content negotiation
the same forge script can render different contents depending on the expected format requested by the HTTP client (through the `Accept` header). This is a common Linked Data pattern allowing to provide at the same URL an HTML document for users with a Web browser, as well as machine readable meta-data for machines or programs (for instance in RDF formats). See more details in Cool URIs for the Semantic Web.
an entity modeled as a set of RDF predicates that is a building block of the meta-data published by the plugin


[ADMS.SW 1.0]
Asset Description Metadata Schema For Software 1.00 specifications (ADMS.SW 1.00), available at <https://joinup.ec.europa.eu/asset/adms_foss/release/release100>
[SC6DI06692 D2.1.1]
Joinup deliverable "Functional Specifications And Test Scenarios For A Gforge / Fusionforge ADMS.SW Exporter Plugin" by Michiel De Keyzer, Stijn Goedertier (PwC EU Services)

See also Feature request #511 Implement complete support for exporting as much ADMS.SW metadata as possible for progress on implementation, or the forum at http://joinup.ec.europa.eu/asset/adms_foss/topic/admssw-plugin-fusionforge