Example #1
0
        public static IKnowledge Generate(object obj)
        {
            var shape    = obj as ShapeSymbol;
            var goal     = obj as EqGoal;
            var equation = obj as Equation;

            if (shape != null)
            {
                return(new AGShapeExpr(ExprG.Generate(shape), shape));
            }

            if (goal != null)
            {
                return(new AGPropertyExpr(ExprG.Generate(goal), goal));
            }

            if (equation != null)
            {
                return(new AGEquationExpr(ExprG.Generate(equation), equation));
            }

            var knowledge = new IKnowledge(ExprG.Generate(obj));

            knowledge.Tag = obj;
            return(knowledge);
        }
Example #2
0
        public override void RetrieveRenderKnowledge()
        {
            var symbols = _shapeSymbol.RetrieveConcreteShapes();
            var shapes  = new ObservableCollection <IKnowledge>();

            RenderKnowledge = null;
            if (symbols != null)
            {
                var shapeSymbol = symbols as ShapeSymbol;
                var ssLst       = symbols as IEnumerable <ShapeSymbol>;

                if (shapeSymbol != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(shapeSymbol);
                    var agShape = new AGShapeExpr(expr, shapeSymbol);
                    shapes.Add(agShape);
                }

                if (ssLst != null)
                {
                    foreach (ShapeSymbol ss in ssLst.ToList())
                    {
                        var expr   = ExprG.Generate(ss);
                        var agExpr = new AGShapeExpr(expr, ss);
                        shapes.Add(agExpr);
                    }
                }
                RenderKnowledge = shapes;
                RenderKnowledge.CollectionChanged += RenderKnowledge_CollectionChanged;
            }
        }
Example #3
0
        public object RelationValidate(object obj, out object objOutput)
        {
            var expr        = obj as Expr;
            var str         = obj as string; // text input
            var shapeSymbol = obj as ShapeSymbol;

            if (shapeSymbol != null)
            {
                expr = ExprG.Generate(shapeSymbol);
            }
            if (str != null)
            {
                expr = Text.Convert(str);
            }
            Debug.Assert(expr != null);
            var rTemp = ExprVisitor.Instance.UserMatch(expr); //input patter match

            Debug.Assert(rTemp != null);
            rTemp = ExprVisitor.Instance.Transform(rTemp);
            object output;

            if (shapeSymbol != null)
            {
                rTemp = shapeSymbol;
            }
            InternalValidate(expr, rTemp, out output);
            objOutput = rTemp;
            return(output);
        }
Example #4
0
        public override void RetrieveRenderKnowledge()
        {
            if (_query.CachedEntities.Count == 0)
            {
                return;
            }
            var lst = new ObservableCollection <IKnowledge>();

            foreach (var cacheObj in _query.CachedEntities)
            {
                var cacheShapeSymbol = cacheObj as ShapeSymbol;
                var cacheGoal        = cacheObj as EqGoal;
                var cacheEq          = cacheObj as Equation;
                if (cacheShapeSymbol != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheShapeSymbol);
                    var agShape = new AGShapeExpr(expr, cacheShapeSymbol);
                    lst.Add(agShape);
                }
                else if (cacheGoal != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheGoal);
                    var agGoal = new AGPropertyExpr(expr, cacheGoal);
                    lst.Add(agGoal);
                }
                else if (cacheEq != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheEq);
                    var agEq = new AGEquationExpr(expr, cacheEq);
                    lst.Add(agEq);
                }
            }
            RenderKnowledge = lst;
        }
Example #5
0
 public TraceStepExpr(TraceStep ts)
 {
     MetaRule    = ts.Rule as string;
     AppliedRule = ts.AppliedRule as string;
     Source      = ExprG.Generate(ts.Source);
     Target      = ExprG.Generate(ts.Target);
     //StepExpr = ExprG.Derive(Source, Target);
     StepExpr  = Target;
     TraceStep = ts;
 }
Example #6
0
        public override void RetrieveRenderKnowledge()
        {
            if (_equation == null)
            {
                return;
            }
            if (_equation.CachedEntities.Count == 0)
            {
                return;
            }
            var lst = new ObservableCollection <IKnowledge>();

            foreach (var cacheObj in _equation.CachedEntities)
            {
                var cacheShapeSymbol = cacheObj as ShapeSymbol;
                var cacheGoal        = cacheObj as EqGoal;
                var cacheEq          = cacheObj as Equation;
                if (cacheShapeSymbol != null)
                {
                    throw new Exception("TODO");

                    /*                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheShapeSymbol);
                     *                  var agShape = new AGShapeExpr(expr, cacheShapeSymbol);
                     *                  lst.Add(agShape);*/
                }
                else if (cacheGoal != null)
                {
                    throw new Exception("TODO");

                    /*                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheGoal);
                     *                  var agGoal = new AGPropertyExpr(expr, cacheGoal);
                     *                  lst.Add(agGoal);*/
                }
                else if (cacheEq != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheEq);
                    var agEq = new AGEquationExpr(expr, cacheEq);
                    lst.Add(agEq);
                }
                else
                {
                    var boolValue = cacheObj as bool?;
                    if (boolValue != null)
                    {
                        starPadSDK.MathExpr.Expr expr = ExprG.Generate(boolValue);
                        var agEq = new IKnowledge(expr);
                        lst.Add(agEq);
                    }
                }
            }
            RenderKnowledge = lst;
        }
Example #7
0
        //Geometry Side Input Variation
        private object Load(ShapeSymbol rTemp, bool tutorMode = false)
        {
            Expr   expr = ExprG.Generate(rTemp);
            object output;

            EvalExprPatterns(expr, rTemp, null, out output, tutorMode);
            var iKnowledge = output as IKnowledge;

            if (iKnowledge != null && !tutorMode)
            {
                _cache.Add(new KeyValuePair <object, object>(rTemp, iKnowledge));
            }
            return(output);
        }