Re: Is 303 really necessary?

2010-12-14 Thread Bob Ferris

Hi,

I found Alternative to 303 response: Description-ID: header[1] in the 
TAG mailing list archive.


Are there any parallels? ;)

Cheers,


Bob


PS: maybe someone has already mentioned this source here, however, I 
didn't find any reference



[1] http://lists.w3.org/Archives/Public/www-tag/2007Dec/0024.html




Re: Is 303 really necessary?

2010-11-29 Thread James Leigh
On Sat, 2010-11-27 at 15:24 -0500, Tim Berners-Lee wrote: 
 Sorry, this thread has been around but the public-lod list 
 snuck up on me without my getting on it, so I have missed
 some of the fray!
 
 
 I am happy to look at improvements in the current HTTPRange 14
 architecture as I know that 303 is a pain.  But I don't want to break
 the web.
 
 
 Looking at http://bnb.bibliographica.org/entry/GB8102507
 the tabulator concludes that the thing identified by it
 is both a book and an RDF document, and it shows me, by default,  the
 triples it contains
 instead of the information about it, because that is what as a user I
 want.
 
 
 It doesn't use this new idea from IanD of using the content-location
 header as
 flag to indicate that the URI you used in the GET request may NOT be
 used
 to refer to the document returned.
 
 
 Suppose we go along with this new idea.
 
 
 Then, it will end up with  (ignoring namespaces) in N3 the information
 we get from that fetch includes:
 
 
 http://bnb.bibliographica.org/entry/GB8102507 a Book;
 contributor [name Boyd, William].
 
 
 http://bnb.bibliographica.org/entry/GB8102507.rdf a DataDocument;
 foaf:primaryTopic http://bnb.bibliographica.org/entry/GB8102507.
 
 
 Ok,  I understand the system. 
 
 
 But if you introduce this as the architecture of the  web, 
 then it applies all the time.  You can't chose when it applies and
 when it doesn't.
 
 
 Now look at 
 
 
 http://www.w3.org/2008/site/images/logo-w3c-mobile-lg
 
 
 This dereferenced to give you a content-location of
 
 
 http://www.w3.org/2008/site/images/logo-w3c-mobile-lg.png
 
 
 What do we know then?
 
 
 http://www.w3.org/2008/site/images/logo-w3c-mobile-lg.png
 we know we can use to refer to the image in its PNG version.
 http://www.w3.org/2008/site/images/logo-w3c-mobile-lg
 we know nothing about.
 
 
 Because the fetch returned a content-location header,
 we are now not allowed to use that URI to refer to anything -- it
 could
 after all refer to the Eiffel Tour, or the W3C as an organization
 according to the new system.
 
 
 Does this make sense?
 
 
 If you look that up in a browser, you will see the image in the 
 window and the URI in the title bar.
 We in fact really expect that people SHOULD use the generic URI
 http://www.w3.org/2008/site/images/logo-w3c-mobile-lg;
 to refer to the logo, not the .png URI, as people may need the
 content negotiation, and we may introduce a new version in
 a new graphics format some time.
 
 
 So all across the web, people are, and should use the original URI
 to refer to the image.  Tthey 
 see something in the URI bar and a document (image, etc)
 in the window and they assume rightly they can use that
 URI to refer to that image.
 
 
 The bookmarking system works like this.
 Emailing a friend a URI of something you are looking at works like
 this.
 Making a link to something you think it cool works like this.
 Putting a image in your page someone else has in their page works like
 this.
 The web works like this.
 
 
 We can't make the semantic web work in a way that actually
 leaves the web not working.
 
 
 We can't leave the WWW working one way and the LOD web
 working another, as they are inextricably interconnected.
 
 
 Now   Someone in the the thread somewhere at one point suggested a
 friendly
 amendment to the original proposal, where a new status code
 is sent for semantic web data being returned *about* the
 object identified by the request URI, rather than information *in* it.
 I think 208 was suggested, I.e, the next unused one.
 
 
 With that modification, I can't see a snag.
 
 
 - It is only used for data so old web browsers are not going to be
 seeing it
 - The data world is young enough for us to slide it in, maybe, without
 too much
   harm to existing clients, which would all have to be recoded, but it
 might be worth it to 
 relieve this tension.
 - the rest of the web continue to use 200
 
 
 
 
 Tim
 
 

Hi Tim,

I think much of your argument against using 200 can be extended for
using any 200 series status code. Representations that merely describe a
resource (and don't completely represent it) cause ambiguity because Web
browsers today interpret all 200 series responses (from a GET request)
as containing an complete representation of the resource identified in
the request URL. Even though this behaviour is not in the spec, Web
browser behave this way today.

As you said, people (and browsers) use the URL in the address bar as an
identifier for the document below it (in GET requests). Even if tomorrow
the spec said responses with status code 208 do not represent the
resource identified in the GET request URL, it would leave today's
browsers not working. Furthermore, Web browser vendors would never agree
to show the Content-Location URL in the address bar due to
security/authority concerns.

Any solution that causes today's Web browsers to show a URL in the
address bar (from a GET request) which does not identify the document
below, 

Re: Is 303 really necessary?

2010-11-28 Thread William Waites
* [2010-11-27 15:24:53 -0500] Tim Berners-Lee ti...@w3.org écrit:

] http://www.w3.org/2008/site/images/logo-w3c-mobile-lg.png
]   we know we can use to refer to the image in its PNG version.
] http://www.w3.org/2008/site/images/logo-w3c-mobile-lg
]   we know nothing about.
] 
] Because the fetch returned a content-location header,
] we are now not allowed to use that URI to refer to anything -- it could
] after all refer to the Eiffel Tour, or the W3C as an organization
] according to the new system.
] 
] Does this make sense?

Yes and no. I see the distinction between representation and
description, but I don't think the line is necessarily so sharp. For
example, you could make
http://www.w3.org/2008/site/images/logo-w3c-mobile-lg
respond with,

The W3C logo, white text on a teal background the characters
W and 3 apparently raised and C apparently sunken. It is
the large version of the logo intended for use with mobile
browsers.

when asked for text/plain (pace alt). Maybe this is useful for blind
people.  For them it functions as a representation but is written
using descriptive language. I could imagine formalising the
descriptive language in RDF and returning that when asked for a
different content-type. Maybe I should do some background reading in
semiotics to get this clearer in my mind.

In the meantime,

% curl -I http://bnb.bibliographica.org/entry/GB5105626
HTTP/1.0 303 See Other
Server: nginx/0.7.65
Date: Sat, 27 Nov 2010 23:44:54 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Pragma: no-cache
Cache-Control: no-cache
Vary: Accept
Location: http://bnb.bibliographica.org/entry/GB5105626.rdf
X-Cache: MISS from localhost
X-Cache-Lookup: MISS from localhost:80
Via: 1.0 localhost (squid/3.0.STABLE19)
Connection: close

Cheers,
-w
-- 
William Waites
http://eris.okfn.org/ww/foaf#i
9C7E F636 52F6 1004 E40A  E565 98E3 BBF3 8320 7664



Re: Is 303 really necessary?

2010-11-28 Thread Giovanni Tummarello
 - the rest of the web continue to use 200

 Tim

yes but the rest of the web will use 200 also to show what we would
consider 208, e.g.

http://www.rottentomatoes.com/celebrity/antonio_banderas/

see the trilples
http://inspector.sindice.com/inspect?url=http://www.rottentomatoes.com/celebrity/antonio_banderas/#TRIPLES

http://www.rottentomatoes.com/celebrity/antonio_banderas/

is clearly a web page but its also an actor, it is pointed by their
graph in other pages as such and the same page contains the opengraph
triple  type actor

We should not get ourself in the position to have to try to evangelize
all to change something for reasons that are really not apparent to
your normal web world. I think the solution we should be seeking
consider RDFa publishing via normal 200 code as the example above
absolutely ok

an agent would then be able to distinguish which properties apply to
the page and which to the actor looking at the.. properties
themselves i guess?  sad but possibly unavoidable?

Giovanni



Re: Is 303 really necessary?

2010-11-28 Thread Jiří Procházka


On 11/28/2010 02:52 PM, Giovanni Tummarello wrote:
 - the rest of the web continue to use 200

 Tim
 
 yes but the rest of the web will use 200 also to show what we would
 consider 208, e.g.
 
 http://www.rottentomatoes.com/celebrity/antonio_banderas/
 
 see the trilples
 http://inspector.sindice.com/inspect?url=http://www.rottentomatoes.com/celebrity/antonio_banderas/#TRIPLES
 
 http://www.rottentomatoes.com/celebrity/antonio_banderas/
 
 is clearly a web page but its also an actor, it is pointed by their
 graph in other pages as such and the same page contains the opengraph
 triple  type actor
 
 We should not get ourself in the position to have to try to evangelize
 all to change something for reasons that are really not apparent to
 your normal web world. I think the solution we should be seeking
 consider RDFa publishing via normal 200 code as the example above
 absolutely ok
 
 an agent would then be able to distinguish which properties apply to
 the page and which to the actor looking at the.. properties
 themselves i guess?  sad but possibly unavoidable?
 
 Giovanni

Hi,
I agree with this.
This problem is caused that Linked Data conflates identifiers with
locators - important is that one can get information about a unique
name, by using it as a locator. The issue whether some events in the
process or outcome of the information retrieval somehow should affect
users perception of the name (is it a document or xyz?) is a can of
worms most implementers don't want to tackle and they have a point. I
don't want to maintain all apps I once coded so they support whatever is
the latest HTTP semantics trend is, when there is a widely used standard
for extensible, *evolvable* information representation (RDF) which I am
already expecting to receive about the name I am retrieving info about.
So lets not presume that by dereferencing an URI and getting back a
document, the URI is the documents identifier - it is its locator. It
can be its identifier too, but lets leave that for publishers to decide
- that has been the point of my previous post on the topic (
http://lists.w3.org/Archives/Public/public-lod/2010Nov/0325.html )

Best regards,
Jiří Procházka



signature.asc
Description: OpenPGP digital signature


Facebook OpenGraphProtocol (was Re: Is 303 really necessary?)

2010-11-28 Thread Tim Berners-Lee
Giovani,

When you say the rest of the web, this issue is specifically one 
with Facebook Open Graph Protocol, which i a new development.

When you look at the triples
http://inspector.sindice.com/inspect?url=http://www.rottentomatoes.com/celebrity/antonio_banderas/#TRIPLES
(Nice view)
the you get many triples about the page,  like
http://www.rottentomatoes.com/celebrity/antonio_banderas/ 
http://www.w3.org/1999/xhtml/vocab#stylesheet 
http://images.rottentomatoescdn.com/files/inc_beta/css/2.0.0/header_v2.css?v=glo20101121
 .
This clearly is about the document.
(I don' think it is very interesting as data, so defining it to be part of the
RDF triples of a document without the alternative of a more constrained set
is another issue.) 

The ones which are from the OGP are like
http://www.rottentomatoes.com/celebrity/antonio_banderas/ 
http://opengraphprotocol.org/schema/type actor .

There are of course various ways of mapping this to what you and
would have probably coded up. 

1) One way if to just recognize that the
predicates in the OGP are relations to the page.


{ ?page fb:image ?x. ?page foaf:primarySubject ?y } = { ?y foaf:image ?x }.

and that is not the end of the world.

But it is consistent.


2) There is another way, and that is to make a new RDFA syntax really easy to
add triples specifically about the subject of the page.




Note that the 303/208 issue is separate to this. This OGP problem remains if 
you use 208 or 200)

Tim



On 2010-11 -28, at 08:52, Giovanni Tummarello wrote:

 - the rest of the web continue to use 200
 
 Tim
 
 yes but the rest of the web will use 200 also to show what we would
 consider 208, e.g.
 
 http://www.rottentomatoes.com/celebrity/antonio_banderas/
 
 see the trilples
 http://inspector.sindice.com/inspect?url=http://www.rottentomatoes.com/celebrity/antonio_banderas/#TRIPLES
 
 http://www.rottentomatoes.com/celebrity/antonio_banderas/
 
 is clearly a web page but its also an actor, it is pointed by their
 graph in other pages as such and the same page contains the opengraph
 triple  type actor
 
 We should not get ourself in the position to have to try to evangelize
 all to change something for reasons that are really not apparent to
 your normal web world. I think the solution we should be seeking
 consider RDFa publishing via normal 200 code as the example above
 absolutely ok
 
 an agent would then be able to distinguish which properties apply to
 the page and which to the actor looking at the.. properties
 themselves i guess?  sad but possibly unavoidable?

No, absolutely horrible.  
A total disaster IMHO. 
Think how many properties of a library catalog card and a book both have.
What do you do with these triples

 a Book.
 a CardCatalog.
 creator  people:AGEdelan3.
 creator people:HSWhite23.
 length 1052.
 length  105675.

That way lies madness.


 
 Giovanni
 




Re: Is 303 really necessary?

2010-11-28 Thread Kingsley Idehen

On 11/28/10 9:46 AM, Jiří Procházka wrote:


On 11/28/2010 02:52 PM, Giovanni Tummarello wrote:

- the rest of the web continue to use 200

Tim

yes but the rest of the web will use 200 also to show what we would
consider 208, e.g.

http://www.rottentomatoes.com/celebrity/antonio_banderas/

see the trilples
http://inspector.sindice.com/inspect?url=http://www.rottentomatoes.com/celebrity/antonio_banderas/#TRIPLES

http://www.rottentomatoes.com/celebrity/antonio_banderas/

is clearly a web page but its also an actor, it is pointed by their
graph in other pages as such and the same page contains the opengraph
triple  type actor

We should not get ourself in the position to have to try to evangelize
all to change something for reasons that are really not apparent to
your normal web world. I think the solution we should be seeking
consider RDFa publishing via normal 200 code as the example above
absolutely ok

an agent would then be able to distinguish which properties apply to
the page and which to the actor looking at the.. properties
themselves i guess?  sad but possibly unavoidable?

Giovanni

Hi,
I agree with this.
This problem is caused that Linked Data conflates identifiers with
locators - important is that one can get information about a unique
name, by using it as a locator.


Linked Data (meme or actual concept) doesn't conflate Locators with 
Identifiers. A URI is a generic Identifier. A URL (a Locator / Address) 
is an Identifier.


The problem remains in not understanding the URI abstraction.

One issue you can't tack on Linked Data is failure to distinguish 
between a Name Reference and an Address Reference implemented via 
elegance of URI abstraction.



  The issue whether some events in the
process or outcome of the information retrieval somehow should affect
users perception of the name (is it a document or xyz?) is a can of
worms most implementers don't want to tackle and they have a point.


It wasn't a can of worms before the Web. The issue of Resource in URI 
[1] has lead to overloading that creates the illusion you describe, 
across many quarters and their associated commentators.



  I
don't want to maintain all apps I once coded so they support whatever is
the latest HTTP semantics trend is, when there is a widely used standard
for extensible, *evolvable* information representation (RDF) which I am
already expecting to receive about the name I am retrieving info about.
So lets not presume that by dereferencing an URI and getting back a
document, the URI is the documents identifier - it is its locator.


Yes, it's the URL of a Document, and if the content-type is one of the 
RDF formats, or any other syntax for representing EAV model structured 
data -- via hypermedia -- then its the URL of a Entity Descriptor 
Document -- a document that provides a full representation of its 
Subject via a Description expressed in a Graph Pictorial comprised of 
Attribute=Value pairs coalesced around Subject Name (an Resolvable 
Identifier e..g an HTTP URI).



