Hello Kingsley, (01)
I want to follow up on SQL views over triple data using a real life use case:
An app where users can create individuals (entities) in a dataset.
Data is modelled like this: (02)
<entity> rdfs:label "..."
<entity> a <...>
<entity> rdfs:isDefinedBy <rdf document>
<rdf document> a sioc:Item
<rdf document> sioc:has_creator <account uri>
<rdf document> dcterms:creator <user uri>
<rdf document> sioc:has_container <dataset uri> (03)
The model introduces two distinctions that are not relevant for the App and
would not be present in a relational database: (04)
-The distinction between account and user (with different URIs)
-The introduction of the RDF document as intermediary between the created
individual (<entity>) and the user/account (05)
This makes consistent updates of the data with SPARQL more complex than with
the corresponding (more application specific) RDB. (06)
I suppose it is not possible to define an application specific SQL view over
this data in Virtuoso that removes the distinctions so that: (07)
-Creation of an individual is possible by specifying label, type, and account.
The intermediary RDF document and the user URI are created and maintained
automatically.
-Updating the account of an individual automatically also updates the
dcterms:creator <user uri> triple. (08)
It seems that good, application independent, modelling has the downside of
complicating apps that use such a RDF model as data storage. I still prefer
a RDB with an app-specific schema and generation of application independent
RDF from that RDB. (09)
Regards, (010)
Michael Brunnbauer (011)
On Fri, Sep 13, 2013 at 09:47:38PM +0200, Michael Brunnbauer wrote:
>
> Hello Kingsley,
>
> On Fri, Sep 13, 2013 at 02:56:55PM -0400, Kingsley Idehen wrote:
> > >I am referring to this*or* the ability to update RDF data via a SQL view.
> > >The latter may make sense, the former not.
> > If a DBMS supports Procedure Values (or what some refer to as Table
> > Value Functions), you simply use that feature to construct a SQL View
> > that executes SPARQL 1.1 Updates against the quad store.
> >
> > Since Virtuoso has always supported Procedure Views, and it supports
> > SPARQL inside SQL, I think you can see that this is yet another non issue.
>
> SQL Table Value Functions are new to me. Let me see if I am with you.
>
> Table Value Functions are generalized, updateable views using SQL procedures ?
>
> -I have a RDB storing triples in a fixed schema and translating SPARQL
> queries to SQL
>
> -I create a view using a Table Value Function with SPARQL in the function body
>
> -I use SQL select/delete/update on that view like on a table
>
> This is impressive. You have of course the performance penalty of RDF with
> the performance penalty of RDF on top of a RDB but nethertheless: I am
> impressed.
>
> I wonder if this works out in practice. Does anybody actually do this ?
>
> Regards,
>
> Michael Brunnbauer
>
> --
> ++ Michael Brunnbauer
> ++ netEstate GmbH
> ++ Geisenhausener Stra�e 11a
> ++ 81379 M�nchen
> ++ Tel +49 89 32 19 77 80
> ++ Fax +49 89 32 19 77 89
> ++ E-Mail brunni@xxxxxxxxxxxx
> ++ http://www.netestate.de/
> ++
> ++ Sitz: M�nchen, HRB Nr.142452 (Handelsregister B M�nchen)
> ++ USt-IdNr. DE221033342
> ++ Gesch�ftsf�hrer: Michael Brunnbauer, Franz Brunnbauer
> ++ Prokurist: Dipl. Kfm. (Univ.) Markus Hendel (012)
--
++ Michael Brunnbauer
++ netEstate GmbH
++ Geisenhausener Stra�e 11a
++ 81379 M�nchen
++ Tel +49 89 32 19 77 80
++ Fax +49 89 32 19 77 89
++ E-Mail brunni@xxxxxxxxxxxx
++ http://www.netestate.de/
++
++ Sitz: M�nchen, HRB Nr.142452 (Handelsregister B M�nchen)
++ USt-IdNr. DE221033342
++ Gesch�ftsf�hrer: Michael Brunnbauer, Franz Brunnbauer
++ Prokurist: Dipl. Kfm. (Univ.) Markus Hendel (013)
pgp02MeK8Btw8.pgp
Description: PGP signature
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J (01)
|