示例#1
0
 public void Infer(EntailmentRegime entailmentRegime = EntailmentRegime.RDFS)
 {
     foreach (var rule in GetRulesForRegime(entailmentRegime, GetType().Assembly))
     {
         if (!string.IsNullOrWhiteSpace(rule))
         {
             var sps    = new SparqlParameterizedString(rule);
             var parser = new SparqlUpdateParser();
             var query  = parser.ParseFromString(sps);
             query.Process(_updateProcessor);
         }
     }
 }
示例#2
0
        public IEnumerable <string> GetRulesForRegime(EntailmentRegime entailmentRegime, Assembly asm)
        {
            List <string> resources = new List <string>(asm.GetManifestResourceNames());

            resources.Sort();
            foreach (var ruleFile in resources)
            {
                switch (entailmentRegime)
                {
                case EntailmentRegime.RDFS when ruleFile.Contains("rdfs_rules"):
                    yield return(ReadResource(ruleFile, asm));

                    break;

                case EntailmentRegime.OWL2_EL when ruleFile.Contains("owl2_schema") || ruleFile.Contains("owl2_properties"):
                    yield return(ReadResource(ruleFile, asm));

                    break;

                case EntailmentRegime.OWL2_QL when ruleFile.Contains("owl2_class"):
                    yield return(ReadResource(ruleFile, asm));

                    break;

                case EntailmentRegime.OWL2_RL when ruleFile.Contains("owl2_class"):
                    yield return(ReadResource(ruleFile, asm));

                    break;

                case EntailmentRegime.OWL2_FULL when ruleFile.Contains("owl2_"):
                    yield return(ReadResource(ruleFile, asm));

                    break;

                default:
                    break;
                }
            }
        }