Apache Commons RDF incubation proposal


---- (warning) FINAL (warning) This proposal was ACCEPTED into the Apache Incubator with the RESULT thread available at http://s.apache.org/accept ----


Commons RDF is a set of interfaces for the RDF 1.1 concepts that can be used to expose common RDF-1.1 concepts using common Java interfaces.


The main motivation behind this simple library is revise an historical incompatibility issue. This library does not pretend to be a generic api wrapping those libraries, but a set of interfaces for the RDF 1.1 concepts that can be used to expose common RDF-1.1 concepts using common Java interfaces. In the initial phase commons-rdf is focused on a subset of the core concepts defined by RDF-1.1 (URI/IRI, Blank Node, Literal, Triple, and Graph). In particular, commons RDF aims to provide a type-safe, non-general API that covers RDF 1.1. In a future phase we may define interfaces for Datasets and Quads.

The goal is to provide a compact API that could be implemented by the upcoming versions of the main Java toolkits (Apache Jena 3.0 and OpenRDF Sesame 4.0) as well as for other libraries (OWLAPI) and other JVM languages (Banana RDF and so on).

In addition, the project could provide some simple implementations suitable for some basic scenarios. But the major and established Java toolkits will always remain the recommend implementations to use.


In the Java world there has been historically an incompatibility issue between the two major RDF toolkits: Apache Jena and OpenRDF Sesame. Many libraries have tried to wrap them, but besides technical considerations, they normally end up being unmaintained.

Together, we came up with the idea of Commons RDF for solving the incompatibility problem. The community has been in healthy development at Github, including participants from the major Java RDF toolkits.

The natural path to Apache Commons Sandbox has been studied, but we think that in this phase of the project, which focuses on the API design and actively involves the developers of existing toolkits, it is better to have a more focused community and infrastructure. Rather than a new Top-Level Project, the goal is still to graduate as part of Apache Commons, that is when API has achieve the required maturity and the project goes into maintenance mode.

Part of the motivation for doing the incubator process would therefore be to bring together the existing Commons RDF community in the Apache Way, mature the API, and then gradually prepare the Commons RDF community for working within the larger Apache Commons community.


The library comes from the need for providing a generic and neutral API for RDF 1.1 that everybody can transparently use without bounding the design to concrete implementations. It is the result of cooperation between contributors to the main Java toolkits, and will try to be available in a timely manner to influence the major version updates Jena 3.0 and Sesame 4.0.

Initial Goals

  • Evolve the API towards a generalized and agreed shape
  • Bootstrap basic implementations
  • Support the implementation

Current Status

The API is already quite agreed by all involved players, and it's been started to be prototyped, both by the major toolkits and by simple implementations.


Commons RDF has been completely designed by committee using git workflows, where every single feature has been discussed based on a Pull Request. We plan to keep such methodology where the commons understanding comes first than personal decisions.


Commons RDF addresses the developers who are working with Semantic Web technologies in the JVM. The initial committers are core contributors to that community.

Core Developers

  • Sergio Fernández (wikier dot apache dot org)
  • Andy Seaborne (andy dot apache dot org)
  • Peter Ansell (ansell dot apache dot org)
  • Stian Soiland-Reyes (stain at apache dot org)
  • Reto Gmür (reto at apache dot org)


Commons RDF comes to help in the integration of the different ASF projects using RDF technologies, where Apache Jena can be integrated with others which use Sesame (Any123 and Marmotta). In addition, proposals by other projects (Clerezza and Stanbol) can be also aligned.

Known Risks

Orphaned Products

Probably one of the major risks will that the API provided does not fit well in the development plan of the main Java toolkits. But we try to minimize such risk by having on board core developers of those framework, the API will live or die on its own merits.

Inexperience with Open Source

The committers have large experience with open source development and ASF communities.

Homogeneous Developers

The initial list of developers come from five different organizations and four different countries.

Reliance on Salaried Developers

Although the project is also in the strategic agenda of project of our current employers, so far the main development is happening at volunteer time.

Relationships with Other Apache Projects

The project really relates with Jena as one of the potential implementations, with Any23 and Marmotta which are based on Sesame, and Clerezza, Taverna and Stanbol as projects that may benefit of the common api.

An Excessive Fascination with the Apache Brand

While we expect the Apache brand may help attract more contributors, our interests in starting this project is based on the factors mentioned in the Rationale section.


Documentation for the current project can be found at Github: http://commons-rdf.github.io

Initial Source

The current source code can be found at Github: https://github.com/commons-rdf/commons-rdf

Source and Intellectual Property Submission Plan

The whole copyright is hold the developers signing this proposal, all of them already with a ICLA with ASF in place. Current licence is already Apache Software License 2.0.

External Dependencies

All current dependencies have Apache compatible licenses, including MIT, BSD 3-clause, MIT and EPL.


Does Not Apply.

Required Resources

Mailing lists

  • dev (at) commons-rdf.incubator.apache.org
  • commits (at) commons-rdf.incubator.apache.org


  • git://git.apache.org/incubator-commons-rdf.git

Issue Tracking


Other Resources

  • Jenkins for builds and test running.
  • Github mirroring with pull request notifications to dev list

Initial Committers

  • Sergio Fernández (wikier dot apache dot org)
  • Andy Seaborne (andy dot apache dot org)
  • Peter Ansell (ansell dot apache dot org)
  • Stian Soiland-Reyes (stain at apache dot org)
  • Reto Gmür (reto at apache dot org)
  • Enrico Daga (enridaga at apache dot org)


  • Sergio Fernández (Redlink GmbH)
  • Andy Seaborne (Epimorphics Ltd)
  • Peter Ansell (CSIRO)
  • Stian Soiland-Reyes (University of Manchester)
  • Reto Gmür (Berner Fachhochschule)
  • Enrico Daga (The Open University)



  • Lewis John McGibbney (lewismc at apache dot org)

Nominated Mentors

  • Rob Vesse (rvesse at apache dot org)
  • John D Ament (johndament at apache dot org)
  • Gary Gregory (ggregory at apache dot org)

Apache Commons Representative

  • Benedikt Ritter (britter at apache dot org)

Sponsoring Entity

  • Apache Incubator PMC
  • Potentially Any23 PMC if so required
  • No labels