Re: do we need INSERT?

Steve Harris wrote:
> On Sat, Aug 28, 2004 at 04:18:57PM -0700, Rob Shearer wrote:
> 
>>I'm going to go out on a limb and say no. INSERT and UPDATE
>>functionalities do NOT need to be part of a query language.
> 
> 
> Thats a reasonable position, but I think that we need some standard way to
> add triples to a running store over a network, and I think it woould be
> odd if DAWG version N couldn't address this in some way, even if it doesnt
> take the form of a query.

An INSERT operation for uploading data needs to cope with bNodes and how 
to add statements involving bNodes already in the model.  Serialisations 
scope the bNodes identifiers to the document so can't address directly 
bNodes already in the target model.

This also happens for query - where the application writer wishes to use 
the results of one query is another but it is less serious.

[Joseki has an "add" operation which takes agraph and merges it into the 
target.  Because of bNode serialization, it does not cover all the users 
needs.]

> 
> To address your query point I would like (at some point in the future,
> probably not with DAWG v1) to be able to do things like:
> 
> 	INSERT INTO <ex:my-model>
> 	CONSTRUCT (<ex:foo>, <ex:has-class>, ?class)
> 	WHERE (?class, <rdf:type>, <owl:Class>)
> 

That is an interesting example because bNodes captured by the query can be 
passed to CONSTRUCT: no serialization problems.

For me, this isn't a first version feature. The serialization issues mean 
it isn't trivial and it also touches on locking or maybe transactional 
characteristics (maybe in an optimistic transaction style) because an 
application may wish to issus queries then, based on the results, do 
updates against a consistent (unchanging) model.

	Andy

> 
>>I look at the intent of an RDF query language as offering what DOM, SAX,
>>and XPath did for XML data: a way to get information out of that
>>particular data model for use in other applications. I think it's quite
>>significant that the write functionality of these technologies takes the
>>form of filters and transforms built on top of the query language.
> 
> 
> Not really relevant, but the DOM core API does include methods for adding
> information, eg:
> 	var p = document.createElement("p");
> 	foo.appendChild(p);
> 
> - Steve

Received on Sunday, 29 August 2004 19:15:58 UTC