From a808ae8b3dd945fd7aa485cd02bfb7229cb8331d Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Fri, 4 Dec 2020 17:09:30 +0000 Subject: Simplify duplication of skolemization strategy --- .../uk/ac/ox/cs/rsacomb/converter/SkolemStrategy.scala | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/main/scala/uk/ac') diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/SkolemStrategy.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/SkolemStrategy.scala index 587db91..2142ff3 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/converter/SkolemStrategy.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/converter/SkolemStrategy.scala @@ -4,7 +4,9 @@ import org.semanticweb.owlapi.model.OWLAxiom import tech.oxfordsemantic.jrdfox.logic.Datatype import tech.oxfordsemantic.jrdfox.logic.expression.{Literal, IRI} -sealed trait SkolemStrategy +sealed trait SkolemStrategy { + def dup(a: OWLAxiom): SkolemStrategy +} /** No skolemization. * @@ -17,7 +19,9 @@ sealed trait SkolemStrategy * R(x,y), B(y) -> B(x) * }}} */ -case object NoSkolem extends SkolemStrategy +case object NoSkolem extends SkolemStrategy { + def dup(a: OWLAxiom): SkolemStrategy = this +} /** Functional skolemization * @@ -46,9 +50,9 @@ case object NoSkolem extends SkolemStrategy * @note this requirement is not enforced by RDFox, that will fail * silently if a string argument is omitted. */ -class Standard(var axiom: OWLAxiom)(implicit toString: (OWLAxiom) => String) +case class Standard(axiom: OWLAxiom)(implicit toString: (OWLAxiom) => String) extends SkolemStrategy { - def dup(a: OWLAxiom) = new Standard(a)(toString) + def dup(_axiom: OWLAxiom): Standard = copy(axiom = _axiom)(toString) lazy val literal = Literal.create(s"f_${toString(axiom)}", Datatype.XSD_STRING) } @@ -69,8 +73,8 @@ class Standard(var axiom: OWLAxiom)(implicit toString: (OWLAxiom) => String) * for `c`, fresh constant '''uniquely''' associated with the input * axiom */ -class Constant(var axiom: OWLAxiom)(implicit toString: (OWLAxiom) => String) +case class Constant(axiom: OWLAxiom)(implicit toString: (OWLAxiom) => String) extends SkolemStrategy { - def dup(a: OWLAxiom) = new Constant(a)(toString) + def dup(_axiom: OWLAxiom): Constant = copy(axiom = _axiom)(toString) lazy val iri = IRI.create(s"c_${toString(axiom)}") } -- cgit v1.2.3