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/>