- From: Toby Inkster <tai@g5n.co.uk>
- Date: Fri, 15 Jan 2010 12:21:59 +0000
- To: Danny Ayers <danny.ayers@gmail.com>
- Cc: jeremy@topquadrant.com, "semantic-web@w3.org" <semantic-web@w3.org>
On Fri, 2010-01-15 at 11:57 +0100, Danny Ayers wrote:
> Aside from a little tidiness, what would we actually gain through
> going the whole hog on what can go in which position in the triple?
>
> blank node predicate - what does that tell you that an rdfs:seeAlso
> wouldn't?
<#school>
[
rdfs:subPropertyOf ex:teacher ;
rdfs:label "maths teacher" ;
ex:relatedTopic dbpedia:Mathematics
]
<#joe> .
<#band>
[ rdfs:subPropertyOf foaf:member ; ex:relatedInstrument <#bongo> ]
<#jim> .
These structures are of course already permissible in RDF, but only if
you're willing to commit to giving the property a URI.
> literal subject - aside from quotations:
>
> "I can't really see how it would be useful" <x:saidBy> <#me> .
If the above was the only use case, then it would not be especially
useful - you'd simply create a x:didSay predicate that worked in the
reverse direction. With blank node predicates that's even easier:
<#me>
[ owl:inverseOf x:saidBy ]
"I can't really see how it would be useful" .
But that's not the only use case. Consider relationships between two
literals:
"Toby Inkster" foaf:sha1 "4296ab2b2243bdb1e3cd1952158d2ce5464ea10c" .
I can imagine wanting to do things like:
SELECT ?person ?hash
WHERE {
?person ex:password ?pwd .
?pwd foaf:sha1 ?hash .
FILTER (?hash = "672059bd1419f8b90633fc2d02529be0de2fa614")
}
Both blank node predicates and literal subjects are already allowed by
N3 and are theoretically allowed by SPARQL (though I don't know of any
implementations that choose to support them).
--
Toby A Inkster
<mailto:mail@tobyinkster.co.uk>
<http://tobyinkster.co.uk>
Received on Friday, 15 January 2010 12:22:41 UTC