aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/rsacomb/RDFoxPropertyExprConverter.scala
blob: 78ac98caec2643b4464f1f8d8d2e816ff0b0776c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package rsacomb

import org.semanticweb.owlapi.model.{OWLPropertyExpression, OWLObjectProperty}
import org.semanticweb.owlapi.model.OWLPropertyExpressionVisitorEx

import tech.oxfordsemantic.jrdfox.logic.{TupleTableName}
import tech.oxfordsemantic.jrdfox.logic.{Atom, Term, Variable, Literal}

import rsacomb.SkolemStrategy
import org.semanticweb.owlapi.model.OWLObjectInverseOf

class RDFoxPropertyExprConverter(term1 : Term, term2 : Term, skolem : SkolemStrategy)
  extends OWLPropertyExpressionVisitorEx[List[Atom]]
{

  override
  def visit(expr : OWLObjectProperty) : List[Atom] = {
    val name = expr.getIRI.getIRIString
    List(Atom.create(TupleTableName.create(name), term1, term2))
  }

  override
  def visit(expr : OWLObjectInverseOf) : List[Atom] = {
    val name = expr.getInverse.getNamedProperty.getIRI.getIRIString;
    List(Atom.create(TupleTableName.create(name ++ "_inv"), term1, term2))
  }

  def doDefault(expr : OWLPropertyExpression) : List[Atom] = List()

} // class RDFoxPropertyExprConverter