public AExpression(BaseKnowledge left, string op, BaseKnowledge right) { if (left != null) { var l = left as AExpression; Left = l ?? new ExpressionLeaf(left); } Operator = op; if (right != null) { var r = right as AExpression; Right = r ?? new ExpressionLeaf(right); } }
public bool Exists(BaseKnowledge node) { if (node is KnowledgeAttribute) { return(ExistsInternal(node as KnowledgeAttribute)); } if (node is KnowledgeRelation) { return(ExistsInternal(node as KnowledgeRelation)); } if (node is KnowledgeImplication) { return(ExistsInternal(node as KnowledgeImplication)); } if (node is KnowledgeNon) { return(true); } return(false); }
public ExpressionIs(BaseKnowledge val) : base(KnowledgeNon.Value, "", val) { }
public ExpressionXor(BaseKnowledge left, BaseKnowledge right) : base(left, "Xor", right) { }
public ExpressionAnd(BaseKnowledge left, BaseKnowledge right) : base(left, "And", right) { }
public ExpressionNot(BaseKnowledge val) : base(KnowledgeNon.Value, "!", val) { }
public ExpressionLeaf(BaseKnowledge leaf) : base(null, "leaf", null) { Leaf = leaf; }