@Override public int getArity() { return functor.getArity(); }
private boolean isNumeric(Predicate pred) { return (pred instanceof DatatypePredicate) && (((DatatypePredicate) pred).getReturnedType() instanceof NumericRDFDatatype); }
@Override public int getArity() { return functionSymbol.getArity(); }
@Override public String getName() { return predicate.getName(); }
default Optional<TermType> getOptionalTermType(ImmutableList<Optional<TermType>> actualArgumentTypes) { try { OperationPredicate predicate = getFunctionSymbol(); return predicate.getTermTypeInferenceRule().inferTypeFromArgumentTypes( actualArgumentTypes, predicate.getArgumentTypes()); } catch (IncompatibleTermException e) { throw new IncompatibleTermException(this, e); } } }
@Override public Optional<COL_TYPE> getInternalType(DatatypePredicate predicate) { return Optional.ofNullable(mapURItoCOLTYPE.get(predicate.getName())); }
@Override public int hashCode() { return colType.hashCode() + optionalLangTagConstant.hashCode(); }
default Optional<TermType> getOptionalTermType(ImmutableList<Optional<TermType>> actualArgumentTypes) { try { OperationPredicate predicate = getFunctionSymbol(); return predicate.inferTypeFromArgumentTypes(actualArgumentTypes); } catch (IncompatibleTermException e) { throw new IncompatibleTermException(this, e); } } }
/** * TODO: inject termFactory and typeFactory * */ default Optional<TermType> getOptionalTermType() throws IncompatibleTermException { try { OperationPredicate predicate = getFunctionSymbol(); return predicate.inferType(getTerms()); } catch (IncompatibleTermException e) { throw new IncompatibleTermException(this, e); } }
@Override public String toString() { return predicate.getName().toString(); }
@Override public int getArity() { return functor.getArity(); }
private static boolean isXsdBoolean(Predicate predicate) { return (predicate instanceof DatatypePredicate) && ((DatatypePredicate) predicate).getReturnedType().isA(XSD.BOOLEAN); } }
/** * TODO: generalize */ default Optional<TermType> getOptionalTermType() throws IncompatibleTermException { try { OperationPredicate predicate = getFunctionSymbol(); return predicate.getTermTypeInferenceRule().inferType( getTerms(), predicate.getArgumentTypes()); } catch (IncompatibleTermException e) { throw new IncompatibleTermException(this, e); } }
protected ImmutableFunctionalTermImpl(FunctionSymbol functionSymbol, ImmutableList<? extends ImmutableTerm> terms) { this.functionSymbol = functionSymbol; // No problem since the list is immutable this.terms = terms; string = null; if (functionSymbol.getArity() != terms.size()) { throw new IllegalArgumentException("Arity violation: " + functionSymbol + " was expecting " + functionSymbol.getArity() + ", not " + terms.size()); } }
@Override public boolean isTriplePredicate() { return (arity == 3 && name.equals(QUEST_TRIPLE_PRED.getName())); }
protected ImmutableFunctionalTermImpl(Predicate functor, ImmutableList<? extends ImmutableTerm> terms) { super(functor); // No problem since the list is immutable this.terms = terms; string = null; if (functor.getArity() != terms.size()) { throw new IllegalArgumentException("Arity violation: " + functor + " was expecting " + functor.getArity() + ", not " + terms.size()); } }
private static boolean isXsdString(Predicate predicate) { return (predicate instanceof DatatypePredicate) && ((DatatypePredicate) predicate).getReturnedType().isA(XSD.STRING); }
public void insertDataTyping(CQIE rule) throws UnknownDatatypeException { Function atom = rule.getHead(); Predicate predicate = atom.getFunctionSymbol(); if (predicate.getArity() == 2) { // we check both for data and object property Term term = atom.getTerm(1); // the second argument only Map<String, List<IndexedPosition>> termOccurenceIndex = createIndex(rule.getBody()); // Infer variable datatypes insertVariableDataTyping(term, atom, 1, termOccurenceIndex); // Infer operation datatypes from variable datatypes insertOperationDatatyping(term, atom, 1); } }