Example #1
0
        // Полученные данных по формулам
        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);
            }
        }
Example #2
0
        // Удаление формулы из БЗ
        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);
                }
            }
        }