- From: Nathan <nathan@webr3.org>
- Date: Sat, 09 Oct 2010 20:37:17 +0100
- To: Melvin Carvalho <melvincarvalho@gmail.com>
- CC: Semantic Web <semantic-web@w3.org>, Pat Hayes <phayes@ihmc.us>
Hi Melvin:)
Perhaps I can help a little on this one
Melvin Carvalho wrote:
> Three problems come to mind:
>
> One problem is the canonicalization of RDF seriealizations, and hence,
> ability to sign it with DSIG. It seems quite hard to canonicalize
> bnodes, right now.
yup you'd have to come up with a special rule set for canonicalizing
BlankNodes - it's the same problem you get when serializing objects
which are references in OO land - could be addressed with a free day or
two :)
> Another is referring to data in another graph, say I wanted to
> annotate, access control, transform etc.
these use cases all need looked at separately, but the short answer is
there's two approaches - the first is to work on the resource / 'HTTP
document' level and: handle access control at a per HTTP resource level
(how we already do it) - to handle transformation again you need to
leverage HTTP headers (Link) to specify the transformation rules, or to
work on a media type level where X transformation set is for Y media type.
As for annotation then there are two ways to do it, one is to again work
at resource level:
<http://example.org/my-doc> a :Document;
dc:creator :me;
dc:created "2010-10-09T20:29:30Z" .
You can put that in any graph, the problem though is that your
referencing the 'current state' of a resource/graph, in that if the
contents of http://example.org/my-doc change then what you've said about
it may not still be correct - like saying that I created $var where $var
can change at any time.
The way around this is to either sign the full resource (the http
packet) not so nice, or to use graph literals (aka quoted graphs) and
annotate that, this way the statements you are talking about (the
triples) are embedded within the full statement you are making so can't
change temporally.
{ ... bunch of triples... } dc:creator :me ;
dc:created "2010-10-09T20:29:30Z" ;
a :Truth .
> Another that I was personally trying to solve was an easy way to diff
> elements in a triple store cross domain, e.g. for sync purpose
I've had a good stab at this a couple of times, but came to the
conclusion that again this requires graph literals / quoted graphs as
per http://www.w3.org/DesignIssues/Diff
In other words, you're hitting all the reasons I found I needed N3 (or
at least turtle + graphs like AIR does) to handle these situations.
Best,
Nathan
Received on Saturday, 9 October 2010 19:38:37 UTC