From 43234b253a74e71977ce29d0c7e2947e64fc6966 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Tue, 10 Nov 2020 17:16:02 +0000 Subject: Fix SKOLEM call creation during function skolemization The first argument of a SKOLEM call needs to be a literal string. Note that this is not enforced in any way by RDFox, that will fail silently. --- src/main/scala/rsacomb/RDFoxClassExprConverter.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/main/scala/rsacomb/RDFoxClassExprConverter.scala') diff --git a/src/main/scala/rsacomb/RDFoxClassExprConverter.scala b/src/main/scala/rsacomb/RDFoxClassExprConverter.scala index de0f623..7f44ab1 100644 --- a/src/main/scala/rsacomb/RDFoxClassExprConverter.scala +++ b/src/main/scala/rsacomb/RDFoxClassExprConverter.scala @@ -20,6 +20,7 @@ import tech.oxfordsemantic.jrdfox.logic.datalog.{ } import tech.oxfordsemantic.jrdfox.logic.expression.{ Term, + Literal, Variable, FunctionCall, IRI @@ -118,14 +119,13 @@ class RDFoxClassExprConverter( else (List(), List(), c) } - case SkolemStrategy.Standard(f) => - // particular class for the "SKOLEM" operator and it is instead - // a simple builtin function with a "special" name. + case SkolemStrategy.Standard(f) => { ( List(), - List(BindAtom.create(FunctionCall.create("SKOLEM", term), y)), + List(BindAtom.create(FunctionCall.create("SKOLEM", f, term), y)), y ) + } } val classVisitor = new RDFoxClassExprConverter(term1, unsafe, skolem, suffix) -- cgit v1.2.3