Exemplo n.º 1
0
        public override Predicate GenerateGiven(string sTag)
        {
            ParameterizedPredicate pGiven = new ParameterizedPredicate("Given" + Name);

            foreach (Argument a in Parameters)
            {
                pGiven.AddParameter(a);
            }
            pGiven.AddParameter(new Parameter(Domain.TAG, sTag));
            if (Negation)
            {
                return(pGiven.Negate());
            }
            return(pGiven);
        }
Exemplo n.º 2
0
        public Predicate PartiallyGround(Dictionary <string, Constant> dBindings)
        {
            GroundedPredicate      gpred = new GroundedPredicate(Name, Negation);
            ParameterizedPredicate ppred = new ParameterizedPredicate(Name, Negation);
            bool bAllGrounded            = true;

            foreach (Argument a in Parameters)
            {
                if (a is Parameter)
                {
                    if (!dBindings.ContainsKey(a.Name))
                    {
                        ppred.AddParameter(a);
                        bAllGrounded = false;
                    }
                    else
                    {
                        ppred.AddParameter(dBindings[a.Name]);
                        gpred.AddConstant(dBindings[a.Name]);
                    }
                }
                else
                {
                    gpred.AddConstant((Constant)a);
                    ppred.AddParameter(a);
                }
            }
            if (bAllGrounded)
            {
                if (gpred.Name == "=")
                {
                    bool bSame = gpred.Constants[0].Equals(gpred.Constants[1]);
                    if (bSame && !Negation || !bSame && Negation)
                    {
                        return(Domain.TRUE_PREDICATE);
                    }
                    else
                    {
                        return(Domain.FALSE_PREDICATE);
                    }
                }
                return(gpred);
            }
            else
            {
                return(ppred);
            }
        }
Exemplo n.º 3
0
        //for SDR
        public static Predicate GenerateKNot(Argument pTag)
        {
            ParameterizedPredicate pp = new ParameterizedPredicate("KNot");

            pp.AddParameter(pTag);
            return(pp);
        }