[xsl] [ANN] Graphity - rapid development of Linked Data apps using Java and XSLT

Subject: [xsl] [ANN] Graphity - rapid development of Linked Data apps using Java and XSLT
From: Martynas Jusevičius <martynas@xxxxxxxxxxxx>
Date: Thu, 26 Jul 2012 13:57:40 +0300
Hey all,

I'm pleased to announce Graphity -- a fully extensible generic Linked
Data platform for building end-user Web applications. Java and PHP
versions of the project can be found on http://graphity.org, the code
is open-source under GPL and Apache licenses.

Graphity was designed for compatibility with established standards and
APIs such as Jena [JENA], JAX-RS, SPIN [SPIN], and RDF/POST [RP]. It
tries to create as few new conventions as possible.
Graphity does not have any object model above the RDF level and can do
a full read/write data roundtrip in RDF. This eliminates data model
mismatches (as in object/relational/XML/RDF) and conversions that
result in development time and bugs (think ORM).
More information on its generic design can be found in the W3C LEDP
workshop presentation [LEDP].

I'm posting to the XSLT list because a good portion of Graphity is
implemented in XSLT. I know XSLT on RDF/XML has been decried as too
complex and generic RDF browsers as impossible, but Graphity uses XSLT
2 transformations which are much more powerful than the early XSLT 1
attempts and shows it can be done.

XSLT is used to import data (as GRDDL pluggable into Jena) as well as
to build user interfaces (RDF/XML to XHTML writers pluggable into
JAX-RS). Here they are:
https://github.com/Graphity/graphity-browser/tree/master/src/main/resources/org/graphity/util/locator/grddl
-- GRDDL stylesheets
https://github.com/Graphity/graphity-browser/tree/master/src/main/resources/org/graphity/browser/provider/xslt
-- design-independent UI components
https://github.com/Graphity/graphity-browser/blob/master/src/main/webapp/WEB-INF/Resource.xsl
-- layout of a generic Linked Data browser

3rd party webapps can be built on Graphity Browser by simply extending
JAX-RS resources and overriding the necessary methods, as well as
including the XSLT stylesheets and overriding the templates -- or
using a custom web application and/or XSLT layout altogether.

Linked Data browser demo (which is a base webapp bundled with the
platform) can be seen here (note: the server is not production-grade):
http://semanticreports.com/?uri=http%3A%2F%2Fdbpedia.org%2Fresource%2FCopenhagen
-- DBPedia resource (can be slow)
http://semanticreports.com/?uri=https%3A%2F%2Fgdata.youtube.com%2Ffeeds%2Fapi%2Fvideos%3Fq%3Dlinked%2Bdata%26amp%3Borderby%3Dpublished%26amp%3Bstart-index%3D11%26amp%3Bmax-results%3D10%26amp%3Bv%3D2
-- Atom resource from YouTube

I was hoping that you could take a look at the code and provide me
with some feedback -- that would be much appreciated. Also feel free
to contribute :)

[JENA] http://jena.apache.org
[JAX] http://jcp.org/en/jsr/detail?id=311
[SPIN] http://topbraid.org/spin/api/
[RP] http://www.lsrn.org/semweb/rdfpost.html
[LEDP] http://www.w3.org/2011/09/LinkedData/ledp2011_submission_1.pdf

Regards,

Martynas Jusevicius
https://twitter.com/graphityhq
http://graphity.org
http://semantic-web.dk

Current Thread