It
can be its identifier too, but lets leave that for publishers to decide
- that has been the point of my previous post on the topic (
http://lists.w3.org/Archives/Public/public-lod/2010Nov/0325.html )


If you mean, let the publisher decide via Content and Mime Type what 
this is about, then emphatic YES!!


Tim: if we add 208 to the mix, it still doesn't break anything. 
Personally, it just adds an option for Linked Data Server developers 
that balances out the User Agent oriented nature (heuristics wise) of 
Ian's suggestion. Thus, I can easily have 208 handling added to Virtuoso 
to compliment what's being done on the client side re., content-type and 
eventual content interpretation re., Linked Data document generation 
i.e., browse-able pages and hypermedia based structured data 
representation .


Links:

1. http://lists.w3.org/Archives/Public/www-tag/2009Aug/.html -- 
TimBL's own account re. origins of Resource in URI. This is the problem!!

Best regards,
Jiří Procházka




--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen








Simpler alternative of Linked Data semantics (was Re: Is 303 really necessary?)

2010-11-28 Thread Jiří Procházka
On 11/28/2010 06:45 PM, Kingsley Idehen wrote:
 On 11/28/10 9:46 AM, Jiří Procházka wrote:
snip
 This problem is caused that Linked Data conflates identifiers with
 locators - important is that one can get information about a unique
 name, by using it as a locator.
 
 Linked Data (meme or actual concept) doesn't conflate Locators with
 Identifiers. A URI is a generic Identifier. A URL (a Locator / Address)
 is an Identifier.
 
 The problem remains in not understanding the URI abstraction.
 
 One issue you can't tack on Linked Data is failure to distinguish
 between a Name Reference and an Address Reference implemented via
 elegance of URI abstraction.
 
   The issue whether some events in the
 process or outcome of the information retrieval somehow should affect
 users perception of the name (is it a document or xyz?) is a can of
 worms most implementers don't want to tackle and they have a point.
 
 It wasn't a can of worms before the Web. The issue of Resource in URI
 [1] has lead to overloading that creates the illusion you describe,
 across many quarters and their associated commentators.
 
   I
 don't want to maintain all apps I once coded so they support whatever is
 the latest HTTP semantics trend is, when there is a widely used standard
 for extensible, *evolvable* information representation (RDF) which I am
 already expecting to receive about the name I am retrieving info about.
 So lets not presume that by dereferencing an URI and getting back a
 document, the URI is the documents identifier - it is its locator.
 
 Yes, it's the URL of a Document, and if the content-type is one of the
 RDF formats, or any other syntax for representing EAV model structured
 data -- via hypermedia -- then its the URL of a Entity Descriptor
 Document -- a document that provides a full representation of its
 Subject via a Description expressed in a Graph Pictorial comprised of
 Attribute=Value pairs coalesced around Subject Name (an Resolvable
 Identifier e..g an HTTP URI).
 
 It
 can be its identifier too, but lets leave that for publishers to decide
 - that has been the point of my previous post on the topic (
 http://lists.w3.org/Archives/Public/public-lod/2010Nov/0325.html )
 
 If you mean, let the publisher decide via Content and Mime Type what
 this is about, then emphatic YES!!

That is the option which was promoted till now, but some people chose
not to oblige for whatever reason and judging by the amount of
discussions about it, it is a problem. If publisher makes available
structured data about some concept at an URI he probably means the URI
identifies the concept, not the data documents, and I think if one wants
to use that data, he needs to try to understand the publisher, not tell
him he is wrong because [insert XX pages of HTTP  URI semantics],
however flawed neglecting the standards you may consider to be - welcome
the Linked Data (tag^H^H^Hstatus-code-)soup.

I'm fond of RDFs take on URIs == names. What I mean is:
a)  letting publisher decide which name is for document and relations
between them, which for concepts. On dereferencing (200 returned), not
to think hmm yup, this definitely must be name for a document, but
hmm I dereferenced this URI and got back some document - the document
exists, but it's name isn't specified - like blank node, with similar
drawbacks, thus:
b)  letting the publisher decide that not via Content and Mime Type, but
in the structured data itself, because that is most probably what the
consumer will be able to parse and understand anyway and there exists a
well established standard Resource Description Framework for it which
fulfills more of this great document (
http://www.w3.org/DesignIssues/Evolution.html ) than HTTP, which isn't a
one ring to rule the all transport protocols. (Other data formats than
RDF should have equivalent ways of expressing that too.)

This practice doesn't need to be standardized. You and me can use it now
if we wish. It has both advantages, covering wider quality range of
linked data, and disadvantages - suddenly all documents with no data
about them have no names! Tragedy? No, we have their locators and if
there is something said about the locators, we can assume it is about
the document stored there, unless said otherwise by the publisher (this
is the difference from the standard Linked Data perspective).
This doesn't make ambiguity to go away, that is impossible since it
depends on the publisher, but I believe it is a simpler, more forward
compatible way to go around it, fitting more world-views.

Best,
Jiri

snip
 Links:
 
 1. http://lists.w3.org/Archives/Public/www-tag/2009Aug/.html --
 TimBL's own account re. origins of Resource in URI. This is the problem!!
 



signature.asc
Description: OpenPGP digital signature


Re: Is 303 really necessary?

2010-11-28 Thread Toby Inkster
On Sun, 28 Nov 2010 14:52:21 +0100
Giovanni Tummarello giovanni.tummare...@deri.org wrote:

 is clearly a web page but its also an actor, it is pointed by their
 graph in other pages as such and the same page contains the opengraph
 triple  type actor

That's consistent with the definition of the og:type property. og:type
is roughly equivalent to the following property chain in N3:

foaf:primaryTopic!rdf:type!rdfs:label

So if a page contains:

 og:type actor .

That's equivalent to:

 foaf:primaryTopic [
 a [ rdfs:label actor ]
   ] .

This is similar in spirit to foaf:workplaceHomepage which could be
written as a chain of ex:workplace!foaf:homepage.

-- 
Toby A Inkster
mailto:m...@tobyinkster.co.uk
http://tobyinkster.co.uk



Re: Simpler alternative of Linked Data semantics (was Re: Is 303 really necessary?)

2010-11-28 Thread Kingsley Idehen

On 11/28/10 3:52 PM, Jiří Procházka wrote:

On 11/28/2010 06:45 PM, Kingsley Idehen wrote:

On 11/28/10 9:46 AM, Jiří Procházka wrote:

snip

This problem is caused that Linked Data conflates identifiers with
locators - important is that one can get information about a unique
name, by using it as a locator.

Linked Data (meme or actual concept) doesn't conflate Locators with
Identifiers. A URI is a generic Identifier. A URL (a Locator / Address)
is an Identifier.

The problem remains in not understanding the URI abstraction.

One issue you can't tack on Linked Data is failure to distinguish
between a Name Reference and an Address Reference implemented via
elegance of URI abstraction.


   The issue whether some events in the
process or outcome of the information retrieval somehow should affect
users perception of the name (is it a document or xyz?) is a can of
worms most implementers don't want to tackle and they have a point.

It wasn't a can of worms before the Web. The issue of Resource in URI
[1] has lead to overloading that creates the illusion you describe,
across many quarters and their associated commentators.


   I
don't want to maintain all apps I once coded so they support whatever is
the latest HTTP semantics trend is, when there is a widely used standard
for extensible, *evolvable* information representation (RDF) which I am
already expecting to receive about the name I am retrieving info about.
So lets not presume that by dereferencing an URI and getting back a
document, the URI is the documents identifier - it is its locator.

Yes, it's the URL of a Document, and if the content-type is one of the
RDF formats, or any other syntax for representing EAV model structured
data -- via hypermedia -- then its the URL of a Entity Descriptor
Document -- a document that provides a full representation of its
Subject via a Description expressed in a Graph Pictorial comprised of
Attribute=Value pairs coalesced around Subject Name (an Resolvable
Identifier e..g an HTTP URI).


It
can be its identifier too, but lets leave that for publishers to decide
- that has been the point of my previous post on the topic (
http://lists.w3.org/Archives/Public/public-lod/2010Nov/0325.html )

If you mean, let the publisher decide via Content and Mime Type what
this is about, then emphatic YES!!

That is the option which was promoted till now, but some people chose
not to oblige for whatever reason and judging by the amount of
discussions about it, it is a problem. If publisher makes available
structured data about some concept at an URI he probably means the URI
identifies the concept, not the data documents, and I think if one wants
to use that data, he needs to try to understand the publisher, not tell
him he is wrong because [insert XX pages of HTTP  URI semantics],
however flawed neglecting the standards you may consider to be - welcome
the Linked Data (tag^H^H^Hstatus-code-)soup.

I'm fond of RDFs take on URIs == names. What I mean is:
a)  letting publisher decide which name is for document and relations
between them, which for concepts. On dereferencing (200 returned), not
to think hmm yup, this definitely must be name for a document, but
hmm I dereferenced this URI and got back some document - the document
exists, but it's name isn't specified - like blank node, with similar
drawbacks, thus:
b)  letting the publisher decide that not via Content and Mime Type, but
in the structured data itself, because that is most probably what the
consumer will be able to parse and understand anyway and there exists a
well established standard Resource Description Framework for it which
fulfills more of this great document (
http://www.w3.org/DesignIssues/Evolution.html ) than HTTP, which isn't a
one ring to rule the all transport protocols. (Other data formats than
RDF should have equivalent ways of expressing that too.)


Yes-ish, but my point is this:

1. Publisher (owner of Linked Data Server) serves up data via Documents 
at URLs
2. Linked Data Client (agents) accesses data by exploiting content 
negotiation when de-referencing URIs (Name or Address)
3. Publisher sends Document Content to client with metadata (HTTP 
response headers and/or within the content via triples or head/link/ 
exploitation re. HTML) -- this is where Mime Type comes into play too
4. Linked Data Client processes metadata and content en route to 
understanding what its received.



This practice doesn't need to be standardized. You and me can use it now
if we wish. It has both advantages, covering wider quality range of
linked data, and disadvantages - suddenly all documents with no data
about them have no names! Tragedy? No, we have their locators and if
there is something said about the locators, we can assume it is about
the document stored there, unless said otherwise by the publisher (this
is the difference from the standard Linked Data perspective).
This doesn't make ambiguity to go away, that is impossible since it
depends on the publisher, but 

Re: Simpler alternative of Linked Data semantics (was Re: Is 303 really necessary?)

2010-11-28 Thread Jiří Procházka
On 11/29/2010 12:48 AM, Kingsley Idehen wrote:
 On 11/28/10 3:52 PM, Jiří Procházka wrote:
 On 11/28/2010 06:45 PM, Kingsley Idehen wrote:
 On 11/28/10 9:46 AM, Jiří Procházka wrote:
 snip
 This problem is caused that Linked Data conflates identifiers with
 locators - important is that one can get information about a unique
 name, by using it as a locator.
 Linked Data (meme or actual concept) doesn't conflate Locators with
 Identifiers. A URI is a generic Identifier. A URL (a Locator / Address)
 is an Identifier.

 The problem remains in not understanding the URI abstraction.

 One issue you can't tack on Linked Data is failure to distinguish
 between a Name Reference and an Address Reference implemented via
 elegance of URI abstraction.

The issue whether some events in the
 process or outcome of the information retrieval somehow should affect
 users perception of the name (is it a document or xyz?) is a can of
 worms most implementers don't want to tackle and they have a point.
 It wasn't a can of worms before the Web. The issue of Resource in URI
 [1] has lead to overloading that creates the illusion you describe,
 across many quarters and their associated commentators.

I
 don't want to maintain all apps I once coded so they support
 whatever is
 the latest HTTP semantics trend is, when there is a widely used
 standard
 for extensible, *evolvable* information representation (RDF) which I am
 already expecting to receive about the name I am retrieving info about.
 So lets not presume that by dereferencing an URI and getting back a
 document, the URI is the documents identifier - it is its locator.
 Yes, it's the URL of a Document, and if the content-type is one of the
 RDF formats, or any other syntax for representing EAV model structured
 data -- via hypermedia -- then its the URL of a Entity Descriptor
 Document -- a document that provides a full representation of its
 Subject via a Description expressed in a Graph Pictorial comprised of
 Attribute=Value pairs coalesced around Subject Name (an Resolvable
 Identifier e..g an HTTP URI).

 It
 can be its identifier too, but lets leave that for publishers to decide
 - that has been the point of my previous post on the topic (
 http://lists.w3.org/Archives/Public/public-lod/2010Nov/0325.html )
 If you mean, let the publisher decide via Content and Mime Type what
 this is about, then emphatic YES!!
 That is the option which was promoted till now, but some people chose
 not to oblige for whatever reason and judging by the amount of
 discussions about it, it is a problem. If publisher makes available
 structured data about some concept at an URI he probably means the URI
 identifies the concept, not the data documents, and I think if one wants
 to use that data, he needs to try to understand the publisher, not tell
 him he is wrong because [insert XX pages of HTTP  URI semantics],
 however flawed neglecting the standards you may consider to be - welcome
 the Linked Data (tag^H^H^Hstatus-code-)soup.

 I'm fond of RDFs take on URIs == names. What I mean is:
 a)  letting publisher decide which name is for document and relations
 between them, which for concepts. On dereferencing (200 returned), not
 to think hmm yup, this definitely must be name for a document, but
 hmm I dereferenced this URI and got back some document - the document
 exists, but it's name isn't specified - like blank node, with similar
 drawbacks, thus:
 b)  letting the publisher decide that not via Content and Mime Type, but
 in the structured data itself, because that is most probably what the
 consumer will be able to parse and understand anyway and there exists a
 well established standard Resource Description Framework for it which
 fulfills more of this great document (
 http://www.w3.org/DesignIssues/Evolution.html ) than HTTP, which isn't a
 one ring to rule the all transport protocols. (Other data formats than
 RDF should have equivalent ways of expressing that too.)
 
 Yes-ish, but my point is this:
 
 1. Publisher (owner of Linked Data Server) serves up data via Documents
 at URLs
 2. Linked Data Client (agents) accesses data by exploiting content
 negotiation when de-referencing URIs (Name or Address)
 3. Publisher sends Document Content to client with metadata (HTTP
 response headers and/or within the content via triples or head/link/
 exploitation re. HTML) -- this is where Mime Type comes into play too
 4. Linked Data Client processes metadata and content en route to
 understanding what its received.
 
 This practice doesn't need to be standardized. You and me can use it now
 if we wish. It has both advantages, covering wider quality range of
 linked data, and disadvantages - suddenly all documents with no data
 about them have no names! Tragedy? No, we have their locators and if
 there is something said about the locators, we can assume it is about
 the document stored there, unless said otherwise by the publisher (this
 is the difference from the standard Linked Data 

Re: Simpler alternative of Linked Data semantics (was Re: Is 303 really necessary?)

2010-11-28 Thread Kingsley Idehen

On 11/28/10 7:52 PM, Jiří Procházka wrote:
[SNIP]

Right, essentially I was pointing out the advantages of publishing the
metadata in the content itself, in contrast to relying on HTTP. My bad
for not realizing the role mime types can play as metadata outside of
transport protocol.


No problem, we're in sync :-)

--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen








Re: Is 303 really necessary?

2010-11-27 Thread Tim Berners-Lee
Sorry, this thread has been around but the public-lod list 
snuck up on me without my getting on it, so I have missed
some of the fray!

I am happy to look at improvements in the current HTTPRange 14
architecture as I know that 303 is a pain.  But I don't want to break the web.

Looking at http://bnb.bibliographica.org/entry/GB8102507
the tabulator concludes that the thing identified by it
is both a book and an RDF document, and it shows me, by default,  the triples 
it contains
instead of the information about it, because that is what as a user I want.

It doesn't use this new idea from IanD of using the content-location header as
flag to indicate that the URI you used in the GET request may NOT be used
to refer to the document returned.

Suppose we go along with this new idea.

Then, it will end up with  (ignoring namespaces) in N3 the information
we get from that fetch includes:

http://bnb.bibliographica.org/entry/GB8102507 a Book;
contributor [name Boyd, William].

http://bnb.bibliographica.org/entry/GB8102507.rdf a DataDocument;
foaf:primaryTopic http://bnb.bibliographica.org/entry/GB8102507.

Ok,  I understand the system. 

But if you introduce this as the architecture of the  web, 
then it applies all the time.  You can't chose when it applies and when it 
doesn't.

Now look at 

http://www.w3.org/2008/site/images/logo-w3c-mobile-lg

This dereferenced to give you a content-location of

http://www.w3.org/2008/site/images/logo-w3c-mobile-lg.png

What do we know then?

http://www.w3.org/2008/site/images/logo-w3c-mobile-lg.png
we know we can use to refer to the image in its PNG version.
http://www.w3.org/2008/site/images/logo-w3c-mobile-lg
we know nothing about.

Because the fetch returned a content-location header,
we are now not allowed to use that URI to refer to anything -- it could
after all refer to the Eiffel Tour, or the W3C as an organization
according to the new system.

Does this make sense?

If you look that up in a browser, you will see the image in the 
window and the URI in the title bar.
We in fact really expect that people SHOULD use the generic URI
http://www.w3.org/2008/site/images/logo-w3c-mobile-lg;
to refer to the logo, not the .png URI, as people may need the
content negotiation, and we may introduce a new version in
a new graphics format some time.

So all across the web, people are, and should use the original URI
to refer to the image.  Tthey 
see something in the URI bar and a document (image, etc)
in the window and they assume rightly they can use that
URI to refer to that image.

The bookmarking system works like this.
Emailing a friend a URI of something you are looking at works like this.
Making a link to something you think it cool works like this.
Putting a image in your page someone else has in their page works like this.
The web works like this.

We can't make the semantic web work in a way that actually
leaves the web not working.

We can't leave the WWW working one way and the LOD web working another, as they 
are inextricably interconnected.

Now   Someone in the the thread somewhere at one point suggested a friendly
amendment to the original proposal, where a new status code
is sent for semantic web data being returned *about* the
object identified by the request URI, rather than information *in* it.
I think 208 was suggested, I.e, the next unused one.

With that modification, I can't see a snag.

- It is only used for data so old web browsers are not going to be seeing it
- The data world is young enough for us to slide it in, maybe, without too much
  harm to existing clients, which would all have to be recoded, but it might be 
worth it to 
relieve this tension.
- the rest of the web continue to use 200


Tim





Some headers fro URIs above:

$ curl -I  http://www.w3.org/2008/site/images/logo-w3c-mobile-lg
HTTP/1.1 200 OK
Date: Sat, 27 Nov 2010 19:21:50 GMT
Server: Apache/2
Content-Location: logo-w3c-mobile-lg.png
Vary: negotiate,accept
TCN: choice
Last-Modified: Sun, 25 Apr 2010 15:27:07 GMT
ETag: 11a9-485114b0e28c0;4876eed0c4800
Accept-Ranges: bytes
Content-Length: 4521
Cache-Control: max-age=2592000
Expires: Mon, 27 Dec 2010 19:21:50 GMT
P3P: policyref=http://www.w3.org/2001/05/P3P/p3p.xml;
Connection: close
Content-Type: image/png; qs=0.7


This is odd -- doesn't support HEAD?

$ curl -I http://bnb.bibliographica.org/entry/GB8102507
HTTP/1.0 406 Not Acceptable
Date: Sat, 27 Nov 2010 19:29:24 GMT
Server: Apache/2.2.14 (Ubuntu)
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Allow-Origin: *
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Cache: MISS from localhost
X-Cache-Lookup: MISS from localhost:80
Via: 1.0 localhost (squid/3.0.STABLE19)
Connection: close

$ curl -I -H Accept:application/rdf+xml 
http://bnb.bibliographica.org/entry/GB8102507
HTTP/1.0 406 Not Acceptable

$ cwm 

Re: Is 303 really necessary?

2010-11-26 Thread Nathan

Bob Ferris wrote:

Hello everybody,

I wrote a note as an attempt to clarify a bit the terms Resource, 
Information Resource and Document and their relations (from my point of 
view). Maybe this helps to figure out the bits of the current confusion. 
Please have a look at:


http://infoserviceonto.wordpress.com/2010/11/25/on-resources-information-resources-and-documents/ 


likewise:

  http://webr3.org/apps/notes/web#atypedlink

partial story of creating /a/ semantic web, rather than /the/ semantic web.



Re: Is 303 really necessary?

2010-11-26 Thread David Booth
Hi Bob,

On Fri, 2010-11-26 at 15:15 +0100, Bob Ferris wrote:
 Hello everybody,
 
 I wrote a note as an attempt to clarify a bit the terms Resource, 
 Information Resource and Document and their relations (from my point of 
 view). Maybe this helps to figure out the bits of the current confusion. 
 Please have a look at:
 
 http://infoserviceonto.wordpress.com/2010/11/25/on-resources-information-resources-and-documents/
 

To reduce confusion, I think it would be helpful to point out up front
that you are using the term information resource quite differently
than it is defined in the W3C Architecture of the World Wide Web:
http://www.w3.org/TR/webarch/#id-resources


-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Is 303 really necessary?

2010-11-26 Thread David Booth
On Fri, 2010-11-26 at 14:30 +, Nathan wrote:
http://webr3.org/apps/notes/web#atypedlink
 
 partial story of creating /a/ semantic web, rather than /the/ semantic web.

Thanks for posting this.  I like the reasoning, but one part I think is
overstated to the point of being incorrect: 

  It is critical to note, that you cannot name real world 
  things with URIs, you cannot name the moon with a URI, 
  just as you cannot send the moon through a computer.

You later discuss the idea of using a URI to name something
*as-described-by* a document, and this I think is a very good point to
make.  But I don't think it invalidates the idea that you can name real
world things with URIs.   I suggest toning down the above statement and
further explaining the idea that the identity of a resource may not be
unambiguously determined, but it is determined only to the extent that
its description determines it.



-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Is 303 really necessary?

2010-11-26 Thread Kingsley Idehen

On 11/26/10 12:49 PM, David Booth wrote:

On Fri, 2010-11-26 at 14:30 +, Nathan wrote:

http://webr3.org/apps/notes/web#atypedlink

partial story of creating /a/ semantic web, rather than /the/ semantic web.

Thanks for posting this.  I like the reasoning, but one part I think is
overstated to the point of being incorrect:

   It is critical to note, that you cannot name real world
   things with URIs, you cannot name the moon with a URI,
   just as you cannot send the moon through a computer.

You later discuss the idea of using a URI to name something
*as-described-by* a document, and this I think is a very good point to
make.  But I don't think it invalidates the idea that you can name real
world things with URIs.   I suggest toning down the above statement and
further explaining the idea that the identity of a resource may not be
unambiguously determined, but it is determined only to the extent that
its description determines it.




Nathan,

I have a URI. I don't have a URL. A document describing me has a URL. A 
description has to occur on a surface (Document) otherwise it cannot be 
perceived by any beholder. The Subject of a description has to be 
distinct from its projector otherwise beholders are stuck with low- or 
no-resolution style projection. The Moon can have a URI that indicates 
its the Subject of a documented description.


There is a trinity that cannot be broken when it comes to structured 
descriptions: Referent, Identifier, Document .  This has been so long 
before the WWW came into existence.


Real World Entities have always had Identifiers. URIs don't change this 
reality. That's an accepted fact in a broad range of universes of 
discourse -- which includes AWWW .


A description of the Moon with a URI for Moon never implies the moon 
will come zooming out of the Web. It just means: an observer of the Moon 
can use Attribute=Value pairs to describe the Moon (referent) via a 
Document by coalescing these Attribute=Value pairs around the Moon's 
Identifier (Name).


If said observer performs the above in machine readable form, he/she is 
basically entering into the realm of EAV based structured data. Add 
hypermedia to the mix re., Documentation medium and we have Linked Data.


I have never read a note by TimBL that's indicated that you can't give 
URIs to real world objects. Ditto W3C.


I've never encountered any computer literature relating to Distributed 
Objects or Object Orientation that's indicated Data Objects, Entities, 
Data Items are devoid of Identity.


Resource overloading bug continues to haunt Semantic Web and Linked 
Data communications and comprehension :-)


Again, we can't break the trinity: Referent, Identifier, Document -- 
which is the container, disseminator, and projector of Content defined 
by a Model that is logic based re., hypermedia based structured data.


Roy Fielding wasn't describing Linked Data (Distributed Data Objects) in 
his famous thesis. He was describing a better approach to Document 
Oriented Client-Server Middleware via HTTP.


The Document Oriented Middleware vs Remote Procedure Calls Oriented 
middleware has been raging for eons, long before WWW. This subject 
matter is a vast realm on to itself re. history. Today, we talk about 
REST vs SOAP, without always knowing that they're just today's monikers 
for an age-old battle in the realm of Client-Server Middleware.



--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen







Re: Is 303 really necessary?

2010-11-26 Thread William Waites
* [2010-11-26 15:15:42 +0100] Bob Ferris z...@elbklang.net écrit:
]
] I wrote a note as an attempt to clarify a bit the terms Resource, 
] Information Resource and Document and their relations (from my point of 
] view). Maybe this helps to figure out the bits of the current confusion. 

So taking a cue from this thread, I've implemented something that I
think is in line with the original suggestion for a new dataset that
I'm working on. If you request, e.g.

http://bnb.bibliographica.org/entry/GB8102507

