| |
|
The D2RQ Plattform - Treating Non-RDF Databases as Virtual RDF Graphs
As Semantic Web technologies are getting mature, there is a growing
need for RDF applications to access the content of non-RDF, legacy databases
without having to replicate the whole database into RDF.
D2RQ is a declarative
language to describe mappings between relational database schemata and
OWL/RDFS ontologies. The D2RQ Platform uses these mapping to enables applications to access a RDF-view on a non-RDF database through the Jena and Sesame APIs, as well as over the Web via the SPARQL Protocol and as Linked Data.
DOAP project description
| News |
- 10/08/2009: D2RQ Engine V0.7 and D2R Server V0.7 have been released. The new releases provides several bugfixes, better dump performance, several new features as well as new optimizations that must be enabled via D2R Server's --fast switch or using d2rq:useAllOptimizations.
- 19/02/2009: D2RQ Engine V0.6 and D2R Server V0.6 have been released. The new releases provide significantly improved performance (upto factor 7 in the BSBM benchmark) thanks to improved rewriting of SPARQL statements into SQL, as well as a new ARQ-based QueryEngine. The D2RQ release improves memory usage and fixes various bugs. In addition to MySQL it has also been sucessfully tested with Oracle. The new D2R Server release features support for dereferencing vocabulary URIs and for publishing mappings between different vocabularies.
- 26/01/2009: The W3C RDB2RDF Incubator Group Report and State of the Art Survey report has been released.
- 25/10/2007: The D2RQ Engine V0.5.1 and D2R Server V0.4 have been released. The new releases fix multiple bugs in the D2RQ Engine and allow D2R Server to be deployed within servlet containers.
- 20/01/2006: D2RQ in PHP. The University Leipzig has released a new D2RQ PHP implementation which can be used together with RAP - RDF API for PHP. See R2D2 project page for details.
- 12/05/2006:
Bob DuCharme gives an interesting talk about
Relational database integration with RDF/OWL using D2RQ at XML 2006.
- 10/30/2006: D2RQ V0.5 released. The new release supports SPARQL and includes a automatic mapping generator, a dump-rdf command line script, a Jena Assembler for D2RQ models. It is compatible with Jena 2.4 and ARQ 1.4 and provides improved compatibility with MySQL, Oracle and PostgreSQL. We also updated the D2RQ User Manual to reflect all new features.
- 09/08/2006: D2R Server Version 0.3 released. The new release enables database-generated URIs to be dereferenced. This allows the content of relational databases to be browsed with tool like Tabulator.
- 08/09/2006: D2RQ has been integrated into the
TopBraid Composer ontology editor.
Using TopBraid Composer you can browse D2RQ-mapped database content in a nice GUI, and use a professional RDF editor to customize D2RQ mapping files.
See TopBraid Composer documentation for details.
- 08/02/2006: A tutorial about Triple Stores and D2RQ will be held in January 2007 at the Semantic Web School in Vienna.
- 05/09/2006: We are currently working on D2R Server.
D2R Server provides SPARQL access to relational databases. The server takes SPARQL queries from the Web and rewrites them via a D2RQ mapping into SQL queries against a relational database. There will be a talk about D2R Server in the Developers Track at WWW 2006.
- 10/25/2005: D2RQ 0.4 has been published. The new version contains a wrapper which allows you to use D2RQ together with the Sesame Semantic Web framework.
- 10/15/2005: D2P Database-to-Piggybank Bridge released. D2P is an extension to the Piggybank Semantic Web browser which makes information stored in rational databases accessible to Piggybank using D2RQ mappings.
- 10/13/2005: New
d2rq-map-devel mailing list. As the D2RQ user community is growing and we are
receiving
an increasing number of support requests and interesting new ideas around the toolkit and database to RDF mapping in general, we have opened up a D2RQ and D2R mailing list.
- 04/29/2005: D2RQ 0.3 has been published. The new version includes an experimental
D2RQQueryHandler which speeds up complex RDQL queries significantly by rewriting groups of RDQL patterns into single SQL statements and by rewriting RDQL AND conditions into SQL WHERE clauses.
- 11/20/2004: D2RQ was presented at the 3rd
International Semantic Web Conference (ISWC2004), Hiroshima,
Japan, November 2004. See Christian Bizer, Andy Seaborne: D2RQ
-Treating Non-RDF Databases as Virtual RDF Graphs. (Poster)
- 08/12/2004: D2RQ 0.2 has
been published. The new version includes several language extensions
and provides a significant speed-up.
- 06/29/2004: Benchmark results
comparing D2RQ 0.1 and 0.2 to the Jena 2 database backend published
together with the benchmarking
suite.
|
Using The D2RQ Platform you can:
- query a non-RDF database using the SPARQL query language,
- access information in a non-RDF database using the Jena API or the Sesame API,
- access the content of the database as Linked Data over the Web,
- ask SPARQL queries over the SPARQL Protocol against the database.
The D2RQ Platform consists of:
- the D2RQ Mapping Language, a declarative mapping language for describing the relation between an ontology and an relational data model.
- the D2RQ Engine , a plug-in for the Jena and Sesame Semantic Web toolkits, which uses the mappings to rewrite Jena and Sesame API calls to SQL queries against the database and passes query results up to the higher layers of the frameworks.
- D2R Server, an HTTP server that can be used to provide a Linked Data view, a HTML view for debugging and a SPARQL Protocol endpoint over the database.
The figure below depicts the architecture of the D2RQ Platform:

