- From: M. David Peterson <m.david@xmlhacker.com>
- Date: Tue, 12 Jun 2007 15:42:29 -0600
- To: "Joshua Tauberer" <jt@occams.info>
- Cc: "Andrew Matthews" <Andrew.Matthews@readify.net>, "semantic-web at W3C" <semantic-web@w3c.org>
On Tue, 12 Jun 2007 08:25:48 -0600, M. David Peterson
<m.david@xmlhacker.com> wrote:
> Now comes the fun part
http://personplacething.info/service/semweb/?debug=true&foaf-uri=http://planet.xsltransformations.com/foafroll.xml
(view source)
It's only a simple proof-of-concept > If fact, it's a horribly hacked-up
proof-of-concept as I basically took the sample from
http://personplacething.info/doc/semweb/selecting.html and converted it
into a class with a single static method that takes an HttpResponse and a
URI string, and then calling that function from within a Saxon on
.NET-based XSLT 2.0 transformation file, writing the result directly to
the output stream and then handing back control to the transformation
which has no clue anything has been written outside of its control. In
other words, this is exactly what you *SHOULD NOT* be doing with an XSLT
extension function, but I was more interested in getting something quick
and dirty working and then taking it from there. As such, please excuse
the horrific hack! :D
The code is checked into
http://personplacething-info.googlecode.com/svn/trunk/public_web/
The XML sequence file that drives the operation is @
http://personplacething-info.googlecode.com/svn/trunk/public_web/service/semweb/service.op
and looks like,
---
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/transform/base.xslt"?>
<service:operation xmlns:at="http://atomictalk.org"
xmlns:metadata="http://xameleon.org/service/metadata"
xmlns:header="http://xameleon.org/service/http/header"
xmlns:service="http://xameleon.org/service"
xmlns:operation="http://xameleon.org/service/operation"
xmlns:semweb="http://xameleon.org/service/semweb"
xmlns:param="http://xameleon.org/service/session/param">
<operation:semweb>
<semweb:select uri="{query-string:foaf-uri}">
<semweb:process />
</semweb:select>
</operation:semweb>
</service:operation>
---
It should be fairly obvious what is taking place, but to make things more
obvious the above XML file sits at a given URI-endpoint (in this case
using the filename service.op which is set within the Apache and ASP.NET
config files to serve up as a default file), invokes a 'semweb' operation
called 'select', takes the query-string value of 'foaf-uri' and invokes
the process suggested in the above 'select' sample. Any valid foaf feed
set as the value to the 'foaf-uri' query-string variable should be
processed and the hacked-up result output to the response stream.
The related XSLT file is located @
http://personplacething-info.googlecode.com/svn/trunk/public_web/transform/semweb.xslt
though if the interest exists, I would look through the entire
folder/subfolder of
http://personplacething-info.googlecode.com/svn/trunk/public_web/transform
to gain a deeper understanding of what's really going on behind the scenes.
Now that the proof of concept is in place, it's time to do something real
with this. Keeping in mind that there is access to XSLT 2.0, XPath 2.0,
XQuery 1.0, SPARQL, and everything else that comes along for the ride with
Joshua's SemWeb library, as well as access to everything you would
normally have access to on any given ASP.NET web application server inside
of the transformations and queries, and ideas from the community at large
on a good "get my feet wet by diving into the pool head first" focus for
taking this and doing something useful with it?
--
/M:D
M. David Peterson
http://mdavid.name | http://www.oreillynet.com/pub/au/2354 |
http://dev.aol.com/blog/3155
Received on Tuesday, 12 June 2007 21:42:44 UTC