termFactory.getConstantLiteral(getPredicateName(templateAtom.getTerm(0), values))); Variable predicateVariable = m.target.getProjectionAtom().getArguments().get(isClass ? 2 : 1); ImmutableSubstitution<ImmutableTerm> newSubstitution = m.target.getSubstitution() .composeWith(substitutionFactory.getSubstitution(predicateVariable, predicateTerm));
.isPresent()) { DistinctVariableOnlyDataAtom projectionAtom = a.getProjectionAtom(); RDFAtomPredicate predicate = (RDFAtomPredicate)projectionAtom.getPredicate();
atom.getProjectionAtom().getPredicate(), atom.getSubstitutedTerms());
RDFAtomPredicate predicate = (RDFAtomPredicate) targetAtom.getProjectionAtom().getPredicate();
RDFAtomPredicate atomPredicate = (RDFAtomPredicate) atom.getProjectionAtom().getPredicate();
for (TargetAtom atom : body) { String subject, predicate, object = ""; String originalString = atom.getProjectionAtom().getPredicate().toString(); if (isUnary(atom.getProjectionAtom())) { ImmutableTerm subjectTerm = atom.getSubstitutedTerm(0); subject = getDisplayName(subjectTerm, prefixManager);
/** * TODO: describe */ public IQ convertDatalogRule(CQIE datalogRule, Collection<Predicate> tablePredicates, Optional<ImmutableQueryModifiers> optionalModifiers, IntermediateQueryFactory iqFactory) throws DatalogProgram2QueryConverterImpl.InvalidDatalogProgramException { TargetAtom targetAtom = datalogConversionTools.convertFromDatalogDataAtom(datalogRule.getHead()); DistinctVariableOnlyDataAtom projectionAtom = targetAtom.getProjectionAtom(); ConstructionNode topConstructionNode = iqFactory.createConstructionNode(projectionAtom.getVariables(), targetAtom.getSubstitution()); List<Function> bodyAtoms = List.iterableList(datalogRule.getBody()); if (bodyAtoms.isEmpty()) { return createFact(topConstructionNode, optionalModifiers, projectionAtom, iqFactory); } else { return createDefinition(topConstructionNode, optionalModifiers, projectionAtom, tablePredicates, bodyAtoms, iqFactory); } }
DataAtom dataAtom = bindings.applyToDataAtom(targetAtom.getProjectionAtom()); return datalogConversionTools.createDataNode(iqFactory, dataAtom, tablePredicates);