Monday, June 18, 2012

Loading the contents of a(n) URI

I'd place a bet as large as I would on the Grexit that we're in the "how lightweight is REST, really?" phase of experimentation with decentralized linking syntaxes.  Naturally, the Bear wants a piece of the action.

From sticking to the ABCL core principals ("the User is always right") comes from the work in using the ability for the JVM to dynamically install protocol handlers for URIs in the URL-PATHNAME implementation.  Which means to the Tl;DR; crowd that any valid PATHNAME for the Bear, including those resolvable via "http", "ftp", "https", etc., is the valid subject of the Common Lisp input routines, such as CL:READ, CL:READ-LINE, et. al.

Long ago, in an open sourced galaxy far away, we hacked these routines into the semantics of the CL:PATHNAME (paper forthcoming).  As such, in the "moving Common Lisp into the 21st century" department:  we have recently added the ability to get the underlying java.io.InputStream in the stable ABCL trunk.

Since a CL:PATHNAME may now be a valid URI, we use the ABCL-ASDF extension to locate the Jena binary artifacts to allow us to deserialize an N3 graph into a running ABCL instance.  An example of a trivial wrapping of of Jena in Common Lisp can be found in Jeannie.