Inheritance: SemWeb.Query.QueryResultSink
    protected void myWizard_NextButtonClick(object sender, System.Web.UI.WebControls.WizardNavigationEventArgs e)
    {
        Query query;
        string queryfile = @"C:\Query.txt";
        string datafile = @"C:\KLM11.n3";
        string str = "PREFIX table:<http://www.owl-ontologies.com/Ontology1183162121.owl#> \n " +
        "SELECT distinct ?name ?symp   \n " +
        "FROM <C:/KLM11.owl> \n " +
        " where \n" +
           "{\n" +
           " ?Disease table:disease ?name.\n" +
        " ?Disease table:symptoms ?symp.\n" +
        " ?Disease table:classification ?class.\n" +
          " ?class table:class-name \"" + RadioButtonList1.SelectedItem.Text + "\" }\n";

        TextWriter stringWriter = new StringWriter();
        stringWriter.Write(str);

        query = new SparqlEngine(str);
        MemoryStore data = new MemoryStore();
        data.Import(new N3Reader(datafile));

        // First, print results in SPARQL XML Results format...

        // Create a result sink where results are written to.
        XmlTextWriter writer = new XmlTextWriter("C:\\temp\\xmltest3.xml", null);

        QueryResultSink sink = new SparqlXmlQuerySink(writer);

        // Run the query.
        query.Run(data, sink);

        writer.Close();
        TextWriter stringWriter1 = new StringWriter();

        dt.Columns.Add("Disease");
        dt.Columns.Add("Symptoms");
        query.Run(data, stringWriter1);
        //Response.Write(stringWriter1.ToString());

        FileStream fs = new FileStream("C:\\temp\\xmltest3.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
        xmldoc = new XmlDocument();
        xmldoc.Load(fs);
        XmlNodeList xmlnode = xmldoc.GetElementsByTagName("binding");
        Console.WriteLine("Here is the list of catalogs\n\n");

        for (int i = 0; i < xmlnode.Count; i++)
        {

            XmlAttributeCollection xmlattrc = xmlnode[i].Attributes;

            //XML Attribute Name and Value returned
            //Example: <Book id = "001">

            //First Child of the XML file - Catalog.xml - returned
            //Example: <Author>Mark</Author>

            dt.Rows.Add(xmlnode[i].NextSibling.InnerText.Replace("http://www.owl-ontologies.com/Ontology1183162121.owl#", ""), xmlnode[i].InnerText.Replace("http://www.owl-ontologies.com/Ontology1183162121.owl#", ""));
            i = i + 1;

        }

        fs.Close();

        str = string.Empty;
        str = "PREFIX table:<http://www.owl-ontologies.com/Ontology1183162121.owl#> \n " +
          "SELECT distinct  ?symp   \n " +
          "FROM <C:/KLM11.owl> \n " +
          " where \n" +
         "{\n" +
         " ?Disease table:disease ?name.\n" +
          " ?Disease table:symptoms ?symp.\n" +
          " ?Disease table:classification ?class.\n" +
        " ?class table:class-name \"" + RadioButtonList1.SelectedItem.Text + "\" }\n";

        // Response.Write("Catalog Finished");
        query = new SparqlEngine(str);
        data = new MemoryStore();
        data.Import(new N3Reader(datafile));
        PrintQuerySink psink = new PrintQuerySink();
        query.Run(data, psink);

        Question.Text = "Do you have " + psink.al[0].ToString() + "?";
        a = new ArrayList();
        Session["array"] = dt;
        processQuestions();
        Session["item"] = 0;
        Session["a"] = a;
        Session["arraylist"] = psink.al;
        GridView1.DataSource = null;

        //foreach (string s in psink.array)
        //{
        //    CheckBoxList1.Items.Add(new ListItem(s));
        //}
        //CheckBoxList1.
    }
    protected void RadioButtonList2_SelectedIndexChanged(object sender, EventArgs e)
    {
        WizardStepType t = new WizardStepType();
        string result = string.Empty;
        //if (Convert.ToInt32(Session["item"]) <((DataTable)Session["array"]).Rows.Count)
        //{
        //    Question.Text = "Do you have " +((DataTable)Session["array"]).Rows[Convert.ToInt32(Session["item"])][1].ToString()+"?";
        //    Session["item"] = Convert.ToInt32(Session["item"])+1;
        //    RadioButtonList2.Items.Clear();
        //    RadioButtonList2.Items.Add(new ListItem("Yes"));
        //    RadioButtonList2.Items.Add(new ListItem("No"));
        //}
        if (Session["array"] != null)
        {
            if (RadioButtonList2.SelectedItem.Text == "Yes")
            {
                ((ArrayList)Session["a"]).Add("'" + ((ArrayList)Session["arraylist"])[Convert.ToInt32(Session["item"])].ToString() + "'");
                string expr = string.Empty;
                foreach (string items in ((ArrayList)Session["a"]))
                {
                    expr = expr + items + ",";

                }
                //if(expr!=string.Empty)
                // expr="Symptoms in ("+expr.Remove(expr.Length - 1)+") and";

                expr = "Symptoms in( '" + ((ArrayList)Session["arraylist"])[Convert.ToInt32(Session["item"])].ToString() + "') and";
                DataView dv;
                if (GridView1.Rows.Count > 0)
                {
                    string expr1 = string.Empty;

                    foreach (GridViewRow r in GridView1.Rows)
                    {
                        expr1 = expr1 + "'" + r.Cells[0].Text + "',";

                    }
                    expr1 = expr + " Disease in (" + expr1.Remove(expr1.Length - 1) + ")";
                    dv = new DataView(((DataTable)Session["array"]), expr1, "", DataViewRowState.CurrentRows);
                }
                else
                {
                    expr = expr.Remove(expr.Length - 3);
                    dv = new DataView(((DataTable)Session["array"]), expr, "", DataViewRowState.CurrentRows);
                }

                DataTable dt2 = dv.ToTable();

                // foreach (DataRowView drv in dv)

                //{

                //    value = (int)drv["column1"];

                //   }

                //  DataRow[] foundrows = ((DataTable)Session["array"]).Select("Symptoms like '" + ((DataTable)Session["array"]).Rows[Convert.ToInt32(Session["item"])][1].ToString() + "'");

                if (dt2.Rows.Count > 0)
                {
                    GridView1.DataSource = dt2;
                    GridView1.DataBind();
                    //   GridView1.Columns[1].Visible = false;
                    if (GridView1.Rows.Count == 1)
                    {
                        t = myWizard.WizardSteps[2].StepType;
                        if (t == WizardStepType.Complete)
                        {
                            lblName.Text = GridView1.Rows[0].Cells[0].Text;

                            Query query;
                            string queryfile = @"C:\Query.txt";
                            string datafile = @"C:\KLM11.n3";
                            string str = "PREFIX table:<http://www.owl-ontologies.com/Ontology1183162121.owl#> \n " +
                            "SELECT distinct ?med  \n " +
                            "FROM <C:/KLM11.N3> \n " +
                            " where \n" +
                           "{\n" +
                           " ?Disease table:disease ?name.\n" +
                            " ?Disease table:symptoms ?symp.\n" +
                            " ?Disease table:classification ?class.\n" +
                          " ?class table:class-name \"" + RadioButtonList1.SelectedItem.Text + "\". \n" +
                          "?name table:disease-name ?nam.\n" +
                          " Filter regex(?nam, \"" + GridView1.Rows[0].Cells[0].Text + "\",\"i\"). \n " +
                          "?name table:medication ?med.\n }";

                            TextWriter stringWriter = new StringWriter();
                            stringWriter.Write(str);

                            query = new SparqlEngine(str);
                            MemoryStore data = new MemoryStore();
                            data.Import(new N3Reader(datafile));

                            PrintQuerySink psink = new PrintQuerySink();
                            query.Run(data, psink);
                            foreach (string s in psink.al)
                                result = result + s + ",";
                            if (result != string.Empty)
                                result = result.Remove(result.Length - 1);

                            //ListBox1.DataSource = psink.al;
                            //ListBox1.DataBind();

                        }

                    }
                    // GridView1.Columns[1].Visible = false;
                }

            }

            if (t != WizardStepType.Complete)
            {

                if (Convert.ToInt32(Session["item"]) < ((ArrayList)Session["arraylist"]).Count - 1)
                {

                    Session["item"] = Convert.ToInt32(Session["item"]) + 1;
                    RadioButtonList2.Items[0].Selected = false;
                    RadioButtonList2.Items[1].Selected = false;
                    Question.Text = "Do you have " + ((ArrayList)Session["arraylist"])[Convert.ToInt32(Session["item"])].ToString() + "?";

                }
            }
            else
            {

                Response.Redirect("~/Patient/DiagResult.aspx?dis='" + GridView1.Rows[0].Cells[0].Text + "' &med='" + result + "'");

            }
        }
    }
Beispiel #3
0
    public static void Main(string[] args)
    {
        System.Net.ServicePointManager.Expect100Continue = false;

        Opts opts = new Opts();

        opts.ProcessArgs(args);

        if (opts.RemainingArguments.Length != 1)
        {
            opts.DoHelp();
            return;
        }

        string baseuri = "query://query/#";

        QueryResultSink qs;

        if (opts.format == "simple")
        {
            qs = new PrintQuerySink();
        }
        else if (opts.format == "html")
        {
            qs = new HTMLQuerySink(Console.Out);
        }
        else if (opts.format == "xml")
        {
            qs = new SparqlXmlQuerySink(Console.Out);
        }
        else if (opts.format == "lubm")
        {
            qs = new LUBMReferenceAnswerOutputQuerySink();
        }
        else if (opts.format == "csv")
        {
            qs = new CSVQuerySink();
        }
        else
        {
            Console.Error.WriteLine("Invalid output format.");
            return;
        }

        Query query;

        MemoryStore queryModel = null;

                #if !DOTNET2
        System.Collections.ICollection queryModelVars = null;
                #else
        System.Collections.Generic.ICollection <Variable> queryModelVars = null;
                #endif

        Store model = Store.Create(opts.RemainingArguments[0]);

        if (opts.type == "rsquary")
        {
            RdfReader queryparser = RdfReader.Create("n3", "-");
            queryparser.BaseUri = baseuri;
            queryModel          = new MemoryStore(queryparser);
            queryModelVars      = queryparser.Variables;
            query = new GraphMatch(queryModel);
        }
        else if (opts.type == "sparql" && model.DataSources.Count == 1 && model.DataSources[0] is SemWeb.Remote.SparqlSource)
        {
            string querystring = Console.In.ReadToEnd();
            ((SemWeb.Remote.SparqlSource)model.DataSources[0]).RunSparqlQuery(querystring, Console.Out);
            return;
        }
        else if (opts.type == "sparql")
        {
            string querystring = Console.In.ReadToEnd();
            query = new SparqlEngine(querystring);
        }
        else
        {
            throw new Exception("Invalid query format: " + opts.type);
        }

        if (opts.limit > 0)
        {
            query.ReturnLimit = opts.limit;
        }

        //Console.Error.WriteLine(query.GetExplanation());

        if (query is SparqlEngine && ((SparqlEngine)query).Type != SparqlEngine.QueryType.Select)
        {
            SparqlEngine sparql = (SparqlEngine)query;
            sparql.Run(model, Console.Out);
        }
        else if (model is QueryableSource && queryModel != null)
        {
            SemWeb.Query.QueryOptions qopts = new SemWeb.Query.QueryOptions();
            qopts.DistinguishedVariables = queryModelVars;

            // Replace bnodes in the query with Variables
            int bnodectr = 0;
            foreach (Entity e in queryModel.GetEntities())
            {
                if (e is BNode && !(e is Variable))
                {
                    BNode b = (BNode)e;
                    queryModel.Replace(e, new Variable(b.LocalName != null ? b.LocalName : "bnodevar" + (++bnodectr)));
                }
            }

            model.Query(queryModel.ToArray(), qopts, qs);
        }
        else
        {
            query.Run(model, qs);
        }

        if (qs is IDisposable)
        {
            ((IDisposable)qs).Dispose();
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Query query;
        XmlDocument xmldoc;
        DataTable dt = new DataTable();
        PrintQuerySink psink = new PrintQuerySink();

        dt.Columns.Add("Name");
        dt.Columns.Add("Disease");
        dt.Columns.Add("Symptom");
        dt.Columns.Add("Medication");

        DirectoryInfo dir = new DirectoryInfo(@"C:\PatientOWLFiles");
        FileInfo[] n3files = dir.GetFiles("*.n3");

        foreach (FileInfo f in n3files)
        {

            string datafile = f.FullName;
            string str = string.Empty;

            if (DropDownList1.SelectedIndex == 0)
            {
                str = "PREFIX table:<http://www.owl-ontologies.com/Ontology1183162121.owl#> \n " +
               "SELECT distinct ?dis ?symp ?medi  \n " +
               "from <" + f.FullName + ">\n " +
               " where \n" +
              "{\n" +
              " ?Disease table:disease ?dis.\n" +
              " ?dis table:symptoms ?sym. \n" +
              " ?dis table:medication ?med. \n" +
              "?dis table:disease-name ?dise.\n" +
               "?sym table:symp-name ?symp.\n" +
               "?med table:med-name ?medi.\n";
                str = str + "Filter regex(?dise, \"" + TextBox1.Text + "\" ,\"i\").\n";

            }
            else if (DropDownList1.SelectedIndex == 1)
            {
                str = "PREFIX table:<http://www.owl-ontologies.com/Ontology1183162121.owl#> \n " +
               "SELECT distinct ?dis ?symp  ?medi \n " +
               "from <" + f.FullName + ">\n " +
               " where \n" +
              "{\n" +
              " ?Disease table:disease ?dis.\n" +
              " ?dis table:symptoms ?sym. \n" +
              " ?dis table:medication ?med. \n" +
              "?dis table:disease-name ?dise.\n" +
               "?sym table:symp-name ?symp.\n" +
               "?med table:med-name ?medi.\n";
                str = str + "Filter regex(?symp, \"" + TextBox1.Text + "\" ,\"i\").\n";

            }
            else if (DropDownList1.SelectedIndex == 2)
            {
                str = "PREFIX table:<http://www.owl-ontologies.com/Ontology1183162121.owl#> \n " +
               "SELECT distinct ?dis ?symp ?medi  \n " +
               "from <" + f.FullName + ">\n " +
               " where \n" +
              "{\n" +
              " ?Disease table:disease ?dis.\n" +
              " ?dis table:symptoms ?sym. \n" +
              " ?dis table:medication ?med. \n" +
              "?dis table:disease-name ?dise.\n" +
               "?sym table:symp-name ?symp.\n" +
               "?med table:med-name ?medi.\n";
                str = str + "Filter regex(?medi, \"" + TextBox1.Text + "\" ,\"i\").\n";

            }

            str = str + "  }\n";

            TextWriter stringWriter = new StringWriter();
            stringWriter.Write(str);

            query = new SparqlEngine(str);
            MemoryStore data = new MemoryStore();
            data.Import(new N3Reader(datafile));

            // First, print results in SPARQL XML Results format...

            // Create a result sink where results are written to.
            XmlTextWriter writer = new XmlTextWriter("C:\\temp\\xmltest3.xml", null);

            QueryResultSink sink = new SparqlXmlQuerySink(writer);

            // Run the query.
            query.Run(data, sink);

            writer.Close();
            TextWriter stringWriter1 = new StringWriter();

            query.Run(data, stringWriter1);

            psink._pName = f.Name.Replace(".n3", "");
            query.Run(data, psink);
            //Response.Write(stringWriter1.ToString());

            //    FileStream fs = new FileStream("C:\\temp\\xmltest3.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            //    xmldoc = new XmlDocument();
            //    xmldoc.Load(fs);
            //    XmlNodeList xmlnode = xmldoc.GetElementsByTagName("binding");

            //    for (int i = 0; i < xmlnode.Count; i++)
            //    {

            //        XmlAttributeCollection xmlattrc = xmlnode[i].Attributes;

            //        //XML Attribute Name and Value returned
            //        //Example: <Book id = "001">

            //        //First Child of the XML file - Catalog.xml - returned
            //        //Example: <Author>Mark</Author>
            //        i = i + 1;
            //        dt.Rows.Add(f.Name.Replace(".n3",""),xmlnode[i].NextSibling.InnerText.Replace("http://www.owl-ontologies.com/Ontology1183162121.owl#", ""), xmlnode[i-1].InnerText.Replace("http://www.owl-ontologies.com/Ontology1183162121.owl#", ""),xmlnode[i].InnerText.Replace("http://www.owl-ontologies.com/Ontology1183162121.owl#", ""));

            //    }

            //    fs.Close();
        }

        if (psink.list.Count > 0)
        {
            GridView1.DataSource = null;
            Result r = new Result();
            r.R = psink.list;
            GridView1.DataSource = psink.list;

            GridView1.DataBind();
            GridView1.Visible = true;
            lblMessage.Visible = false;
        }
        else
        {
            lblMessage.Text = "No records found";
            lblMessage.Visible = true;
            dt = new DataTable();
        }
    }
    protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Query query;
        XmlDocument xmldoc;
        DataTable dt = new DataTable();
        PrintQuerySink psink = new PrintQuerySink();

        string datafile = ListBox1.SelectedValue.ToString();
        string str = string.Empty;
        dt.Columns.Add("Name");
        dt.Columns.Add("Disease");
        dt.Columns.Add("Symptom");
        dt.Columns.Add("Medication");

        str = "PREFIX table:<http://www.owl-ontologies.com/Ontology1183162121.owl#> \n " +
        "SELECT distinct ?dis ?symp ?medi  \n " +
        "from <" + ListBox1.SelectedValue.ToString() + ">\n " +
        " where \n" +
           "{\n" +
           " ?Disease table:disease ?dis.\n" +
           " ?dis table:symptoms ?sym. \n" +
           " ?dis table:medication ?med. \n" +
           "?dis table:disease-name ?dise.\n" +
        "?sym table:symp-name ?symp.\n" +
        "?med table:med-name ?medi.\n }";
        query = new SparqlEngine(str);
        MemoryStore data = new MemoryStore();
        data.Import(new N3Reader(datafile));
        psink._pName = ListBox1.SelectedValue.ToString().Replace(".n3", "").Replace(@"C:\PatientOWLFiles\", "");
        query.Run(data, psink);

        if (psink.list.Count > 0)
        {
            GridView1.DataSource = null;
            Result r = new Result();
            r.R = psink.list;
            GridView1.DataSource = psink.list;
            GridView1.Visible = true;
            GridView1.DataBind();
            lblMessage.Visible = false;
        }
        else
        {
            lblMessage.Text = "No records found";
            GridView1.Visible = false;
            lblMessage.Visible = true;
            dt = new DataTable();
        }
    }
Beispiel #6
0
    public static void Main(string[] args)
    {
        System.Net.ServicePointManager.Expect100Continue = false;

        Opts opts = new Opts();
        opts.ProcessArgs(args);

        if (opts.RemainingArguments.Length != 1) {
            opts.DoHelp();
            return;
        }

        string baseuri = "query://query/#";

        QueryResultSink qs;
        if (opts.format == "simple")
            qs = new PrintQuerySink();
        else if (opts.format == "html")
            qs = new HTMLQuerySink(Console.Out);
        else if (opts.format == "xml")
            qs = new SparqlXmlQuerySink(Console.Out);
        else if (opts.format == "lubm")
            qs = new LUBMReferenceAnswerOutputQuerySink();
        else if (opts.format == "csv")
            qs = new CSVQuerySink();
        else {
            Console.Error.WriteLine("Invalid output format.");
            return;
        }

        Query query;

        MemoryStore queryModel = null;
        #if !DOTNET2
        System.Collections.ICollection queryModelVars = null;
        #else
        System.Collections.Generic.ICollection<Variable> queryModelVars = null;
        #endif

        Store model = Store.Create(opts.RemainingArguments[0]);

        if (opts.type == "rsquary") {
            RdfReader queryparser = RdfReader.Create("n3", "-");
            queryparser.BaseUri = baseuri;
            queryModel = new MemoryStore(queryparser);
            queryModelVars = queryparser.Variables;
            query = new GraphMatch(queryModel);
        } else if (opts.type == "sparql" && model.DataSources.Count == 1 && model.DataSources[0] is SemWeb.Remote.SparqlSource) {
            string querystring = Console.In.ReadToEnd();
            ((SemWeb.Remote.SparqlSource)model.DataSources[0]).RunSparqlQuery(querystring, Console.Out);
            return;
        } else if (opts.type == "sparql") {
            string querystring = Console.In.ReadToEnd();
            query = new SparqlEngine(querystring);
        } else {
            throw new Exception("Invalid query format: " + opts.type);
        }

        if (opts.limit > 0)
            query.ReturnLimit = opts.limit;

        //Console.Error.WriteLine(query.GetExplanation());

        if (query is SparqlEngine && ((SparqlEngine)query).Type != SparqlEngine.QueryType.Select) {
            SparqlEngine sparql = (SparqlEngine)query;
            sparql.Run(model, Console.Out);
        } else if (model is QueryableSource && queryModel != null) {
            SemWeb.Query.QueryOptions qopts = new SemWeb.Query.QueryOptions();
            qopts.DistinguishedVariables = queryModelVars;

            // Replace bnodes in the query with Variables
            int bnodectr = 0;
            foreach (Entity e in queryModel.GetEntities()) {
                if (e is BNode && !(e is Variable)) {
                    BNode b = (BNode)e;
                    queryModel.Replace(e, new Variable(b.LocalName != null ? b.LocalName : "bnodevar" + (++bnodectr)));
                }
            }

            model.Query(queryModel.ToArray(), qopts, qs);
        } else {
            query.Run(model, qs);
        }

        if (qs is IDisposable)
            ((IDisposable)qs).Dispose();
    }