From 6b4226c41ec2a2439fb44a312ccaff01769e8212 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Tue, 1 Jun 2021 11:20:39 +0100 Subject: Fix minor compilation errors --- .../uk/ac/ox/cs/rsacomb/converter/Normalizer.scala | 25 ++++++++++------------ 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'src/main/scala/uk/ac/ox/cs/rsacomb/converter') diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala index 5329f26..4b298f4 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala @@ -4,6 +4,7 @@ import org.semanticweb.owlapi.apibinding.OWLManager import org.semanticweb.owlapi.model._ import uk.ac.ox.cs.rsacomb.util.Logger +import uk.ac.ox.cs.rsacomb.RSAOntology object Normalizer { @@ -25,12 +26,6 @@ class Normalizer() { /** Simplify conversion between Java and Scala collections */ import uk.ac.ox.cs.rsacomb.implicits.JavaCollections._ - private var counter = -1 - def freshOWLClass(): OWLClass = { - counter += 1 - factory.getOWLClass(s"X$counter") - } - /** Statistics */ var discarded = 0 var shifted = 0 @@ -58,7 +53,7 @@ class Normalizer() { * C c D -> { C c X, X c D } */ case _ if !sub.isOWLClass && !sup.isOWLClass => { - val cls = freshOWLClass() + val cls = RSAOntology.getFreshOWLClass() Seq( factory.getOWLSubClassOfAxiom(sub, cls), factory.getOWLSubClassOfAxiom(cls, sup) @@ -79,7 +74,7 @@ class Normalizer() { if (conj.isOWLClass) (acc1 :+ conj, acc2) else { - val cls = freshOWLClass() + val cls = RSAOntology.getFreshOWLClass() ( acc1 :+ cls, acc2 :+ factory.getOWLSubClassOfAxiom(conj, cls) @@ -138,7 +133,7 @@ class Normalizer() { */ case (sub: OWLObjectSomeValuesFrom, _) if !sub.getFiller.isOWLClass => { - val cls = freshOWLClass() + val cls = RSAOntology.getFreshOWLClass() Seq( factory.getOWLSubClassOfAxiom(sub.getFiller, cls), factory.getOWLSubClassOfAxiom( @@ -153,7 +148,7 @@ class Normalizer() { */ case (_, sup: OWLObjectSomeValuesFrom) if !sup.getFiller.isOWLClass => { - val cls = freshOWLClass() + val cls = RSAOntology.getFreshOWLClass() Seq( factory.getOWLSubClassOfAxiom(cls, sup.getFiller), factory.getOWLSubClassOfAxiom( @@ -298,7 +293,7 @@ class Normalizer() { ) case (_, sup: OWLObjectMaxCardinality) if sup.getCardinality == 1 && !sup.getFiller.isOWLClass => { - val cls = freshOWLClass() + val cls = RSAOntology.getFreshOWLClass() Seq( factory.getOWLSubClassOfAxiom(cls, sup.getFiller), factory.getOWLSubClassOfAxiom( @@ -488,7 +483,7 @@ class Normalizer() { * C(a) -> { X(a), X c C } */ case a: OWLClassAssertionAxiom if !a.getClassExpression.isOWLClass => { - val cls = freshOWLClass() + val cls = RSAOntology.getFreshOWLClass() Seq( factory.getOWLClassAssertionAxiom(cls, a.getIndividual), factory.getOWLSubClassOfAxiom(cls, a.getClassExpression) @@ -532,8 +527,10 @@ class Normalizer() { sub: OWLClassExpression, sup: OWLObjectUnionOf ): Seq[OWLLogicalAxiom] = { - val body = sub.asConjunctSet.map((atom) => (atom, freshOWLClass())) - val head = sup.asDisjunctSet.map((atom) => (atom, freshOWLClass())) + val body = + sub.asConjunctSet.map((atom) => (atom, RSAOntology.getFreshOWLClass())) + val head = + sup.asDisjunctSet.map((atom) => (atom, RSAOntology.getFreshOWLClass())) /* Update statistics */ shifted += 1 -- cgit v1.2.3 From 53646646f924887768688794aee46874ed194673 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Tue, 20 Jul 2021 15:09:20 +0100 Subject: Generalize dependency graph generation The code to generate the dependency graph has been moved in the companion object of the generic OWL 2 ontology wrapper Ontology. This signals that we could potentially build a dependency graph for any ontology (and not only RSA ontology). Moreover, a dependency graph can be build for an Ontology object or an arbitrary TBox and Abox. --- .../uk/ac/ox/cs/rsacomb/converter/Normalizer.scala | 17 +++++++++-------- .../uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala | 13 +++++++------ 2 files changed, 16 insertions(+), 14 deletions(-) (limited to 'src/main/scala/uk/ac/ox/cs/rsacomb/converter') diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala index 4b298f4..80dd222 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/Normalizer.scala @@ -5,6 +5,7 @@ import org.semanticweb.owlapi.model._ import uk.ac.ox.cs.rsacomb.util.Logger import uk.ac.ox.cs.rsacomb.RSAOntology +import uk.ac.ox.cs.rsacomb.RSAUtil object Normalizer { @@ -53,7 +54,7 @@ class Normalizer() { * C c D -> { C c X, X c D } */ case _ if !sub.isOWLClass && !sup.isOWLClass => { - val cls = RSAOntology.getFreshOWLClass() + val cls = RSAUtil.getFreshOWLClass() Seq( factory.getOWLSubClassOfAxiom(sub, cls), factory.getOWLSubClassOfAxiom(cls, sup) @@ -74,7 +75,7 @@ class Normalizer() { if (conj.isOWLClass) (acc1 :+ conj, acc2) else { - val cls = RSAOntology.getFreshOWLClass() + val cls = RSAUtil.getFreshOWLClass() ( acc1 :+ cls, acc2 :+ factory.getOWLSubClassOfAxiom(conj, cls) @@ -133,7 +134,7 @@ class Normalizer() { */ case (sub: OWLObjectSomeValuesFrom, _) if !sub.getFiller.isOWLClass => { - val cls = RSAOntology.getFreshOWLClass() + val cls = RSAUtil.getFreshOWLClass() Seq( factory.getOWLSubClassOfAxiom(sub.getFiller, cls), factory.getOWLSubClassOfAxiom( @@ -148,7 +149,7 @@ class Normalizer() { */ case (_, sup: OWLObjectSomeValuesFrom) if !sup.getFiller.isOWLClass => { - val cls = RSAOntology.getFreshOWLClass() + val cls = RSAUtil.getFreshOWLClass() Seq( factory.getOWLSubClassOfAxiom(cls, sup.getFiller), factory.getOWLSubClassOfAxiom( @@ -293,7 +294,7 @@ class Normalizer() { ) case (_, sup: OWLObjectMaxCardinality) if sup.getCardinality == 1 && !sup.getFiller.isOWLClass => { - val cls = RSAOntology.getFreshOWLClass() + val cls = RSAUtil.getFreshOWLClass() Seq( factory.getOWLSubClassOfAxiom(cls, sup.getFiller), factory.getOWLSubClassOfAxiom( @@ -483,7 +484,7 @@ class Normalizer() { * C(a) -> { X(a), X c C } */ case a: OWLClassAssertionAxiom if !a.getClassExpression.isOWLClass => { - val cls = RSAOntology.getFreshOWLClass() + val cls = RSAUtil.getFreshOWLClass() Seq( factory.getOWLClassAssertionAxiom(cls, a.getIndividual), factory.getOWLSubClassOfAxiom(cls, a.getClassExpression) @@ -528,9 +529,9 @@ class Normalizer() { sup: OWLObjectUnionOf ): Seq[OWLLogicalAxiom] = { val body = - sub.asConjunctSet.map((atom) => (atom, RSAOntology.getFreshOWLClass())) + sub.asConjunctSet.map((atom) => (atom, RSAUtil.getFreshOWLClass())) val head = - sup.asDisjunctSet.map((atom) => (atom, RSAOntology.getFreshOWLClass())) + sup.asDisjunctSet.map((atom) => (atom, RSAUtil.getFreshOWLClass())) /* Update statistics */ shifted += 1 diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala index 3fac46f..1adf325 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/RDFoxConverter.scala @@ -11,6 +11,7 @@ import tech.oxfordsemantic.jrdfox.logic.datalog.{ TupleTableAtom } import tech.oxfordsemantic.jrdfox.logic.expression.{Term, IRI, FunctionCall} +import uk.ac.ox.cs.rsacomb.RSAUtil import uk.ac.ox.cs.rsacomb.RSAOntology import uk.ac.ox.cs.rsacomb.suffix.{Empty, Inverse, RSASuffix} import uk.ac.ox.cs.rsacomb.util.{RSA, RDFoxUtil} @@ -143,14 +144,14 @@ trait RDFoxConverter { } case a: OWLSubObjectPropertyOfAxiom => { - val term1 = RSAOntology.genFreshVariable() + val term1 = RSAUtil.genFreshVariable() val body = convert(a.getSubProperty, term, term1, suffix) val head = convert(a.getSuperProperty, term, term1, suffix) ResultR(List(Rule.create(head, body))) } case a: OWLSubDataPropertyOfAxiom => { - val term1 = RSAOntology.genFreshVariable() + val term1 = RSAUtil.genFreshVariable() val body = convert(a.getSubProperty, term, term1, suffix) val head = convert(a.getSuperProperty, term, term1, suffix) ResultR(List(Rule.create(head, body))) @@ -160,7 +161,7 @@ trait RDFoxConverter { convert(a.asOWLSubClassOfAxiom, term, unsafe, skolem, suffix) case a: OWLObjectPropertyRangeAxiom => { - val term1 = RSAOntology.genFreshVariable() + val term1 = RSAUtil.genFreshVariable() val (res, ext) = convert(a.getRange, term, unsafe, skolem, suffix) val prop = convert(a.getProperty, term1, term, suffix) ResultR(List(Rule.create(res, prop :: ext))) @@ -327,7 +328,7 @@ trait RDFoxConverter { case e: OWLObjectSomeValuesFrom => { val cls = e.getFiller() val role = e.getProperty() - val varX = RSAOntology.genFreshVariable + val varX = RSAUtil.genFreshVariable val (bind, term1) = skolem match { case NoSkolem => (None, varX) case c: Constant => (None, c.iri) @@ -354,7 +355,7 @@ trait RDFoxConverter { // Computes the result of rule skolemization. Depending on the used // technique it might involve the introduction of additional atoms, // and/or fresh constants and variables. - val varX = RSAOntology.genFreshVariable + val varX = RSAUtil.genFreshVariable val (bind, term1) = skolem match { case NoSkolem => (None, varX) case c: Constant => (None, c.iri) @@ -379,7 +380,7 @@ trait RDFoxConverter { s"Class expression '$e' has cardinality restriction != 1." ) val vars @ (y :: z :: _) = - Seq(RSAOntology.genFreshVariable(), RSAOntology.genFreshVariable()) + Seq(RSAUtil.genFreshVariable(), RSAUtil.genFreshVariable()) val cls = e.getFiller val role = e.getProperty val (res, ext) = vars.map(convert(cls, _, unsafe, skolem, suffix)).unzip -- cgit v1.2.3