public void SR11BUG()
        {
            var toinstert = new string[] {
                "Deal-Criteria-2 is a reputational-risk-network-deal-criteria.",
                "Deal-Criteria-2 is a reputational-risk-network-component.",
                "Deal-Criteria-2 has-sql-name equal-to ''.",
                "Deal-Criteria-2 has-availability equal-to 'Data-Available'.",
                "Deal-Criteria-2 has-unit equal-to ''.",
                "Deal-Criteria-2 has-aggregation equal-to 'None'.",
                "Annotations:\r\n_Deal-Criteria-2 Instance: node-label 'Importance'@en\r\n_Deal-Criteria-2 Instance: node-description 'Importance'@en\r\n."
            };
            var reasoner = new CogniPySvr();

            reasoner.LoadCnl(Path.Combine(AssemblyDirectory, "TestFiles", "ont2.encnl"), true, true);
            foreach (var l in toinstert)
            {
                reasoner.KnowledgeInsert(l, true, true);
            }
            var sups = reasoner.GetSuperConceptsOf("Deal-Criteria-2", false);

            Assert.AreEqual(sups.Count(), 4);

            var descr = reasoner.DescribeInstances("Deal-Criteria-2");

            Assert.AreEqual(descr.Count(), 1);
        }
Exemple #2
0
        public void CloneTest(string cnl, bool direct, string[] asserts)
        {
            var cnlSentences = new List <string>()
            {
                "Every location-form is a form.",
                "Every data-location-form is a location-form.",
                "Data-Location-Form is a data-location-form.",
                "Kiki must hava a miki.",

                "Data-Location-Form is a data-location-form[sfo].",
                "Data-Location-Form[sfo] is a data-location-form.",
                "References: [sfo] 'http://sfo.com' ('http://sfo.com') .",
                @"Annotations:
bela Concept: ""comment"":rdfs 'kaka maka'
bela Concept: ""comment"":rdfs 'biba'@en
_Ala Instance: ""backwardCompatibleWith"":owl 'sdsgd'@ar
.",
                "References: [sfo] 'http://sfo.com' ('http://sfo.com') ."
            };

            var feClient = new CogniPySvr();

            feClient.LoadCnlFromString(string.Join("\r\n", cnlSentences), true, true);

            var superconcepts = feClient.GetSuperConceptsOf(cnl, direct);

            var clone1 = feClient.CloneForAboxChangesOnly();

            clone1.KnowledgeInsert("Clone-1 is a form.", true, true);
            var superconcepts2 = clone1.GetSuperConceptsOf(cnl, direct);

            var clone2 = feClient.CloneForAboxChangesOnly();

            clone2.KnowledgeInsert("Clone-2 is a form.", true, true);

            var resClone1 = clone1.GetInstancesOf("a form", false);
            var resClone2 = clone2.GetInstancesOf("a form", false);

            CollectionAssert.DoesNotContain(resClone2, "Clone-1");
            CollectionAssert.DoesNotContain(resClone1, "Clone-2");

            CollectionAssert.IsNotEmpty(superconcepts2);
            CollectionAssert.AreEquivalent(asserts, superconcepts2);

            var instances = clone2.GetInstancesOf("a form", direct);

            CollectionAssert.DoesNotContain(instances, "Clone-1");
        }
        public void AddKnowledgeGetSuperConcept()
        {
            var cnlSentences = new List <string>()
            {
                "Every man is a human-being."
            };
            var feClient = new CogniPySvr();

            feClient.LoadCnlFromString(string.Join("\r\n", cnlSentences), true, true);
            feClient.KnowledgeInsert("John is a man.", true, true);

            var res1 = feClient.GetSuperConceptsOf("John", false);

            Assert.Contains("human-being", res1);

            var res2    = feClient.SparqlQueryInternal(feClient.SelectSuperconceptsSPARQL("John", false));
            var cnlRes2 = feClient.TranslateQueryResultsIntoCnlInPlace(res2);

            Assert.Contains("human-being", cnlRes2.Item2.SelectMany(x => x).ToList());
        }
Exemple #4
0
        public void GetConstraintsBig()
        {
            var feClient = new CogniPySvr();

            feClient.LoadCnl(Path.Combine(AssemblyDirectory, "TestFiles", "CSHC.encnl"), true, true);

            Stopwatch sw = new Stopwatch();

            sw.Start();
            feClient.KnowledgeInsert("Element-1-Form-D-14-08-2018-T-14-55-26[<http://www.sfo.cognitum.eu/Survey/5d09ffea-d461-4335-a3c9-03e74aec92eb#>] is a form[sfo].", true, true);
            sw.Stop();
            var elapUpdate = sw.ElapsedMilliseconds;

            sw.Restart();
            var constraints = feClient.GetConstraints(new List <string>()
            {
                "form[sfo]", "element-1-form", "Element-1-Form-D-14-08-2018-T-14-55-26[<http://www.sfo.cognitum.eu/Survey/5d09ffea-d461-4335-a3c9-03e74aec92eb#>]"
            });

            sw.Stop();
            var elap = sw.ElapsedMilliseconds;

            Assert.Contains("form[sfo]", constraints.Keys);
            Assert.Contains("element-1-form", constraints.Keys);
            Assert.Contains("Element-1-Form-D-14-08-2018-T-14-55-26[<http://www.sfo.cognitum.eu/Survey/5d09ffea-d461-4335-a3c9-03e74aec92eb#>]", constraints.Keys);
            Assert.IsTrue(elap < 1000);

            sw.Restart();
            var res1 = feClient.GetSuperConceptsOf("Element-1-Form-D-14-08-2018-T-14-55-26[<http://www.sfo.cognitum.eu/Survey/5d09ffea-d461-4335-a3c9-03e74aec92eb#>]", false);

            Assert.Contains("form[sfo]", res1);
            sw.Stop();
            var elapReasoner = sw.ElapsedMilliseconds;

            sw.Restart();
            var res2       = feClient.SparqlQueryInternal(feClient.SelectSuperconceptsSPARQL("Element-1-Form-D-14-08-2018-T-14-55-26[<http://www.sfo.cognitum.eu/Survey/5d09ffea-d461-4335-a3c9-03e74aec92eb#>]", false));
            var cnlRes2    = feClient.TranslateQueryResultsIntoCnlInPlace(res2);
            var elapSparql = sw.ElapsedMilliseconds;

            Assert.Contains("form[sfo]", cnlRes2.Item2.SelectMany(x => x).ToList());
        }
Exemple #5
0
        public void GetSuperConceptsTest(string cnl, bool direct, string[] asserts)
        {
            var cnlSentences = new List <string>()
            {
                "Every location-form is a form.",
                "Every data-location-form is a location-form.",
                "Data-Location-Form is a data-location-form.",

                "Data-Location-Form is a data-location-form[sfo].",
                "Data-Location-Form[sfo] is a data-location-form.",

                "References: [sfo] 'http://sfo.com' ('http://sfo.com') ."
            };

            var feClient = new CogniPySvr();

            feClient.LoadCnlFromString(string.Join("\r\n", cnlSentences), true, true);
            var superconcepts = feClient.GetSuperConceptsOf(cnl, direct);

            CollectionAssert.IsNotEmpty(superconcepts);
            CollectionAssert.AreEquivalent(asserts, superconcepts);
        }
        public void BasciSWRLRuleReasoning()
        {
            var cnlSentences = new List <string>()
            {
                "If an element-1-form concern[sfo] a subject[sfo] and an element-2-holder-form concern[sfo] a subject[sfo] then the element-2-holder-form is an element-2-form.",

                "Element-1-Form is an element-1-form.",
                "Doupa is a subject[sfo].",
                "Element-2-Holder-Form is an element-2-holder-form.",

                "Element-1-Form concerns[sfo] Doupa .",
                "Element-2-Holder-Form concerns[sfo] Doupa .",
            };
            var feClient = new CogniPySvr();

            feClient.LoadCnlFromString(string.Join("\r\n", cnlSentences), true, true);


            var result = feClient.GetSuperConceptsOf("Element-2-Holder-Form", false);

            Assert.Contains("element-2-form", result);
        }