with an Accept header indicating an interest in RDF data, you will get
a 200 response with a Content-Location header indicating that what is
returned is actually the GB8102507.rdf document. It seems to me that
this is enough information that a client needn't be confused between
the document and the book, A good man in Africa. There is
foaf:primaryTopic linkage in the document that should also adequately
explain the state of affairs.

However it seems that some clients are confused -- tabulator for
instance as was pointed out in irc the other day.

My question is, should I change the behaviour to the standard 303
redirect or leave it as a stake in the ground saying that this is a
reasonable arrangement?

Cheers,
-w

-- 
William Waites
http://eris.okfn.org/ww/foaf#i
9C7E F636 52F6 1004 E40A  E565 98E3 BBF3 8320 7664



Re: Is 303 really necessary?

2010-11-26 Thread Kingsley Idehen

On 11/26/10 4:47 PM, William Waites wrote:

* [2010-11-26 15:15:42 +0100] Bob Ferrisz...@elbklang.net  écrit:
]
] I wrote a note as an attempt to clarify a bit the terms Resource,
] Information Resource and Document and their relations (from my point of
] view). Maybe this helps to figure out the bits of the current confusion.

So taking a cue from this thread, I've implemented something that I
think is in line with the original suggestion for a new dataset that
I'm working on. If you request, e.g.

 http://bnb.bibliographica.org/entry/GB8102507

with an Accept header indicating an interest in RDF data, you will get
a 200 response with a Content-Location header indicating that what is
returned is actually the GB8102507.rdf document. It seems to me that
this is enough information that a client needn't be confused between
the document and the book, A good man in Africa. There is
foaf:primaryTopic linkage in the document that should also adequately
explain the state of affairs.

However it seems that some clients are confused -- tabulator for
instance as was pointed out in irc the other day.

My question is, should I change the behaviour to the standard 303
redirect or leave it as a stake in the ground saying that this is a
reasonable arrangement?

Cheers,
-w


William,

I see nothing wrong our client was able to extract a description by 
de-referencing your URI without being confused about Entity Name or 
Descriptor Document Address.


Links:

1. 
http://linkeddata.uriburner.com/about/html/http/bnb.bibliographica.org/entry/GB8102507 
-- a description of the resource
2. 
http://linkeddata.uriburner.com/describe/?url=http%3A%2F%2Fbnb.bibliographica.org%2Fentry%2FGB8102507 
-- ditto (if you follow type property values you will end up with a 
path to descriptions of other entities of type bibo:Book in this 
particular data space etc..) .


--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen







Re: Is 303 really necessary?

2010-11-19 Thread Kingsley Idehen

On 11/18/10 5:10 PM, David Booth wrote:

Hi Ian,

Although I applaud your efforts at finding a simpler solution, upon
reflection I think I would vote against the 200 + Content-location
proposal,
http://iand.posterous.com/a-guide-to-publishing-linked-data-without-red
for these reasons:

1. I think adding a third option to the use either hash URIs or 303
redirects guidance will cause more harm then good to the LOD community.
There is already enough confusion over Should I use a hash URI or a 303
and why? question.  A third option is likely to create even more
confusion.

2. I don't see the extra network access of 303 as being such a big deal
-- though YMMV -- since even though the 303 response itself is not
supposed to be cached (per RDF 2616), the toucan description document
returned in the following 200 response can (and should) be cached.  In
fact, if you have n slash URIs U1, U2, ... Un etc. that share the same
description document, then with the 200+CL approach the entire
description document would have to be returned n times, whereas with the
303 approach the description document would only be retrieved once: the
rest of the n network access would be short 303 responses.

3. The proposed use of the Content-location header is not aligned with
the RFC 2616 or HTTPbis definitions of its purpose:
http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-12#page-24
That header does not indicate that the returned representation is *not*
a representation corresponding to the effective request URI.  Rather, it
says that it is *also* a representation corresponding to the
Content-location URI.  I.e., the returned representation is *both* a
representation of a generic *and* a more specific resource.

Best wishes,



David,

What about the aspect of this idea that's based on the content of the 
self-describing description document? Basically, that a Linked Data 
aware user agent interprets the world view expressed in the content?


I still believe there is a common ground here that isn't coming through 
i.e., nothing is broken, and people can drop description documents into 
data spaces on HTTP networks (e.g., WWW)  where Subjects are identified 
using slash URIs, without any Linked Data aware user agent confusion re. 
Subject Name and Description Document Address confusion.


Developers of Linked Data aware solutions (e.g. user agents and user 
agent extensions) are the ones that need to make a decision about 
semantic-fidelity i.e., do they stick with HTTP response codes, our use 
a combination of HTTP response codes, HTTP session metadata,  and 
description document content, to disambiguate Names and Addresses.


To conclude, I am saying:

1. No new HTTP response codes
2. Web Servers continue to return 200 OK for Document URLs
3. Linked Data Servers have option handle Name or Address disambiguation 
using 303 redirection for slash URIs
4. Linked Data Servers have option to be like Web Servers i.e. do no 
Name or Address disambiguation leaving Linked Data aware user agents to 
understand the content of Description Documents

5. Linked Data aware User Agents handle Name or Address disambiguation.

IMHO: when the dust settles, this is what it boils down to. On our side, 
we're done re. 1-5 across our Linked Data server and client 
functionality, as delivered by our products :-)


--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen







Re: Is 303 really necessary?

2010-11-19 Thread David Booth
On Fri, 2010-11-19 at 07:26 -0500, Kingsley Idehen wrote:
[ . . . ]
 To conclude, I am saying:
 
 1. No new HTTP response codes
 2. Web Servers continue to return 200 OK for Document URLs 
 3. Linked Data Servers have option handle Name or Address
 disambiguation using 303 redirection for slash URIs
 4. Linked Data Servers have option to be like Web Servers i.e. do no
 Name or Address disambiguation leaving Linked Data aware user agents
 to understand the content of Description Documents
 5. Linked Data aware User Agents handle Name or Address
 disambiguation.
 
 IMHO: when the dust settles, this is what it boils down to. On our
 side, we're done re. 1-5 across our Linked Data server and client
 functionality, as delivered by our products :-)
 
I think the above reflects reality, regardless of what is recommended,
because:

 - some Linked Data Servers *will* serve RDF with 200 response codes via
slash URIs, regardless of what is recommended;

 - some User Agents *will* still try to use that data;

 - those User Agents may or may not care about the ambiguity between the
toucan and its web page;

 - those that do care will use whatever heuristics they have to
disambiguate, and the heuristic of ignoring the 200 response code is
very pragmatic.


-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Is 303 really necessary?

2010-11-19 Thread Kingsley Idehen

On 11/19/10 4:55 PM, David Booth wrote:

On Fri, 2010-11-19 at 07:26 -0500, Kingsley Idehen wrote:
[ . . . ]

To conclude, I am saying:

1. No new HTTP response codes
2. Web Servers continue to return 200 OK for Document URLs
3. Linked Data Servers have option handle Name or Address
disambiguation using 303 redirection for slash URIs
4. Linked Data Servers have option to be like Web Servers i.e. do no
Name or Address disambiguation leaving Linked Data aware user agents
to understand the content of Description Documents
5. Linked Data aware User Agents handle Name or Address
disambiguation.

IMHO: when the dust settles, this is what it boils down to. On our
side, we're done re. 1-5 across our Linked Data server and client
functionality, as delivered by our products :-)


I think the above reflects reality, regardless of what is recommended,
because:

  - some Linked Data Servers *will* serve RDF with 200 response codes via
slash URIs, regardless of what is recommended;

  - some User Agents *will* still try to use that data;

  - those User Agents may or may not care about the ambiguity between the
toucan and its web page;

  - those that do care will use whatever heuristics they have to
disambiguate, and the heuristic of ignoring the 200 response code is
very pragmatic.



David,

Great! We're going to point back to this post repeatedly in the future :-)

--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen







Re: Is 303 really necessary?

2010-11-19 Thread Nathan

Kingsley Idehen wrote:

On 11/19/10 4:55 PM, David Booth wrote:

On Fri, 2010-11-19 at 07:26 -0500, Kingsley Idehen wrote:
[ . . . ]

To conclude, I am saying:

1. No new HTTP response codes
2. Web Servers continue to return 200 OK for Document URLs
3. Linked Data Servers have option handle Name or Address
disambiguation using 303 redirection for slash URIs
4. Linked Data Servers have option to be like Web Servers i.e. do no
Name or Address disambiguation leaving Linked Data aware user agents
to understand the content of Description Documents
5. Linked Data aware User Agents handle Name or Address
disambiguation.

IMHO: when the dust settles, this is what it boils down to. On our
side, we're done re. 1-5 across our Linked Data server and client
functionality, as delivered by our products :-)


I think the above reflects reality, regardless of what is recommended,
because:

  - some Linked Data Servers *will* serve RDF with 200 response codes via
slash URIs, regardless of what is recommended;

  - some User Agents *will* still try to use that data;

  - those User Agents may or may not care about the ambiguity between the
toucan and its web page;

  - those that do care will use whatever heuristics they have to
disambiguate, and the heuristic of ignoring the 200 response code is
very pragmatic.


David,

Great! We're going to point back to this post repeatedly in the future :-)


I truly hope not, recognizing that some people *will* do whatever the 
hell they please, doesn't make what they're doing a good idea, or 
something that should be accepted as best / standard practise.


As David mentioned earlier, having two ways to do things is already bad 
enough (hash/303) without introducing a third. There's already been half 
a decade of problems/ambiguity/nuisance because of the httpRange-14 
resolution, ranging from technical to community and via conceptual, why 
on earth would we want to compound that by returning to the messy state 
that prompted the range-14 issue in the first place?


Fact is, the current reality is primarily due to the fact there is so 
much confusion with no single clear message coming through, and until 
that happens the future reality is only likely to get messier.


Best,

Nathan



Re: Is 303 really necessary?

2010-11-19 Thread Kingsley Idehen

On 11/19/10 5:57 PM, Nathan wrote:

Kingsley Idehen wrote:

On 11/19/10 4:55 PM, David Booth wrote:

On Fri, 2010-11-19 at 07:26 -0500, Kingsley Idehen wrote:
[ . . . ]

To conclude, I am saying:

1. No new HTTP response codes
2. Web Servers continue to return 200 OK for Document URLs
3. Linked Data Servers have option handle Name or Address
disambiguation using 303 redirection for slash URIs
4. Linked Data Servers have option to be like Web Servers i.e. do no
Name or Address disambiguation leaving Linked Data aware user agents
to understand the content of Description Documents
5. Linked Data aware User Agents handle Name or Address
disambiguation.

IMHO: when the dust settles, this is what it boils down to. On our
side, we're done re. 1-5 across our Linked Data server and client
functionality, as delivered by our products :-)


I think the above reflects reality, regardless of what is recommended,
because:

  - some Linked Data Servers *will* serve RDF with 200 response 
codes via

slash URIs, regardless of what is recommended;

  - some User Agents *will* still try to use that data;

  - those User Agents may or may not care about the ambiguity 
between the

toucan and its web page;

  - those that do care will use whatever heuristics they have to
disambiguate, and the heuristic of ignoring the 200 response code is
very pragmatic.


David,

Great! We're going to point back to this post repeatedly in the 
future :-)


I truly hope not, recognizing that some people *will* do whatever the 
hell they please, doesn't make what they're doing a good idea, or 
something that should be accepted as best / standard practise.


I am not implying that :-)

I am trying to say that 1-5 represent the landscape, and solutions 
simply operate within that reality. Next time these matters arise we can 
save time returning to 1-5.


As David mentioned earlier, having two ways to do things is already 
bad enough (hash/303) without introducing a third. 


There will always be many ways to skin a rat, Linked Data can't stop 
that reality.


There's already been half a decade of problems/ambiguity/nuisance 
because of the httpRange-14 resolution, ranging from technical to 
community and via conceptual, why on earth would we want to compound 
that by returning to the messy state that prompted the range-14 issue 
in the first place?


I don't see how I am advocating that. There are no mandates in 1-5, 
again that outlines how things are. Server, Servers and User Agents, or 
User Agents can make decisions.




Fact is, the current reality is primarily due to the fact there is so 
much confusion with no single clear message coming through, and until 
that happens the future reality is only likely to get messier.


It won't get any messier since 1-5 simply implies that there isn't 
anything to change re. HTTP response codes. Developers should make 
choices and live with the consequences, as they do every day :-)





Best,

Nathan





--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen








Re: Is 303 really necessary?

2010-11-18 Thread David Booth
Hi Ian,

Although I applaud your efforts at finding a simpler solution, upon
reflection I think I would vote against the 200 + Content-location
proposal, 
http://iand.posterous.com/a-guide-to-publishing-linked-data-without-red
for these reasons:

1. I think adding a third option to the use either hash URIs or 303
redirects guidance will cause more harm then good to the LOD community.
There is already enough confusion over Should I use a hash URI or a 303
and why? question.  A third option is likely to create even more
confusion.

2. I don't see the extra network access of 303 as being such a big deal
-- though YMMV -- since even though the 303 response itself is not
supposed to be cached (per RDF 2616), the toucan description document
returned in the following 200 response can (and should) be cached.  In
fact, if you have n slash URIs U1, U2, ... Un etc. that share the same
description document, then with the 200+CL approach the entire
description document would have to be returned n times, whereas with the
303 approach the description document would only be retrieved once: the
rest of the n network access would be short 303 responses.

3. The proposed use of the Content-location header is not aligned with
the RFC 2616 or HTTPbis definitions of its purpose: 
http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-12#page-24
That header does not indicate that the returned representation is *not*
a representation corresponding to the effective request URI.  Rather, it
says that it is *also* a representation corresponding to the
Content-location URI.  I.e., the returned representation is *both* a
representation of a generic *and* a more specific resource.

Best wishes,


-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.






Is disambiguation really necessary? (was Is 303 really necessary?)

2010-11-11 Thread Jason Borro
/agree with Tore.  I know it's an old debate, but it's payback time for 
flooding my inbox for the last week.


Can someone please give me a good use case for pedantically 
disambiguating an IR and NIR?  This week I've seen the following samples:


/toucan.rdf is wrong.  Why are you declaring a document wrong?  Which 
part of the document at what point in time?  Why don't you just say what 
you think is right?


ian owns /toucan.rdf.  Why are you saying this?  Are you being lazy 
and really mean ian makes statement X about a toucan?


/toucan.rdf was last updated  Who cares, this rdf only exists 
because he isn't allowed to 200 an rdf on /toucan.  And why would you 
say /toucan was updated?  Does this make life easier for your simpleton 
web crawler/indexer?  Don't you mean On monday ian made statement X, 
but on tuesday he made statement Y?


/toucan.rdf has a page rank of...  Who cares that google ranks 
anything served over http, this statement is meaningless for a toucan or 
it's representation.


Did we really add a whole layer of suck just to make life easier for a 
tiny set of questionably useful document-oriented applications?  Maybe 
those apps should focus on .html URIs instead of toucans.


We have enough trouble solving true identity problems as David's paper 
points out, why add more inane ones?  It definitely killed my motivation 
to try and fix real ambiguity at openguid.  Not that anyone cares, but I 
use conneg to respond with 200 STFU in rdf/html/etc.  And you can't 
complain about my content because it doesn't have unique identifier.  HA!


Jason



Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-10 Thread Toby Inkster
On Tue, 9 Nov 2010 17:04:44 -0500 (EST)
joel sachs jsa...@csee.umbc.edu wrote:

 I think we can, though we might not be properly understood, e.g.
 Kingsley was great in Gandhi and Sexy Beast.
 
 Wasn't this part of the summer's argument regarding literals as
 rdf:subjects , i.e.

But:

Kingsley film:isStarOf #SexyBeast .
Kingsley film:isStarOf #Ghandi .

is no more ambiguous than:

#SexyBeast film:star Kingsley .
#Ghandi film:star Kingsley .

And what exactly is ambiguous about the following example?

2010-11-10^^xsd:date d:precedes 2010-11-11^^xsd:date .

Whether an identifier is ambiguous and whether it's a literal are two
mostly orthogonal issues.

-- 
Toby A Inkster
mailto:m...@tobyinkster.co.uk
http://tobyinkster.co.uk




Re: Is 303 really necessary?

2010-11-10 Thread Kjetil Kjernsmo
Torsdag 04 november 2010 16:21, skrev Giovanni Tummarello:
 ..but its so deployed now

I have to admit, that would be my response. I wrote the code and it was really 
easy. My impression is that people have very few issues with the 303, what 
they may feel unfamiliar is the need to use different URIs for the thing and 
the data. 

If this is correct, would really the discussion presented here be so important 
or can we do without this distinction?

Cheers,

Kjetil



RE: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Pete Johnston
Ian said:

 I used Denny Vrandečić's browser tool to test several Linked Data browsers
 including Tabulator.
 
 http://browse.semanticweb.org/?uri=http%3A%2F%2Fiandavis.com%2F2010
 %2F303%2Ftoucandays=7
 
 Non of these showed any confusion between the toucan and its description,
 nor did that throw warnings or errors about the lack of
 303 or in fact make any reference to it (tabulator includes the response as
 RDF but does not infer that the 200 response implies a type of information
 resource, which I had assumed it would)

Looking at the Tabulator view here

http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab?uri=http%3A%2F%2Fiandavis.com%2F2010%2F303%2Ftoucan

I did notice that the Tabulator generates the two triples:

http://iandavis.com/2010/303/toucan 
http://dig.csail.mit.edu/2005/ajar/ajaw/ont#mentionsClass 
http://xmlns.com/foaf/0.1/Document .
http://iandavis.com/2010/303/toucan 
http://dig.csail.mit.edu/2005/ajar/ajaw/ont#mentionsClass 
http://dbpedia.org/resource/Ramphastidae .

Which leads me to wonder whether either you have a very erudite toucan there, 
or Tabulator may be exhibiting some element of confusion?

Though, yes, the mentionsClass property has domain rdfs:Resource (rather than 
some:Document), so there is no inference that the toucan is-a document,  though 
I do note the human-readable rdfs:comment for that property says

This document mentions the following class

Pete
---
Pete Johnston
Technical Researcher
Eduserv
E: pete.johns...@eduserv.org.uk
T: +44 (0)1225 474323
F: +44 (0)1225 474301
http://www.eduserv.org.uk/
http://efoundations.typepad.com/

Eduserv is a company limited by guarantee (registered in England  Wales, 
company number: 3763109) and a charity (charity number 1079456), whose 
registered office is at Royal Mead, Railway Place, Bath, BA1 1SR.





Re: Is 303 really necessary?

2010-11-09 Thread Lars Heuer
Hi Ian,

Even if I come from a slightly different camp (Topic Maps), I wonder
if your proposal hasn't become reality already. Try to resolve
rdf:type or rdfs:label: I think we agree that these resources describe
abstract concepts and should not return 200 but 303. Both return 200.

So, what we're talking about? The building bricks of RDF return 200
and everybody seems to happy with that fact. Why shouldn't other
(non-addressable) information resources return 200 as well?

Do I miss something?

Best regards,
Lars
-- 
Semagia 
http://www.semagia.com





Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Ian Davis
On Tue, Nov 9, 2010 at 11:23 AM, Nathan nat...@webr3.org wrote:
 Pete Johnston wrote:

 This document mentions the following class

 It's all very simple really, when you remove all the conflated terms.

I am not conflating terms and nor is my example, but I think you are (see below)


 What is this:

 ?xml version=1.0?
 rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#;
  xmlns:foaf=http://xmlns.com/foaf/0.1/;
  xmlns:rdfs=http://www.w3.org/2000/01/rdf-schema#;
  xmlns:wdrs=http://www.w3.org/2007/05/powder-s#;
  xmlns:dbp=http://dbpedia.org/resource/;
  

  dbp:Toucan rdf:about=http://iandavis.com/2010/303/toucan;
    rdfs:labelA Toucan/rdfs:label
    foaf:depiction
 rdf:resource=http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Pteroglossus-torquatus-001.jpg/250px-Pteroglossus-torquatus-001.jpg;
 /
    rdfs:commentThis resource is an individual toucan that happens to live
 in southern mexico./rdfs:comment
    wdrs:describedby
 rdf:resource=http://iandavis.com/2010/303/toucan.rdf/
  /dbp:Toucan

  foaf:Document rdf:about=http://iandavis.com/2010/303/toucan.rdf;
    rdfs:labelA Description of a Toucan/rdfs:label
    rdfs:commentThis document is a description of the toucan
 resource./rdfs:comment
  /foaf:Document

 /rdf:RDF

 http://iandavis.com/2010/303/toucan is simply another name for whatever
 the above is.

