Thanks all.  To acknowledge some points:

  1. Yes, OWL rules per se aren’t meant as constraints.  Nonetheless,
constraints against a graph can be useful, and enforcement at
assertion-time for some (sub)set of those can also be useful.

  2. Notwithstanding the fact that it’s valid (and even useful, to
effectively assert equivalence) under OWL to assert a non-DAG over
:subClassOf edges (the shorthand I’ll use to discuss triples with
:subClassOf as the predicate), it can certainly be useful to disallow that
for some graphs.

Martynas, thank you - https://github.com/spinrdf/spinrdf looks promising!
I’m reading the docs now.  Can you comment on whether it can be set up to
automatically run a rule at the time of SPARQL UPDATE, and reject the
update if the rule would be violated by it?

Thanks!
—Jeff


[image: email_sig_logo_vert.png]

Jeff Lerman

AI Scientist

Mobile: 510-495-4621

www.invitae.com

[image: email_sig_social_linkedin.png]
<https://www.linkedin.com/in/jefflerman/>


On Tue, Aug 13, 2019 at 8:08 AM Martynas Jusevičius <[email protected]>
wrote:

> You could also SPARQL as SPIN constraints:
> https://www.w3.org/Submission/spin-modeling/#spin-constraints
>
> Can be implemented using SPIN API: https://github.com/spinrdf/spinrdf
>
> On Tue, Aug 13, 2019 at 4:07 PM Andy Seaborne <[email protected]> wrote:
> >
> >
> >
> > On 13/08/2019 06:31, Lorenz Buehmann wrote:
> > > The rules in Jena are not meant to be constraints. there are constraint
> > > language for RDF like SHACL, SHEX - there is(was?) as SHACL API from
> > > TopQuadrant [1] but even better, Andy has implemented something in that
> > > direction quite recently [2]. I'm sure he can tell you more about the
> > > current status and whether it is appropriate for your use case.
> >
> > Yes, that's a goal.  But not in the first release and the use case here
> > of "not a DAG" is interestingly special.
> >
> > Initial, the functionality is:
> >
> > 1/ Command line - "shacl validate" and "shacl parse"
> > 2/ Fuseki validation service - send shapes, get back report on a
> > specific graph
> > 3/ API - for a single graph, execute constraints on a transaction and
> > abort on shape violation.
> >
> > There are no substantive extensions to SHACL core and SPARQL. We can
> > build up a library of extensions if there are constraints that are
> > better in java, close to the data, then if they form common needs, we
> > can add those (contributions welcome!)
> >
> > And there ought to be a documented a way to load custom ones - you can
> > do it with the Jena initialization jar loading but there's no
> documentation.
> >
> > For your example:
> >
> > A/ You want a dataset as target - thoughts on that in [2] (it isn't
> > implemented). Feature 3 is only one graph at this stage.
> >
> > B/ The validator will need to be a SPARQL one, its not in the SHACL core
> > set of operations.
> >
> >      Andy
> >
> > > [1] https://github.com/TopQuadrant/shacl
> > >
> > > [2] https://afs.github.io/shacl-datasets.html
> > >
> > > On 13.08.19 05:09, Jeff Lerman wrote:
> > >> Is there any way, with Jena (either the distributed version or via any
> > >> additional software anyone is aware of) to implement enforcement of
> > >> constraints on assertions, at the time of assertion?
> > >>
> > >> In particular, it’d be very helpful to be able to protect the
> graph(s) from
> > >> any assertion that breaks the assumption (in RDFS and OWL reasoners)
> that
> > >> rtfs:subClassOf “edges” form a directed acyclic graph.  Ideally, an
> UPDATE
> > >> (or other operation adding content to the store) would fail if that
> rule
> > >> (and maybe a small collection of similarly “basic” rules) would be
> violated
> > >> by storing the updated data.  For example, this would fail with an
> error:
> > >>
> > >> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> > >> prefix owl: <http://www.w3.org/2002/07/owl#>
> > >> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> > >> PREFIX local: <http://localhost:8080/fuseki/jcl_test/data/>
> > >>
> > >> INSERT DATA {
> > >>    GRAPH local:notadag {
> > >>      <c> rdfs:subClassOf <d> .
> > >>      <d> rdfs:subClassOf <c> .
> > >>    }
> > >> }
> > >>
> > >>
> > >> Thanks,
> > >> —Jeff
> > >>
> > >>
> > >>
> > >> [image: email_sig_logo_vert.png]
> > >>
> > >> Jeff Lerman
> > >>
> > >> AI Scientist
> > >>
> > >> Mobile: 510-495-4621
> > >>
> > >> www.invitae.com
> > >>
> > >> [image: email_sig_social_linkedin.png]
> > >> <https://www.linkedin.com/in/jefflerman/>
> > >>
> > >
>

Reply via email to