Technology MalBestPracticing

2009-05-24

Reading RESTful Web Services by Leonard Richardson and Sam Ruby, it suddenly stroke my like thunder: yes indeed, it’s very often the case with technologies that they are (often unknowingly) abused in obscure ways, which then is often perceived by the community as good or best practice. So much generic introduction for explaining the title – let’s flesh it out ;)

Couple of years a go I used to develop Web applications using JSP and relational databases (RDB). One pattern I often found (and have to admit, did myself pretty much the same way): treating the RDB only as a dump store without exploiting the features it offers. So, you load whatever you need via some SQL command in the beginning, process it in memory and when you’re done you dump it back again into the RDB. Is this the way RDB are supposed to be used? Certainly not.

Then, as motivated by the RESTful WS book, HTTP naturally provides a set of methods for CRUD operations, however, certain so-called ‘Web’ solutions merely use HTTP as a transport protocol and redefine most of the logic in rather complex ways (RPC-style being one example, but also hybrids exist that partially use HTTP for reading, but define their own mechanisms to update resources).

Anyway, there seems to be a pattern and now I was wondering if we know about such MalBestPracticing in the RDF world as well. What comes to mind are the following (ok, very roughly, but feel free to add yours):

  • Using RDF in a closed-world setup: often seen and often seen failing. Whenever you have a closed-world application, that is, something that’s supposed to do a job in an environment you entirely control (Intranet, desktop, etc.) and there is no need to share/incorporate other data, using RDF is probably not a smart choice. You’re better off with the RDB of your choice and some hand-coded rules, both in terms of complexity and performance.
  • Thinking of RDF on the serialisation level. Yes, there are a couple of RDF serialisations such as RDF/XML, RDFa, Turtle, etc. but that’s not the point. If I want to I can put my RDF-glasses on and view (quite) everything as RDF, but one should think of RDF on the data model level, rather. The important point is that RDF provides a away to express structured data in a graph manner which happens to be the same as the Web from a morphological point of view.
  • No interlinking between data. Hu, that’s a heavy one. Publishing RDF without interlinking to other data in RDF out there. But to be fair, this has been properly addressed by TimBL in his LinkedData note and the community has picked it up since. Imagine HTML documents on all of the computers in the world … without a single hyperlink between them. Would you call that the Web? Certainly not. Believe it or not, this was more or less what we’ve been doing for more than six years or so in the Semantic Web.

So, what’s your favorite MalBestPracticing in the Semantic Web world?


Discussing POWDER and discovery mechanisms on the Web …

2009-05-21

My colleague Juergen Umbrich and I had a reading group on POWDER and related technologies yesterday here at DERI. There were some interesting questions and discussion around that, esp. regarding the involved costs for implementing such mechanisms, the use cases and the progress in this area.

The resource and metadata discovery domain seems all in all still in its early days and people with different background (just compare POWDER with XRD) should start talking to with each other.

What is your take on it?


Toying around with (embedded) WebAccessControl

2009-05-18

So TimBL has provided a nice write-up on a Web of Data version of a simple authorization scheme and protocol called WebAccessControl (WAC). It includes a draft of a vocabulary and a protocol (see also open issues with it). I thought it might be nice to have a visual representation of the schema and hence fired up my OmniGraffle app, yielding:
wac-acl-vis
There are already some first implementations for WAC (for example Joe Presbrey’s Apache mod). Actually, I was pondering first to implement WAC in PHP, but then Melvin Carvalho pointed out that this is in the pipe for foaf.me anyway (I might contribute to that, let’s see ;)

Finally I ended up toying around with WAC in RDFa. The result is WACup, an experimental embedded-WAC explorer/viewer for RDFa-marked-up WAC policies:
wac-up-screenshot

Now, how about taking this idea further? Say, you have generated a WAC file in RDF/XML and want to inject that into the DOM? You could dynamically decorate certain resources and people (using an advanced version of WACup) would have an idea what they are allowed to do with it.

Comments? Ideas? Feature requests? I’d love to hear your opinion on this topic!

UPDATE: If you want to learn how this fits into the big picture regarding a write-enabled Web of Data, have a look at http://esw.w3.org/topic/WriteWebOfData