Nope. It's not at all. That text you include is the entity sent when
you issue a GET to the URI. Entity bodies aren't usually named on the
web. It's also a representation of
http://iandavis.com/2010/303/toucan.rdf

You are conflating the resource with the content of an HTTP message
sent to your computer.

You could interpret the tabulator property as meaning the entity
returned when you perform a GET on the URI contains the following
class



 Hints:
  - it's not a resource
It has a URI http://iandavis.com/2010/303/toucan.rdf, anything
identified by a URI is a resource.

  - it's not a document
I think it is

  - it's not an rdf document
I think it is


  - it's not a toucan

Agree. That text is not a toucan.



 Best,

 Nathan


Ian



Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Nathan

Pete Johnston wrote:

This document mentions the following class


It's all very simple really, when you remove all the conflated terms.

What is this:

?xml version=1.0?
rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#;
  xmlns:foaf=http://xmlns.com/foaf/0.1/;
  xmlns:rdfs=http://www.w3.org/2000/01/rdf-schema#;
  xmlns:wdrs=http://www.w3.org/2007/05/powder-s#;
  xmlns:dbp=http://dbpedia.org/resource/;
  

  dbp:Toucan rdf:about=http://iandavis.com/2010/303/toucan;
rdfs:labelA Toucan/rdfs:label
foaf:depiction 
rdf:resource=http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Pteroglossus-torquatus-001.jpg/250px-Pteroglossus-torquatus-001.jpg; 
/
rdfs:commentThis resource is an individual toucan that happens to 
live in southern mexico./rdfs:comment
wdrs:describedby 
rdf:resource=http://iandavis.com/2010/303/toucan.rdf/

  /dbp:Toucan

  foaf:Document rdf:about=http://iandavis.com/2010/303/toucan.rdf;
rdfs:labelA Description of a Toucan/rdfs:label
rdfs:commentThis document is a description of the toucan 
resource./rdfs:comment

  /foaf:Document

/rdf:RDF

http://iandavis.com/2010/303/toucan is simply another name for 
whatever the above is.


Hints:
 - it's not a resource
 - it's not a document
 - it's not an rdf document
 - it's not a toucan

Best,

Nathan



Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Kingsley Idehen

On 11/9/10 6:57 AM, Ian Davis wrote:

On Tue, Nov 9, 2010 at 11:23 AM, Nathannat...@webr3.org  wrote:

Pete Johnston wrote:

This document mentions the following class

It's all very simple really, when you remove all the conflated terms.

I am not conflating terms and nor is my example, but I think you are (see below)


What is this:

?xml version=1.0?
rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#;
  xmlns:foaf=http://xmlns.com/foaf/0.1/;
  xmlns:rdfs=http://www.w3.org/2000/01/rdf-schema#;
  xmlns:wdrs=http://www.w3.org/2007/05/powder-s#;
  xmlns:dbp=http://dbpedia.org/resource/;
  

  dbp:Toucan rdf:about=http://iandavis.com/2010/303/toucan;
rdfs:labelA Toucan/rdfs:label
foaf:depiction
rdf:resource=http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Pteroglossus-torquatus-001.jpg/250px-Pteroglossus-torquatus-001.jpg;
/
rdfs:commentThis resource is an individual toucan that happens to live
in southern mexico./rdfs:comment
wdrs:describedby
rdf:resource=http://iandavis.com/2010/303/toucan.rdf/
  /dbp:Toucan

  foaf:Document rdf:about=http://iandavis.com/2010/303/toucan.rdf;
rdfs:labelA Description of a Toucan/rdfs:label
rdfs:commentThis document is a description of the toucan
resource./rdfs:comment
  /foaf:Document

/rdf:RDF

http://iandavis.com/2010/303/toucan  is simply another name for whatever
the above is.

Nope. It's not at all. That text you include is the entity sent when
you issue a GET to the URI. Entity bodies aren't usually named on the
web. It's also a representation of
http://iandavis.com/2010/303/toucan.rdf

You are conflating the resource with the content of an HTTP message
sent to your computer.

You could interpret the tabulator property as meaning the entity
returned when you perform a GET on the URI contains the following
class



Hints:
  - it's not a resource

It has a URI http://iandavis.com/2010/303/toucan.rdf, anything
identified by a URI is a resource.


Yes, in Resource Conflation lingo.

No, in reality.

A URI is an Identifier. Remember it stands for: Uniform Resource 
Identifier. It should actually be: Universal Object Identifier or 
Universal Entity Identifier or Uniform Object Identifier or Uniform 
Entity Identifier.


URIs Identify Entities or Things. They can identify anything we can 
imagine.


A Resource is a kind of Thing that has physical manifestation in a 
specific realm. Yes, we are Resources, Documents, Widgets, but not 
in the Web Realm.


You are conflating because Web != Real World. Thus, saying everything is 
a Resource, when the rest of the world knows that everything is an 
Entity or Thing or Object is conflation that leads to utter 
incomprehension.


How do you think Object based systems work? How do you think Object 
Oriented Database work? How do you think Object Relational Databases 
work? How do you think Relational Databases work?  How do computers 
work? Is an Address the only way we use a Pointer? Do you seriously 
think that the ubiquity of an HTTP network, where physical resources 
represent Documents (e.g. HTML, RDF, XML etc..), warrants such overreach 
and disregard for the past re. computer technology continuum?


Resource conflation days are numbered. Its usage and acceptence is 
inherently inversely related to Linked Data concept comprehension.


Remember my statement above. Same applies to RDF = Linked Data, conflation.



  - it's not a document

I think it is


It cannot be!

It resolves to a Document.

Without Documents how can one perceive anything across any medium?

  - it's not an rdf document

I think it is


It resolves to a Document Type where the Content is expressed in on of 
the RDF markup syntaxes.





  - it's not a toucan

Agree. That text is not a toucan.


Yes, but for a different reason. The Toucan is the Referent of the URI. 
This is how its always been, if it wasn't you wouldn't be reading this 
mail via a computer system that uses pointers to create references that 
enables us walk data structures, programmatically.



Kingsley



Best,

Nathan


Ian





--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen








Re: Is 303 really necessary?

2010-11-09 Thread Dave Reynolds
On Mon, 2010-11-08 at 22:17 +0100, Lars Heuer wrote: 
 Hi Ian,
 
 Even if I come from a slightly different camp (Topic Maps), I wonder
 if your proposal hasn't become reality already. Try to resolve
 rdf:type or rdfs:label: I think we agree that these resources describe
 abstract concepts and should not return 200 but 303. Both return 200.

Those are hash URIs, for example, the rdf:type expands to the URI:

http://www.w3.org/1999/02/22-rdf-syntax-ns#type

As it says [1] in the RDF specs:

the RDF treatment of a fragment identifier allows it to indicate a
thing that is entirely external to the document, or even to the shared
information space known as the Web. That is, it can be a more general
idea, like some particular car or a mythical Unicorn

So those are perfectly fine. Ian's proposal and the discussion here has
been entirely about URIs without fragment identifiers, so called slash
URIs.

Dave

[1] http://www.w3.org/TR/rdf-concepts/#section-fragID - though that is
an Informative rather than Normative section of the concepts document.





Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Nathan

Kingsley Idehen wrote:

On 11/9/10 6:57 AM, Ian Davis wrote:

On Tue, Nov 9, 2010 at 11:23 AM, Nathannat...@webr3.org  wrote:

Pete Johnston wrote:

This document mentions the following class

It's all very simple really, when you remove all the conflated terms.


it's a description.

I am not conflating terms and nor is my example, but I think you are 
(see below)



What is this:

?xml version=1.0?
rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#;
  xmlns:foaf=http://xmlns.com/foaf/0.1/;
  xmlns:rdfs=http://www.w3.org/2000/01/rdf-schema#;
  xmlns:wdrs=http://www.w3.org/2007/05/powder-s#;
  xmlns:dbp=http://dbpedia.org/resource/;
  

  dbp:Toucan rdf:about=http://iandavis.com/2010/303/toucan;
rdfs:labelA Toucan/rdfs:label
foaf:depiction
rdf:resource=http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Pteroglossus-torquatus-001.jpg/250px-Pteroglossus-torquatus-001.jpg; 


/
rdfs:commentThis resource is an individual toucan that happens 
to live

in southern mexico./rdfs:comment
wdrs:describedby
rdf:resource=http://iandavis.com/2010/303/toucan.rdf/
  /dbp:Toucan

  foaf:Document rdf:about=http://iandavis.com/2010/303/toucan.rdf;
rdfs:labelA Description of a Toucan/rdfs:label
rdfs:commentThis document is a description of the toucan
resource./rdfs:comment
  /foaf:Document

/rdf:RDF

http://iandavis.com/2010/303/toucan  is simply another name for 
whatever

the above is.

Nope. It's not at all. That text you include is the entity sent when
you issue a GET to the URI. Entity bodies aren't usually named on the
web. It's also a representation of
http://iandavis.com/2010/303/toucan.rdf

You are conflating the resource with the content of an HTTP message
sent to your computer.

You could interpret the tabulator property as meaning the entity
returned when you perform a GET on the URI contains the following
class



Hints:
  - it's not a resource

It has a URI http://iandavis.com/2010/303/toucan.rdf, anything
identified by a URI is a resource.


Yes, in Resource Conflation lingo.

No, in reality.

A URI is an Identifier. Remember it stands for: Uniform Resource 
Identifier. It should actually be: Universal Object Identifier or 
Universal Entity Identifier or Uniform Object Identifier or Uniform 
Entity Identifier.


URIs Identify Entities or Things. They can identify anything we can 
imagine.


A Resource is a kind of Thing that has physical manifestation in a 
specific realm. Yes, we are Resources, Documents, Widgets, but not 
in the Web Realm.


You are conflating because Web != Real World. Thus, saying everything is 
a Resource, when the rest of the world knows that everything is an 
Entity or Thing or Object is conflation that leads to utter 
incomprehension.


How do you think Object based systems work? How do you think Object 
Oriented Database work? How do you think Object Relational Databases 
work? How do you think Relational Databases work?  How do computers 
work? Is an Address the only way we use a Pointer? Do you seriously 
think that the ubiquity of an HTTP network, where physical resources 
represent Documents (e.g. HTML, RDF, XML etc..), warrants such overreach 
and disregard for the past re. computer technology continuum?


Resource conflation days are numbered. Its usage and acceptence is 
inherently inversely related to Linked Data concept comprehension.


Remember my statement above. Same applies to RDF = Linked Data, conflation.



  - it's not a document

I think it is


It cannot be!

It resolves to a Document.

Without Documents how can one perceive anything across any medium?

  - it's not an rdf document

I think it is


It resolves to a Document Type where the Content is expressed in on of 
the RDF markup syntaxes.





  - it's not a toucan

Agree. That text is not a toucan.


Yes, but for a different reason. The Toucan is the Referent of the URI. 
This is how its always been, if it wasn't you wouldn't be reading this 
mail via a computer system that uses pointers to create references that 
enables us walk data structures, programmatically.



Kingsley



Best,

Nathan


Ian










Re: Is 303 really necessary?

2010-11-09 Thread Lars Heuer
Hi Dave,

[rdf:type returns 200]
 Those are hash URIs, for example, the rdf:type expands to the URI:
[...]
 So those are perfectly fine. Ian's proposal and the discussion here has
 been entirely about URIs without fragment identifiers, so called slash
 URIs.

I see. Thanks :)

Best regards,
Lars
-- 
Semagia 
http://www.semagia.com




Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Kingsley Idehen

On 11/9/10 11:22 AM, Nathan wrote:

Kingsley Idehen wrote:

On 11/9/10 11:10 AM, Kingsley Idehen wrote:


A URI is just an Identifier. We can Describe what isn't 
unambiguously Identified (Named); hence the use of Names since the 
beginning of shared cognition era re. human evolution.


A URI is just an Identifier. We can't  Describe what isn't 
unambiguously Identified (Named); hence the use of Names since the 
beginning of shared cognition era re. human evolution.




ex:about#toucan doesn't name a toucan though, it names, or refers to, 
toucan, as described by ex:about




Yes, it refers to Toucan by .. ?

Put differently, Toucan (a Thing observed by the Describer) is the 
Referent of the Identifier (URI). Thus, the URI is used to distinguish 
the Subject (Tucan) from the surface (Document) from which we perceive 
its Description.


Referent, Identifier, Resource trinity :-) The 3 elements  (in 
combination) deliver comprehensible Representation, to a given beholder.


--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen







Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Kingsley Idehen

On 11/9/10 10:54 AM, Nathan wrote:

Kingsley Idehen wrote:

On 11/9/10 6:57 AM, Ian Davis wrote:

On Tue, Nov 9, 2010 at 11:23 AM, Nathannat...@webr3.org  wrote:

Pete Johnston wrote:

This document mentions the following class

It's all very simple really, when you remove all the conflated terms.


it's a description. 


Yes!

We are describing observations. Can't do this in thin air, must have a 
projection surface, hence the need for Documents.


You see, the whole Web of Data vs. Web of Documents is yet another false 
dichotomy. The Web is simply evolving its projection media from HTML 
documents (sorta like blank paper on to which you can scribble) to more 
Structured Documents (sorta like graph paper, what the spreadsheet kinda 
models). This new Document type is like graph paper, also like a 
spreadsheet (supports Name and Address reference values in cells), but 
with a 3-column restriction and unlimited rows.


HTTP lets us stream this powerful 3 column based graph paper document. 
The underlying conceptual schema (EAV) allows multiple representations 
(HTML+RDFa, RDF/XML, OData+Atom, OData+JSON, RDF-JSON, GData etc)  of 
the conceptual schema's model semantics.


We are using a graph paper like surface to hold the descriptions of our 
observations. We can use a myriad of syntaxes to achieve this goal as 
long as said syntaxes are based on a common conceptual schema.  Mapping 
an RDBMS to an RDF syntax isn't some new age magic, it's possible 
because there is a common conceptual schema at the base re. a DBMS based 
Relational Property Graphs vs its relative based on Relational Tables.


HTTP 200 OK means: Document Found.

Content-Type means: Document Content is in a given format.

Content-Location means: Document Location.

A URI is just an Identifier. We can Describe what isn't unambiguously 
Identified (Named); hence the use of Names since the beginning of 
shared cognition era re. human evolution.



--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen







What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Kingsley Idehen

On 11/9/10 11:10 AM, Kingsley Idehen wrote:


A URI is just an Identifier. We can Describe what isn't 
unambiguously Identified (Named); hence the use of Names since the 
beginning of shared cognition era re. human evolution.


A URI is just an Identifier. We can't  Describe what isn't 
unambiguously Identified (Named); hence the use of Names since the 
beginning of shared cognition era re. human evolution.


--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen







Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread joel sachs

On Tue, 9 Nov 2010, Kingsley Idehen wrote:


On 11/9/10 11:10 AM, Kingsley Idehen wrote:






A URI is just an Identifier. We can't  Describe what isn't unambiguously 
Identified (Named);


Kingsley,

I think we can, though we might not be properly understood, e.g. Kingsley 
was great in Gandhi and Sexy Beast.


Wasn't this part of the summer's argument regarding literals as rdf:subjects , 
i.e.

Those opposed: But you might be misunderstood.
Those in favour: We'll take our chances.
?

Joel.







hence the use of Names since the beginning of shared 
cognition era re. human evolution.









--

Regards,

Kingsley Idehen President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen










Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Kingsley Idehen

On 11/9/10 5:04 PM, joel sachs wrote:


A URI is just an Identifier. We can't  Describe what isn't 
unambiguously Identified (Named);


Kingsley,

I think we can, though we might not be properly understood, e.g. 
Kingsley was great in Gandhi and Sexy Beast.


Wasn't this part of the summer's argument regarding literals as 
rdf:subjects , i.e. 


Joel,

Let me be a little clearer re. my statement:

We can't produce high-fidelity descriptions of Things (Entities) if 
the description Subjects aren't unambiguously Identified.


I believe, via Linked Data,  we are seeking to produce high-fidelity 
Linked Data meshes that scale.


English is but one of several syntaxes.

Global scale is an integral goal of the mission, Methinks.

--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen







Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Nathan

joel sachs wrote:

On 11/9/10 11:10 AM, Kingsley Idehen wrote:
A URI is just an Identifier. We can't  Describe what isn't 
unambiguously Identified (Named);


Kingsley,

I think we can, though we might not be properly understood, e.g. 
Kingsley was great in Gandhi and Sexy Beast.


Wasn't this part of the summer's argument regarding literals as 
rdf:subjects , i.e.


Those opposed: But you might be misunderstood.
Those in favour: We'll take our chances.
?


Perhaps you are both correct,

