private TargetAtom getAtom(IRI iri, ImmutableTerm s, ImmutableTerm o) { return targetAtomFactory.getTripleTargetAtom(s, convertIRIIntoGroundFunctionalTerm(iri), o); }
private TargetAtom getAtom(IRI iri, ImmutableTerm s) { return targetAtomFactory.getTripleTargetAtom(s, convertIRIIntoGroundFunctionalTerm(RDF.TYPE), convertIRIIntoGroundFunctionalTerm(iri)); }
@Override public Stream<TargetAtom> visitPredicateObject(PredicateObjectContext ctx) { return visitObjectList(ctx.objectList()) .map(t -> targetAtomFactory.getTripleTargetAtom(currentSubject, visitVerb(ctx.verb()), t)); }
for (ImmutableFunctionalTerm pred : joinPredicates) { bodyBuilder.add(targetAtomFactory.getTripleTargetAtom(joinSubject1, pred, joinSubject2)); // objectAtom
for (ImmutableFunctionalTerm classPred : classPredicates) { ImmutableTerm predFunction = termFactory.getImmutableUriTemplate(termFactory.getConstantLiteral(RDF.TYPE.toString())); ; bodyBuilder.add(targetAtomFactory.getTripleTargetAtom(subjectAtom, predFunction, classPred)); // objectAtom bodyBuilder.add(targetAtomFactory.getTripleTargetAtom(subjectAtom, predFunction, objectAtom)); // objectAtom
private ImmutableList<TargetAtom> prepareTargetQuery(MapItem predicateSubjectMap, List<MapItem> predicateObjectMapsList) { // Create the body of the CQ ImmutableList.Builder<TargetAtom> bodyBuilder = ImmutableList.builder(); // Store concept in the body, if any ImmutableTerm subjectTerm = createSubjectTerm(predicateSubjectMap); if (!predicateSubjectMap.getPredicateIRI().equals(OWL.THING)) { TargetAtom concept = targetAtomFactory.getTripleTargetAtom(subjectTerm, predicateSubjectMap.getPredicateIRI()); bodyBuilder.add(concept); } // Store attributes and roles in the body //List<Term> distinguishVariables = new ArrayList<Term>(); for (MapItem predicateObjectMap : predicateObjectMapsList) { if (predicateObjectMap.isObjectMap()) { // if an attribute ImmutableTerm objectTerm = createObjectTerm(getColumnName(predicateObjectMap), predicateObjectMap.getDataType()); TargetAtom attribute = targetAtomFactory.getTripleTargetAtom(subjectTerm, predicateObjectMap.getPredicateIRI(), objectTerm); bodyBuilder.add(attribute); //distinguishVariables.add(objectTerm); } else if (predicateObjectMap.isRefObjectMap()) { // if a role ImmutableFunctionalTerm objectRefTerm = createRefObjectTerm(predicateObjectMap); TargetAtom role = targetAtomFactory.getTripleTargetAtom(subjectTerm, predicateObjectMap.getPredicateIRI(), objectRefTerm); bodyBuilder.add(role); } } // Create the head //int arity = distinguishVariables.size(); //Function head = termFactory.getFunction(termFactory.getTermType(OBDALibConstants.QUERY_HEAD, arity), distinguishVariables); // Create and return the conjunctive query return bodyBuilder.build(); }
private ImmutableList<TargetAtom> constructTargetQuery(ImmutableFunctionalTerm classTerm, ObjectRDFType type) { Variable X = termFactory.getVariable("X"); ImmutableFunctionalTerm subjectTerm; if (!type.isBlankNode()) subjectTerm = termFactory.getImmutableUriTemplate(X); else { subjectTerm = termFactory.getImmutableBNodeTemplate(X); } ImmutableTerm predTerm = termFactory.getImmutableUriTemplate(termFactory.getConstantLiteral( org.eclipse.rdf4j.model.vocabulary.RDF.TYPE.toString())); TargetAtom targetAtom = targetAtomFactory.getTripleTargetAtom(subjectTerm, predTerm ,classTerm); return ImmutableList.of(targetAtom); }
private ImmutableList<TargetAtom> constructTargetQuery(ImmutableFunctionalTerm iriTerm, ObjectRDFType type1, RDFTermType type2) { Variable X = termFactory.getVariable("X"); Variable Y = termFactory.getVariable("Y"); ImmutableFunctionalTerm subjectTerm; if (!type1.isBlankNode()) subjectTerm = termFactory.getImmutableUriTemplate(X); else { subjectTerm = termFactory.getImmutableBNodeTemplate(X); } ImmutableFunctionalTerm objectTerm; if (type2 instanceof ObjectRDFType) { objectTerm = ((ObjectRDFType)type2).isBlankNode() ? termFactory.getImmutableBNodeTemplate(Y) : termFactory.getImmutableUriTemplate(Y); } else { RDFDatatype datatype = (RDFDatatype) type2; if (datatype.getLanguageTag().isPresent()) { LanguageTag languageTag = datatype.getLanguageTag().get(); objectTerm = termFactory.getImmutableTypedTerm(Y, languageTag.getFullString()); } else { objectTerm = termFactory.getImmutableTypedTerm(Y, datatype); } } TargetAtom targetAtom = targetAtomFactory.getTripleTargetAtom(subjectTerm,iriTerm,objectTerm); return ImmutableList.of(targetAtom); }