An idea I need help with, or told to stop wasting time on!

All,

My brains breaking over this one - can see it and can't quite flesh out 
the details (or figure out if it's worth it) - it's very much a marmite 
(love/hate) idea that I haven't fully formed, and is targeted at 
addressing some common problems with namedgraph, reification, provenance 
tracking and metadata about data. And as I'm sure you realise by now I'm 
not afraid to be wrong or simply throw out ideas in to the public 
domain, so here goes:

1: Introduce a 'value' property

Where currently we can say:
  :me foaf:name 'nathan' .

I'd propose introducing an ex:value property that allows us to say:
  :me foaf:name [ ex:value 'nathan' ] .
or
  :me foaf:name :myname .
  :myname ex:value 'nathan' .

I'm hoping the basic human understanding of this is pretty obvious, 
sorting out the domain & range of ex:value, class of :myname, ontology 
details and related are hurting my head a bit at the minute.

And thus you could describe a value:

  :me foaf:name [
      ex:value 'nathan' ;
      ex:type xsd:string ;
      ex:language 'en-gb' .
   ] .

And do some funkier stuff:

  :me foaf:mbox :myemail ;
  :myemail ex:value <mailto:nathan@webr3.org> ;
      ex:sha_1 'KLSJFS9F7S9D8F7SLADFSLKDJF98SD7' ;
      dcterms:created '2010-06-03T15:19:35-05:00' ;
      dcterms:replaces :oldmail .
  :oldmail ex:value <mailto:oldemail@webr3.org> .

so because of the way ex:value works, in there we have the triple:

<mailto:nathan@webr3.org> dcterms:replaces <mailto:oldemail@webr3.org> .

but we've also introduced a way to make non http URIs dereferencable..

<http://webr3.org/nathan#oldmail> ex:value <mailto:oldemail@webr3.org> .

see why my head is hurting with this?


2: Double Serialization

In a way we can already do this with rdf:XMLLiteral

:x content:encoded '<rdf:RDF 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description 
rdf:about="http://ex.org/egg#i"><rdfs:label 
xml:lang="en">egg</rdfs:label></rdf:Description></rdf:RDF>'^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> 
.

so we could say:

:x a ex:NamedGraph ;
   ex:graph '<rdf:RDF...'^^rdf:XMLLiteral .

or including ex:value as outlined in 1 earlier:

:graph1 a ex:NamedGraph ;
   ex:graph [
      ex:value '''some serialized rdf in here''' ;
      ex:type 'text/rdf+n3' . ] .

Would allow you to strap provenance / meta to a value and/or the named 
graph.. and here's where it's either so simple, or so complex that my 
brain simply pickles:

example onto:

ex:graph rdfs:domain ex:NamedGraph;
    rdfs:range ex:Graph .

example graph:

:graph1 ex:graph :v3 .

:v3 ex:value '''some serialized rdf in here''' ;
   ex:type 'text/rdf+n3' ;
   dcterms:replace :v2 .

v2 ex:value '''old serialized rdf here''' ;
   ex:type 'text/rdf+n3' ;
   dcterms:replace :v1 .

...... I'm sure there's something in using [ log:content, log:n3String, 
log:uri ] here instead, and quite sure that by stating that graph 
contents where either a Truth or a Falsehood you could use for rdf updates..

So, is there something in this, am I going down a wrong path, thoughts, 
feedback, anything?

Best,

Nathan

Received on Sunday, 6 June 2010 16:18:22 UTC