Creation Review

Type
Creation
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Project
Proposal

RDF4J

Sunday, January 4, 2015 - 15:03 by Jeen Broekstra
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Project
Parent Project
Proposal State
Created
Background

RDF4J will be an official fork of the OpenRDF Sesame project. OpenRDF Sesame is an RDF (Resource Description Framework) Java toolkit. It provides functionality for efficient and scalable storage, querying, and reasoning with RDF data, and a set of vendor-neutral access APIs for RDF databases (a.k.a.  "triplestores"). The project is well-established (launched as an open-source project in 2002) with a large user base and an active team of core developers. To be clear: this same team of core developers is the group behind this proposal to fork and apply as an Eclipse project.

Our main motivation for forking/renaming the project is that the previous owner of the project, Aduna, is no longer actively involved in the project and is unavailable to continue to carry out the role of steward. Since 2010-2011, Aduna has no longer been involved in the project: no Aduna employees are developing the software, and all project infrastructure has gradually been migrated away from their servers to sites under community control. The current core development team consists of individuals and employees of other commercial software vendors that have an interest in continued maintenance and development of the project. A fork, therefore, is merely the last step in this process and an official recognition of the state of the project since 2011.

Scope

RDF4J is an RDF (Resource Description Framework) Java toolkit that provides functionality for efficient and scalable storage, querying, and reasoning with RDF data, and a vendor-neutral access API for RDF databases (a.k.a.  "triplestores").

Description

RDF4J is an RDF (Resource Description Framework) Java toolkit. It provides functionality for efficient and scalable storage, querying, and reasoning with RDF data, and a vendor-neutral access API for RDF databases (a.k.a.  "triplestores").



RDF4J supports two query languages (SeRQL and SPARQL), as well as a set of fully streaming parsers and writers for most common RDF syntax formats, called Rio. It also includes two database implementations for RDF storage, the in-memory store and the Native store.

In addition to its primary use as a set of Java libraries, RDF4J also provides a Server web application that can be accessed as a web service for RDF database access, and a Workbench web application which provides a (web-based) client user interface for an RDF4J Server.

Why Here?

As an existing mature open-source project we want to ensure our continued existence independently from any one software vendor. We feel that having a vendor-neutral steward entity such as the Eclipse Foundation is the best way to ensure that independence, and in addition we believe it gives our developers and contributors additional assurances and legal protection. Moreover, adoption as an Eclipse project will, we believe, give our project additional public exposure and credibility as a good long-term stable solution for RDF-based software development.

We believe that we provide a useful toolkit for use by the wider Eclipse community: libraries and parsers to deal with RDF data in a scalable fashion are a very generally applicable tool for any project that either needs to deal with RDF or Linked Data and related W3C standards (such as OWL, SPARQL, or JSON-LD) directly, or which simply wishes to have tooling for quick and flexible data modelling, storage, and querying in a standardized format. In fact, we are aware of several existing Eclipse projects (such as Lyo) that currently already use RDF4J's predecessor, OpenRDF Sesame, in their codebase.

Future Work

Development focus is currently as follows:

  • for the upcoming minor release (2.8) we focus on improved support for the latest revision of relevant W3C standards (RDF 1.1, SPARQL 1.1, JSON-LD), as well as improved support for transaction handling over HTTP. This release is tentatively scheduled for February 2015.
  • the next major release (4.0) is aimed at major improvements in usability of our core APIs - including an upgrade to use and support Java 8 features such as lambdas, AutoCloseable and the new Stream API. This release is tentatively scheduled for Q3/Q4 2015.

As our software is a vendor-neutral access API we aim to actively engage  and help software vendors of RDF-based solutions to "connect" with RDF4J. We aim to do this as a community by writing additional documentation to make connecting with the APIs easier, as well as gathering feature requests and attempting to work with software vendors to help them get the most out of the software and conversely help us develop the software in a way that meets their needs.



From an end-user perspective, we aim to continue to make the project's main APIs easier to use, to offer additional utility functionality to make common tasks simpler, and to make switching between different database vendors for any  given end-user project as transparent and painless as possible.

Project Scheduling

We currently do a maintenance (patch) release of our software roughly every 8-10 weeks. Minor releases happen about twice a year, and a major release is rare: Sesame currently is at version 2.7.14 (stable). Our next minor release (2.8) is currently in beta and is tentatively scheduled for final release in February. A new major release (version 4.0.0, we are skipping 3.x for legacy reasons) is under development but has no target date set yet other than "somewhere in late 2015".

From our perspective, we can make our initial contribution at any point in time starting now, as the code is certainly in a mature enough state. We would expect to do a first build and candidate release shortly (as in: a couple of weeks at most) after that, so that a stable version of the software with new naming is available for us to advertise to our user community, and they can switch over to new maven artifact ids and package names at their leisure.

Project Leads
Mentors
Interested Parties

Listed in no particular order and likely incomplete, the following parties have expressed interest in this project:

 

Initial Contribution

The initial contribution will be a fork of the OpenRDF Sesame codebase. The existing code is currently distributed as 'OpenRDF Sesame', and is a long-standing and mature open-source project, originally founded by Aduna, a small Dutch software company. It is distributed under a BSD 3-clause license. All current major contributors to this codebase have previously signed an Apache-style Contributor License Agreement with Aduna. Copyright on the collective work is held by Aduna.

The current core development team consists of  8 developers from different backgrounds. In addition to these core / regular contributors we have an active user community and an ever-changing group of occassional contributors, typically users who encounter a particular bug and supply a fix as a patch. Communication within the core development team currently happens via the 'sesame-devel' Google Group, as well as via the use of Pull Requests / code review tooling on our Bitbucket repository. Communication with the larger user community happens via the 'sesame-users' Google group, as well as via our JIRA issue tracker. The project website, originally hosted at www.openrdf.org, has recently been moved to rdf4j.org, and contains community news as well as documentation and tutorials, as well as information about current contributing partners.

The code is currently hosted on a community-maintend bitbucket repository. This contains a NOTICE.txt file which lists the individual copyright holders, as well as acknowledging authors of third party libraries in use by the code.

Source Repository Type