public abstract class Atom extends AtomicBase
AtomicBase extension defining specialised functionalities.
| Modifier and Type | Field and Description |
|---|---|
protected Set<InferenceRule> |
applicableRules |
| Constructor and Description |
|---|
Atom() |
checkValid, createCombinedPattern, getCombinedPattern, getIdPredicate, getPredicate, getPredicates, getPredicates, getVarNames, isUserDefined, toString, txclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitalphaEquivalenceHashCode, copy, getParentQuery, getPattern, getVarName, isAlphaEquivalent, isCompatibleWith, isRelation, isResource, isSelectable, isStructurallyEquivalent, isType, structuralEquivalenceHashCode, validateOntologicallyprotected Set<InferenceRule> applicableRules
public RelationshipAtom toRelationshipAtom()
public IsaAtom toIsaAtom()
public abstract boolean isUnifiableWith(Atom atom)
public boolean isAtom()
public boolean isRuleResolvable()
public boolean isRecursive()
public boolean isGround()
public boolean isBounded()
public boolean isDisconnected()
public boolean requiresSchema()
public abstract Class<? extends VarProperty> getVarPropertyClass()
public Set<String> validateAsRuleHead(Rule rule)
validateAsRuleHead in interface AtomicvalidateAsRuleHead in class AtomicBasepublic java.util.stream.Stream<VarProperty> getVarProperties()
public java.util.stream.Stream<IdPredicate> getPartialSubstitutions()
public Set<Var> getRoleExpansionVariables()
protected abstract boolean isRuleApplicableViaAtom(Atom headAtom)
public java.util.stream.Stream<Rule> getPotentialRules()
public java.util.stream.Stream<InferenceRule> getApplicableRules()
public boolean requiresMaterialisation()
public boolean requiresRoleExpansion()
public boolean requiresDecomposition()
public abstract SchemaConcept getSchemaConcept()
public abstract ConceptId getTypeId()
public abstract Var getPredicateVariable()
public abstract java.util.stream.Stream<Predicate> getInnerPredicates()
public <T extends Predicate> java.util.stream.Stream<T> getInnerPredicates(Class<T> type)
public java.util.stream.Stream<TypeAtom> getTypeConstraints()
public <T extends Atomic> java.util.stream.Stream<T> getNeighbours(Class<T> type)
public java.util.stream.Stream<Atomic> getNonSelectableConstraints()
public Atom inferTypes()
inferTypes in interface AtomicinferTypes in class AtomicBasepublic Atom inferTypes(ConceptMap sub)
inferTypes in class AtomicBasepublic com.google.common.collect.ImmutableList<SchemaConcept> getPossibleTypes()
public List<Atom> atomOptions(ConceptMap sub)
sub - partial substitutionpublic Atom addType(SchemaConcept type)
public java.util.stream.Stream<ConceptMap> materialise()
public Set<Atom> rewriteToAtoms()
public Atom rewriteWithTypeVariable(Atom parentAtom)
parentAtom - parent atom that triggers rewritepublic abstract Atom rewriteToUserDefined(Atom parentAtom)
parentAtom - parent atom that triggers rewritepublic abstract Atom rewriteWithTypeVariable()
public Atom rewriteWithRelationVariable()
@Nullable public abstract Unifier getUnifier(Atom parentAtom, UnifierComparison unifierType)
parentAtom - atom to be unified withunifierType - type of unifier to be computedpublic MultiUnifier getMultiUnifier(Atom parentAtom, UnifierComparison unifierType)
parentAtom - atom to be unified withunifierType - type of unifier to be computedCopyright © 2018 Grakn Labs Ltd. All rights reserved.