Hi,
I’m trying to limit the number cardinality of a predicate on objects. Eg. users can have max 100 saved cases.
Stardog 4.2.3 won’t let me insert any users when I have that restriction, even though I’m not breaking it. The errors from stardog:
[ERROR] com.complexible.tx.api.impl.DefaultTransaction - There was a fatal failure during preparation of 3e9cf482-0222-449c-a10b-df9126941ad1
java.lang.StackOverflowError: null
at com.complexible.stardog.plan.PlanNodes$FindVisitor.visit(PlanNodes.java:902)
at com.complexible.stardog.plan.FilterPlanNodeImpl.accept(FilterPlanNodeImpl.java:75)
at com.complexible.stardog.plan.BasePlanNodeVisitor.unaryVisit(BasePlanNodeVisitor.java:43)
at com.complexible.stardog.plan.PlanNodes$FindVisitor.visit(PlanNodes.java:911)
at com.complexible.stardog.plan.FilterPlanNodeImpl.accept(FilterPlanNodeImpl.java:75)
at com.complexible.stardog.plan.BasePlanNodeVisitor.unaryVisit(BasePlanNodeVisitor.java:43)
at com.complexible.stardog.plan.PlanNodes$FindVisitor.visit(PlanNodes.java:911)
at com.complexible.stardog.plan.FilterPlanNodeImpl.accept(FilterPlanNodeImpl.java:75)
at com.complexible.stardog.plan.BasePlanNodeVisitor.unaryVisit(BasePlanNodeVisitor.java:43)
at com.complexible.stardog.plan.PlanNodes$FindVisitor.visit(PlanNodes.java:911)
at com.complexible.stardog.plan.FilterPlanNodeImpl.accept(FilterPlanNodeImpl.java:75)
....
The data
@prefix arkiv: <http://www.arkivverket.no/standarder/noark5/arkivstruktur/> .
<http://data.einnsyn.no/bruker/0bd4896d-82a5-4758-9e3c-f88a90f2743d> a <http://data.einnsyn.no/brukermeta/Adminbruker> ;
<http://data.einnsyn.no/brukermeta/brukernavn> "bruker" ;
<http://data.einnsyn.no/brukermeta/epost> "bruker@example.org" ;
<http://data.einnsyn.no/brukermeta/telefon> "12345678" ;
<http://data.einnsyn.no/brukermeta/oppdatertDato> "2017-02-28T13:27:24.977+01:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
<http://data.einnsyn.no/brukermeta/passord> "abc" ;
<http://data.einnsyn.no/brukermeta/opprettetDato> "2017-02-28T13:27:24.977+01:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
a <http://data.einnsyn.no/brukermeta/Bruker> .
And the ICV file, which I would attach instead of pasting here, but I am only allowed to attach images
@prefix : <http://data.einnsyn.no/brukermeta/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://data.einnsyn.no/brukermeta/> .
<http://data.einnsyn.no/brukermeta/> rdf:type owl:Ontology .
#################################################################
# Object Properties
#################################################################
### http://data.einnsyn.no/brukermeta/forsendelsesmåte
:forsendelsesmåte rdf:type owl:ObjectProperty .
### http://data.einnsyn.no/brukermeta/lagretSak
:lagretSak rdf:type owl:ObjectProperty .
### http://data.einnsyn.no/brukermeta/lagretSøk
:lagretSøk rdf:type owl:ObjectProperty .
### http://data.einnsyn.no/brukermeta/rettetMot
:rettetMot rdf:type owl:ObjectProperty .
### http://data.einnsyn.no/brukermeta/virksomhet
:virksomhet rdf:type owl:ObjectProperty .
#################################################################
# Data properties
#################################################################
### http://data.einnsyn.no/brukermeta/brukernavn
:brukernavn rdf:type owl:DatatypeProperty ;
rdfs:range xsd:string .
### http://data.einnsyn.no/brukermeta/epost
:epost rdf:type owl:DatatypeProperty ;
rdfs:range xsd:string .
### http://data.einnsyn.no/brukermeta/passord
:passord rdf:type owl:DatatypeProperty ;
rdfs:range xsd:string .
### http://data.einnsyn.no/brukermeta/telefon
:telefon rdf:type owl:DatatypeProperty ;
rdfs:range xsd:string .
#################################################################
# Classes
#################################################################
### http://data.einnsyn.no/brukermeta/Adminbruker
:Adminbruker rdf:type owl:Class ;
rdfs:subClassOf :Bruker ,
[ rdf:type owl:Restriction ;
owl:onProperty :telefon ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:string
] .
### http://data.einnsyn.no/brukermeta/Bruker
:Bruker rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty :brukernavn ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:string
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :epost ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:string
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :passord ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:string
] ;
owl:hasKey ( :brukernavn
) .
### http://data.einnsyn.no/brukermeta/Forsendelsesmåte
:Forsendelsesmåte rdf:type owl:Class .
### http://data.einnsyn.no/brukermeta/Innsynskrav
:Innsynskrav rdf:type owl:Class ;
rdfs:subClassOf [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
owl:onProperty :forsendelsesmåte ;
owl:allValuesFrom :Forsendelsesmåte
]
[ rdf:type owl:Restriction ;
owl:onProperty :forsendelsesmåte ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass :Forsendelsesmåte
]
) ;
rdf:type owl:Class
] .
### http://data.einnsyn.no/brukermeta/Innsynskravdel
:Innsynskravdel rdf:type owl:Class ;
rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty :rettetMot ;
owl:allValuesFrom <http://www.arkivverket.no/standarder/noark5/arkivstruktur/Registrering>
] .
### http://data.einnsyn.no/brukermeta/LagretSak
:LagretSak rdf:type owl:Class .
### http://data.einnsyn.no/brukermeta/LagretSøk
:LagretSøk rdf:type owl:Class .
### http://data.einnsyn.no/brukermeta/Sluttbruker
:Sluttbruker rdf:type owl:Class ;
rdfs:subClassOf :Bruker ,
[ rdf:type owl:Restriction ;
owl:onProperty :lagretSak ;
owl:maxCardinality "100"^^xsd:nonNegativeInteger
] .
### http://data.einnsyn.no/brukermeta/Virsomhetsbruker
:Virsomhetsbruker rdf:type owl:Class ;
rdfs:subClassOf :Bruker ,
[ rdf:type owl:Restriction ;
owl:onProperty :virksomhet ;
owl:cardinality "1"^^xsd:nonNegativeInteger
] ,
[ rdf:type owl:Restriction ;
owl:onProperty :telefon ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:string
] .
### http://www.arkivverket.no/standarder/noark5/arkivstruktur/Registrering
<http://www.arkivverket.no/standarder/noark5/arkivstruktur/Registrering> rdf:type owl:Class .
### Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi