[Mulgara-general] Jena-Mulgara connector

Seaborne, Andy andy.seaborne at hp.com
Sun Jan 13 20:03:29 UTC 2008

Andrae Muys wrote:
> On 04/01/2008, at 1:39 AM, Seaborne, Andy wrote:
>> It's also "interesting" if you create a blank node by some small
>> integer and see what node in the server graph you have really named.
>> id=1 seems to rdf:type.
> I wouldn't rely on that if I were you :).

I wasn't going to to!  Just an interesting discovery trying to 
understand how bnode ids work in Mukgara.

> If the problem reusing a blanknode from a query for an insert, as
> long as you perform the query within the same write-phase you will be
> fine.  Mulgara's understanding of insert/delete is as functions from
> graphs to graphs, ie:  insert :: Triple -> Graph -> Graph.

Let me just check my understanding: if the app (from iTQL or from the 
remote API) inserts a bnode in an operation, deletes said bnode in a 
second operation, then it's id can be reused even inside the same 
transaction in some later operation.

If a trasnaction (i.e. handle to one graph at one point in time) does 
nothing but read operations, then the bnode id is stable.

> In other words our current semantic is that the result of an update
> operation on a graph is a new graph, and as such blank-nodes from the
> pre-update graph are not necessarily the same as the blank-nodes on
> the post-update graph.
> So a mulgara instance consists of a sequence of 4-uniform hypergraphs
> defined as the graphs produced by a sequence of unification and
> restriction operations starting with an empty graph, and we call the
> resulting ordinal number of a given graph a phase.
> This idea of graph immutability (operations don't change the graph,
> but produce a new one) has formed the basis of our thinking regarding
> blank-nodes and their interaction with transactions and queries.  As
> a result your blank nodes remain valid for the duration of a
> transaction, for the moment that means holding the write-lock,
> however over the next few weeks we will be introducing the ability to
> obtain read-only transactions which will help alleviate some of your
> blank-node problems.

Sounds interesting - any description of the read-only transactions features?

I've already added basic graph pattern support to JenaMulgara so that 
conjunctive triple patterns are sent as a single operation.  That 
reduces the bnode effects so that if the app sticks to the Mulgara way 
of doing it, it can ask BGPs.


Are there plans to support language tags and handle xsd decimals (where 
they contain a fractional part)?


> Andrae
> --
> Andrae Muys
> andrae at netymon.com
> Senior RDF/SemanticWeb Consultant
> Netymon Pty Ltd
> _______________________________________________
> Mulgara-general mailing list
> Mulgara-general at mulgara.org
> http://mulgara.org/mailman/listinfo/mulgara-general

Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England

More information about the Mulgara-general mailing list