I believe what Kingsley is getting at, is that in order to refer to the 
description of something (thus something described), you need to have an 
unambiguous name (identifier for the purpose of referencing) to use as 
the subject in statements made about that thing, within the description 
( read as, a way of referring to a description of bar within a 
description named foo = bar, as described by foo = foo#bar ) - Not 
that foo#bar must be an unambiguous name for a thing in the IFP sense - 
rather an unambiguous way to say, on the web, the thing I am describing 
is the same thing bar, as described by foo.


And perhaps what you are saying, is the same thing Kingsley, as 
described by Ghandi and Sexy Beast, was great = 
ghandi-sexy-beast#kingsley


And, perhaps:

Those opposed: We'll take our chances.
Those in favour: But you might be misunderstood.

Best,

Nathan



Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread joel sachs

Kingsley,

I'm not sure that you're joking, so I'll answer:

It's unambiguous to those who know that Ben Kingsley was in Gandhi and 
Sexy Beast. It's probably close to unambiguous to those who know that Ben 
Kingsley is an actor, and Gandhi and Sexy Beast are movies. To everyone 
else, it's probably ambiguous, which is my point.


Joel.




On Tue, 9 Nov 2010, Kingsley Idehen wrote:


On 11/9/10 5:04 PM, joel sachs wrote:

On Tue, 9 Nov 2010, Kingsley Idehen wrote:


On 11/9/10 11:10 AM, Kingsley Idehen wrote:






A URI is just an Identifier. We can't  Describe what isn't unambiguously 
Identified (Named);


Kingsley,

I think we can, though we might not be properly understood, e.g. Kingsley 
was great in Gandhi and Sexy Beast.


To whom is this unambiguous?

Kingsley



Wasn't this part of the summer's argument regarding literals as 
rdf:subjects , i.e.


Those opposed: But you might be misunderstood.
Those in favour: We'll take our chances.
?




Joel.







hence the use of Names since the beginning of shared cognition era re. 
human evolution.









--

Regards,

Kingsley IdehenPresident  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen












--

Regards,

Kingsley Idehen President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen









Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread joel sachs


I guess what surprises me is your use of can't in We can't produce ... 
instead of shouldn't, as in We shouldn't produce high fidelity descriptions of 
things that aren't unambiguosly identified, because if we do, there will 
be no reliable way to merge descriptions from different sources.


I think  it's obvious that we can since we do it all the time. That we 
shouldn't may be true, although it is, I think you'll agree, a contested 
claim.


Joel.






On Tue, 9 Nov 2010, Kingsley Idehen wrote:


On 11/9/10 5:04 PM, joel sachs wrote:


A URI is just an Identifier. We can't  Describe what isn't unambiguously 
Identified (Named);


Kingsley,

I think we can, though we might not be properly understood, e.g. Kingsley 
was great in Gandhi and Sexy Beast.


Wasn't this part of the summer's argument regarding literals as 
rdf:subjects , i.e. 


Joel,

Let me be a little clearer re. my statement:

We can't produce high-fidelity descriptions of Things (Entities) if the 
description Subjects aren't unambiguously Identified.


I believe, via Linked Data,  we are seeking to produce high-fidelity Linked 
Data meshes that scale.


English is but one of several syntaxes.

Global scale is an integral goal of the mission, Methinks.

--

Regards,

Kingsley Idehen President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen










Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread joel sachs

On Tue, 9 Nov 2010, Nathan wrote:


joel sachs wrote:

On 11/9/10 11:10 AM, Kingsley Idehen wrote:
A URI is just an Identifier. We can't  Describe what isn't unambiguously 
Identified (Named);


Kingsley,

I think we can, though we might not be properly understood, e.g. Kingsley 
was great in Gandhi and Sexy Beast.


Wasn't this part of the summer's argument regarding literals as 
rdf:subjects , i.e.


Those opposed: But you might be misunderstood.
Those in favour: We'll take our chances.
?


Perhaps you are both correct,

I believe what Kingsley is getting at, is that in order to refer to the 
description of something (thus something described), you need to have an 
unambiguous name (identifier for the purpose of referencing) to use as the 
subject in statements made about that thing, within the description ( read 
as, a way of referring to a description of bar within a description named 
foo = bar, as described by foo = foo#bar ) - Not that foo#bar must be an 
unambiguous name for a thing in the IFP sense - rather an unambiguous way to 
say, on the web, the thing I am describing is the same thing bar, as 
described by foo.


And perhaps what you are saying, is the same thing Kingsley, as described by 
Ghandi and Sexy Beast, was great = ghandi-sexy-beast#kingsley


And, perhaps:

Those opposed: We'll take our chances.
Those in favour: But you might be misunderstood.

Best,

Nathan



Nathan,

Nathan, I definitely agree with your switcharoo -


Those opposed: We'll take our chances.
Those in favour: But you might be misunderstood.


Specifically, as it stands now, there is great scope for misunderstanding
when dealing with Linked Data. Perhaps the most egregious example is the
widely discredited owl:sameAs. The hope, I think, of Linked Data, is that,
as time goes by, the scope for misunderstanding will be greatly
diminished.

Regards -
Joel.




Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Kingsley Idehen

On 11/9/10 5:59 PM, joel sachs wrote:

Kingsley,

I'm not sure that you're joking, so I'll answer:

It's unambiguous to those who know that Ben Kingsley was in Gandhi and 
Sexy Beast. It's probably close to unambiguous to those who know that 
Ben Kingsley is an actor, and Gandhi and Sexy Beast are movies. To 
everyone else, it's probably ambiguous, which is my point.


Yes, in the real-world.

On the Web it's totally ambiguous :-)

Kingsley


Joel.




On Tue, 9 Nov 2010, Kingsley Idehen wrote:


On 11/9/10 5:04 PM, joel sachs wrote:

On Tue, 9 Nov 2010, Kingsley Idehen wrote:


On 11/9/10 11:10 AM, Kingsley Idehen wrote:






A URI is just an Identifier. We can't  Describe what isn't 
unambiguously Identified (Named);


Kingsley,

I think we can, though we might not be properly understood, e.g. 
Kingsley was great in Gandhi and Sexy Beast.


To whom is this unambiguous?

Kingsley



Wasn't this part of the summer's argument regarding literals as 
rdf:subjects , i.e.


Those opposed: But you might be misunderstood.
Those in favour: We'll take our chances.
?




Joel.







hence the use of Names since the beginning of shared cognition 
era re. human evolution.









--

Regards,

Kingsley IdehenPresident  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen












--

Regards,

Kingsley IdehenPresident  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen











--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen








Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-09 Thread Kingsley Idehen

On 11/9/10 6:01 PM, joel sachs wrote:


I guess what surprises me is your use of can't in We can't produce 
... instead of shouldn't, as in We shouldn't produce high fidelity 
descriptions of things that aren't unambiguosly identified, because if 
we do, there will be no reliable way to merge descriptions from 
different sources.


I think  it's obvious that we can since we do it all the time. That 
we shouldn't may be true, although it is, I think you'll agree, a 
contested claim.

Naturally, of course. Just my opinion.

Everything I say is inherently subjective :-)

Kingsley


Joel.






On Tue, 9 Nov 2010, Kingsley Idehen wrote:


On 11/9/10 5:04 PM, joel sachs wrote:


A URI is just an Identifier. We can't  Describe what isn't 
unambiguously Identified (Named);


Kingsley,

I think we can, though we might not be properly understood, e.g. 
Kingsley was great in Gandhi and Sexy Beast.


Wasn't this part of the summer's argument regarding literals as 
rdf:subjects , i.e. 


Joel,

Let me be a little clearer re. my statement:

We can't produce high-fidelity descriptions of Things (Entities) if 
the description Subjects aren't unambiguously Identified.


I believe, via Linked Data,  we are seeking to produce high-fidelity 
Linked Data meshes that scale.


English is but one of several syntaxes.

Global scale is an integral goal of the mission, Methinks.

--

Regards,

Kingsley IdehenPresident  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen












--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen








Re: Is 303 really necessary?

2010-11-08 Thread Toby Inkster
On Thu, 4 Nov 2010 13:22:09 +
Ian Davis m...@iandavis.com wrote:

 http://iand.posterous.com/is-303-really-necessary

Ian brings up numerous difficulties with 303 responses.

The two biggest issues in my opinion are:

1. 303s can be tricky to configure unless you know your
   way around the server environment you're using, and
   have sufficient permissions on the server; and

2. They require an additional HTTP request to get to the
   data the client actually wants.

I think that without using RDF-specific publishing platforms (think
WordPress for Linked Data) #1 is always going to be a difficulty.
Even if we accept 200 OK as a response code for non-IR resources, this
only solves part of the server configuration problem. There are still
other issues to be solved - Apache doesn't come preconfigured with
media type information for N3/Turtle/N-Triples. And getting
neat-looking URIs (no .rdf suffix at the end) requires something like
mod_rewrite, Apache multiviews or ForceType to be configured. You could
try publishing an N-Triples file with no suffix, and cross your fingers
that Apache's default media type of text/plain will bubble up.

#2 on the other hand can be addressed quite easily. 303 responses are
allowed -- indeed encouraged -- to include an entity body. Servers
could be configured to duplicate the description of the non-IR resource
in this entity body. Or perhaps provide a more summarised description
there. Clients just need to look at it before deciding whether to follow
the redirect.

e.g.


GET /toucan HTTP/1.1
Host: example.com


HTTP/1.1 303 See Other
Location: http://example.com/doc
Content-Type: text/turtle

@prefix foaf: http://xmlns.com/foaf/0.1/ .
toucan
foaf:name Harry the Toucan ;
foaf:isPrimaryTopicOf doc .

 Here the client decides whether that's enough information.
 If it needs more, it continues by dereferencing doc. 


GET /doc HTTP/1.1
Host: example.com


HTTP/1.1 200 OK
Content-Location: http://example.com/doc.ttl
Content-Type: text/turtle

@prefix foaf: http://xmlns.com/foaf/0.1/ .
toucan
foaf:name Harry the Toucan ;
foaf:isPrimaryTopicOf doc ;
foaf:birthday 10-24 .
doc
foaf:maker alice .

-- 
Toby A Inkster
mailto:m...@tobyinkster.co.uk
http://tobyinkster.co.uk




Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-08 Thread Ian Davis
On Fri, Nov 5, 2010 at 9:53 AM, Leigh Dodds leigh.do...@talis.com wrote:
 So here's a couple of questions for those of you on the list who have
 implemented Linked Data tools, applications, services, etc:

 * Do you rely on or require HTTP 303 redirects in your application? Or
 does your app just follow the redirect?
 * Would your application tool/service/etc break or generic inaccurate
 data if Ian's pattern was used to publish Linked Data.


I used Denny Vrandečić's browser tool to test several Linked Data
browsers including Tabulator.

http://browse.semanticweb.org/?uri=http%3A%2F%2Fiandavis.com%2F2010%2F303%2Ftoucandays=7

Non of these showed any confusion between the toucan and its
description, nor did that throw warnings or errors about the lack of
303 or in fact make any reference to it (tabulator includes the
response as RDF but does not infer that the 200 response implies a
type of information resource, which I had assumed it would)


Cheers,

Ian



Re: Is 303 really necessary?

2010-11-08 Thread David Booth
Hi Norman,

On Sat, 2010-11-06 at 22:45 +, Norman Gray wrote:
[ . . . ]
 I take it that Ian is suggesting resolving the ambiguity he has
 created, and thus the need for any heuristics, by extending the notion
 of IR in such a way that a URI with a 200 response *is* an IR,
 *unless* dereferencing it returns RDF which (authoritatively) declares
 that the URI is a NIR.

I don't think that is feasible.  After all, what's so special about RDF?
And how would the client even know whether RDF were returned?  Almost
any serialization can be turned into RDF.  Suppose XML is returned.  Is
that RDF?  A GRDDL transformation can cause it to be viewed as RDF?  And
what about a plain HTML page?  Surely in that case the URI would
identify the web page.  But what if there were some RDFa tags embedded?
Suddenly it *doesn't* identify the web page?  Even if the client ignores
those tags?

No, I think it makes more sense to acknowledge that the ambiguity *has*
been created by the server both returning the 200 response and sending a
document saying that the URI identifies a toucan, but applications that
are troubled by this ambiguity should use the provenance of the
information to decide bits of information to use or ignore -- in this
case ignoring the information given in the HTTP response code in favor
of the information given in the RDF document.



-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Is 303 really necessary?

2010-11-08 Thread David Booth
On Thu, 2010-11-04 at 22:29 -0400, mike amundsen wrote:
 snip
 However, the key point is that it is *layered* on the good
 old http scheme.  Thus, if you click on this URI:
 
  http://t-d-b.org/?http://dbooth.org/2005/dbooth/
 
 it works, with no changes needed to your browser
 /snip
 So the thinking here is to use the concept of a scheme without
 actually minting one because the most common client today would throw
 an error if an actual scheme was used, right?

Exactly.


-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Is 303 really necessary?

2010-11-08 Thread Norman Gray

David, hello.

On 2010 Nov 8, at 09:40, David Booth wrote:

 On Sat, 2010-11-06 at 22:45 +, Norman Gray wrote:
 [ . . . ]
 I take it that Ian is suggesting resolving the ambiguity he has
 created, and thus the need for any heuristics, by extending the notion
 of IR in such a way that a URI with a 200 response *is* an IR,
 *unless* dereferencing it returns RDF which (authoritatively) declares
 that the URI is a NIR.
 
 I don't think that is feasible.  After all, what's so special about RDF?
 And how would the client even know whether RDF were returned?  Almost
 any serialization can be turned into RDF.  Suppose XML is returned.  Is
 that RDF?  A GRDDL transformation can cause it to be viewed as RDF?  And
 what about a plain HTML page?  Surely in that case the URI would
 identify the web page.  But what if there were some RDFa tags embedded?
 Suddenly it *doesn't* identify the web page?  Even if the client ignores
 those tags?

There's nothing fundamentally special about RDF, and if one ignores RDF, then 
the adjusted Decision is identical to the original one.

However, if W3C is going to pronounce on the semantics of the web, then it 
seems reasonable to allow W3C RDF some sort of privileged status -- it's 
special because httpRange-14-bis says it's special!.

I appreciate that 'a URI...returns RDF' has the problem you identify.  However, 
is it really as uncertain as you describe?  In some circumstances, a server 
could prefer to return RDF over HTML, if that's at all compatible with the 
Accept header; and if an HTML resource includes RDFa or GRDDL, then it's clear 
that the resource owner intendes the derived RDF to be in some sense 
authoritative.

If a data consumer decides to turn XML into RDF, then the data owner can hardly 
be held responsible for the resulting RDF.

 No, I think it makes more sense to acknowledge that the ambiguity *has*
 been created by the server both returning the 200 response and sending a
 document saying that the URI identifies a toucan, but applications that
 are troubled by this ambiguity should use the provenance of the
 information to decide bits of information to use or ignore -- in this
 case ignoring the information given in the HTTP response code in favor
 of the information given in the RDF document.


I wouldn't claim there's zero ambiguity here.  However simply saying 
httpRange-14 is defeasible buys you some convenience.  If there are a few 
semi-standard practices about how that '/X is a NIR' statement is discovered, 
then the remaining ambiguity is I would guess at least acceptable, and 
certainly lower than what is routinely tolerated in Linked Data applications 
generally.

Best wishes,

Norman


-- 
Norman Gray  :  http://nxg.me.uk




Re: Is 303 really necessary?

2010-11-08 Thread Toby Inkster
On Fri, 5 Nov 2010 10:24:43 +
Ian Davis m...@iandavis.com wrote:

 On Fri, Nov 5, 2010 at 10:05 AM, Nathan nat...@webr3.org wrote:

 Not at all, I'm saying that if big-corp makes a /web crawler/ that
 describes what documents are about and publishes RDF triples
  
  /toucan :primaryTopic dbpedia:Toucan ; a :Document .  

 i don't think so. If the bigcorp is producing triples from their crawl
 then why wouldn't they use the triples they are sent (and/or
 content-location, link headers etc).

Perhaps they try to use them, but don't understand the serialisation
you're providing.

Or perhaps they can parse your triples, but don't realise that
{/toucan a ex:Toucan.} implies Not({/toucan a foaf:Document.}).

-- 
Toby A Inkster
mailto:m...@tobyinkster.co.uk
http://tobyinkster.co.uk




Re: Is 303 really necessary?

2010-11-08 Thread David Booth
On Mon, 2010-11-08 at 10:11 +, Toby Inkster wrote:
 On Thu, 4 Nov 2010 13:22:09 +
 Ian Davis m...@iandavis.com wrote:
 
  http://iand.posterous.com/is-303-really-necessary
 
 Ian brings up numerous difficulties with 303 responses.
 
 The two biggest issues in my opinion are:
 
   1. 303s can be tricky to configure unless you know your
  way around the server environment you're using, and
  have sufficient permissions on the server; and
 
   2. They require an additional HTTP request to get to the
  data the client actually wants.
 
 I think that without using RDF-specific publishing platforms (think
 WordPress for Linked Data) #1 is always going to be a difficulty.

Why not use a 303-redirect service such as
http://thing-described-by.org/ or http://t-d-b.org/ ?  That makes it
trivially easy to do 303 redirects.  No configuration needed!  And if
you want to run your own 303 redirect service, you can view all of the
code and configuration files here:
http://thing-described-by.org/?showfile=. 

 Even if we accept 200 OK as a response code for non-IR resources, this
 only solves part of the server configuration problem. There are still
 other issues to be solved - Apache doesn't come preconfigured with
 media type information for N3/Turtle/N-Triples. And getting
 neat-looking URIs (no .rdf suffix at the end) requires something like
 mod_rewrite, Apache multiviews or ForceType to be configured. You could
 try publishing an N-Triples file with no suffix, and cross your fingers
 that Apache's default media type of text/plain will bubble up.
 
 #2 on the other hand can be addressed quite easily. 303 responses are
 allowed -- indeed encouraged -- to include an entity body. Servers
 could be configured to duplicate the description of the non-IR resource
 in this entity body. 

Yes, the 303 response could include the entire toucan description.  RFC
2616 says:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4
the entity of the response SHOULD contain a short hypertext note with a
hyperlink to the new URI(s).   The entire toucan description might be
more than a short hypertext note, but this is a SHOULD requirement
-- not a MUST requirement:
http://www.ietf.org/rfc/rfc2119.txt
[[
3. SHOULD   This word, or the adjective RECOMMENDED, mean that there
   may exist valid reasons in particular circumstances to ignore a
   particular item, but the full implications must be understood and
   carefully weighed before choosing a different course.
]]

Furthermore, to avoid server configuration difficulties, this ability
could be combined with a 303-redirect service such as http://t-d-b.org/
such that a GET on a URI like the following

  http://t-d-b.org/cache?http://iandavis.com/2010/303/toucan.rdf

could directly return the whole toucan description from
http://iandavis.com/2010/303/toucan.rdf :

  HTTP/1.1 303 See Other
  Location: http://iandavis.com/2010/303/toucan.rdf
  Content-Location: http://iandavis.com/2010/303/toucan.rdf
  Content-Type: application/rdf+xml

  ?xml version=1.0?
  rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#;
. . . 
   [ . . . ]
  /rdf:RDF

Of course, such a service may wish to restrict itself to serving local
files only, in part for security.  For non-local files it could return a
normal 303 response:

  HTTP/1.1 303 See Other
  Location: http://iandavis.com/2010/303/toucan.rdf
  Content-Type: text/plain

  Redirecting to: http://iandavis.com/2010/303/toucan.rdf 


-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Is 303 really necessary? (dealing with ambiguity)

2010-11-08 Thread David Booth
On Mon, 2010-11-08 at 16:18 +0900, Tore Eriksson wrote:
 Hi David,
 
 David Booth wrote:
[ . . . ]
  And others may well make statements
  about that web page.  For example, someone crawling the web may make a
  statement saying that http://iandavis.com/2010/303/toucan returned
  1027 bytes in response to a GET request.  They may not say it in RDF --
  they might say it in XML or any other language.
 
 As long as they they are aware that they are talking about a specific
 representation of this resource I can't see any problem with this. If
 they think they are stating something about the resource itself, well
 they would be wrong even if the current URI was an information
 resource. They apparently need to learn more about web technology -
 representations, caching, con-neg, c.

How about:

  Ian Davis owns web page http://iandavis.com/2010/303/toucan.

  The content at http://iandavis.com/2010/303/toucan was last updated
7-Nov-2010.

  http://iandavis.com/2010/303/toucan has a page rank of
123,456,789.

Those statements are not talking about any specific representations, nor
are they talking about the toucan.  All are completely reasonable
statements for someone knowing nothing about RDF to make.

 [ . . . ]
  So I don't think it is reasonable or realistic to think that we can
  *avoid* creating an ambiguity by returning additional RDF statements
  with the 200 response.  Rather, the heuristic that you propose is a way
  for applications to *deal* with that ambiguity by tracking the
  provenance of the information: if one set of assertions was derived from
  an HTTP 200 response code, and another set of assertions was derived
  from an RDF document that you trust, then ignore the assertions that
  were derived from the HTTP 200 response code.
 
 By not drawing ill-founded conclusions about the nature of the resource
 through the response code, ambiguity could have been avoided in the
 first place.

Apparently you and I disagree about what it means to be a web page.  I
personally know of no better qualification criterion for something being
a web page than if that thing returns a 200 status code in response to a
GET request.  Perhaps one would characterize this as duck typing:
http://en.wikipedia.org/wiki/Duck_typing
What other criteria would you use?  



-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Is 303 really necessary?

2010-11-08 Thread Dave Reynolds
On Mon, 2010-11-08 at 15:34 -0500, David Booth wrote:
 On Mon, 2010-11-08 at 10:11 +, Toby Inkster wrote:
  On Thu, 4 Nov 2010 13:22:09 +
  Ian Davis m...@iandavis.com wrote:
  
   http://iand.posterous.com/is-303-really-necessary
  
  Ian brings up numerous difficulties with 303 responses.
  
  The two biggest issues in my opinion are:
  
  1. 303s can be tricky to configure unless you know your
 way around the server environment you're using, and
 have sufficient permissions on the server; and
  
  2. They require an additional HTTP request to get to the
 data the client actually wants.
  
  I think that without using RDF-specific publishing platforms (think
  WordPress for Linked Data) #1 is always going to be a difficulty.
 
 Why not use a 303-redirect service such as
 http://thing-described-by.org/ or http://t-d-b.org/ ?  That makes it
 trivially easy to do 303 redirects.  

Because the domain of the URI conveys some provenance and trust
connotations, particularly when dealing with public sector bodies. That
gets lost when redirected through a third party service. For many of the
groups I deal with that would not be acceptable.

In cases where third party redirection is acceptable then there are also
PURLs which arguably provide stronger expectations of longevity.

Dave





Re: Is 303 really necessary?

2010-11-08 Thread David Booth
On Mon, 2010-11-08 at 21:50 +, Dave Reynolds wrote:
 On Mon, 2010-11-08 at 15:34 -0500, David Booth wrote:
  On Mon, 2010-11-08 at 10:11 +, Toby Inkster wrote:
   On Thu, 4 Nov 2010 13:22:09 +
   Ian Davis m...@iandavis.com wrote:
   
http://iand.posterous.com/is-303-really-necessary
   
   Ian brings up numerous difficulties with 303 responses.
   
   The two biggest issues in my opinion are:
   
 1. 303s can be tricky to configure unless you know your
way around the server environment you're using, and
have sufficient permissions on the server; and
   
 2. They require an additional HTTP request to get to the
