예제 #1
0
        public RecentPosts GetTopTenRecentPosts(int numberOfPosts = 10)
        {
            //Then we can parse a SPARQL string into a query
            SparqlQuery query = _parser.ParseFromString(@"
            PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
            PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
            PREFIX reddit: <http://www.semanticweb.org/hekurankastrati/ontologies/2019/4/reddit#>
            SELECT ?post ?title ?date
            WHERE { 
              ?post rdf:type ?type .
              ?type rdfs:subClassOf* reddit:Post .
              ?post reddit:hasTitle ?title .
              ?post reddit:hasDateCreated ?date .
            }
            ORDER BY DESC(?date)
            LIMIT " + numberOfPosts);

            InMemoryDataset ds = new InMemoryDataset(_redditGraph);

            //Get the Query processor
            ISparqlQueryProcessor processor = new ExplainQueryProcessor(ds);

            RecentPosts dto = new RecentPosts
            {
                Data = new List <RecentPostsData>()
            };

            Object results = processor.ProcessQuery(query);

            if (results is SparqlResultSet resultSet)
            {
                foreach (SparqlResult result in resultSet.Results)
                {
                    string post = result.TryGetValue("post", out var node)
                        ? ((IUriNode)node).Uri.Fragment.Replace('#', ' ')
                        : string.Empty;
                    string title = result.TryGetValue("title", out var titleNode)
                        ? ((ILiteralNode)titleNode).Value
                        : string.Empty;
                    string date = result.TryGetValue("date", out var dateNode)
                        ? ((ILiteralNode)dateNode).Value
                        : string.Empty;

                    dto.Data.Add(new RecentPostsData
                    {
                        Post  = post,
                        Title = title,
                        Date  = date
                    });
                }
            }

            return(dto);
        }
예제 #2
0
        public void postToolStripMenuItem_Click(object sender, EventArgs e)
        {
            postToolStripMenuItem.Enabled = false;
            pendingUrlsToolStripMenuItem1.Enabled = true;
            recentCarIdsToolStripMenuItem.Enabled = true;
            qcCheckToolStripMenuItem.Enabled = true;

            RecentPosts objrecntpost = new RecentPosts();
            objrecntpost.MdiParent = this;
            objrecntpost.Show();
            objrecntpost.FormClosed += new FormClosedEventHandler(objrecntpost_FormClosed);
            objrecntpost.BringToFront();
            this.BringToFront();
        }