The Jena GRDDL Reader is an implementation of GRDDL for the Jena Semantic Web Framework, using the Saxon XSLT Processor from Saxonica Limited.

Versions before version 1.0 are unfinished; in particular, the security module is likely to be the last module completed. Hence, versions before version 1.0 are likely to be less secure than version 1.0. No guarantees of security (or any other warranties) are offered for any version.

Jena is open source and grown out of work with the HP Labs Semantic Web Programme.

Usage Instructions

The GRDDL Reader requires Jena 2.5.1 or later, and Java 1.5.X or later.

To use the GRDDL reader: first familiarize yourself with the security issues, then simply add the jars from the GRDDL download to your classpath, and use "GRDDL" as a language option to the read() methods of a Jena Model, or to a commandline tool such as jena.copy.

You will be prompted to agree to the license terms, on first use of each version of the Jena GRDDL Reader.

Documentation

The documentation principally covers the options that can be set on the reader using the RDFReader.setProperty() method. There is also discussion of customizing the XML Catalog used with a copy of certain W3C DTDs (refer here is you get HTTP 503 errors from w3.org).

There is also some information about the security issues.

Conformance

This is a largely conformant implementation of the GRDDL Recommendation. In particular, all the tests in GRDDL Test Cases pass.

The implementation of the security section of the Recommendation is not entirely satisfactory, although all the additional security related tests of the GRDDL Test Cases pass.

When reading HTML, nekohtml is used to tidy up the HTML, and to read it as XHTML 1.0. Also, some of the keywords such as "transformation" are matched case insensitively. This may result in GRDDL readings of HTML documents that are not strictly licensed by the specification.

When reading XML, a stricter approach is used.

The Jena GRDDL reader supports transforms in XSLT 2.0 (excluding schema processing, unparsed-text() , document() and <xsl:result-document>). Transforms in XSLT 1.0 are executed using XSLT 2.0 backward compatibility mode. No warning is issued concerning this.

The output of a transform is read as RDF/XML, unless it explicitly has some other mimetype:

text/rdf+n3
is read as N3
text/html etc.
is recursively read as GRDDL input.

There is support for getting all GRDDL results via the use of transparent content negotiation, by setting the headers.negotiate property, enabling appropriate HTTP headers, and GRDDL client side support.

Initial support for HTTP headers is provided. See the GRDDL WG mailing list for details of this functionality, and also the GRDDL Uses Cases. However, such functionality did not make it into the Recommendation.

There is support for explicit invocation of an RDFa transform, even when the content is not explicitly GRDDL enabled. Similarly, for microformats, a list of transforms can be supplied by the user which will be applied independently of appropriate GRDDL headers.

Support

Support is provided by the jena-dev mailing list.

Resource Description Framework

Valid XHTML 1.0 Transitional
Hosted by: sourceforge.net