data the client actually wants.
   
   I think that without using RDF-specific publishing platforms (think
   WordPress for Linked Data) #1 is always going to be a difficulty.
  
  Why not use a 303-redirect service such as
  http://thing-described-by.org/ or http://t-d-b.org/ ?  That makes it
  trivially easy to do 303 redirects.  
 
 Because the domain of the URI conveys some provenance and trust
 connotations, particularly when dealing with public sector bodies. That
 gets lost when redirected through a third party service. For many of the
 groups I deal with that would not be acceptable.

But you don't have to use a third-party redirect service.  You can run
your own if you want.  The files for implementing thing-described-by.org
are available here:
http://thing-described-by.org/?showfile=. 

 
 In cases where third party redirection is acceptable then there are also
 PURLs which arguably provide stronger expectations of longevity.

+1 for PURLs.  

And BTW, I have used PURLs in conjunction with thing-described-by.org.
Although purl.org can do 303 redirects for individual URIs, it cannot
currently do 303's *and* partial redirects.  To get around this
limitation, I used purl.org to do a partial redirect to a
thing-described-by.org URI, which then does the 303 redirect to its
query string URI:

  http://purl.org/example/foo/*  -- 302 -- 
 http://thing-described-by.org/?http://example/foo/*  -- 303 --
   http://example/foo/*
 



-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Hash vs Slash in relation to the 303 vs 200 debate (was: Is 303 really necessary - demo)

2010-11-07 Thread Ian Davis
On Sat, Nov 6, 2010 at 11:31 PM, Toby Inkster t...@g5n.co.uk wrote:
 Not necessarily. If you take your ex:isDescribedBy predicate and add
 that to a triple store where the non-Information-Resource resources are
 identified using hash URIs, then the SPARQL query is just:

        DESCRIBE uri ?res
        WHERE { ?res ex:isDescribedBy uri . }

 which needn't be very slow.

I've done this myself but using foaf:primaryTopic and foaf:topic to
link a document URI to all the resources that are needed to render it.



 The other downside of fragments is you can't say it exists but I have
 no description of it.

 #foo a rdfs:Resource .

In which case you do have a description of it :) But point taken, this
tautology would be enough.

Cheers,

Ian



Re: Is 303 really necessary? (Multiple things described in a single document)

2010-11-07 Thread David Booth
Hi Ian,

On Fri, 2010-11-05 at 10:59 +, Ian Davis wrote:
 I have a question about  http://thing-described-by.org/ - how does it
 work when my description document describes multiple things? Really,
 any RDF document that references more than one resource as a subject
 or object can be considered to be providing a description of all those
 resources.

It sounds like you are getting into the distinction between what I've
been calling core assertions and ancillary assertions:
http://dbooth.org/2007/uri-decl/#uri-decl
http://dbooth.org/2007/uri-decl/#ancillary

In a nutshell, the core assertions of a URI are those that the URI
owner has authoritatively provided in its URI declaration, that all
statement authors using that URI *should* accept (or else they should
not use the URI):
http://dbooth.org/2009/lifecycle/#event2
[[
Statement author responsibility 3: Use of a URI implies agreement with
the core assertions of its URI declaration.
]]

For example, the assertions about 
http://iandavis.com/2010/303/toucan that you provided in
http://iandavis.com/2010/303/toucan.rdf are *core* assertions with
respect to http://iandavis.com/2010/303/toucan , because you own that
URI.  Thus, anyone using that URI to make RDF statements about your
toucan *should* accept your assertions.  (Otherwise they may be talking
about a different toucan!)

However, if *I* make statements using your toucan URI
http://iandavis.com/2010/303/toucan , my assertions are *ancillary*
assertions with respect to (WRT) that URI: other RDF statement authors
using your toucan URI are free to use or ignore my statements, because
they are not authoritative WRT that URI.

So, even though your URI declaration at
http://iandavis.com/2010/303/toucan.rdf may make assertions about many
subjects, those assertions only act as *core* assertions for
http://iandavis.com/2010/303/toucan .  They act as *ancillary*
assertions for other URIs.

Note that the exact same assertion can be a core assertion WRT one URI,
but an ancillary assertion WRT another URI.  This is normal, because
assertions that are authoritative WRT one URI declaration may be
non-authoritative WRT another URI.

The reason for this distinction between core and ancillary assertions is
to ensure that when different people talk about
http://iandavis.com/2010/303/toucan we can know that they are all
talking about the *same* toucan (at least within the limits of the
ambiguity in that toucan's definition).  If different statement authors
http://dbooth.org/2009/lifecycle/#statementAuthor
used different URI declarations for your toucan URI then they would run
the risk of talking about *different* toucans.  (Actually, they still
run the risk of talking about different toucans, as illustrated by
graphs A and C here:
http://dbooth.org/2010/ambiguity/paper.html#inconsistent-merge
but the risk is reduced.)

I'll address your other questions separately, so that this email message
doesn't get even longer.


-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Is 303 really necessary? (dealing with ambiguity)

2010-11-07 Thread David Booth
On Fri, 2010-11-05 at 10:59 +, Ian Davis wrote:
 On Thu, Nov 4, 2010 at 10:10 PM, David Booth da...@dbooth.org wrote:
   2. only one description can be linked from the
 toucan's URI
 
  True, but that's far better than zero, if you only
  have the toucan URI and it returns 404!
 
 It could return 204.

I don't understand where you're going with that.  How would a 204 permit
more than one description to be linked from the toucan's URI?

   3. the user enters one URI into their browser and ends
 up at a different one, causing confusion when they want to
 reuse the URI of the toucan. Often they use the document
 URI by mistake.
 
  Yes, that's a problem.  The trade-off is ambiguity.
 
 I don't think so. The ambiguity is not present because the data
 explicitly distinguishes the two URIs (and content-location header
 does too).

I would say that the ambiguity *has* been created, but your heuristic
(of looking at the provenance of whether the information came from the
HTTP response code permits that ambiguity to be resolved.

There are millions of people that use URIs to identify billions of web
pages, and the vast majority have never heard of RDF.  If your toucan
URI returns a 200 response just like billions of other URIs then it
*does* identify a web page, even if you are also using that URI in some
RDF document to identify a toucan -- a document that would just be
gobbledygook to most of the world.  And others may well make statements
about that web page.  For example, someone crawling the web may make a
statement saying that http://iandavis.com/2010/303/toucan returned
1027 bytes in response to a GET request.  They may not say it in RDF --
they might say it in XML or any other language.  (Indeed, they may know
nothing about RDF.)  But they still use
http://iandavis.com/2010/303/toucan to identify the web page, and no
amount of RDF can change that fact.  Furthermore, their statements may
eventually be translated to RDF -- perhaps by someone else -- and merged
with other assertions that use http://iandavis.com/2010/303/toucan to
refer to the toucan.  

So I don't think it is reasonable or realistic to think that we can
*avoid* creating an ambiguity by returning additional RDF statements
with the 200 response.  Rather, the heuristic that you propose is a way
for applications to *deal* with that ambiguity by tracking the
provenance of the information: if one set of assertions was derived from
an HTTP 200 response code, and another set of assertions was derived
from an RDF document that you trust, then ignore the assertions that
were derived from the HTTP 200 response code.

   7. it mixes layers of responsibility - there is
 information a user cannot know without making a network
 request and inspecting the metadata about the response
 to that request. When the web server ceases to exist then
 that information is lost.
 
  I don't buy this argument.  While I agree that
  explicit statements such as
 
   Utoucan :isDescribedBy Upage .
 
  is helpful and should be provided, that does *not*
  mean that links are not *also* useful.  Just because
  links do not *always* work does not mean that they
  are useless.
 
 But you agree that under the current scheme, some things are knowable
 only by making a network request. It's not enough to have just the RDF
 description document?

Sorry, I may have been unclear.  I *do* think that if the client app
already has enough RDF data about Utoucan then the client app should
not waste a network access dereferencing Utoucan.  

However, I think the URI owner of Utoucan *should* still make Utoucan
dereferenceable (either directly or indirectly) to RDF data, because
this may be useful to the client app for cases when it either doesn't
have sufficient RDF data about Utoucan or if it wishes to verify that
it has the correct or current RDF data about Utoucan. 


-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.




Re: Is 303 really necessary? (dealing with ambiguity)

2010-11-07 Thread Tore Eriksson
Hi David,

David Booth wrote:
 There are millions of people that use URIs to identify billions of web
 pages, and the vast majority have never heard of RDF.

Most of these millions haven't heard of, nor care about, the HTML
contained in the web page either. Thus, saying that millions of people
use the URI to denote the underlying HTML document seems like a stretch
of imagination.

 If your toucan
 URI returns a 200 response just like billions of other URIs then it
 *does* identify a web page, even if you are also using that URI in some
 RDF document to identify a toucan -- a document that would just be
 gobbledygook to most of the world.

Reading W3 mailing lists have made me wary of words like identify. You
can get a home page by doing a HTTP GET on the URI, but the relationship
to the original URI is not well defined. Why can't we just leave it like
that. Use RDF for describing resources in detail.

 And others may well make statements
 about that web page.  For example, someone crawling the web may make a
 statement saying that http://iandavis.com/2010/303/toucan returned
 1027 bytes in response to a GET request.  They may not say it in RDF --
 they might say it in XML or any other language.

As long as they they are aware that they are talking about a specific
representation of this resource I can't see any problem with this. If
they think they are stating something about the resource itself, well
they would be wrong even if the current URI was an information
resource. They apparently need to learn more about web technology -
representations, caching, con-neg, c.

 (Indeed, they may know
 nothing about RDF.)  But they still use
 http://iandavis.com/2010/303/toucan to identify the web page, and no
 amount of RDF can change that fact.  Furthermore, their statements may
 eventually be translated to RDF -- perhaps by someone else -- and merged
 with other assertions that use http://iandavis.com/2010/303/toucan to
 refer to the toucan.  

OK, they might. Do you have any examples of problems with Ian's approach
that are likely to happen at the moment?

 So I don't think it is reasonable or realistic to think that we can
 *avoid* creating an ambiguity by returning additional RDF statements
 with the 200 response.  Rather, the heuristic that you propose is a way
 for applications to *deal* with that ambiguity by tracking the
 provenance of the information: if one set of assertions was derived from
 an HTTP 200 response code, and another set of assertions was derived
 from an RDF document that you trust, then ignore the assertions that
 were derived from the HTTP 200 response code.

By not drawing ill-founded conclusions about the nature of the resource
through the response code, ambiguity could have been avoided in the
first place.

Tore rEiksson

___
Tore Eriksson [tore.eriksson at po.rd.taisho.co.jp]





Hash vs Slash in relation to the 303 vs 200 debate (was: Is 303 really necessary - demo)

2010-11-06 Thread Ian Davis
On Fri, Nov 5, 2010 at 5:28 PM, Nathan nat...@webr3.org wrote:
 URI resolution is essentially:

  dereference( uri.toAbsolute() );

 Which gives us the simplicity and semantic indirection which we need. Use
 frags, forget HTTP, know that uri#frag is never going to be a document
 (unless you explicitly say it is).


On a practical level using frags can be inefficient when your linked
data output is backed by a triple store. If you use a slash URI then
generating the data for html/xml/turtle output is just a simple
describe uri. For hash URIs you need to describe all the resources
with a common prefix because the fragment is not sent by the browser
with the request. That might mean a filter with a regex or string
functions which will be more inefficient. If you pick a standard
fragment such as #this, #it etc then you can revert to the simple
describe so the inefficiency only arises when there are multiple
arbitrary fragments per document URI.

The other downside of fragments is you can't say it exists but I have
no description of it. With standard slash URIs you can 303 to a 404
to say that. You can 404 on the slash itself to say the resource does
not exist. With my proposal to use 2xx responses you can return 204 No
Content to indicate the resource exists but no description is
available.

With slashes you can use 410 on an individual resource to indicate
that it has gone forever. You can also do this with the one frag per
doc approach although you are really saying the description document
has gone and the user is left to imply the secondary resource has also
gone. With multiple frags per doc (i.e. a lot of schemas) you can't
say just one of those resources has gone forever.

In summary:

Slash with 303: hard static publishing, efficient dynamic, can ack
existence without description

Hash, one resource per doc: easy static publishing, efficient dynamic,
can't ack existence without description

Hash, many resources per doc (the typical schema case): easy static
publishing, less efficient dynamic, can't ack existence without
description

Slash with 2xx: easy static publishing, efficient dynamic, can ack
existence without description

Ian



Re: Is 303 really necessary?

2010-11-06 Thread Norman Gray

David, hello.

On 2010 Nov 6, at 20:42, David Booth wrote:

 httpRange-14 requires that a URI with a 200 response MUST be an IR;
 ^^^
 Not quite.  The httpRange-14 decision says that the resource *is* an IR:
 http://lists.w3.org/Archives/Public/www-tag/2005Jun/0039 

Yes, when I phrased this, I did indeed mean it as an analytic-must rather than 
an rfc2119-synthetic-must (this is the distinction you're making, yes?)

 a URI with a 303 MAY be a NIR.
 
 Ian is (effectively) suggesting that a URI with a 200 response MAY
 be an IR, in the sense that it is defeasibly taken to be an IR,
 unless this is contradicted by a self-referring statement within
 the RDF obtained from the URI.
 
 To be clear, Ian's toucan URI *does* identify an information resource,
 whether or not it *also* identifies a toucan:

Indeed, because the decision defines what an IR is, so that Ian's toucan is 
necessarily an IR in the sense in which that term is currently defined.

 Thus, Ian has created an ambiguity by returning a 200 response.

(Ian can of course speak for himself, but...)

I take it that Ian is suggesting resolving the ambiguity he has created, and 
thus the need for any heuristics, by extending the notion of IR in such a way 
that a URI with a 200 response *is* an IR, *unless* dereferencing it returns 
RDF which (authoritatively) declares that the URI is a NIR.

 However, for those applications that need to distinguish between
 the toucan and its web page, Ian is effectively suggesting the
 *heuristic* that if the content served in the 200 response says that the
 URI identifies a toucan, then the app should ignore the fact that the
 URI also identifies a web page, and treat the URI as though it *only*
 identifies the toucan.

The suggestion does mean that the toucan URI, since it now identifies a toucan, 
cannot also identify the toucan's webpage, which is therefore unnamed.  I don't 
know if that's a problem or not (maybe it is, if you want to be able to say I 
got this information about the toucan called /toucan from X).  If it's a 
problem, then perhaps the /toucan URI could point towards a /toucan.rdf URI 
which contains the same RDF as /toucan, but which is still an IR.  Then 
/toucan.rdf is the toucan's webpage.

Best wishes,

Norman


-- 
Norman Gray  :  http://nxg.me.uk




Re: Is 303 really necessary?

2010-11-06 Thread Kingsley Idehen

On 11/6/10 4:42 PM, David Booth wrote:

httpRange-14 requires that a URI with a 200 response MUST be an IR;

  ^^^
Not quite.  The httpRange-14 decision says that the resource *is* an IR:
http://lists.w3.org/Archives/Public/www-tag/2005Jun/0039


  a URI with a 303 MAY be a NIR.

Ian is (effectively) suggesting that a URI with a 200 response MAY
be an IR, in the sense that it is defeasibly taken to be an IR,
unless this is contradicted by a self-referring statement within
the RDF obtained from the URI.

To be clear, Ian's toucan URI *does* identify an information resource,
whether or not it *also* identifies a toucan:

   $ curl -I 'http://iandavis.com/2010/303/toucan'
   HTTP/1.1 200 OK
   Date: Sat, 06 Nov 2010 20:05:57 GMT
   Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 PHP/5.2.4-2ubuntu5.10
with Suhosin-Patch mod_wsgi/1.3 Python/2.5.2
   Content-Location: toucan.rdf
   Vary: negotiate
   TCN: choice
   Last-Modified: Fri, 05 Nov 2010 09:24:27 GMT
   ETag: 264186-403-4944ad745a8c0;4944ad754eb00
   Accept-Ranges: bytes
   Content-Length: 1027
   Content-Type: application/rdf+xml; qs=0.9

Thus, Ian has created an ambiguity by returning a 200 response.  There
is nothing fundamentally wrong with this, as ambiguity of resource
identity is inescapable anyway, and we just have to learn to deal with
it.  However, for those applications that need to distinguish between
the toucan and its web page, Ian is effectively suggesting the
*heuristic* that if the content served in the 200 response says that the
URI identifies a toucan, then the app should ignore the fact that the
URI also identifies a web page, and treat the URI as though it *only*
identifies the toucan.




David,

What about this:

1. a 200 OK response infers that a URI is a URL (an Address) since its 
an indication of that a Resource has been located


2. existence of a self-describing resource discovered via 
Content-Location header value (e.g. touscan.rdf) can result in an 
override if the data states that the URI is a Name.


I really think we have to emphasize the Address and Name aspects of 
a generic URI, at every opportunity. Personally, I think it helps 
understand what the actual ambiguity is about.


This option showcases good RDF dog-fooding, especially as the Semantic 
Web Project has always been about self-describing data :-)


--

Regards,

Kingsley Idehen 
President  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen







Re: Hash vs Slash in relation to the 303 vs 200 debate (was: Is 303 really necessary - demo)

2010-11-06 Thread Toby Inkster
On Sat, 6 Nov 2010 12:33:34 +
Ian Davis li...@iandavis.com wrote:

 On a practical level using frags can be inefficient when your linked
 data output is backed by a triple store. If you use a slash URI then
 generating the data for html/xml/turtle output is just a simple
 describe uri. For hash URIs you need to describe all the resources
 with a common prefix because the fragment is not sent by the browser
 with the request. That might mean a filter with a regex or string
 functions which will be more inefficient.

Not necessarily. If you take your ex:isDescribedBy predicate and add
that to a triple store where the non-Information-Resource resources are
identified using hash URIs, then the SPARQL query is just:

DESCRIBE uri ?res
WHERE { ?res ex:isDescribedBy uri . }

which needn't be very slow.

 The other downside of fragments is you can't say it exists but I have
 no description of it.

#foo a rdfs:Resource .

-- 
Toby A Inkster
mailto:m...@tobyinkster.co.uk
http://tobyinkster.co.uk




Re: Is 303 really necessary?

2010-11-05 Thread Leigh Dodds
Hi,

On 4 November 2010 18:42, Kingsley Idehen kide...@openlinksw.com wrote:
 Nobody ever mandated 303 redirection.

I've never encountered anyone in the community that has recently
advocated (i.e. since the httpRange-14 discussion) or any
documentation that promotes anything other than using # URIs or the
303 redirect approach.

So in the circumstance where someone doesn't want to use a # URI, what
options are available? Can point to a document that illustrates an
alternate approach? It's not really choice if there's only one option.

You also frequently cite dbpedia as the de facto standard model for
publishing Linked Data. This uses the 303 pattern, giving further
prominence to that approach.

 It has always been an option, and so it should remain.

But if there are other options that have a better mix of advantages
and dis-advantages to the two that the community has promoted thus
far, then we should include those too.

Cheers,

L.

-- 
Leigh Dodds
Programme Manager, Talis Platform
Talis
leigh.do...@talis.com
http://www.talis.com



Re: Is 303 really necessary?

2010-11-05 Thread Michael Hausenblas

Ian,

(trying to keep up with this thread, maybe missed one point or the other)

I'd like to understand on what we can agree here. It seems that having a URI
for a thing and another URI for the document describing it is something most
people would acknowledge to be useful.

Two questions that come immediately into mind: Who cares? What are the costs
and what are the benefits?

First, I'd reckon that a certain number of tools and library developers
(incl. Tabulator, RAP, RDB2RDF mapping tools, etc.) will have to care about
this in the first place. Given the relative small size of the community
compared to the Web at large this seems doable.

Second, as already pointed out, the 303 issue mainly effects setups where
the RDF representation is detached from the HTML (such as RDF/XML, Turtle,
etc.), which means that the emerging and increasing part of the RDFa-based
Linked Data world is not effected per se.

Third, given that we're still a small community and find certain things to
be sub-optimal, the cost changing it now is likely less than changing it in,
say, 5 years time.

I think I can hence sympathise with your proposal to (carefully) revisit the
issue and think about alternatives. Now, having said this, although I think
one should contemplate about the 303 issue, I don't agree with your proposed
plan ahead; certain items on your list are rather simple to achieve (define
the :isDescribedBy, update the LD guide, etc.) others not.

It occurs to me that one of the main features of the Linked Data community
is that we *do* things rather than having endless conversations what would
be the best for the world out there. Heck, this is how the whole thing
started. A couple of people defining a set of good practices and providing
data following these practices and tools for it.

Concluding. If you are serious about this, please go ahead. You have a very
popular and powerful platform at your hand. Implement it there (and in your
libraries, such as Moriarty), document it, and others may/will follow.


Cheers,
  Michael

-- 
Dr. Michael Hausenblas
LiDRC - Linked Data Research Centre
DERI - Digital Enterprise Research Institute
NUIG - National University of Ireland, Galway
Ireland, Europe
Tel. +353 91 495730
http://linkeddata.deri.ie/
http://sw-app.org/about.html



 From: Ian Davis m...@iandavis.com
 Date: Thu, 4 Nov 2010 13:22:09 +
 To: Linked Data community public-lod@w3.org
 Subject: Is 303 really necessary?
 Resent-From: Linked Data community public-lod@w3.org
 Resent-Date: Thu, 04 Nov 2010 13:22:46 +
 
 Hi all,
 
 The subject of this email is the title of a blog post I wrote last
 night questioning whether we actually need to continue with the 303
 redirect approach for Linked Data. My suggestion is that replacing it
 with a 200 is in practice harmless and that nothing actually breaks on
 the web. Please take a moment to read it if you are interested.
 
 http://iand.posterous.com/is-303-really-necessary
 
 Cheers,
 
 Ian
 




Re: Is 303 really necessary?

2010-11-05 Thread Leigh Dodds
Hi Nathan,

On 4 November 2010 18:08, Nathan nat...@webr3.org wrote:
 You see it's not about what we say, it's about what other say, and if 10
  huge corps analyse the web and spit out billions of triples saying
 that anything 200 OK'd is a document, then at the end when we consider
 the RDF graph of triples, all we're going to see is one statement saying
 something is a nonInformationResource and a hundred others saying it's
 a document and describing what it's about together with it's format and
 so on.

Are you suggesting that Linked Data crawlers could/should look at the
status code and use that to infer new statements about the resources
returned? If so, I think that's the first time I've seen that
mentioned, and am curious as to why someone would do it. Surely all of
the useful information is in the data itself.

Cheers,

L.

-- 
Leigh Dodds
Programme Manager, Talis Platform
Talis
leigh.do...@talis.com
http://www.talis.com



Re: Is 303 really necessary?

2010-11-05 Thread Leigh Dodds
Hi David,

On 4 November 2010 19:57, David Wood da...@3roundstones.com wrote:
 Some small number of people and organizations need to provide back-links on 
 the Web since the Web doesn't have them.
 303s provide a generic mechanism for that to occur.  URL curation is a useful 
 and proper activity on the Web, again in my opinion.

I agree that URL curation is a useful and proper activity on the Web.
I'm not clear on your core concern though. It looks like you're
asserting that HTTP 303 status codes, in general, are useful and
should not be deprecated. Totally agree there. But Ian's proposal is
about using 303 as a necessary part of publishing Linked Data. That
seems distinct from how services like PURLs and DOIs operate, and from
the value they provide. But perhaps I'm misunderstanding?

Cheers,

L.

-- 
Leigh Dodds
Programme Manager, Talis Platform
Talis
leigh.do...@talis.com
http://www.talis.com



Re: Is 303 really necessary?

2010-11-05 Thread Leigh Dodds
Hi,

On 4 November 2010 17:51, Nathan nat...@webr3.org wrote:
 But, for whatever reasons, we've made our choices, each has pro's and
 cons, and we have to live with them - different things have different
 name, and the giant global graph is usable. Please, keep it that way.

I think it's useful to continually assess the state of the art to see
whether we're on track. My experience, which seems to be confirmed by
comments from other people on this thread, is that we're seeing push
back from the wider web community -- who have already published way
more data that we have -- on the technical approach we've been
advocating, so looking for a middle ground seems useful.

Different things do have different names, but conflating IR/NIR is not
part of Ian's proposal which addresses the publishing mechanism only.

Cheers,

L.

-- 
Leigh Dodds
Programme Manager, Talis Platform
Talis
leigh.do...@talis.com
http://www.talis.com



Is 303 really necessary - demo

2010-11-05 Thread Ian Davis
Hi all,

To aid discussion I create a small demo of the idea put forth in my
blog post http://iand.posterous.com/is-303-really-necessary

Here is the URI of a toucan:

http://iandavis.com/2010/303/toucan

Here is the URI of a description of that toucan:

http://iandavis.com/2010/303/toucan.rdf

As you can see both these resources have distinct URIs.

I created a new property http://vocab.org/desc/schema/description to
link the toucan to its description. The schema for that property is
here:

http://vocab.org/desc/schema

(BTW I looked at the powder describedBy property and it's clearly
designed to point to one particular type of description, not a general
RDF one. I also looked at
http://ontologydesignpatterns.org/ont/web/irw.owl and didn't see
anything suitable)

Here is the URI Burner view of the toucan resource and of its
description document:

http://linkeddata.uriburner.com/about/html/http://iandavis.com/2010/303/toucan

http://linkeddata.uriburner.com/about/html/http/iandavis.com/2010/303/toucan.rdf

I'd like to use this demo to focus on the main thrust of my question:
does this break the web  and if so, how?

Cheers,

Ian

P.S. I am not fully caught up on the other thread, so maybe someone
has already produced this demo



What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-05 Thread Leigh Dodds
Hi Michael,

On 5 November 2010 09:29, Michael Hausenblas
michael.hausenb...@deri.org wrote:
 It occurs to me that one of the main features of the Linked Data community
 is that we *do* things rather than having endless conversations what would
 be the best for the world out there. Heck, this is how the whole thing
 started. A couple of people defining a set of good practices and providing
 data following these practices and tools for it.

 Concluding. If you are serious about this, please go ahead. You have a very
 popular and powerful platform at your hand. Implement it there (and in your
 libraries, such as Moriarty), document it, and others may/will follow.

Yes, actually doing things does help more than talking. I sometimes
wonder whether as a community we're doing all the right things, but
that's another discussion ;)

Your suggestion about forging ahead is a good one, but it also reminds
me of Ian's original question: what would break if we used this
pattern?

So here's a couple of questions for those of you on the list who have
implemented Linked Data tools, applications, services, etc:

* Do you rely on or require HTTP 303 redirects in your application? Or
does your app just follow the redirect?
* Would your application tool/service/etc break or generic inaccurate
data if Ian's pattern was used to publish Linked Data.

Cheers,

L.

-- 
Leigh Dodds
Programme Manager, Talis Platform
Talis
leigh.do...@talis.com
http://www.talis.com



Re: Is 303 really necessary?

2010-11-05 Thread William Waites
On Fri, Nov 05, 2010 at 09:34:43AM +, Leigh Dodds wrote:
 
 Are you suggesting that Linked Data crawlers could/should look at the
 status code and use that to infer new statements about the resources
 returned? If so, I think that's the first time I've seen that
 mentioned, and am curious as to why someone would do it. Surely all of
 the useful information is in the data itself.

Provenance and debugging. It would be quite possible to 
record the fact that this set of triples, G, were obtained
by dereferencing this uri N, at a certain time, from a
certain place, with a request that looked like this and a
response that had these headers and response code. The 
class of information that is kept for [0]. If N appeared
in G, that could lead directly to inferences involving the
provenance information. If later reasoning is concerned at
all with the trustworthiness or up-to-dateness of the 
data it could look at this as well.

Keeping this quantity of information around might quickly
turn out to be too data-intensive to be practical, but
that's more of an engineering question. I think it does
make some sense to do this in principle at least.

Cheers,
-w

[0] http://river.styx.org/ww/2010/10/corscheck





Re: Is 303 really necessary?

2010-11-05 Thread Ian Davis
On Fri, Nov 5, 2010 at 9:54 AM, William Waites w...@styx.org wrote:
 Provenance and debugging. It would be quite possible to
 record the fact that this set of triples, G, were obtained
 by dereferencing this uri N, at a certain time, from a
 certain place, with a request that looked like this and a
 response that had these headers and response code. The
 class of information that is kept for [0]. If N appeared
 in G, that could lead directly to inferences involving the
 provenance information. If later reasoning is concerned at
 all with the trustworthiness or up-to-dateness of the
 data it could look at this as well.

 Keeping this quantity of information around might quickly
 turn out to be too data-intensive to be practical, but
 that's more of an engineering question. I think it does
 make some sense to do this in principle at least.


All the above would remain in my proposal. If you were in fact
inferring triples from the 303 then those would already be in the data
you are dereferencing.

Ian



Inferring data from network interactions (was Re: Is 303 really necessary?)

2010-11-05 Thread Leigh Dodds
Hi,

On 5 November 2010 09:54, William Waites w...@styx.org wrote:
 On Fri, Nov 05, 2010 at 09:34:43AM +, Leigh Dodds wrote:

 Are you suggesting that Linked Data crawlers could/should look at the
 status code and use that to infer new statements about the resources
 returned? If so, I think that's the first time I've seen that
 mentioned, and am curious as to why someone would do it. Surely all of
 the useful information is in the data itself.

 Provenance and debugging. It would be quite possible to
 record the fact that this set of triples, G, were obtained
 by dereferencing this uri N, at a certain time, from a
 certain place, with a request that looked like this and a
 response that had these headers and response code. The
 class of information that is kept for [0]. If N appeared
 in G, that could lead directly to inferences involving the
 provenance information. If later reasoning is concerned at
 all with the trustworthiness or up-to-dateness of the
 data it could look at this as well.

Yes, I've done something similar to that in the past when I added
support for the ScutterVocab [1] to my crawler

It was the suggestion that inferring information directly from 200/303
that I was most curious about. I've argued for inferring data from 301
in the past [2], but wasn't sure of merit of introducing data based on
the other interactions

 Keeping this quantity of information around might quickly
 turn out to be too data-intensive to be practical, but
 that's more of an engineering question. I think it does
 make some sense to do this in principle at least.

That's what I found when crawling the BBC pages. Huge amounts of data
and overhead in storing it. Capturing just enough to gather statistics
on the crawl was sufficient.

Cheers,

L.

[1]. http://wiki.foaf-project.org/w/ScutterVocab
[2]. http://www.ldodds.com/blog/2007/03/the-semantics-of-301-moved-permanently/

-- 
Leigh Dodds
Programme Manager, Talis Platform
Talis
leigh.do...@talis.com
http://www.talis.com



Re: Is 303 really necessary?

2010-11-05 Thread Nathan

Leigh Dodds wrote:

Hi Nathan,

On 4 November 2010 18:08, Nathan nat...@webr3.org wrote:

You see it's not about what we say, it's about what other say, and if 10
 huge corps analyse the web and spit out billions of triples saying
that anything 200 OK'd is a document, then at the end when we consider
the RDF graph of triples, all we're going to see is one statement saying
something is a nonInformationResource and a hundred others saying it's
a document and describing what it's about together with it's format and
so on.


Are you suggesting that Linked Data crawlers could/should look at the
status code and use that to infer new statements about the resources
returned? If so, I think that's the first time I've seen that
mentioned, and am curious as to why someone would do it. Surely all of
the useful information is in the data itself.


Not at all, I'm saying that if big-corp makes a /web crawler/ that 
describes what documents are about and publishes RDF triples, then if 
you use 200 OK, throughout the web you'll get (statements similar to) 
the following asserted:


  /toucan :primaryTopic dbpedia:Toucan ; a :Document .

Now, move down the line a couple of years and reason over the a triple 
dump of the web-of-data and you'll find the problem, way to solve the 
problem is to first strip everything that's a :Document, so all the 
slash URIs will be stripped, including the /toucan.


I'm also saying that 303 doesn't solve this half the time either, 
because most HTTP clients blackbox the process, so their process is:


  uri = /toucan;
  doc = get( uri );
  makeStatements( uri , doc );

Again, same problem.

Best,

Nathan



Re: Is 303 really necessary?

2010-11-05 Thread Nathan

Leigh Dodds wrote:

Hi,

On 4 November 2010 17:51, Nathan nat...@webr3.org wrote:

But, for whatever reasons, we've made our choices, each has pro's and
cons, and we have to live with them - different things have different
name, and the giant global graph is usable. Please, keep it that way.


I think it's useful to continually assess the state of the art to see
whether we're on track. My experience, which seems to be confirmed by
comments from other people on this thread, is that we're seeing push
back from the wider web community -- who have already published way
more data that we have -- on the technical approach we've been
advocating, so looking for a middle ground seems useful.


fully agree :)


