Daniel, Holger,

I am unclear which of the following is true:

- Daniel has a use case for the old behavior of PerformUpdate with no graph uri when used with an ApplyConstruct, which can no longer be addressed as cleanly

- Daniel's problem with the clarification in PerformUpdate to have precisely one graph URI for the updates is resolved.

If the former, what should the contract be?
My understanding was that we clarified it to fail because it was genuinely unclear what a reasonable behavior would be, and any useful behavior was essentially accidental.

Jeremy


* The query template that appears in a PerformUpdate module’s
sml:updateQuery does not contain a GRAPH modifier –understandable
since it cannot be predicted where one is needed.  However, a query
can be filled out without an indicated graph and the syntax is treated
as valid (no red outline in the query box). An update to the syntax
checking may be in order here.
You don't need to specify a GRAPH anywhere. It will simply run the WHERE clause 
over the input graph of the current module, i.e. the union of its predecessors 
in the SM graph.

I mis-spoke here.  A graph URI is now required with INSERT and
DELETE.  That is "DELETE FROM<...>  {}" and "INSERT INTO<...>  {}" are
required syntax when used, "DELETE {}" and "INSERT {}" no longer are,
but the form presently accepts it as valid.


* Using PerformUpdate I add new triples into http://tb-session.  When
viewing the debugger’s “Input Graph” tab, I do not see this graph
listed.
The debugger only lists the graphs that are input to the current module. Unless 
you have done something like sml:ImportCurrentRDF, this will not be the case.

Once triples are inserted into the http://tb-session graph in a given
module,  doesn't this graph become input for the following module?  It
is in the following module where I do not see this graph listed.  Also
the case in the module following an ApplyConstruct, the newly
constructed graph does not appear in the list.



* A PerformUpdate cannot be used following an ApplyConstruct because
the URI of the constructed graph is unknown –I think even undefined.
The WHERE clause will work fine - as explained above. Just don't specify a 
GRAPH and it will work. The recent change was to disallow not specifying INSERT 
INTO ... and DELETE FROM ... in sml:PerformUpdate.

Yes, the WHERE clause is fine.  To clarify the issue, it is in
specifying the constructed graph from ApplyConstruct as the argument
in DELETE FROM and INSERT INTO.  For example:


ApplyConstruct:
CONSTRUCT {
     ?person test:grandchild ?grandChild .
}
WHERE {
     ?person kennedys:child ?child .
     ?child kennedys:child ?grandChild .
}

...<pipeline>...

PerformUpdate
DELETE FROM<???>  {
     ?person test:grandchild ?grandChild .
}
WHERE {
}

Cannot be performed any longer, because the graph URI that the triples
were constructed into is itself unknown.

Please correct me if I am mistaken, it seems there is an assumption
here that I'm not aware of.

thanks!

-Daniel


--
You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include TopBraid Composer,
TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en

Reply via email to