Re: Linked Data on qdos.com

On 2 Dec 2007, at 17:54, Richard Cyganiak wrote:
> Steve,
>
> A very interesting dataset. I see that there are DBpedia links now,  
> cool! However ...

At the moment, the dbpedia links are just injected into the linked  
data output, but they will wind up in the store when I get a chance to  
add them.

> On 29 Nov 2007, at 16:50, Steve Harris wrote:
>>>>>> http://qdos.com/celeb/8340a9fc46297f805e66b6f9e89feb80 owl:sameAs
>>>>>> http://dbpedia.org/resource/Moby
>>>>> I really don't think you mean that :-)
>>>>>
>>>>> They are primarily about the same thing, I take it. Maybe
>>>>> http://qdos.com/celeb/8340a9fc46297f805e66b6f9e89feb80  
>>>>> skos:subject
>>>>> http://dbpedia.org/resource/Moby?
>>>>
>>>> I assume from Steve's RDF that
>>>> http://qdos.com/celeb/8340a9fc46297f805e66b6f9e89feb80 identifies  
>>>> Moby as a
>>>> person (a non-information resource) and not the HTML document  
>>>> describing
>>>> Moby.
>>>
>>> Ah, apologies. Scratch what I said. I thought such URIs had to 303.
>>
>> That URI situation is a bit ugly, I had to trade of shorter/neater  
>> profile URIs against being more easily able to distinguish between  
>> HTML pages and URIs for people. Brevity won.
>
> At the moment, unfortunately, the URI scheme is broken. It uses the  
> same URI to identify two different things, a web document and a  
> person. Web documents are different things than the things talked  
> about in the document -- that's a fundamental axiom.

Well, not exactly - the URI originally denoted the person, and the  
HTML profile page was http://qdos.com/profile?uri=... which was ugly,  
and the persons URI did not dereference to anything. So, I made the  
person's URI dereference to .../turtle if you Accept:'d application/x- 
turtle and return some HTML if not.

Consequently there's no statements about the page with <http://qdos.com/celeb/8340a9fc46297f805e66b6f9e89feb80 
 > as the subject.

Probably/possibly I should have made the html version .../html or  
something, but I didn't. I might change this in the future, but I want  
to avoid forwarding normal users all over the place.

> Let's look at qdos URIs ...
>
> That's clearly a web document (available in HTML and Turtle):
> http://qdos.com/celeb/8340a9fc46297f805e66b6f9e89feb80

You get HTTP forwarded if you want turtle, its not the same URI  
ultimately.

> That's the Turtle-only version of that web document:
> http://qdos.com/celeb/8340a9fc46297f805e66b6f9e89feb80/turtle
>
> The Turtle data is confused about wether that first URI identifies a  
> document or a person. It has some data about the web document (e.g.  
> date, creator) and some data about the person (name, homepage).

DC date and creator refer to the SPARQL graph, not the HTML page. The  
HTML is dynamically generated.

> Fortunately, fixing this is fairly easy:
>
> 1. Make up your mind which properties are properties of the person,  
> and which are properties of the QDos web page. I'd argue that almost  
> all are about the person.
>
> 2. Use http://qdos.com/celeb/834...3b80#person as the URI for all  
> the things where you mean the person.

You cannot be serious! There's no way I would go through and change  
every URI referring to a person in the RDF store behind a live system.

> 3. Add a triple that relates the document and the person, e.g. <... 
> 3b80> foaf:primaryTopic <...3b80#person>.
>
> Optionally, I'd suggest a few additional things:
>
> 4. A triple <...3b80#person> rdf:type foaf:Person would be helpful.

Users get a rdf:type foaf:Person triples, celebs get rdf:type  
q:Celebrity, which should be a subClassOf foaf:Person, but I've not  
got round to adding that to the schema. The URI of the graph is the  
same as the URI of the person. That's slightly odd, but we have a lot  
of queries like

    GRAPH ?person {
      ?person ?prop ?obj .
      ...
    }

That are used to stop queries spanning graphs. SPARQL doesn't have a  
concatenate function we could use to do

    GRAPH concat(?person, "/graph") { ?person ... }

or whatever.

> 5. The HTML page could include an autodiscovery link to the RDF in  
> the <head>:
>
>   <link rel="alternate" type="application/x-turtle" href="...3b80/ 
> turtle" />

That was on the todo list, thanks for pointing out the appropriate  
rel. I thought I'd seen rel="semantics" somewhere. I've just added a  
link of that form.

> 6. Yes, RDF/XML output would be *very* helpful and is pretty much  
> needed to be compatible with the rest of the Linking Open Data  
> project. RDF/XML can be serialized in a simple line-by-line way,  
> just like N-Triples (only much uglier).

Sure, it requires a newer version of the RDF store, which will have to  
wait for a scheduled maintenance period. The turtle is just the output  
of a CONSTRUCT query.

> I realize that it's not always easy to justify spending time on the  
> subtleties of semwebby things, but I think it's important to get  
> this right.

Right, within reason I'm happy to make changes that will make our  
corner of the semweb world a nicer place to be.

- Steve

Received on Monday, 3 December 2007 11:04:04 UTC