Different things do have different names, but conflating IR/NIR is not
part of Ian's proposal which addresses the publishing mechanism only.


This is really simple - forget about your data, the proposal and all of 
that, if you can GET a URI (all slash URIs) then something somewhere 
will say uri a :Document (not much of a problem), then describe what 
it's about (bigger problem). With 303 the odds are 50/50 that they'll 
pick the correct uri to treat as a document, with 200 the odds are 0/100 
that they'll pick the correct uri to treat as a document.


What's the point in you saying:

  /toucan a :Toucan; :describedBy /doc .

If the rest of the world is saying:

  /toucan a :Document; :primaryTopic ex:Toucan .

Follow?



Re: Is 303 really necessary?

2010-11-05 Thread Ian Davis
On Fri, Nov 5, 2010 at 10:12 AM, Nathan nat...@webr3.org wrote:
 What's the point in you saying:

  /toucan a :Toucan; :describedBy /doc .

 If the rest of the world is saying:

  /toucan a :Document; :primaryTopic ex:Toucan .

 Follow?


Because the data obtained by dereferencing /toucan is authoratative?

Ian



Re: Is 303 really necessary?

2010-11-05 Thread Ian Davis
On Fri, Nov 5, 2010 at 10:05 AM, Nathan nat...@webr3.org wrote:

 Not at all, I'm saying that if big-corp makes a /web crawler/ that describes
 what documents are about and publishes RDF triples, then if you use 200 OK,
 throughout the web you'll get (statements similar to) the following
 asserted:

  /toucan :primaryTopic dbpedia:Toucan ; a :Document .

i don't think so. If the bigcorp is producing triples from their crawl
then why wouldn't they use the triples they are sent (and/or
content-location, link headers etc). The above looks like what you'd
get from a third party translation of the crawl results without the
context of actually having fetched the data from the URI.

If the bigcorp is not linked data aware then today they will follow
the 303 redirect as a standard HTTP redirect. rfc2616 says that the
target URI is not a substitute for the original URI but just an
alternate location to get a response from. The bigcorp will simply
infer the statements you list above **even though there is a 303
redirect**.

As rfc2616 itself points out, many user agents treat 302 and 303
interchangeably. Only linked data aware agents will ascribe special
meaning to 303 and they're the ones that are more likely to use the
data they are sent.

Ian



Re: Is 303 really necessary?

2010-11-05 Thread Nathan

Ian Davis wrote:

On Fri, Nov 5, 2010 at 10:12 AM, Nathan nat...@webr3.org wrote:

What's the point in you saying:

 /toucan a :Toucan; :describedBy /doc .

If the rest of the world is saying:

 /toucan a :Document; :primaryTopic ex:Toucan .

Follow?



Because the data obtained by dereferencing /toucan is authoratative?


wow, so if I give you give you a big dump of triples including:

  http://iandavis.com/2010/303/toucan a ex:Toucan .
  http://iandavis.com/2010/303/toucan :primaryTopic ex:Toucan .
  http://iandavis.com/2010/303/toucan a e:Document .
  http://iandavis.com/2010/303/toucan :isPrimaryTopicOf 
http://iandavis.com/2010/303/doc .


You can tell me which one's authorative?

and if I publish:

  http://webr3.org/nathan#me :isKingOf :TheWorld .

it's authorative and considered true?

great news all round :)



Re: Is 303 really necessary?

2010-11-05 Thread Ian Davis
On Fri, Nov 5, 2010 at 10:34 AM, Nathan nat...@webr3.org wrote:
 and if I publish:

  http://webr3.org/nathan#me :isKingOf :TheWorld .

 it's authorative and considered true?

 great news all round :)

No :)

I mean't that when you dereference
http://iandavis.com/2010/303/toucan, the triples you get about
http://iandavis.com/2010/303/toucan can be considered authoritative.
For me, that's one of the principle advantages of linked data over
other data formats - built in provenance if you will.

Also authoritative does not mean true. I means it asserts authority
over the data. That could very well be wrong, but it's the consumer's
choice whether they trust that authority or not (or can prove it
perhaps).

Ian



Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-05 Thread Robert Fuller



So here's a couple of questions for those of you on the list who have
implemented Linked Data tools, applications, services, etc:

* Do you rely on or require HTTP 303 redirects in your application? Or
does your app just follow the redirect?


For sindice - no we do not rely on or require them, merely follow.


* Would your application tool/service/etc break or generic inaccurate
data if Ian's pattern was used to publish Linked Data.


It wouldn't break sindice.

However... with regard to publishing ontologies, we could expect 
additional overhead if same content is delivered on retrieving different 
Resources for example http://example.com/schema/latitude and 
http://example.com/schema/longitude . In such a case ETag could be used 
to suggest the contents are identical, but not sure that is a practical 
solution. I expect that without 303 it will be more difficult in 
particular to publish and process ontologies.


Rob.
--
Robert Fuller
Research Associate
Sindice Team
DERI, Galway
http://sindice.com/



Re: Is 303 really necessary?

2010-11-05 Thread Nathan

Ian Davis wrote:

On Fri, Nov 5, 2010 at 10:05 AM, Nathan nat...@webr3.org wrote:

Not at all, I'm saying that if big-corp makes a /web crawler/ that describes
what documents are about and publishes RDF triples, then if you use 200 OK,
throughout the web you'll get (statements similar to) the following
asserted:

 /toucan :primaryTopic dbpedia:Toucan ; a :Document .


i don't think so. If the bigcorp is producing triples from their crawl
then why wouldn't they use the triples they are sent (and/or
content-location, link headers etc). The above looks like what you'd
get from a third party translation of the crawl results without the
context of actually having fetched the data from the URI.


Wouldn't be too sure about that, even the major browser vendors get it 
completely wrong, for instance do an XHR for a URI in chrome and even if 
there's 10 redirects in a chain, the base and the document uri is that 
which you requested. This is true all over the place, from using 
file_get_content's in PHP to most HTTP clients in any language, the 
pattern is simply:


  requested-uri = http://...;;
  doc = get(requested-uri);

info at the end is almost always ( requested-uri, doc ) - in fact often 
there's not even any way to get the redirected to URI back out from the 
HTTP client.


As for using the triples they are sent, all you need to do is consider 
an HTML crawler running over RDFa documents



If the bigcorp is not linked data aware then today they will follow
the 303 redirect as a standard HTTP redirect. rfc2616 says that the
target URI is not a substitute for the original URI but just an
alternate location to get a response from. The bigcorp will simply
infer the statements you list above **even though there is a 303
redirect**.


exactly, kind of semi-damning all /slash URIs.. or atleast requiring a 
load of provenance data.



As rfc2616 itself points out, many user agents treat 302 and 303
interchangeably. Only linked data aware agents will ascribe special
meaning to 303 and they're the ones that are more likely to use the
data they are sent.


God knows why linked data clients are ascribing any meaning to 303, the 
pattern's there to ensure that a thing and the doc describing it have 
different URIs, and to ensure that people don't say that thing is a 
document. Although it's not exactly worked out that way. The use of the 
particular status code 303 is only relevant if your ascribing meaning to 
the response code of GETs, if your not then 3** will do the same job.


Out of interest, just who is trawling the web and going 301 that's an 
IR, 303 that's maybe not an IR, 302 that's an IR.



My personal opinion on the entire thing is as simple as give different 
things different names, if there's a good chance something will think 
that thing is a different kind of thing by using a particular uri scheme 
or style (like saying mailto:f...@bar.org is a mailbox) then avoid it if 
it conflicts with the kind of thing you're describing. IMO slash URIs 
are often taken to mean documents, so I avoid them. You don't, so 
regardless of what status code you use, or how you deploy data, that 
conflation will be there. Thus my take away on the whole thing for you 
(and even though it goes against tag) is just 200 your uri's if you want 
to, but don't go around telling the rest of the world to do it and 
promote it as a good pattern, as it's not. tdb scheme or frag uris 
address the issues, whilst introducing others, but at least the data's 
somewhat cleaner.


I'll roll with the who cares line of thinking, I certainly don't care 
how you or dbpedia or foaf or dc publish your data, so long as I can 
deref it, but for god sake don't go telling everybody using slash URIs 
and 200 is The Right Thing TM


