private Stream<IsaAtom> inferEntityTypes(ConceptMap sub) { Set<Var> typedVars = getAtoms(IsaAtomBase.class).map(AtomicBase::getVarName).collect(Collectors.toSet()); return Stream.concat( getAtoms(IdPredicate.class), sub.toPredicates(this).stream().map(IdPredicate.class::cast) ) .filter(p -> !typedVars.contains(p.getVarName())) .map(p -> new Pair<>(p, tx().<Concept>getConcept(p.getPredicate()))) .filter(p -> Objects.nonNull(p.getValue())) .filter(p -> p.getValue().isEntity()) .map(p -> IsaAtom.create(p.getKey().getVarName(), var(), p.getValue().asEntity().type(), false,this)); }
private static ConceptProto.Concept.BASE_TYPE getBaseType(ai.grakn.concept.Concept concept) { if (concept.isEntityType()) { return ConceptProto.Concept.BASE_TYPE.ENTITY_TYPE; } else if (concept.isRelationshipType()) { return ConceptProto.Concept.BASE_TYPE.RELATION_TYPE; } else if (concept.isAttributeType()) { return ConceptProto.Concept.BASE_TYPE.ATTRIBUTE_TYPE; } else if (concept.isEntity()) { return ConceptProto.Concept.BASE_TYPE.ENTITY; } else if (concept.isRelationship()) { return ConceptProto.Concept.BASE_TYPE.RELATION; } else if (concept.isAttribute()) { return ConceptProto.Concept.BASE_TYPE.ATTRIBUTE; } else if (concept.isRole()) { return ConceptProto.Concept.BASE_TYPE.ROLE; } else if (concept.isRule()) { return ConceptProto.Concept.BASE_TYPE.RULE; } else if (concept.isType()) { return ConceptProto.Concept.BASE_TYPE.META_TYPE; } else { throw CommonUtil.unreachableStatement("Unrecognised concept " + concept); } }
public static GrpcConcept.BaseType getBaseType(Concept concept) { if (concept.isEntityType()) { return GrpcConcept.BaseType.EntityType; } else if (concept.isRelationshipType()) { return GrpcConcept.BaseType.RelationshipType; } else if (concept.isAttributeType()) { return GrpcConcept.BaseType.AttributeType; } else if (concept.isEntity()) { return GrpcConcept.BaseType.Entity; } else if (concept.isRelationship()) { return GrpcConcept.BaseType.Relationship; } else if (concept.isAttribute()) { return GrpcConcept.BaseType.Attribute; } else if (concept.isRole()) { return GrpcConcept.BaseType.Role; } else if (concept.isRule()) { return GrpcConcept.BaseType.Rule; } else if (concept.isType()) { return GrpcConcept.BaseType.MetaType; } else { throw CommonUtil.unreachableStatement("Unrecognised concept " + concept); } }
private void attachAttribute(Concept owner, Attribute attribute){ if (owner.isEntity()){ EntityImpl.from(owner.asEntity()).attributeInferred(attribute); } else if (owner.isRelationship()){ RelationshipImpl.from(owner.asRelationship()).attributeInferred(attribute); } else if (owner.isAttribute()){ AttributeImpl.from(owner.asAttribute()).attributeInferred(attribute); } }
static Pattern toPattern(Concept concept) { if (!concept.isThing()){ throw GraqlQueryException.conceptNotAThing(concept); } if (concept.isEntity()) { return new EntityConverter().pattern(concept.asEntity()); } else if (concept.isRelationship()) { return new RelationshipConverter().pattern(concept.asRelationship()); } else if (concept.isAttribute()) { return new AttributeConverter().pattern(concept.asAttribute()); } else { throw CommonUtil.unreachableStatement("Unrecognised concept " + concept); } }