JRDF (Java RDF)
JRDF is an attempt to create a standard set of APIs and base implementations to RDF (Resource Description Framework)
using the latest version of the Java language. The API will cover anything that is deemed to be useful for
Java programmers. A key aspect will be to ensure a high degree of modularity and to follow standard Java
conventions. It will be similar to other standard Java APIs such as JDBC, XML, Collections, etc.
Current Java APIs for RDF have some drawbacks and many strengths. Some do not follow the current RDF
specification exactly or lack features that are appropriate to certain use cases. Also, there are many common
aspects to existing APIs with only slight differences in method names, package hierarchies and exception handling.
APIs Provided
JRDF has the following features (or will have in the near future):
- A Graph API (including graph comparison and graph set-based operations),
- Creating and manipulating Graph objects (Statements, Resources, Nodes, etc.),
- In memory and disk based graphs with a standard system level interface for storing triples,
- IoC support (currently using Spring 2),
- RDF Datatypes,
- Local (where nodes are tied to a graph/store) and global (where they are not) RDF statements,
- An RDF to Java object API (similar to Hibernate or Sesame's Elmo), and
- Query Handling including SPARQL support (including results, transport, etc).
Future features may include:
- Transactions,
- Event Handling (addition/removal of nodes from a graph),
- Security, and
- Inferencing.
Being able to talk directly to a triple store in a common manner with the ability to swap differing implementations
is one of the key aims of the project. There are obvious benefits, especially when running in the same JVM,
that a common API provides. At the same time it will allow higher level APIs to be developed on top of the
existing agreed upon APIs.
Existing Work
This project is based on the existing RDF libraries and is designed to include the best features from all available
sources.
Other standard APIs will be used where possible.
Documentation
Wiki
Publications
- Honours Thesis, Querying the Semantic Web using a Relational Based SPARQL
(HTML, PDF).
Javadoc
Status
05/02/2008 - JRDF 0.5.4 - Fixed
btree bug and added
Resource methods for easier
triple addition/removal.
23/01/2008 - JRDF 0.5.3 - Improved find() performance, finds by node type, bug fixed in RDF/XML
parser, allow Literals and URI directly across graphs, and other bug fixes.
22/11/2007 - JRDF 0.5.2 - Improved performance and support for reading writing large RDF/XML
files (millions of triples).
09/11/2007 - JRDF 0.5.1 - Improved Bdb implementation and db4o support added. Bugs fixed with the Resource API and data
type support.
26/08/2007 - JRDF 0.5.0 - Java 6 support. New APIs for Persistence, Resources and data types.
05/06/2007 - JRDF 0.4.1.1 and SPARQL GUI 0.3.1.1 - Bug fix release for wiring errors.
27/02/2007 - SPARQL GUI 0.3.1 - Syncs with 0.4.1 release.
27/02/2007 - 0.4.1 - First source release with SPARQL implementation, RDF/XML Writer, and NTriples
pull and push parser.
16/11/2006 - SPARQL GUI 0.3 - Removes bug associated with project.
20/08/2006 - SPARQL GUI 0.2 - Removes bugs associated with parsing SPARQL and produces
correct results for OPTIONAL and UNION DAWG test cases.
13/08/2006 - SPARQL GUI 0.1 - A simple GUI that allows user's to submit SPARQL queries. Supports
a subset of SPARQL: PREFIX, pattern matching, UNION, join (.) and OPTIONAL.
24/06/2006 - 0.3.4.3 - Bug fix release for 0.3.4
branch. XML Literal parsing regression bug.
03/04/2006 - 0.4.0 - First Java 1.5 only release.
Began work on relational and graph operations. Began work on NTriples
parser and SPARQL support. RDF/XML improved to add proper handling of
XML Literals, relative URIs and xml:base processing.
24/11/2005 - 0.3.4.2 - Another bug fix release. Fixes to RDF/XML literal parsing and
NTriple escaping.
08/10/2005 - 0.3.4.1 - Bug Fix Release. Fixes to xml:base handling and
resolving of relative URIs.
12/07/2005 - 0.3.4 - RDF/XML parser based on RIO
released (with improved support for blank nodes), start of SPARQL and remote query support, bugs fixed, and general
code refactoring and preparation for move to Java 1.5.
27/09/2004 - 0.3.3 - Single bug fix - correction to reification
semantics. No changes to API.
14/09/2004 - 0.3.2 - Further in memory bug fixes and
improved iterator support.
23/08/2004 - 0.3.1 - In memory bug fix release.
15/08/2004 - 0.3 - In memory implementation,
visitor support, collection and container support.
21/02/2004 - 0.2.1 - Updated graph, added
vocabularies and iterator for results.
18/12/2003 - 0.2 - Update of graph level interface.
Details
Sponsors
YourKit is kindly supporting open source projects with its full-featured Java Profiler.
YourKit, LLC is creator of innovative and intelligent tools for profiling Java and .NET applications.
Take a look at YourKit's leading software products:
YourKit Java Profiler and
YourKit .NET Profiler.