From 44b8e1c8c724bf7f62f2b567548b941f88a31dc6 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Sun, 3 Oct 2021 10:21:10 +0100 Subject: Fix compilation errors --- src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala | 5 ++--- .../ac/ox/cs/rsacomb/filtering/FilteringProgram.scala | 12 ++++-------- .../scala/uk/ac/ox/cs/rsacomb/ontology/Ontology.scala | 14 ++++++++++---- .../uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQuery.scala | 19 +++++++++++-------- 4 files changed, 27 insertions(+), 23 deletions(-) (limited to 'src/main/scala/uk') diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala index 21e0506..275f523 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala @@ -114,9 +114,8 @@ object RSAOntology { def filteringProgram(query: ConjunctiveQuery): FilteringProgram = Logger.timed( { - val filter = - FilteringProgram(FilterType.REVISED, CanonGraph, FilterGraph(query)) - filter(query) + val filter = FilteringProgram(FilterType.REVISED) + filter(CanonGraph, FilterGraph(query), query) }, "Generating filtering program", Logger.DEBUG diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/filtering/FilteringProgram.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/filtering/FilteringProgram.scala index 3015def..075954e 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/filtering/FilteringProgram.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/filtering/FilteringProgram.scala @@ -36,7 +36,7 @@ object FilteringProgram extends Versioned[FilterType] { import FilterType._ - type Result = (ConjunctiveQuery) => FilteringProgram + type Result = (IRI, IRI, ConjunctiveQuery) => FilteringProgram /** Returns the right type of filtering program builder. * @@ -46,14 +46,10 @@ object FilteringProgram extends Versioned[FilterType] { * * @return the right type of filtering program builder. */ - def apply( - filter: FilterType, - source: IRI, - target: IRI - ): (ConjunctiveQuery) => FilteringProgram = + def apply(filter: FilterType): Result = filter match { - case NAIVE => NaiveFilteringProgram(source, target, _) - case REVISED => RevisedFilteringProgram(source, target, _) + case NAIVE => NaiveFilteringProgram(_, _, _) + case REVISED => RevisedFilteringProgram(_, _, _) } } diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/ontology/Ontology.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/ontology/Ontology.scala index 1f44ce1..8d46646 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/ontology/Ontology.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/ontology/Ontology.scala @@ -29,8 +29,13 @@ import org.semanticweb.owlapi.apibinding.OWLManager import org.semanticweb.owlapi.model.{OWLOntology, OWLAxiom, OWLLogicalAxiom} import org.semanticweb.owlapi.model.{OWLObjectPropertyExpression} import org.semanticweb.owlapi.reasoner.structural.StructuralReasonerFactory -import tech.oxfordsemantic.jrdfox.logic.datalog.Rule -import tech.oxfordsemantic.jrdfox.logic.expression.{Resource, Term, Variable} +import tech.oxfordsemantic.jrdfox.logic.datalog.{Rule, TupleTableName} +import tech.oxfordsemantic.jrdfox.logic.expression.{ + IRI, + Resource, + Term, + Variable +} import uk.ac.ox.cs.rsacomb.approximation.Approximation import uk.ac.ox.cs.rsacomb.converter._ @@ -143,10 +148,11 @@ object Ontology { RSA.U(varY) ) :: rules /* Load facts and rules from ontology */ - RDFoxUtil.addFacts(data, facts) + val ttn = IRI.create(TupleTableName.DEFAULT_TRIPLES.getName) + RDFoxUtil.addFacts(data, ttn, facts) RDFoxUtil.addRules(data, rules) /* Load data files */ - RDFoxUtil.addData(data, datafiles: _*) + RDFoxUtil.addData(data, ttn, datafiles: _*) /* Build the graph */ val query = "SELECT ?X ?Y WHERE { ?X rsa:E ?Y }" diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQuery.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQuery.scala index 73da80f..105f425 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQuery.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQuery.scala @@ -100,12 +100,12 @@ class ConjunctiveQuery( /** Returns the query body as a sequence of atoms (triples). */ def atoms(graph: TupleTableName): List[TupleTableAtom] = - where.collect { case c: ConjunctionPattern => - c.getConjuncts.collect { case t: TriplePattern => - TupleTableAtom - .create(graph, t.getSubject, t.getPredicate, t.getObject) + where + .asInstanceOf[ConjunctionPattern] + .getConjuncts + .collect { case t: TriplePattern => + TupleTableAtom.create(graph, t.getSubject, t.getPredicate, t.getObject) } - }.flatten // where match { // case b: ConjunctionPattern => { // b.getConjuncts.toList.flatMap { conj: QueryPattern => @@ -123,13 +123,16 @@ class ConjunctiveQuery( /** Returns the full collection of variables involved in the query. */ val variables: List[Variable] = - where.collect { case c: ConjunctionPattern => - c.getConjuncts.collect { case t: TriplePattern => + where + .asInstanceOf[ConjunctionPattern] + .getConjuncts + .collect { case t: TriplePattern => Set(t.getSubject, t.getPredicate, t.getObject).collect { case v: Variable => v } } - }.distinct + .flatten + .distinct // (where match { // case b: ConjunctionPattern => { // b.getConjuncts.toList.flatMap { conj: QueryPattern => -- cgit v1.2.3