Best,

Nathan





Re: Is 303 really necessary?

2010-11-05 Thread Ian Davis
Hi David,

Rather than respond to each of your points let me say that I agree
with most of them :) I have snipped away the things I agree with in
principle, and left the things I want to discuss further.

I have a question about  http://thing-described-by.org/ - how does it
work when my description document describes multiple things? Really,
any RDF document that references more than one resource as a subject
or object can be considered to be providing a description of all those
resources.

On Thu, Nov 4, 2010 at 10:10 PM, David Booth da...@dbooth.org wrote:
  2. only one description can be linked from the
toucan's URI

 True, but that's far better than zero, if you only
 have the toucan URI and it returns 404!

It could return 204.



  3. the user enters one URI into their browser and ends
up at a different one, causing confusion when they want to
reuse the URI of the toucan. Often they use the document
URI by mistake.

 Yes, that's a problem.  The trade-off is ambiguity.

I don't think so. The ambiguity is not present because the data
explicitly distinguishes the two URIs (and content-location header
does too).


  7. it mixes layers of responsibility - there is
information a user cannot know without making a network
request and inspecting the metadata about the response
to that request. When the web server ceases to exist then
that information is lost.

 I don't buy this argument.  While I agree that
 explicit statements such as

  Utoucan :isDescribedBy Upage .

 is helpful and should be provided, that does *not*
 mean that links are not *also* useful.  Just because
 links do not *always* work does not mean that they
 are useless.

But you agree that under the current scheme, some things are knowable
only by making a network request. It's not enough to have just the RDF
description document?

Cheers,

Ian



Re: Is 303 really necessary?

2010-11-05 Thread Ian Davis
On Fri, Nov 5, 2010 at 10:57 AM, Nathan nat...@webr3.org wrote:
 I'll roll with the who cares line of thinking, I certainly don't care how
 you or dbpedia or foaf or dc publish your data, so long as I can deref it,
 but for god sake don't go telling everybody using slash URIs and 200 is The
 Right Thing TM

Sure. We don't want to restrict choice or options. I am focussed here
only on simplifying a common pattern.

Ian



Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-05 Thread Nathan

Robert Fuller wrote:
However... with regard to publishing ontologies, we could expect 
additional overhead if same content is delivered on retrieving different 
Resources for example http://example.com/schema/latitude and 
http://example.com/schema/longitude . In such a case ETag could be used 
to suggest the contents are identical, but not sure that is a practical 
solution. I expect that without 303 it will be more difficult in 
particular to publish and process ontologies.


Good point which needs discussed more, for instance FOAF returning 200 
OK's would be a real PITA and even worse than the 303 pattern, 3**s are 
definitely advisable in this case.


ps: introducing some form of ETag equality wouldn't be the best idea, it 
may be possible to use Content-Location and ETag together to cache and 
save doing the second request after a 303 though.


Best,

Nathan



RE: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-05 Thread bill.roberts
Hi Nathan

I'm not saying you're wrong - but could you explain why it would be a pain for 
FOAF terms to return 200?  Which kinds of application are dereferencing those 
terms and relying on a 303 response?

eg  http://xmlns.com/foaf/0.1/Person currently 303s to 
http://xmlns.com/foaf/spec/

What would break if http://xmlns.com/foaf/0.1/Person returned that same content 
with a status code of 200?

Just trying to understand the issue

Bill


-Original Message-
From: public-lod-requ...@w3.org on behalf of Nathan
Sent: Fri 11/5/2010 12:45 PM
To: Robert Fuller
Cc: Leigh Dodds; Michael Hausenblas; Ian Davis; Linked Data community
Subject: Re: What would break, a question for implementors? (was Re: Is 303   
really necessary?)
 
Robert Fuller wrote:
 However... with regard to publishing ontologies, we could expect 
 additional overhead if same content is delivered on retrieving different 
 Resources for example http://example.com/schema/latitude and 
 http://example.com/schema/longitude . In such a case ETag could be used 
 to suggest the contents are identical, but not sure that is a practical 
 solution. I expect that without 303 it will be more difficult in 
 particular to publish and process ontologies.

Good point which needs discussed more, for instance FOAF returning 200 
OK's would be a real PITA and even worse than the 303 pattern, 3**s are 
definitely advisable in this case.

ps: introducing some form of ETag equality wouldn't be the best idea, it 
may be possible to use Content-Location and ETag together to cache and 
save doing the second request after a 303 though.

Best,

Nathan




Re: Is 303 really necessary?

2010-11-05 Thread Norman Gray

Greetings,

On 2010 Nov 4, at 13:22, Ian Davis wrote:

 http://iand.posterous.com/is-303-really-necessary

I haven't been aware of the following formulation of Ian's problem+solution in 
the thread so far.  Apologies if I've missed it, or if (as I guess) it's 
deducible from someone's longer post.


httpRange-14 requires that a URI with a 200 response MUST be an IR; a URI with 
a 303 MAY be a NIR.

Ian is (effectively) suggesting that a URI with a 200 response MAY be an IR, in 
the sense that it is defeasibly taken to be an IR, unless this is contradicted 
by a self-referring statement within the RDF obtained from the URI.


Is that about right?  That fits in with Harry's remarks about IRW, and the 
general suspicion of deriving important semantics from the details of the HTTP 
transaction.  Here, the only semantics derivable from the transaction is 
defeasible.  In the absence of RDF, this is equivalent to the httpRange-14 
finding, so might require only adjustment, rather than replacement, of 
httpRange-14.

All the best,

Norman


-- 
Norman Gray  :  http://nxg.me.uk




Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-05 Thread Nathan

bill.robe...@planet.nl wrote:

Hi Nathan

I'm not saying you're wrong - but could you explain why it would be a pain for 
FOAF terms to return 200?  Which kinds of application are dereferencing those 
terms and relying on a 303 response?

eg  http://xmlns.com/foaf/0.1/Person currently 303s to 
http://xmlns.com/foaf/spec/

What would break if http://xmlns.com/foaf/0.1/Person returned that same content 
with a status code of 200?

Just trying to understand the issue


Hi Bill,

Good question :)

If you consider a basic linked data client, with a basic ontology/schema 
awareness, for instance one which shows peoples FOAF profiles and uses 
the nice rdfs:label's for properties rather than foaf:Person.


It's going to have to GET the ontology, now when it cycles through the 
properties it'll find http://xmlns.com/foaf/0.1/Person and GET it, then 
hopefully cache it against the URL specified in the [content?] location 
of the final request (be that 1 or many requests). When you 200 OK the 
response then the ontology will be stored against 
http://xmlns.com/foaf/0.1/Person so when you hit 
http://xmlns.com/foaf/0.1/knows you need to do another GET, and be 
returned a full ontology again, thus you end up with 40+ requests with 
full responses and 40+ cached versions of the single ontology. Unless 
you code around it in some way, make a provision for FOAF.


However, if you use 303's the then first GET redirects there, then you 
store the ontology against the redirected-to URI, you still have to do 
40+ GETs but each one is fast with no response-body (ontology sent down 
the wire) then the next request for the 303'd to URI comes right out of 
the cache. It's still 40+ requests unless you code around it in some 
way, but it's better than 40+ requests and 40+ copies of the single 
ontology.


The above, together with the deployment for FOAF is a v good reason 
*not* to use slash URIs for ontologies - ask Dan Bri about the FOAF 
rewrite rules for a second opinion on that :p


Hope that explains,

Best,

Nathan



Re: Is 303 really necessary - demo

2010-11-05 Thread Nathan

Ian Davis wrote:

Hi all,

To aid discussion I create a small demo of the idea put forth in my
blog post http://iand.posterous.com/is-303-really-necessary

Here is the URI of a toucan:

http://iandavis.com/2010/303/toucan


Ian, where's the demo of /toucan#frag so everybody can see that you can 
use 200 OK *and* keep the graph clean? will you give it fair air time in 
the (non-)debate? will you show us a comparison of the two and benefits 
of each?



does this break the web  and if so, how?


Of course it doesn't break the web, anybody who says that being HTTP 
friendly breaks the web is clearly wrong.


Wrong question, correct question is if I 200 OK will people think this 
is a document, to which the answer is yes. You're toucan is a :Document.




Re: Is 303 really necessary?

2010-11-05 Thread Dave Reynolds
On Fri, 2010-11-05 at 12:11 +, Norman Gray wrote: 
 Greetings,
 
 On 2010 Nov 4, at 13:22, Ian Davis wrote:
 
  http://iand.posterous.com/is-303-really-necessary
 
 I haven't been aware of the following formulation of Ian's problem+solution 
 in the thread so far.  Apologies if I've missed it, or if (as I guess) it's 
 deducible from someone's longer post.
 
 
 httpRange-14 requires that a URI with a 200 response MUST be an IR; a URI 
 with a 303 MAY be a NIR.
 
 Ian is (effectively) suggesting that a URI with a 200 response MAY be an IR, 
 in the sense that it is defeasibly taken to be an IR, unless this is 
 contradicted by a self-referring statement within the RDF obtained from the 
 URI.
 
 
 Is that about right?  That fits in with Harry's remarks about IRW, and the 
 general suspicion of deriving important semantics from the details of the 
 HTTP transaction.  Here, the only semantics derivable from the transaction is 
 defeasible.  In the absence of RDF, this is equivalent to the httpRange-14 
 finding, so might require only adjustment, rather than replacement, of 
 httpRange-14.

Very nice. That seems like an accurate and very helpful way of looking
at Ian's proposal.

Dave





Re: Is 303 really necessary?

2010-11-05 Thread Nathan

Dave Reynolds wrote:
On Fri, 2010-11-05 at 12:11 +, Norman Gray wrote: 

Greetings,

On 2010 Nov 4, at 13:22, Ian Davis wrote:


http://iand.posterous.com/is-303-really-necessary

I haven't been aware of the following formulation of Ian's problem+solution in 
the thread so far.  Apologies if I've missed it, or if (as I guess) it's 
deducible from someone's longer post.


httpRange-14 requires that a URI with a 200 response MUST be an IR; a URI with 
a 303 MAY be a NIR.

Ian is (effectively) suggesting that a URI with a 200 response MAY be an IR, in 
the sense that it is defeasibly taken to be an IR, unless this is contradicted 
by a self-referring statement within the RDF obtained from the URI.


Is that about right?  That fits in with Harry's remarks about IRW, and the 
general suspicion of deriving important semantics from the details of the HTTP 
transaction.  Here, the only semantics derivable from the transaction is 
defeasible.  In the absence of RDF, this is equivalent to the httpRange-14 
finding, so might require only adjustment, rather than replacement, of 
httpRange-14.


Very nice. That seems like an accurate and very helpful way of looking
at Ian's proposal.


The other way of looking at it, is that the once clear message of:

  Don't use /slash URIs for things, use fragments, and if you flat out
  refuse to do this then at least use the 303 to keep distinct names

has been totally lost.

The advice is not that /slash URIs are okay and use them if you like, 
it's that they're not ok and you should be using #fragments. Don't dress 
the TAG finding up in other words to make it seem more favourable than 
it actually is.


I think this needs to be made clear for all those who don't realise.

Best,

Nathan







Re: Is 303 really necessary?

2010-11-05 Thread Vasiliy Faronov
Hi Ian,

Do you suggest that the two resources (/toucan and /doc in your
example) should return the exact same data?

If yes, don't you think this would lead to people not getting the
distinction between the two URIs at all, and thus, mixing them up even
more?

Personally, I think that the hard part is the distinction between the
URIs. Once that is understood and accepted, the 303 becomes kind of
obvious (even more so than the hash approach). I don't have a lot of
experience teaching LD to developers to back up this statement, though.

-- 
Vasiliy Faronov




Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-05 Thread Leigh Dodds
Hi Robert,

Thanks for the response, good to hear from an implementor.

On 5 November 2010 10:41, Robert Fuller robert.ful...@deri.org wrote:
 ...
 However... with regard to publishing ontologies, we could expect
 additional overhead if same content is delivered on retrieving different
 Resources for example http://example.com/schema/latitude and
 http://example.com/schema/longitude . In such a case ETag could be used
 to suggest the contents are identical, but not sure that is a practical
 solution. I expect that without 303 it will be more difficult in
 particular to publish and process ontologies.

This is useful to know thanks. I don't think the ETag approach works
as it's intended to version a specific resource, not be carried across
resources.

One way to avoid the overhead is to strongly recommend # URIs for
vocabularies. This seems to be increasingly the norm. It also makes
them easier to work with (you often want the whole document)

L.

-- 
Leigh Dodds
Programme Manager, Talis Platform
Talis
leigh.do...@talis.com
http://www.talis.com



RE: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-05 Thread bill.roberts
Hi Nathan - thanks for clear answer. I see the point and also the argument for 
using hash URIs with ontologies.

In practice how I get round this prob is to preload my triple store with the 
handful of common ontologies I know I'm going to use, so don't need to deref 
them as I go along.

Cheers

Bill


-Original Message-
From: Nathan [mailto:nat...@webr3.org]
Sent: Fri 11/5/2010 1:12 PM
To: bill.robe...@planet.nl
Cc: public-lod@w3.org; Dan Brickley
Subject: Re: What would break, a question for implementors? (was Re: Is 303   
really necessary?)
 
bill.robe...@planet.nl wrote:
 Hi Nathan
 
 I'm not saying you're wrong - but could you explain why it would be a pain 
 for FOAF terms to return 200?  Which kinds of application are dereferencing 
 those terms and relying on a 303 response?
 
 eg  http://xmlns.com/foaf/0.1/Person currently 303s to 
 http://xmlns.com/foaf/spec/
 
 What would break if http://xmlns.com/foaf/0.1/Person returned that same 
 content with a status code of 200?
 
 Just trying to understand the issue

Hi Bill,

Good question :)

If you consider a basic linked data client, with a basic ontology/schema 
awareness, for instance one which shows peoples FOAF profiles and uses 
the nice rdfs:label's for properties rather than foaf:Person.

It's going to have to GET the ontology, now when it cycles through the 
properties it'll find http://xmlns.com/foaf/0.1/Person and GET it, then 
hopefully cache it against the URL specified in the [content?] location 
of the final request (be that 1 or many requests). When you 200 OK the 
response then the ontology will be stored against 
http://xmlns.com/foaf/0.1/Person so when you hit 
http://xmlns.com/foaf/0.1/knows you need to do another GET, and be 
returned a full ontology again, thus you end up with 40+ requests with 
full responses and 40+ cached versions of the single ontology. Unless 
you code around it in some way, make a provision for FOAF.

However, if you use 303's the then first GET redirects there, then you 
store the ontology against the redirected-to URI, you still have to do 
40+ GETs but each one is fast with no response-body (ontology sent down 
the wire) then the next request for the 303'd to URI comes right out of 
the cache. It's still 40+ requests unless you code around it in some 
way, but it's better than 40+ requests and 40+ copies of the single 
ontology.

The above, together with the deployment for FOAF is a v good reason 
*not* to use slash URIs for ontologies - ask Dan Bri about the FOAF 
rewrite rules for a second opinion on that :p

Hope that explains,

Best,

Nathan



Re: What would break, a question for implementors? (was Re: Is 303 really necessary?)

2010-11-05 Thread Nathan

bill.robe...@planet.nl wrote:

Hi Nathan - thanks for clear answer. I see the point and also the argument for 
using hash URIs with ontologies.


Most welcome, and glad it helped :)


In practice how I get round this prob is to preload my triple store with the 
handful of common ontologies I know I'm going to use, so don't need to deref 
them as I go along.


Snap, however the big caveat is that as soon as I followed the paradigm 
a bit further and hit client side applications which use the web as a 
data tier (read write web of linked data) where typically you just 
leverage HTTP caching, and where a triple store isn't particularly ideal 
(or even needed) the importance of these things became somewhat more 
noticeable.


I have to say, that if I hadn't taken this move, then I probably 
wouldn't be quite as passionate as I am about these things. Linked Data 
should (must?) be HTTP friendly, and slash URIs for both ontologies and 
data are most definitely not, even to deal with foaf with the current 
303's you need to hard code rules around it, or embed the ontology in 
your application (in js code!).


Give it some time and I'm sure it won't just be a handful of us shouting 
OMG that was a mistake and a half.


Best,

Nathan




Re: Is 303 really necessary - demo

2010-11-05 Thread Mike Kelly
On Fri, Nov 5, 2010 at 12:37 PM, Nathan nat...@webr3.org wrote:
 Ian Davis wrote:

 Hi all,

 To aid discussion I create a small demo of the idea put forth in my
 blog post http://iand.posterous.com/is-303-really-necessary

 Here is the URI of a toucan:

 http://iandavis.com/2010/303/toucan

 Ian, where's the demo of /toucan#frag so everybody can see that you can use
 200 OK *and* keep the graph clean? will you give it fair air time in the
 (non-)debate? will you show us a comparison of the two and benefits of each?

 does this break the web  and if so, how?

 Of course it doesn't break the web, anybody who says that being HTTP
 friendly breaks the web is clearly wrong.

 Wrong question, correct question is if I 200 OK will people think this is a
 document, to which the answer is yes. You're toucan is a :Document.


That assertion would be wrong if the response contained a
Content-Location header pointing to the specific document resource.

Cheers,
Mike



Re: Is 303 really necessary?

2010-11-05 Thread Vasiliy Faronov
Hi Nathan,

 The other way of looking at it, is that the once clear message of:
 
Don't use /slash URIs for things, use fragments, and if you flat out
refuse to do this then at least use the 303 to keep distinct names
 
 has been totally lost.

I've never encountered this clear message before. Can you please point
me to a couple of places where it is clearly stated?

-- 
Vasiliy Faronov




Re: Is 303 really necessary - demo

2010-11-05 Thread Nathan

Mike Kelly wrote:

On Fri, Nov 5, 2010 at 12:37 PM, Nathan nat...@webr3.org wrote:

Ian Davis wrote:

Hi all,

To aid discussion I create a small demo of the idea put forth in my
blog post http://iand.posterous.com/is-303-really-necessary

Here is the URI of a toucan:

http://iandavis.com/2010/303/toucan

Ian, where's the demo of /toucan#frag so everybody can see that you can use
200 OK *and* keep the graph clean? will you give it fair air time in the
(non-)debate? will you show us a comparison of the two and benefits of each?


does this break the web  and if so, how?

Of course it doesn't break the web, anybody who says that being HTTP
friendly breaks the web is clearly wrong.

Wrong question, correct question is if I 200 OK will people think this is a
document, to which the answer is yes. You're toucan is a :Document.



That assertion would be wrong if the response contained a
Content-Location header pointing to the specific document resource.


http://trac.tools.ietf.org/wg/httpbis/trac/ticket/154



Re: Is 303 really necessary - demo

2010-11-05 Thread Giovanni Tummarello
I might be wrong but I dont like it much . Sindice would index it as 2
documents.

http://iandavis.com/2010/303/toucan
http://iandavis.com/2010/303/toucan.rdf

i *really* would NOT want to different URLs resolving to the same thing

thanks
Giovanni


On Fri, Nov 5, 2010 at 10:43 AM, Ian Davis m...@iandavis.com wrote:
 Hi all,

 To aid discussion I create a small demo of the idea put forth in my
 blog post http://iand.posterous.com/is-303-really-necessary

 Here is the URI of a toucan:

 http://iandavis.com/2010/303/toucan

 Here is the URI of a description of that toucan:

 http://iandavis.com/2010/303/toucan.rdf

 As you can see both these resources have distinct URIs.

 I created a new property http://vocab.org/desc/schema/description to
 link the toucan to its description. The schema for that property is
 here:

 http://vocab.org/desc/schema

 (BTW I looked at the powder describedBy property and it's clearly
 designed to point to one particular type of description, not a general
 RDF one. I also looked at
 http://ontologydesignpatterns.org/ont/web/irw.owl and didn't see
 anything suitable)

 Here is the URI Burner view of the toucan resource and of its
 description document:

 http://linkeddata.uriburner.com/about/html/http://iandavis.com/2010/303/toucan

 http://linkeddata.uriburner.com/about/html/http/iandavis.com/2010/303/toucan.rdf

 I'd like to use this demo to focus on the main thrust of my question:
 does this break the web  and if so, how?

 Cheers,

 Ian

 P.S. I am not fully caught up on the other thread, so maybe someone
 has already produced this demo





  1   2   >