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.


[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