From c3ff5305c30cdf31755972df4c3dc554d5246ae9 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Tue, 8 Dec 2020 12:22:56 +0000 Subject: Include literals in instances of `Named` internal predicate --- src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala | 12 ++++++++++-- .../uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswers.scala | 12 +++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) (limited to 'src') 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 7b4b142..0fb6c96 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/RSAOntology.scala @@ -11,6 +11,7 @@ import org.semanticweb.owlapi.model.{OWLOntology, OWLAxiom, OWLLogicalAxiom} import org.semanticweb.owlapi.model.{ OWLClass, OWLClassExpression, + OWLDataPropertyAssertionAxiom, OWLObjectProperty, OWLSubObjectPropertyOfAxiom, OWLObjectPropertyExpression, @@ -35,7 +36,8 @@ import tech.oxfordsemantic.jrdfox.logic.expression.{ Term, Variable, IRI, - Resource + Resource, + Literal } import tech.oxfordsemantic.jrdfox.logic.sparql.statement.SelectQuery @@ -117,6 +119,12 @@ class RSAOntology(val ontology: OWLOntology) { .map(implicits.RDFox.owlapiToRdfoxIri) .toList + val literals: List[Literal] = + abox + .collect { case a: OWLDataPropertyAssertionAxiom => a } + .map(_.getObject) + .map(implicits.RDFox.owlapiToRdfoxLiteral) + val concepts: List[OWLClass] = ontology.getClassesInSignature().asScala.toList @@ -288,7 +296,7 @@ class RSAOntology(val ontology: OWLOntology) { } def filteringProgram(query: ConjunctiveQuery): FilteringProgram = - new FilteringProgram(query, individuals) + new FilteringProgram(query, individuals ++ literals) lazy val canonicalModel = new CanonicalModel(this) diff --git a/src/main/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswers.scala b/src/main/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswers.scala index 327ae8e..3db5500 100644 --- a/src/main/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswers.scala +++ b/src/main/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswers.scala @@ -1,6 +1,11 @@ package uk.ac.ox.cs.rsacomb.sparql -import tech.oxfordsemantic.jrdfox.logic.expression.{IRI, Resource, Variable} +import tech.oxfordsemantic.jrdfox.logic.expression.{ + IRI, + Literal, + Resource, + Variable +} /** A collections of answers to a query. * @@ -27,8 +32,9 @@ class ConjunctiveQueryAnswers( val header = variables map (_.getName) mkString "\t" val body = answers .map(_.map { - case x: IRI => x.getIRI - case x => x.toString + case x: IRI => x.getIRI + case x: Literal => x.getLexicalForm + case x => x.toString }.mkString("\t")) .mkString("\n") s"$header\n$body" -- cgit v1.2.3