예제 #1
0
        public void AddAuthorityFact(FactBuilder f)
        {
            Term.Symbol authority_symbol = new Term.Symbol("authority");
            if (f.Predicate.Ids.Count == 0 || !(f.Predicate.Ids[0].Equals(authority_symbol)))
            {
                List <Term> ids = new List <Term>
                {
                    authority_symbol
                };
                ids.AddRange(f.Predicate.Ids);
                f.Predicate.Ids = ids;
            }

            this.Facts.Add(f.Convert(this.Symbols));
        }
예제 #2
0
        public override bool Equals(object o)
        {
            if (this == o)
            {
                return(true);
            }
            if (o == null || GetType() != o.GetType())
            {
                return(false);
            }

            FactBuilder fact = (FactBuilder)o;

            return(Predicate != null?Predicate.Equals(fact.Predicate) : fact.Predicate == null);
        }
예제 #3
0
 public void AddFact(FactBuilder f)
 {
     this.facts.Add(f.Convert(this.symbols));
 }