// Полученные данных по формулам public void GetDataAboutFormulas() { // Получение имен формул string sdfdf = GetRequests("getnamesformulas"); SparqlResultSet s_NamesFormulas = (SparqlResultSet)g_Graph.ExecuteQuery(GetRequests("getnamesformulas")); // Массив данных по формулам d_DataAboutFormulas = new DataAboutFormulas[s_NamesFormulas.Count]; for (int i = 0; i < s_NamesFormulas.Count; i++) { // Имя формулы string s_Name = GetName(s_NamesFormulas[i]["formula"]); string s_NameFormula = s_NamesFormulas[i]["label"].ToString(); // Получение входных параметров SparqlResultSet sp_InputParameters = (SparqlResultSet)g_Graph.ExecuteQuery(GetRequests("getinputparameters", s_Name)); string[] s_InputParameters = new string[sp_InputParameters.Count]; for (int j = 0; j < sp_InputParameters.Count; j++) { s_InputParameters[j] = sp_InputParameters[j]["label"].ToString(); } // Получение выходного параметра SparqlResultSet sp_OutputParameter = (SparqlResultSet)g_Graph.ExecuteQuery(GetRequests("getoutputparameter", s_Name)); string s_OutputParameter = sp_OutputParameter[0]["label"].ToString(); // Получение имени файла SparqlResultSet sp_NameFile = (SparqlResultSet)g_Graph.ExecuteQuery(GetRequests("getnamefile", s_Name)); string s_NameFile = sp_NameFile[0]["label"].ToString(); d_DataAboutFormulas[i] = new DataAboutFormulas(s_NameFormula, s_InputParameters, s_OutputParameter, s_NameFile); } }
// Удаление формулы из БЗ private void DeleteFormulaFromKnowledgeBase(DataAboutFormulas d_Formula) { // Получение триплетов, связанных с данной формулой, и их удаление SparqlResultSet s_NamesFormulas = (SparqlResultSet)g_Graph.ExecuteQuery(GetRequests("getnamesformulas")); for (int i = 0; i < s_NamesFormulas.Count; i++) { // Если найдена нужна формула if (s_NamesFormulas[i]["label"].ToString() == d_Formula.GetName) { string s_Name = GetName(s_NamesFormulas[i]["formula"]); // Получение триплетов входных параметров List <Triple> s_DeleteTriples = new List <Triple>(); SparqlResultSet sp_InputParameters = (SparqlResultSet)g_Graph.ExecuteQuery(GetRequests("getinputparameters", s_Name)); for (int j = 0; j < sp_InputParameters.Count; j++) { s_DeleteTriples.AddRange(g_Graph.GetTriples(sp_InputParameters[j]["input"])); } // Получение триплетов выходного параметра SparqlResultSet sp_OutputParameter = (SparqlResultSet)g_Graph.ExecuteQuery(GetRequests("getoutputparameter", s_Name)); s_DeleteTriples.AddRange(g_Graph.GetTriples(sp_OutputParameter[0]["output"])); // Получение триплетов имени файла SparqlResultSet sp_NameFile = (SparqlResultSet)g_Graph.ExecuteQuery(GetRequests("getnamefile", s_Name)); s_DeleteTriples.AddRange(g_Graph.GetTriples(sp_NameFile[0]["namefile"])); // Получение триплетов самой формулы s_DeleteTriples.AddRange(g_Graph.GetTriples(s_NamesFormulas[i]["formula"])); // Удаление g_Graph.Retract(s_DeleteTriples); // Перезапись файла базы знаний g_Graph.SaveToFile(s_Path); // Замена префиксов ReplacePrefixesInKnowledgeBase(); // Получение БЗ из файла заново n_Parser.Load(g_Graph, s_Path); } } }