Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using VDS.RDF;
- using VDS.RDF.Parsing;
- using System.IO;
- using VDS.RDF.Writing;
- using System.Text.RegularExpressions;
- using VDS.RDF.Query;
- using System.Collections;
- using VDS.RDF.Query.Datasets;
- using VDS.RDF.Writing.Formatting;
- using System.Windows;
- using System.Windows.Documents;
- namespace Lab6
- {
- public partial class Form1 : Form
- {
- private const string QueryText1 = "SELECT ?s ?o WHERE { ?s owl:oneOf ?o .}";
- private const string QueryText2 = "SELECT ?s ?p ?o WHERE { ?s ?p ?o . filter (contains(str(?p), \"disjointWith\"))}";
- private SparqlQuery sparqlQuery(String queryText)
- {
- SparqlParameterizedString query_string = new SparqlParameterizedString();
- query_string.Namespaces.AddNamespace("ind", new Uri("ind:"));
- query_string.Namespaces.AddNamespace("class", new Uri("class:"));
- query_string.Namespaces.AddNamespace("owl", new Uri("http://www.w3.org/2002/07/owl#>"));
- //rdfs: <http://www.w3.org/2000/01/rdf-schema#>
- query_string.Namespaces.AddNamespace("rdfs", new Uri("http://www.w3.org/2000/01/rdf-schema#"));
- query_string.Namespaces.AddNamespace("rdf", new Uri("http://www.w3.org/1999/02/22-rdf-syntax-ns#"));
- query_string.Namespaces.AddNamespace("pr", new Uri("lab: property:"));
- query_string.CommandText = queryText;
- SparqlQueryParser parser = new SparqlQueryParser();
- SparqlQuery query = parser.ParseFromString(query_string);
- return query;
- }
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- var g = new Graph();
- FileLoader.Load(g, "CmapInTurtle.n3");
- listBox1.Items.AddRange(File.ReadAllLines("CmapInTurtle.n3"));
- }
- private void button2_Click(object sender, EventArgs e)
- {
- var g = new Graph();
- FileLoader.Load(g, "Rules.n3");
- listBox2.Items.AddRange(File.ReadAllLines("Rules.n3"));
- }
- private void button4_Click(object sender, EventArgs e) ////////////////////////////////////////////// ВЫВОД НОВЫХ ЗНАНИЙ ///////////////////////////////////////////
- {
- Graph g = new Graph();
- Notation3Parser np = new Notation3Parser();
- np.Load(g, "Rules.n3");
- Graph g_KB = new Graph();
- Notation3Parser np_KB = new Notation3Parser();
- np_KB.Load(g_KB, "CmapInTurtle.n3");
- Graph rez_graph = new Graph();
- g_KB.NamespaceMap.AddNamespace("pr", new Uri("lab:property:"));
- rez_graph.NamespaceMap.AddNamespace("pr", new Uri("lab:property:"));
- ///////////////////////////////////////////////////////// П Р О В Е Р К А SymmetricProperty ///////////////////////////////////////////////////////////////////////////////
- var Add_Triple_List = new List<Triple>();
- var Triple_List_Sym = new List<Triple>();
- var new_rules = g.Triples;
- foreach (var item in new_rules)
- {
- Add_Triple_List.Add(item);
- //listBox3.Items.Add(item);
- }
- //for (int i = 0; i < Add_Triple_List.Count(); i++)
- //{
- // Triple rule = Add_Triple_List[i];
- // if (rule.ToString().Contains("SymmetricProperty"))
- // {
- // INode subj_sym = rule.Subject;
- // INode pred_sym = g_KB.GetUriNode("pr:neighbouringWith");
- // INode pred_for_new_graph = Tools.CopyNode(pred_sym, rez_graph);
- // INode subj_for_new_graph = Tools.CopyNode(subj_sym, rez_graph);
- // Triple_List_Sym = g_KB.GetTriplesWithSubjectPredicate(subj_sym, pred_sym).ToList();
- // if (Triple_List_Sym.Count() > 0)
- // {
- // INode obj_sym = rule.Object;
- // INode obj_for_new_graph = Tools.CopyNode(obj_sym, rez_graph);
- // Triple ts = new Triple(obj_for_new_graph, pred_for_new_graph, subj_for_new_graph);
- // g_KB.Assert(ts);
- // listBox3.Items.Add("SYMMETRIC PROPERTY \n");
- // listBox3.Items.Add(ts.ToString());
- // var tw_sym = new TurtleWriter();
- // // tw_sym.Save(g_KB, "CmapInTurtle.n3");
- // break;
- // }
- // }
- //}
- //var Triple_List_Trans = new List<Triple>();
- //var Triple_for_graph_trans = new List<Triple>();
- //var Triple_trans_to_remember = new List<Triple>();
- //int trans_count = 0;
- //for (int i = 0; i < Add_Triple_List.Count(); i++)
- //{
- // Triple rule = Add_Triple_List[i];
- // if (rule.ToString().Contains("TransitiveProperty"))
- // {
- // Triple_List_Trans.Add(rule);
- // INode subj_trans = Triple_List_Trans[trans_count].Subject;
- // INode obj_trans = Triple_List_Trans[trans_count].Object;
- // Triple_for_graph_trans = g_KB.GetTriplesWithSubjectObject(subj_trans, obj_trans).ToList();
- // if (trans_count == 1)
- // {
- // INode pred_1 = Triple_for_graph_trans[trans_count - 1].Predicate;
- // INode pred_trans_1 = Tools.CopyNode(pred_1, g);
- // Triple ts_trans_1 = new Triple(subj_trans, pred_trans_1, obj_trans);
- // Triple_trans_to_remember.Add(ts_trans_1);
- // }
- // else
- // {
- // INode pred_tr = Triple_for_graph_trans[trans_count].Predicate;
- // INode pred_trans = Tools.CopyNode(pred_tr, g);
- // Triple ts_trans = new Triple(subj_trans, pred_trans, obj_trans);
- // Triple_trans_to_remember.Add(ts_trans);
- // }
- // trans_count++;
- // }
- //}
- //for (int i = 0; i < Triple_trans_to_remember.Count(); i++)
- //{
- // if (Triple_trans_to_remember[i].Object.Equals(Triple_trans_to_remember[i + 1].Subject))
- // {
- // Triple ts_to_add = new Triple(Triple_trans_to_remember[i].Subject, Triple_trans_to_remember[i].Predicate, Triple_trans_to_remember[i + 1].Object);
- // g_KB.Assert(ts_to_add);
- // listBox3.Items.Add("TRANSITIVE PROPERTY \n");
- // listBox3.Items.Add(ts_to_add.ToString());
- // var tw_trans = new TurtleWriter();
- // // tw_trans.Save(g_KB, "CmapInTurtle.n3");
- // break;
- // }
- //}
- //var Triple_List_Inv = new List<Triple>();
- //var Triple_for_graph_inv_subj = new List<Triple>();
- //var Triple_for_graph_inv_obj = new List<Triple>();
- //var Triple_inv_to_remember = new List<Triple>();
- //int count_inv;
- //var tw_inv = new TurtleWriter();
- //for (int i = 0; i < Add_Triple_List.Count(); i++)
- //{
- // Triple rule = Add_Triple_List[i];
- // if (rule.ToString().Contains("inverseOf"))
- // {
- // Triple_List_Inv.Add(rule);
- // INode pred_1_inv = rule.Subject;
- // Triple_for_graph_inv_subj = g_KB.GetTriplesWithPredicate(pred_1_inv).ToList();
- // INode pred_2_inv = rule.Object;
- // Triple_for_graph_inv_obj = g_KB.GetTriplesWithPredicate(pred_2_inv).ToList();
- // if (Triple_for_graph_inv_subj.Count() > 0)
- // {
- // count_inv = Triple_for_graph_inv_subj.Count();
- // for (int j = 0; j < count_inv; j++)
- // {
- // INode subj_inv = Triple_for_graph_inv_subj[j].Subject;
- // INode obj_inv = Triple_for_graph_inv_subj[j].Object;
- // INode pred_inv_general = Tools.CopyNode(pred_2_inv, g_KB);
- // Triple ts_inv_1 = new Triple(obj_inv, pred_inv_general, subj_inv);
- // g_KB.Assert(ts_inv_1);
- // listBox3.Items.Add("INVERSE OF \n");
- // listBox3.Items.Add(ts_inv_1.ToString());
- // //tw_inv.Save(g_KB, "CmapInTurtle.n3");
- // break;
- // }
- // }
- // else if (Triple_for_graph_inv_obj.Count > 0)
- // {
- // count_inv = Triple_for_graph_inv_obj.Count();
- // for (int j = 0; j < count_inv; j++)
- // {
- // INode subj_inv = Triple_for_graph_inv_obj[j].Subject;
- // INode obj_inv = Triple_for_graph_inv_obj[j].Object;
- // INode pred_inv_general = Tools.CopyNode(pred_1_inv, g_KB);
- // Triple ts_inv_1 = new Triple(obj_inv, pred_inv_general, subj_inv);
- // g_KB.Assert(ts_inv_1);
- // listBox3.Items.Add("INVERSE OF \n");
- // listBox3.Items.Add(ts_inv_1.ToString());
- // //tw_inv.Save(g_KB, "CmapInTurtle.n3");
- // break;
- // }
- // }
- // break;
- // }
- //}
- var Triple_List_Uni = new List<Triple>();
- var Triple_for_graph_uni_subj = new List<Triple>();
- var Triple_for_graph_uni_obj = new List<Triple>();
- var Triple_uni_to_remember = new List<Triple>();
- var Triple_for_graph_inter = new List<Triple>();
- var Triple_inter_to_remember = new List<Triple>();
- Regex regex = new Regex("auto");
- string q1 = @"
- prefix owl:<http://www.w3.org/2002/07/owl#>
- prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
- prefix pr:<lab:property:>
- prefix ot:<lab:other:>
- prefix class:<lab:classes:>
- prefix ind: <lab:individuals:>
- SELECT DISTINCT ?item (count(?mid)-1 as ?position)
- WHERE
- {
- [] owl:unionOf/rdf:rest* ?mid . ?mid rdf:rest* ?node .
- ?node rdf:first ?item .
- }
- group by ?node ?item
- ";
- string q2 = @"
- prefix owl:<http://www.w3.org/2002/07/owl#>
- prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
- prefix pr:<lab:property:>
- prefix ot:<lab:other:>
- prefix class:<lab:classes:>
- prefix ind: <lab:individuals:>
- SELECT DISTINCT ?item (count(?mid)-1 as ?position)
- WHERE
- {
- [] owl:intersectionOf/rdf:rest* ?mid . ?mid rdf:rest* ?node .
- ?node rdf:first ?item .
- }
- group by ?node ?item
- ";
- SparqlResultSet rez_set_uni = (SparqlResultSet)g.ExecuteQuery(q1);
- SparqlResultSet rez_set_inter = (SparqlResultSet)g.ExecuteQuery(q2);
- var listNode = new List<INode>();
- var listNode_first = new List<INode>();
- var listNode_second = new List<INode>();
- var listNode_inter = new List<INode>();
- for (int i = 0; i < rez_set_uni.Count(); i++)
- {
- INode item = rez_set_uni[i]["item"];
- listNode.Add(item); //там лежат элементы из скобочек
- }
- for (int i = 0; i < rez_set_inter.Count(); i++)
- {
- INode item = rez_set_inter[i]["item"];
- listNode_inter.Add(item);
- }
- for (int i = 0; i < Add_Triple_List.Count(); i++)
- {
- Triple rule = Add_Triple_List[i];
- string str = Add_Triple_List[i].ToString();
- MatchCollection matches = regex.Matches(str);
- if (matches.Count == 1 && !(Add_Triple_List[i].ToString().Contains("nil")))
- {
- Triple_List_Uni.Add(rule);
- if (rule.ToString().Contains("unionOf"))
- {
- Triple_for_graph_uni_subj.Add(rule); //здесь лежит класс, который стал объединением элементов из скобочек
- }
- if (rule.ToString().Contains("intersectionOf"))
- {
- Triple_for_graph_inter.Add(rule); //здесь класс-пересечение
- }
- }
- }
- INode pred = g_KB.GetUriNode("rdf:type");
- INode pred_to_add = Tools.CopyNode(pred, g_KB);
- var tw = new TurtleWriter();
- //for (int j = 0; j < listNode.Count; j++)
- //{
- // Triple_uni_to_remember.AddRange(g_KB.GetTriplesWithPredicateObject(pred, listNode[j]).ToList());
- //}
- //for (int k = 0; k < Triple_for_graph_uni_subj.Count(); k++)
- //{
- // INode obj_to_add = Tools.CopyNode(Triple_for_graph_uni_subj[k].Subject, g_KB);
- // for (int j = 0; j < Triple_uni_to_remember.Count(); j++)
- // {
- // Triple ts_uni = new Triple(Triple_uni_to_remember[j].Subject, pred_to_add, obj_to_add);
- // listBox3.Items.Add("UNION OF \n");
- // listBox3.Items.Add(ts_uni.ToString());
- // //g_KB.Assert(ts_uni);
- // //tw.Save(g_KB, "CmapInTurtle.n3");
- // }
- // }
- for (int i = 0; i < listNode_inter.Count(); i++)
- {
- Triple_inter_to_remember.AddRange(g_KB.GetTriplesWithPredicateObject(pred, listNode_inter[i]).ToList());
- }
- INode obj_to_add_inter = Tools.CopyNode(Triple_for_graph_inter[0].Subject, g_KB);
- for (int k = 0; k < Triple_inter_to_remember.Count(); k++) //ЭТО ДЛЯ ПЕРЕСЕЧЕНИЯ - ИНДИВИД ПРИНАДЛЕЖИТ ДВУМ КЛАССАМ ОДНОВРЕМЕННО
- {
- for (int j = k + 1; j < Triple_inter_to_remember.Count(); j++)
- {
- if (Triple_inter_to_remember[k].Subject == Triple_inter_to_remember[j].Subject)
- {
- INode equal_subj = Triple_inter_to_remember[k].Subject;
- Triple ts_inter = new Triple(equal_subj, pred_to_add, obj_to_add_inter);
- listBox3.Items.Add("INTERSECTION OF \n");
- listBox3.Items.Add(ts_inter.ToString());
- //g_KB.Assert(ts_inter);
- //tw.Save(g_KB, "CmapInTurtle.n3");
- }
- }
- }
- //var list_eq_class = new List<Triple>();
- //var list_of_nodes_first = new List<INode>();
- //var list_of_nodes_second = new List<INode>();
- //var list_of_triplets = new List<Triple>();
- //TurtleWriter tw_1 = new TurtleWriter();
- ////Graph new_graph_first = new Graph();
- ////Graph new_graph_second = new Graph();
- //INode pred_eq = g_KB.GetUriNode("rdf:type");
- //for (int i = 0; i < Add_Triple_List.Count(); i++)
- //{
- // Triple rule = Add_Triple_List[i];
- // if (rule.ToString().Contains("equivalentClass"))
- // {
- // list_eq_class.Add(rule);
- // list_of_triplets = (g_KB.GetTriplesWithPredicateObject(pred_eq, list_eq_class[0].Subject).ToList());
- // }
- //}
- //INode obj_to_add_eq = Tools.CopyNode(list_eq_class[0].Object, g_KB);
- //for (int j = 0; j < list_of_triplets.Count(); j++)
- //{
- // Triple ts_eq = new Triple(list_of_triplets[j].Subject, pred_eq, obj_to_add_eq);
- // listBox3.Items.Add("EQUIVALENT CLASS \n");
- // listBox3.Items.Add(ts_eq.ToString());
- // //g_KB.Assert(ts_eq);
- // //tw_1.Save(g_KB, "CmapInTurtle.n3");
- //}
- }
- // [Obsolete]
- private void button3_Click(object sender, EventArgs e)
- { }
- // {
- // Regex regex = new Regex("auto");
- // var g1 = new Graph();
- // FileLoader.Load(g1, "CmapInTurtle.n3");
- // Graph g2 = new Graph();
- // Notation3Parser np = new Notation3Parser();
- // np.Load(g2, "Rules.n3");
- // Graph rez_graph = new Graph();
- // //g1.NamespaceMap.AddNamespace("ind", new Uri("ind:"));
- // //g1.NamespaceMap.AddNamespace("class", new Uri("class:"));
- // //g2.NamespaceMap.AddNamespace("ind", new Uri("ind:"));
- // //g2.NamespaceMap.AddNamespace("class", new Uri("class:"));
- // //g2.NamespaceMap.AddNamespace("owl", new Uri("owl:"));
- // rez_graph.NamespaceMap.AddNamespace("ind", new Uri("ind:"));
- // rez_graph.NamespaceMap.AddNamespace("class", new Uri("class:"));
- // // ISparqlDataset ds = new InMemoryDataset(g2);
- // // LeviathanQueryProcessor processor = new LeviathanQueryProcessor(ds);
- // // sparqlQuery("SELECT ?s owl:oneOf ?o WHERE { ?s owl:oneOf ?o . }");
- // //string query = "prefix owl:<http://www.w3.org/2002/07/owl#> prefix pr:<lab:property:> prefix class:<lab:classes:> prefix ind:<lab:individuals:> SELECT ?s owl:oneOf ?o WHERE { ?s owl:oneOf ?o . } ";
- // string q1 = @"
- //prefix owl:<http://www.w3.org/2002/07/owl#>
- //prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
- //SELECT DISTINCT ?s ?o
- //WHERE
- //{
- //?s owl:oneOf ?o.
- //?o rdf:rest*/rdf:rest?item
- //}";
- // string q2 = @"
- //prefix owl:<http://www.w3.org/2002/07/owl#>
- //prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
- //prefix pr:<lab:property:>
- //prefix ot:<lab:other:>
- //prefix class:<lab:classes:>
- //prefix ind: <lab:individuals:>
- //SELECT DISTINCT ?s ?o
- //WHERE
- //{
- //?s owl:disjointWith ?o.
- //}
- //";
- // string q3 = @"
- //prefix owl:<http://www.w3.org/2002/07/owl#>
- //prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
- //prefix pr:<lab:property:>
- //prefix ot:<lab:other:>
- //prefix class:<lab:classes:>
- //prefix ind: <lab:individuals:>
- //SELECT DISTINCT ?s ?o
- //WHERE
- //{
- //?s owl:propertyDisjointWith ?o.
- //}
- //";
- // ///////////////////////////////////////////////////////// ПРОВЕРКА OneOF ////////////////////////////////////////////////////////////////////////////////
- // SparqlResultSet rez_set1 = (SparqlResultSet)g2.ExecuteQuery(q1);
- // INode obj1 = rez_set1[0][0]; //достал префикс
- // var listNode = new List<INode>();
- // var listTriple = new List<Triple>();
- // var generalList = new List<INode>();
- // var generalTRIPLETS = new List<Triple>();
- // var generalError = new List<Triple>();
- // string pattern_for_ind = @"lab:individuals:";
- // Regex regex_ind = new Regex(pattern_for_ind);
- // string pattern_for_class = @"lab:classes:";
- // Regex regex_clas = new Regex(pattern_for_class);
- // int count_ind = 0;
- // var rules = g2.Triples;
- // for (int i = 0; i < rez_set1.Count(); i++)
- // {
- // INode item = rez_set1[i]["s"];
- // listNode.Add(item);
- // }
- // foreach (var item in rules)
- // {
- // listTriple.Add(item);
- // listBox3.Items.Add(item);
- // }
- // for (int i = 0; i < listTriple.Count(); i++)
- // {
- // Triple rule = listTriple[i];
- // string str = listTriple[i].ToString();
- // MatchCollection matches = regex.Matches(str);
- // if ((matches.Count == 1) && !(listTriple[i].ToString().Contains("nil")))
- // {
- // if (listTriple[i].ToString().Contains("individuals:"))
- // {
- // generalList.Add(rule.Object);
- // listBox4.Items.Add(rule.Object);
- // }
- // else if (listTriple[i].ToString().Contains("classes:") && !(listTriple[i].ToString().Contains("nil")))
- // {
- // generalList.Add(rule.Subject);
- // listBox4.Items.Add(rule.Subject);
- // }
- // }
- // }
- // foreach (var item in generalList)
- // {
- // if (item.ToString().Contains("individuals"))
- // {
- // INode subj = item;
- // INode pred = g1.GetUriNode("rdf:type");
- // generalTRIPLETS = g1.GetTriplesWithSubjectPredicate(subj, pred).ToList();
- // count_ind++;
- // if (generalTRIPLETS.Count > 0)
- // {
- // listBox5.Items.Add("Everything is OK");
- // continue;
- // }
- // else
- // {
- // listBox5.Items.Add("oneOf RULE! There is NO individual like " + generalList[count_ind - 1] + " in class " + generalList[count_ind]);
- // }
- // }
- // }
- // ///////////////////////////////////////////////////////// ПРОВЕРКА disjointWITH ////////////////////////////////////////////////////////////////////////////////
- // SparqlResultSet rez_set2 = (SparqlResultSet)g2.ExecuteQuery(q2);
- // var listNodeObjDW = new List<INode>();
- // var listNodeSUBJDW = new List<INode>();
- // var generalListDW = new List<INode>();
- // var generalTRIPLETSDW1 = new List<Triple>();
- // var generalTRIPLETSDW2 = new List<Triple>();
- // var generalErrorDW = new List<Triple>();
- // var existingTriple = new List<Triple>();
- // int count = 0;
- // for (int i = 0; i < rez_set2.Count(); i++)
- // {
- // INode itemOBJ = rez_set2[i]["s"];
- // listNodeObjDW.Add(itemOBJ); //выбрали правую часть запроса
- // INode itemSUBJ = rez_set2[i]["o"];
- // listNodeSUBJDW.Add(itemSUBJ);
- // count++;
- // }
- // for (int k = 0; k < listTriple.Count(); k++)
- // {
- // Triple rule = listTriple[k];
- // string str = listTriple[k].ToString();
- // if (!(listTriple[k].ToString().Contains("auto")) && !(listTriple[k].ToString().Contains("property")) && (listTriple[k].ToString().Contains("disjointWith")))
- // {
- // generalListDW.Add(rule.Subject);
- // listBox4.Items.Add(rule.Subject);
- // generalListDW.Add(rule.Object);
- // listBox4.Items.Add(rule.Object);
- // }
- // }
- // for (int s = 0; s < (generalListDW.Count) / 2; s++)
- // {
- // INode obj11 = generalListDW[s];
- // INode obj12 = generalListDW[s + 1];
- // INode predicate = g1.GetUriNode("rdf:type");
- // generalTRIPLETSDW1 = g1.GetTriplesWithPredicateObject(predicate, obj11).ToList();
- // generalTRIPLETSDW2 = g1.GetTriplesWithPredicateObject(predicate, obj12).ToList();
- // if ((generalTRIPLETSDW1.Count() > 0) && (generalTRIPLETSDW2.Count() > 0) && (((generalTRIPLETSDW1.Count() < generalTRIPLETSDW2.Count()) || ((generalTRIPLETSDW1.Count() == generalTRIPLETSDW2.Count())))))
- // {
- // foreach (var item in generalTRIPLETSDW2)
- // {
- // INode subj = item.Subject;
- // Triple ts1 = new Triple(subj, predicate, item.Object);
- // existingTriple = g1.GetTriplesWithSubjectObject(subj, obj11).ToList();
- // if (existingTriple.Count > 0)
- // {
- // listBox5.Items.Add("disjointWith rule! Individual " + subj + " cannot be both member of " + item.Object + " and " + obj11);
- // break;
- // }
- // else
- // {
- // listBox5.Items.Add("Everything is OK");
- // continue;
- // }
- // }
- // }
- // else if ((generalTRIPLETSDW1.Count() > 0) && (generalTRIPLETSDW2.Count() > 0) && (generalTRIPLETSDW1.Count() > generalTRIPLETSDW2.Count()))
- // {
- // foreach (var item in generalTRIPLETSDW1)
- // {
- // INode subj = item.Subject;
- // Triple ts1 = new Triple(subj, predicate, item.Object);
- // existingTriple = g1.GetTriplesWithSubjectObject(subj, obj12).ToList();
- // if (existingTriple.Count > 0)
- // {
- // listBox5.Items.Add("disjointWith rule! Individual " + subj + " cannot be both member of " + item.Object + " and " + obj12);
- // break;
- // }
- // else
- // {
- // listBox5.Items.Add("Everything is OK");
- // continue;
- // }
- // }
- // }
- // }
- // ///////////////////////////////////////////////////////// ПРОВЕРКА PropertyDisjointWITH ////////////////////////////////////////////////////////////////////////////////
- // SparqlResultSet rez_set3 = (SparqlResultSet)g2.ExecuteQuery(q3);
- // var listNodeObjDWP = new List<INode>();
- // var listNodeSUBJDWP = new List<INode>();
- // var generalListDWP = new List<INode>();
- // var generalTRIPLETSDWP1 = new List<Triple>();
- // var generalTRIPLETSDWP2 = new List<Triple>();
- // var generalErrorDWP = new List<Triple>();
- // var existingTripleP = new List<Triple>();
- // int count2 = 0;
- // for (int i = 0; i < rez_set3.Count(); i++)
- // {
- // INode itemOBJ = rez_set3[i]["o"];
- // listNodeObjDWP.Add(itemOBJ); //выбрали правую часть запроса
- // INode itemSUBJ = rez_set3[i]["s"];
- // listNodeSUBJDWP.Add(itemSUBJ);
- // count2++;
- // }
- // for (int v = 0; v < listTriple.Count(); v++)
- // {
- // Triple rule = listTriple[v];
- // string str = listTriple[v].ToString();
- // if (!(listTriple[v].ToString().Contains("auto")) && (listTriple[v].ToString().Contains("propertyDisjointWith")))
- // {
- // generalListDWP.Add(rule.Subject);
- // listBox4.Items.Add(rule.Subject);
- // generalListDWP.Add(rule.Object);
- // listBox4.Items.Add(rule.Object);
- // }
- // }
- // for ( int g=0; g<generalListDWP.Count(); g++)
- // {
- // INode pred1 = generalListDWP[g];
- // generalTRIPLETSDWP1 = g1.GetTriplesWithPredicate(pred1).ToList();
- // INode pred2 = generalListDWP[g + 1];
- // generalTRIPLETSDWP2 = g1.GetTriplesWithPredicate(pred2).ToList();
- // if (generalTRIPLETSDWP2.Count() > 0 && generalTRIPLETSDWP2.Count() > 0)
- // {
- // foreach (var item in generalTRIPLETSDWP2)
- // {
- // INode subj1 = item.Subject;
- // INode subj2 = generalTRIPLETSDWP1[g].Subject;
- // INode obj111 = item.Object;
- // INode obj222 = generalTRIPLETSDWP1[g].Object;
- // if (subj1 == subj2)
- // {
- // listBox5.Items.Add("propertyDisjointWith rule! " + subj1.ToString() + " cannot both " + pred1 + " " + obj111 + " and " + obj222);
- // break;
- // }
- // }
- // }
- // else if (generalTRIPLETSDWP1.Count() > 0 || generalTRIPLETSDWP2.Count() > 0)
- // {
- // listBox5.Items.Add("Everything is OK");
- // }
- // g++;
- // }
- // }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement