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); }
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()); }
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()); }
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); }