Why Web Architecture Shouldn't Dictate Meaning

This is a very brief demonstration motivated by some principled arguments I've been making over the last week or so regarding Web Architecture dictates which are ill-concieved and may do more damage to the Semantic Web than good. A more fully articulated argument is sketched out in "HTTP URIs are not Without Expense" and "Semiotics of RDF Signs". In particular, the argument about why most of the httpRange-14 dialog is confusing dereference with denotation. I've touched on some of this before.

Anywho, the URI I've minted for myself is

http://metacognition.info/profile/webwho.xrdf#chime

When you 'dereference' it, the server responds with:

chimezie@otherland:~/workspace/Ontologies$ curl -I http://metacognition.info/profile/webwho.xrdf#chime
HTTP/1.1 200 OK
Date: Thu, 30 Aug 2007 06:29:12 GMT
Server: Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_python/3.2.10 Python/2.4.4 PHP/4.4.4-8+etch1 proxy_html/2.5 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8
Last-Modified: Mon, 23 Apr 2007 03:09:22 GMT
Content-Length: 6342
Via: 1.1 www.metacognition.info
Expires: Thu, 30 Aug 2007 07:28:26 GMT
Age: 47
Content-Type: application/rdf+xml

According to TAG dictate, a 'web' agent can assume it refers to a document (yes, apparently an RDF document composed this blog you are reading).

Update: Bijan points out that my example is mistaken. The TAG dictate only allows the assumption to be made of the URI which goes across the wire (the URI with the fragment stripped off). The RDF (FOAF) doesn't make any assertions about this (stripped) URI being a foaf:Person. This is technically correct, however, the concern I was highlighting still holds (albeit it is more likely to confuse folks who are already confused about dereference and denotation). The assumption still gets in the way of 'proper' interpretation. Consider if I had used the FOAF graph URL as the URL for me. Under which mantra would this be taboo? Furthermore, if I wanted to avoid confusing unintelligent agents such as this one above, which URI scheme would I be likely to use? Hmmm...

Okay, a more sophisticated semantic web agent parses the RDF and understands (via the referential mechanics of model theory) that the URI denotes a foaf:Person (much more reasonable). This agent is also much better equipped to glean 'meaning' from the model-theoretic statements made about me instead of jumping to binary conclusions.

So I ask you, which agent is hampered by a dictate that has all to do with misplaced pragmatics and nothing to do with semantics? Until we understand that the 'Semantic Web' is not 'Web-based Semantics', Jim Hendler's question about where all the agents are (Where are all the agents?) will continue to go unanswered and Tim Bray's challenge will never be fulfilled.

A little tongue-in-cheek, but I hope you get the point

Chimezie Ogbuji

via Copia
7 responses
Unfortunately, your example is off. The URI that you are GETting, i.e., the actual thing that is the subject of the request, is the URI without the fragment. So you can infer, by TAG nonsense, that the resource "identified" by <http://metacognition.info/profile/webwho.xrdf> is an information resource, but the "identified resource" of <http://metacognition.info/profile/webwho.xrdf#chime> is determined by the client in light of the MIME type.



This is Tim's favored story. Anyhoo.
Thanks, Bijan (for pointing this out).  I've updated the entry accordingly.
Chime,



Here is what Curl is giving me re. your URI:



kingsleyidehen$ curl -I -H "Accept: application/rdf+xml" http://metacognition.info/profile/webwho.xrdf#chime

HTTP/1.1 200 OK

Date: Thu, 30 Aug 2007 16:03:38 GMT

Server: FtServer/1.0.1 Python/2.4.1

Content-Length: 6342

Last-Modified: Mon, 23 Apr 2007 03:09:22 GMT

Content-Type: application/rdf+xml

Via: 1.1 www.metacognition.info



kingsleyidehen$ curl -I -H "Accept: text/html" http://metacognition.info/profile/webwho.xrdf#chime

HTTP/1.1 200 OK

Date: Thu, 30 Aug 2007 16:04:09 GMT

Server: FtServer/1.0.1 Python/2.4.1

Content-Length: 6342

Last-Modified: Mon, 23 Apr 2007 03:09:22 GMT

Content-Type: application/rdf+xml

Via: 1.1 www.metacognition.info



As Bjan has stated, you have to seperate the Physical Information Resource (Web Doc) and Abstract Entity (you the person) via separate URIs. The Web Doc could 303 redirect to a SPARQL Protocol URL that DESCRIBES the abstract entity: <ttp://metacognition.info/profile/webwho.xrdf#chime>.



There has been a lot written about Deploying Linked Data of late:



1. http://virtuoso.openlinksw.com/Whitepapers/pdf/Deploying_Linked_Data_Final1.pdf  (a white paper that covers issues generically and then includes a Virtuoso Tutorial)

2. http://sites.wiwiss.fu-berlin.de/suhl/bizer/pub/LinkedDataTutorial/ - similar with Pubby as the deployment technology example
Hey Kingsley, re: "you have to seperate the Physical Information Resource (Web Doc) and Abstract Entity (you the person) via separate URIs."



In my FOAF file I only make the following assertions about the document:



<>

  a foaf:PersonalProfileDocument;

  foaf:maker <http://metacognition.info/profile/webwho.xrdf#chime>



Let's say, I really didn't care to make claims about the document which housed the RDF statements: it provides no value to an inference process (remember most of the value proposition of RDF is inference). 



Do I still need to make that separation? It seems that separation is only valuable to HTTP agents which are not capable of performing RDF-based inference.  If an agent can perform RDF-based inference, it doesn't need transport protocol-level dictates to tell it what to conclude about what the URI is, RDF model theory was designed to do exactly that.



So, would it be taboo to use a hashless URI (which responds with a 200 code) to identify me?:



<http://metacognition.info/profile/chime> a foaf:Person



Where exactly is the contradiction there?



Why would the server need to redirect to a SPARQL service when the very RDF it serves up describes what the URI is already (without zero ambiguity)?
Chime,



The value is to HTTP clients of which there are several (direct and indirect) :-)



Re:

<<

So, would it be taboo to use a hashless URI (which responds with a 200 code) to identify me?:

>>



Of course not, as long as you let HTTP clients understand that <http://metacognition.info/profile/chime> is an Identifier for the abstract entity "Chime" and not an Information Resource about "Chime". Thus, a 303  or 406 for "Accept: text/html" for HTTP GET targeting <http://metacognition.info/profile/chime > and 200 OK or 303 redirect for "Accept: application/rdf+xml" and other RDF representations.



<<

Why would the server need to redirect to a SPARQL service when the very RDF it serves up describes what the URI is already (without zero ambiguity)?

>>



Well in that case you don't (of course). But I am coming at it from the RDF DBMS realm, hence the SPARQL protocol suggestion.
Chime,



The value is to HTTP clients of which there are several (direct and indirect) :-)



Re:

<<

So, would it be taboo to use a hashless URI (which responds with a 200 code) to identify me?:

>>



Of course not, as long as you let HTTP clients understand that <http://metacognition.info/profile/chime> is an Identifier for the abstract entity "Chime" and not an Information Resource about "Chime". Thus, a 303  or 406 for "Accept: text/html" for HTTP GET targeting <http://metacognition.info/profile/chime > and 200 OK or 303 redirect for "Accept: application/rdf+xml" and other RDF representations.



<<

Why would the server need to redirect to a SPARQL service when the very RDF it serves up describes what the URI is already (without zero ambiguity)?

>>



Well in that case you don't (of course). But I am coming at it from the RDF DBMS realm, hence the SPARQL protocol suggestion.
Wow, there's so much worthwhile information here!