Re: examples of transactional systems

On 4/22/17 3:29 PM, Pano Maria wrote:
> Hi Kingsley,
>
> That's what I'm referring to indeed.
> Thanks!
>
> Pano

Pano,

A little correction in my earlier post, the "C" is ACID is for
"Consistency" not "Concurrency" i.e, (A)tomicity, (C)onsistency,
(I)solation, and (D)urability of transactions. Thus, isolation is the
attribute that deals with concurrency control modalities (optimistic and
pessimistic) which are scoped to rows, tables, or pages.
 
Anyway, here how it works with regards to Virtuoso (our product which is
a Hybrid RDBMS that supports both SQL and SPARQL):

Via ODBC, JDBC, ADO.NET, OLE-DB, RDF4J, Jena, SQL, or SQL Stored
Procedures you can set ACID Isolation Levels using ANSI SQL standard
directives [1] for Read Uncommitted (1), Committed (2), Repeatable Read
(3), and Serializable (4).  For example: set isolation= 2.

You can also set a preferred Isolation default for Virtuoso Server
instances via its Initialization Configuration file (a/k/a INI file).


To enable the above, using a Virtuoso SPARQL endpoint, you will need to
use leverage the "log_enable" pragma  [2]. For example:

• DEFINE log_enable () -- no transaction logging and no autocommits
• DEFINE log_enable (2,1) -- disables transaction logging but enables an
automcommit per IUD operation on a triple
• DEFINE log_enable (3,1) -- enables transaction logging and enables an
automcommit per IUD operation on a triple

Additional modalities (Shared or Exclusive Locking) with regards to
(I)solation level related concurrency are available for interactions via
ODBC, JDBC, ADO.NET, OLE-DB, RDF4J, Jena, SQL, or SQL Stored Procedures
using SPARQL Views inside SQL.

By default, Virtuoso will operate in a Shared Locking mode with
escalation to page locks triggered by a configurable lock buildup
threshold (PCT_LOCK_ESCALATION setting in INI). If you want to enforce
Row Level Locking, then like standard SQL you would append "FOR UPDATE"
to you IUD query. Here is an example:

-- Clear Named Graph
SPARQL CLEAR GRAPH <iud-test> ;

-- Perform Update where rows associated with affected relations are
locked at the Row Level in Virtuoso's underlying RDF_QUAD table

SELECT * FROM (
                SPARQL
                DEFINE output:format "TTL"
                PREFIX owl:<http://www.w3.org/2002/07/owl#>

                DELETE { GRAPH <iud-test>  { ?s ?p ?o } }
                WHERE { GRAPH <iud-test>  { ?s ?p ?o } };

                INSERT { GRAPH <iud-test> { ?s ?p <o_1_g_1> } }
                WHERE
                {
                    GRAPH ?g {
                              ?s ?p <o_1_g_1>.
                              BIND(<o_1_g_1> as ?o) .
                              FILTER (?p != owl:sameAs)
                            }
                }
) AS RDFVIEW FOR UPDATE ;


-- Verification Test

SELECT DISTINCT  *
FROM ( SPARQL SELECT * FROM <iud-test>
                         WHERE {?s ?p ?o}
                        )  AS RDFVIEW  ;



Links:

[1] http://docs.openlinksw.com/virtuoso/isolation/.

[2] http://docs.openlinksw.com/virtuoso/fn_log_enable/

Kingsley
>
>
> On Apr 22, 2017 21:06, Kingsley Idehen <kidehen@openlinksw.com> wrote:
>
>     On 4/22/17 4:52 AM, Pano Maria wrote:
>
>         Hi all,
>          
>         I'm looking for examples of read/write, transactional systems that use RDF as its data framework.
>         Possibly those using LDP or some other method of applying R/W transactions. I'm particularly interested in applications in an enterprise setting with a distributed nature.
>
>         (I know about, and am following, the progress of solid.)
>
>         I would be eternally grateful if you could point me towards any examples!
>
>         Kind regards,
>
>         Pano Maria
>
>         Janssoniuslaan 80, 3528 AJ Utrecht, The Netherlands
>         M:+31 (0)6 24270233 | pano.maria@taxonic.com <mailto:pano.maria@taxonic.com> | www.taxonic.com <http://www.taxonic.com>
>         Registered office in The Hague, The Netherlands
>         Registration Number Chamber of Commerce: 54529190
>
>
>     Hi Pano,
>
>     Are you referring to solutions that adhere to ACID (Atomicity,
>     Concurrency, Isolation, and Durability) semantics, in the context
>     of Insert, Update, and Delete operations ?
>
>
>     -- 
>     Regards,
>
>     Kingsley Idehen       
>     Founder & CEO 
>     OpenLink Software   (Home Page: http://www.openlinksw.com)
>
>     Weblogs (Blogs):
>     Legacy Blog: http://www.openlinksw.com/blog/~kidehen/
>     <http://www.openlinksw.com/blog/%7Ekidehen/>
>     Blogspot Blog: http://kidehen.blogspot.com
>     Medium Blog: https://medium.com/@kidehen
>
>     Profile Pages:
>     Pinterest: https://www.pinterest.com/kidehen/
>     Quora: https://www.quora.com/profile/Kingsley-Uyi-Idehen
>     Twitter: https://twitter.com/kidehen
>     Google+: https://plus.google.com/+KingsleyIdehen/about
>     LinkedIn: http://www.linkedin.com/in/kidehen
>
>     Web Identities (WebID):
>     Personal: http://kingsley.idehen.net/dataspace/person/kidehen#this
>             : http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this
>
>


-- 
Regards,

Kingsley Idehen       
Founder & CEO 
OpenLink Software   (Home Page: http://www.openlinksw.com)

Weblogs (Blogs):
Legacy Blog: http://www.openlinksw.com/blog/~kidehen/
Blogspot Blog: http://kidehen.blogspot.com
Medium Blog: https://medium.com/@kidehen

Profile Pages:
Pinterest: https://www.pinterest.com/kidehen/
Quora: https://www.quora.com/profile/Kingsley-Uyi-Idehen
Twitter: https://twitter.com/kidehen
Google+: https://plus.google.com/+KingsleyIdehen/about
LinkedIn: http://www.linkedin.com/in/kidehen

Web Identities (WebID):
Personal: http://kingsley.idehen.net/dataspace/person/kidehen#this
        : http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this

Received on Monday, 24 April 2017 13:39:30 UTC