The D2RQ Engine is implemented as a Jena graph, the basic information representation object within the Jena framework. A D2RQ graph wraps a local relational databases into a virtual, read-only RDF graph. It rewrites Jena or Sesame API calls, find() and SPARQL queries to application-data-model specific SQL queries. The result sets of these SQL queries are transformed into RDF triples or SPARQL result sets that are passed up to the higher layers of the framework. The D2RQ Sesame interface wraps the D2RQ Jena graph implementation behind a Sesame RDF source interface. It provides a read-only Sesame repository interface for querying and reasoning with RDF and RDF Schema.
D2R Server is a tool for publishing relational databases on the Semantic Web. It enables RDF and HTML browsers to navigate the content of the database, and allows applications to query the database using the SPARQL query language. D2R Server builds on the D2RQ Engine. For detailed information on how to set up D2R Server please refer to the separate D2R Server website.
For details about the D2RQ Platform see
Download
| Version |
Comment |
Release Date |
V0.6 |
- Push-down and transformation of SPARQL filter expressions into SQL, if possible)
- Transformation of SPARQL optionals into SQL left joins; some cases only
- d2rq:sqlExpression
- d2rq:uriSqlExpression for properties with URI values, similar to d2rq:sqlExpression but generates URIs instead of literals (Andreas Langegger)
- New ARQ-based QueryEngine, dropped the old FastPath engine
- Support for serving vocabulary classes and properties; including definition labels, comments and additional properties
- Mapping generator now supports multi-column foreign key constraints
- Specify JDBC connection properties through the jdbc: namespace
- Better error reporting
- Oracle support - automatic registration of the JDBC driver, DATE, TIMESTAMP and CLOB field types
- Support for PostgreSQL's TIMESTAMP WITH TIME ZONE type
- Proper treatment of xsd:boolean datatype
- Show XML declaration and make sure that utf-8 encoding is used for XML
- Map parser now complains about misspelled D2RQ vocabulary terms
- Remove MySQL hack for zero date values from the mapping generator, use zeroDateTimeBehavior property instead
- Change dump-rdf default format to N-TRIPLE (faster, better streaming)
- Replaced custom Logger with Log4j one
- Give more memory to VM in dump-rdf and generate-mapping scripts
- many bugfixes
|
2009-02-19 |
V0.5.1 |
- columns with non-URI characters can now be used in URI patterns
- added d2rq:resultSizeLimit option
- smarter mapping generator
- many bugfixes |
2007-10-24 |
V0.5 |
- supports the SPARQL query language.
- added dump-rdf command line script.
- added automatic mapping generator.
- improved compatibility with MySQL, Oracle and PostgreSQL.
- compatible with Jena 2.4 and ARQ 1.4
- added Jena Assembler for D2RQ models.
- many other improvements.
- many bugfixes. |
2006-10-26 |
V0.4 |
Wrapper for Sesame added.
|
2005-10-25 |
V0.3 |
Language extensions:
- d2rq:queryHandler added.
- d2rq:expressionTranslator added.
- d2rq:alias added.
Speed improvements:
- New
experimental D2RQQueryHandler for speeding up complex RDQL queries.
|
2005-04-29 |
V0.2 |
Language extensions:
- d2rq:TranslationTable between DB and RDF values added.
- d2rq:condition added; allows filtering by SQL expression.
- d2rq:AdditionalProperty added.
- d2rq:containsDuplicates hint added.
- d2rq:class added; alternative to d2rq:classMap.
- d2rq:property added; alternative to d2rq:propertyBridge.
Speed improvements:
- d2rq:valueContains performance optimization hint added.
- d2rq:valueMaxLength performance optimization hint added.
- d2rq:valueRegex performance optimization hint added.
- major speed improvement for queries with large result sets.
- major speed improvement for maps with URL columns.
Other:
- logging facility added.
- security fix: SQL injection vulnerability fixed.
- bug fix: issue with missing statements when using joins and
NULL values.
- improved map consistency checking and better error messages
- GraphD2RQ and ModelD2RQ can also be initialised from RDF/XML
map file.
- GraphD2RQ and ModelD2RQ can also be initialised from Jena map
model.
- architectural changes for better maintainability.
- JUnit test suite added.
- many small fixes, improvements, speedups and refactorings.
|
2004-08-12 |
V0.1 |
Initial D2RQ Release. |
2004-06-22 |
D2RQ and D2R Server Developers
Lots of thanks to
- Andreas Langegger and Herwig Leimer (Johannes Kepler Universität Linz) for optimizing the SPARQL to SQL rewriting algorithm which significantly increased the performance of D2RQ Version 0.6.
- Richard Cyganiak (DERI Galway / FU Berlin) for implementing D2R Server, for doing the complete implementation work on the V0.5 and V0.5.1 release, for developing the performance test toolkit, and supporting users through the mailing list.
- Christian Becker (FU Berlin) for his work on vocabulary serving in D2R Server, fixing various bugs, testing the V0.6 release with Oracle and PostgreSQL, and putting the V0.6 release together.
- Inigo Surguy (67 Bricks Ltd.) for his work on Jena compatibility for
D2RQ 0.5.1 and J2EE Webapp bundling for D2R Server 0.4.
- Andy Seaborne (HP Labs, Bristol), Chris Dollin (HP Labs, Bristol) and Kevin Wilkinson (HP Labs, Palo Alto) for their feedback on the D2RQ language specification.
- Jörg Garbers for implementing the
D2RQQueryHandler.
- Oliver Maresch for implementing the Sesame wrapper.
Mailing List
We are very interested in hearing about your experiences with D2RQ, its
performance with different databases, bugs and ideas for further language
extensions.
Please sent your comments to the D2RQ mailing list:
d2rq-map-devel@lists.sourceforge.net
The archives of the list are found at: http://sourceforge.net/mailarchive/forum.php?forum=d2rq-map-devel
You can subscribe to the list at: http://lists.sourceforge.net/lists/listinfo/d2rq-map-devel
References
|