Пример #1
0
 private void initializeOntology(string path)
 {
     OwlOntology.Ontology         = OwlManager.LoadOntology(path);
     OwlOntology.ObjectProperties = OwlManager.GetObjectProperties();
     OwlOntology.Individuals      = OwlManager.GetIndividuals();
     OwlOntology.Classes          = OwlManager.GetClasses();
     panel_reasoner.BackColor     = Color.Red;
 }
Пример #2
0
        private void button_analize_sentence_Click(object sender, EventArgs e)
        {
            if (Locked)
            {
                return;
            }

            if (panel_reasoner.BackColor == Color.Red)
            {
                MessageBox.Show("You can do the search only after applying the reasoner", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else if (textBox_query.Text.Count() == 0)
            {
                MessageBox.Show("Can you write a real word?", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            // Match match = Regex.Match(textBox_query.Text, @"(?i)^[a-z]+");

            var bagOfWords = textBox_query.Text.Split(' ');

            DataTable dataTable = new DataTable();

            dataTable.Columns.Add("Word");
            dataTable.Columns.Add("Type");

            foreach (string word in bagOfWords)
            {
                var result = (from individual in OwlOntology.Individuals
                              where individual.Contains(word)
                              select individual).FirstOrDefault();

                if (result != null)
                {
                    var listOfIndividualTypes = OwlManager.RunQuery("SELECT Distinct ?type WHERE {  <" + result + "> rdf:type ?type.}");

                    foreach (string type in listOfIndividualTypes)
                    {
                        var test = getLastId(type);
                        if (isApproved(getLastId(type)))
                        {
                            var row = dataTable.NewRow();
                            row["Word"] = word;
                            row["Type"] = getLastId(type);
                            dataTable.Rows.Add(row);
                        }
                    }
                }
            }

            bindingSource_result.DataSource = dataTable;
            dataGridView_results.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
            dataGridView_results.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dataGridView_results.AutoResizeColumns();
        }
Пример #3
0
        private void launchReasonerProcess2(string ontologyFromPath, string ontologyTempPath)
        {
            Locked = true;
            progressBar_reasoner.Visible = true;
            progressBar_reasoner.BringToFront();

            var worker = new BackgroundWorker();

            worker.WorkerReportsProgress      = false;
            worker.WorkerSupportsCancellation = false;
            worker.DoWork += (o, e) =>
            {
                File.WriteAllBytes("executer.jar", resources.executer);

                string executer = "executer.jar";

                var processInfo = new ProcessStartInfo("javaw", string.Format("-jar \"{0}\" \"{1}\" \"{2}\"", executer.Replace("\\", @"\"), ontologyFromPath, ontologyTempPath))
                {
                    WindowStyle            = ProcessWindowStyle.Hidden,
                    UseShellExecute        = false,
                    CreateNoWindow         = true,
                    ErrorDialog            = true,
                    RedirectStandardError  = true,
                    RedirectStandardOutput = true,
                    //WorkingDirectory = System.IO.Path.GetDirectoryName(Application.ExecutablePath),
                };

                Process process = System.Diagnostics.Process.Start(processInfo);

                process.WaitForExit();
                int exitCode = process.ExitCode;
                process.Close();

                File.SetAttributes(ontologyTempPath, File.GetAttributes(ontologyTempPath) | FileAttributes.Hidden);
            };

            worker.RunWorkerCompleted += (o, e) =>
            {
                progressBar_reasoner.Visible = false;
                progressBar_reasoner.SendToBack();
                Locked = false;

                OwlManager.LoadOntology(getTempFilePath());

                OwlOntology.Ontology         = OwlManager.Ontology;
                OwlOntology.ObjectProperties = OwlManager.GetObjectProperties();
                // OwlOntology.Individuals = new List<string>(OwlManager.GetIndividuals());
                OwlOntology.Classes = OwlManager.GetClasses();
            };

            worker.RunWorkerAsync();
        }
Пример #4
0
        private void button_find_Click(object sender, EventArgs e)
        {
            if (Locked)
            {
                return;
            }

            if (panel_reasoner.BackColor == Color.Red)
            {
                MessageBox.Show("You can do the search only after applying the reasoner", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else if (textBox_search.Text.Count() == 0)
            {
                MessageBox.Show("Can you write a real word?", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            var query       = "SELECT Distinct ?type WHERE {  <" + OwlOntology.Ontology.BaseUri + "#" + textBox_search.Text + "> rdf:type ?type.}";
            var queryResylt = OwlManager.RunQueryDataTable(query);

            DataTable dataTable = new DataTable();

            dataTable.Columns.Add("Word");
            dataTable.Columns.Add("Type");

            foreach (var match in queryResylt.Results)
            {
                var test = getLastId(match.ToString());

                if (isApproved(getLastId(match.ToString())))
                {
                    var row = dataTable.NewRow();
                    row["Word"] = textBox_search.Text;
                    row["Type"] = getLastId(match.ToString());
                    dataTable.Rows.Add(row);
                }
            }

            bindingSource_result.DataSource = dataTable;
            dataGridView_results.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
            dataGridView_results.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dataGridView_results.AutoResizeColumns();
        }
Пример #5
0
        private void button_runQuery_Click(object sender, EventArgs e)
        {
            if (Locked)
            {
                return;
            }

            if (panel_reasoner.BackColor == Color.Red)
            {
                MessageBox.Show("You can do the search only after applying the reasoner", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else if (textBox_search.Text.Count() == 0)
            {
                MessageBox.Show("Can you write a real word?", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else
            {
                bindingSource_result.DataSource = OwlManager.RunQueryDataTable(textBox_query.Text);
            }
        }
Пример #6
0
        private void toolStripButton_export_Click(object sender, EventArgs e)
        {
            if (Locked)
            {
                return;
            }

            if (panel_reasoner.BackColor == Color.Red)
            {
                MessageBox.Show("You can do the search only after applying the reasoner", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            SaveFileDialog dialog = new SaveFileDialog();

            dialog.Title  = "Save";
            dialog.Filter = "Ontology File|*.owl";
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                // Saves the Image via a FileStream created by the OpenFile method.
                OwlManager.SaveOntology(dialog.FileName);
            }
        }
Пример #7
0
        private void toolStripButton_textfile_Click(object sender, EventArgs e)
        {
            if (Locked)
            {
                return;
            }

            if (panel_reasoner.BackColor == Color.Red)
            {
                MessageBox.Show("You can do the search only after applying the reasoner", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            OpenFileDialog dialog = new OpenFileDialog();

            dialog.Filter = "Text Files|*.txt";
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                var words = readTextFile(dialog.FileName);

                if (panel_reasoner.BackColor == Color.Red)
                {
                    applyReasoner();
                    panel_reasoner.BackColor = Color.Green;
                    initializeLabels();
                }

                DataTable dataTable = new DataTable();
                dataTable.Columns.Add("Word");
                dataTable.Columns.Add("Type");

                foreach (string word in words)
                {
                    var result = (from individual in OwlOntology.Individuals
                                  where individual.Contains(word)
                                  select individual).FirstOrDefault();

                    if (result != null)
                    {
                        var listOfIndividualTypes = OwlManager.RunQuery("SELECT Distinct ?type WHERE {  <" + result + "> rdf:type ?type.}");

                        foreach (string type in listOfIndividualTypes)
                        {
                            var test = getLastId(type);
                            if (getLastId(type).Equals("NamedIndividual") == false)
                            {
                                var row = dataTable.NewRow();
                                row["Word"] = word;
                                row["Type"] = getLastId(type);
                                dataTable.Rows.Add(row);
                            }
                        }
                    }
                }

                bindingSource_result.DataSource = dataTable;
                dataGridView_results.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                dataGridView_results.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                dataGridView_results.AutoResizeColumns();
            }
        }