示例#1
0
        public void AddAuthorityRule(RuleBuilder rule)
        {
            Term.Symbol authority_symbol = new Term.Symbol("authority");
            if (rule.Head.Ids.Count == 0 || !(rule.Head.Ids[0].Equals(authority_symbol)))
            {
                rule.Head.Ids.Insert(0, authority_symbol);
            }

            this.Rules.Add(rule.Convert(this.Symbols));
        }
示例#2
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));
        }