From cbc3f81b75296bd92ebddf5acb74542d89d78b1e Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Tue, 10 Nov 2020 10:43:49 +0000 Subject: Add OWLClassAssertionAxiom to axioms handled during translation --- src/main/scala/rsacomb/RDFoxAxiomConverter.scala | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/main/scala/rsacomb') diff --git a/src/main/scala/rsacomb/RDFoxAxiomConverter.scala b/src/main/scala/rsacomb/RDFoxAxiomConverter.scala index 2d04c56..15a7cd1 100644 --- a/src/main/scala/rsacomb/RDFoxAxiomConverter.scala +++ b/src/main/scala/rsacomb/RDFoxAxiomConverter.scala @@ -14,7 +14,12 @@ import tech.oxfordsemantic.jrdfox.logic.datalog.{ TupleTableAtom, TupleTableName } -import tech.oxfordsemantic.jrdfox.logic.expression.{Term, Variable, Literal} +import tech.oxfordsemantic.jrdfox.logic.expression.{ + Term, + IRI, + Variable, + Literal +} import scala.collection.JavaConverters._ @@ -22,6 +27,7 @@ import rsacomb.SkolemStrategy import rsacomb.RDFoxRuleShards import org.semanticweb.owlapi.model.OWLSubObjectPropertyOfAxiom import org.semanticweb.owlapi.model.OWLObjectProperty +import org.semanticweb.owlapi.model.OWLClassAssertionAxiom object RDFoxAxiomConverter { @@ -79,6 +85,21 @@ class RDFoxAxiomConverter( List(Rule.create(head.asJava, body.asJava)) } + override def visit(axiom: OWLClassAssertionAxiom): List[Rule] = { + val ind = axiom.getIndividual + if (ind.isNamed) { + val term = IRI.create(ind.asOWLNamedIndividual().getIRI.getIRIString) + println("This is executed") + val cls = axiom.getClassExpression + val visitor = + new RDFoxClassExprConverter(term, unsafe, SkolemStrategy.None, suffix) + val shard = cls.accept(visitor) + List(Rule.create(shard.res.asJava, shard.ext.asJava)) + } else { + List() + } + } + def doDefault(axiom: OWLAxiom): List[Rule] = List() } // class RDFoxAxiomConverter -- cgit v1.2.3