public void ExtractKnGraphFromHtmlInputOnePageTest()
        {
            // expected graph
            KnowledgeGraph expectedKnGraph = new KnowledgeGraph();

            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(0, Utilities.OriginalGraphType.Unknown, "H2Title", "h2", new Uri("about:blank")));
            expectedKnGraph.KnGraph[0].Neighbors.Add(new KnowledgeGraphNode(1, Utilities.OriginalGraphType.Unknown, "H3Ttitle", "h3", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(1, Utilities.OriginalGraphType.Unknown, "H3Title", "h3", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(2, Utilities.OriginalGraphType.Unknown, "li-1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(3, Utilities.OriginalGraphType.Unknown, "li-2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(4, Utilities.OriginalGraphType.Unknown, "li-3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(17, Utilities.OriginalGraphType.Unknown, "li-4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(18, Utilities.OriginalGraphType.Unknown, "li-5", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(2, Utilities.OriginalGraphType.Unknown, "li-1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(3, Utilities.OriginalGraphType.Unknown, "li-2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(4, Utilities.OriginalGraphType.Unknown, "li-3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(5, Utilities.OriginalGraphType.Unknown, "li-3.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(6, Utilities.OriginalGraphType.Unknown, "li-3.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(7, Utilities.OriginalGraphType.Unknown, "li-3.3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(8, Utilities.OriginalGraphType.Unknown, "li-3.4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(11, Utilities.OriginalGraphType.Unknown, "li-3.5", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(12, Utilities.OriginalGraphType.Unknown, "li-3.6", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(16, Utilities.OriginalGraphType.Unknown, "li-3.7", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(5, Utilities.OriginalGraphType.Unknown, "li-3.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(6, Utilities.OriginalGraphType.Unknown, "li-3.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(7, Utilities.OriginalGraphType.Unknown, "li-3.3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(8, Utilities.OriginalGraphType.Unknown, "li-3.4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[8].Neighbors.Add(new KnowledgeGraphNode(9, Utilities.OriginalGraphType.Unknown, "li-3.4.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[8].Neighbors.Add(new KnowledgeGraphNode(10, Utilities.OriginalGraphType.Unknown, "li-3.4.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(9, Utilities.OriginalGraphType.Unknown, "li-3.4.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(10, Utilities.OriginalGraphType.Unknown, "li-3.4.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(11, Utilities.OriginalGraphType.Unknown, "li-3.5", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(12, Utilities.OriginalGraphType.Unknown, "li-3.6", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[12].Neighbors.Add(new KnowledgeGraphNode(13, Utilities.OriginalGraphType.Unknown, "li-3.6.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(13, Utilities.OriginalGraphType.Unknown, "li-3.6.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[13].Neighbors.Add(new KnowledgeGraphNode(14, Utilities.OriginalGraphType.Unknown, "li-3.6.1.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[13].Neighbors.Add(new KnowledgeGraphNode(15, Utilities.OriginalGraphType.Unknown, "li-3.6.1.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(14, Utilities.OriginalGraphType.Unknown, "li-3.6.1.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(15, Utilities.OriginalGraphType.Unknown, "li-3.6.1.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(16, Utilities.OriginalGraphType.Unknown, "li-3.7", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(17, Utilities.OriginalGraphType.Unknown, "li-4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(18, Utilities.OriginalGraphType.Unknown, "li-5", "li", new Uri("about:blank")));

            KnowledgeGraph actualKnGraph = WKGE.ExtractKnGraphFromHtmlFile(filePath: "./TestInputs/page1.html");

            AssertKnowledgegraphsAreEqual(expectedKnGraph, actualKnGraph);
        }
Пример #2
0
        static void Main(string[] args)
        {
            KnowledgeGraph knowledgeGraph = WKGE.ExtractKnGraphFromUris(WKGE.WikipediaPagesToParse);

            // Console.WriteLine(Utilities.FormatKnGraphIndexAndLabelsForPrinting(knowledgeGraph));
            // Console.WriteLine();

            // Console.WriteLine(Utilities.FormatKnGraphLabelsForPrinting(knowledgeGraph));
            // Console.WriteLine();

            // Console.WriteLine(Utilities.FormatKnGraphIndexesForPrinting(knowledgeGraph));

            // Utilities.DownloadAllPagesInKnGraph();

            Console.WriteLine("SaveDSWordCountsToJsonFile...");
            Utilities.SaveDSWordCountsToJsonFile(knowledgeGraph);
            Console.WriteLine("Done");

            Console.ReadKey();
        }
Пример #3
0
        static void Main()
        {
            // get the knowlege graph from all wikipedia Uris in WKGE
            KnowledgeGraph knowledgeGraph = WKGE.GetKnowledgeGraphFromWikipedia();

            //create a form
            System.Windows.Forms.Form form = new System.Windows.Forms.Form();
            //create a viewer object
            Microsoft.Msagl.GraphViewerGdi.GViewer viewer = new Microsoft.Msagl.GraphViewerGdi.GViewer();
            //create a graph object
            Graph graph = new Graph("graph");

            //add the graph content for list of algorithms
            for (int index = 0; index < knowledgeGraph.KnGraph.Count; index++)
            {
                KnowledgeGraphNode node = knowledgeGraph.KnGraph[index];

                // add node and set its color
                graph.AddNode(node.Label).Attr.FillColor = GraphNodeColors[node.OriginalGraphType][node.HtmlName];

                // add all neighbors as edges
                node.Neighbors.ForEach(neighbor =>
                                       graph.AddEdge(node.Label, knowledgeGraph.KnGraph[neighbor.Index].Label));
            }

            // use the MDS rendering method
            viewer.CurrentLayoutMethod = Microsoft.Msagl.GraphViewerGdi.LayoutMethod.MDS;

            //bind the graph to the viewer
            viewer.Graph = graph;
            //associate the viewer with the form
            form.SuspendLayout();
            viewer.Dock = System.Windows.Forms.DockStyle.Fill;
            form.Controls.Add(viewer);
            form.ResumeLayout();
            //show the form
            form.ShowDialog();
        }
        public void ExtractKnGraphFromHtmlInputThreePagesTest()
        {
            // html input files
            List <string> htmlFiles = new List <string>()
            {
                "./TestInputs/page1.html",
                "./TestInputs/page2.html",
                "./TestInputs/page3.html"
            };

            // expected graph
            KnowledgeGraph expectedKnGraph = new KnowledgeGraph();

            // graph from page 1
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(0, Utilities.OriginalGraphType.Unknown, "H2Title", "h2", new Uri("about:blank")));
            expectedKnGraph.KnGraph[0].Neighbors.Add(new KnowledgeGraphNode(1, Utilities.OriginalGraphType.Unknown, "H3Ttitle", "h3", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(1, Utilities.OriginalGraphType.Unknown, "H3Title", "h3", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(2, Utilities.OriginalGraphType.Unknown, "li-1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(3, Utilities.OriginalGraphType.Unknown, "li-2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(4, Utilities.OriginalGraphType.Unknown, "li-3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(17, Utilities.OriginalGraphType.Unknown, "li-4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[1].Neighbors.Add(new KnowledgeGraphNode(18, Utilities.OriginalGraphType.Unknown, "li-5", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(2, Utilities.OriginalGraphType.Unknown, "li-1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(3, Utilities.OriginalGraphType.Unknown, "li-2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(4, Utilities.OriginalGraphType.Unknown, "li-3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(5, Utilities.OriginalGraphType.Unknown, "li-3.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(6, Utilities.OriginalGraphType.Unknown, "li-3.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(7, Utilities.OriginalGraphType.Unknown, "li-3.3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(8, Utilities.OriginalGraphType.Unknown, "li-3.4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(11, Utilities.OriginalGraphType.Unknown, "li-3.5", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(12, Utilities.OriginalGraphType.Unknown, "li-3.6", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[4].Neighbors.Add(new KnowledgeGraphNode(16, Utilities.OriginalGraphType.Unknown, "li-3.7", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(5, Utilities.OriginalGraphType.Unknown, "li-3.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(6, Utilities.OriginalGraphType.Unknown, "li-3.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(7, Utilities.OriginalGraphType.Unknown, "li-3.3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(8, Utilities.OriginalGraphType.Unknown, "li-3.4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[8].Neighbors.Add(new KnowledgeGraphNode(9, Utilities.OriginalGraphType.Unknown, "li-3.4.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[8].Neighbors.Add(new KnowledgeGraphNode(10, Utilities.OriginalGraphType.Unknown, "li-3.4.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(9, Utilities.OriginalGraphType.Unknown, "li-3.4.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(10, Utilities.OriginalGraphType.Unknown, "li-3.4.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(11, Utilities.OriginalGraphType.Unknown, "li-3.5", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(12, Utilities.OriginalGraphType.Unknown, "li-3.6", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[12].Neighbors.Add(new KnowledgeGraphNode(13, Utilities.OriginalGraphType.Unknown, "li-3.6.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(13, Utilities.OriginalGraphType.Unknown, "li-3.6.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[13].Neighbors.Add(new KnowledgeGraphNode(14, Utilities.OriginalGraphType.Unknown, "li-3.6.1.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[13].Neighbors.Add(new KnowledgeGraphNode(15, Utilities.OriginalGraphType.Unknown, "li-3.6.1.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(14, Utilities.OriginalGraphType.Unknown, "li-3.6.1.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(15, Utilities.OriginalGraphType.Unknown, "li-3.6.1.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(16, Utilities.OriginalGraphType.Unknown, "li-3.7", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(17, Utilities.OriginalGraphType.Unknown, "li-4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(18, Utilities.OriginalGraphType.Unknown, "li-5", "li", new Uri("about:blank")));
            //graph from page 2
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(19, Utilities.OriginalGraphType.Unknown, "H2Title2", "h2", new Uri("about:blank")));
            expectedKnGraph.KnGraph[19].Neighbors.Add(new KnowledgeGraphNode(20, Utilities.OriginalGraphType.Unknown, "H3Title2", "h3", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(20, Utilities.OriginalGraphType.Unknown, "H3Title2", "h3", new Uri("about:blank")));
            expectedKnGraph.KnGraph[20].Neighbors.Add(new KnowledgeGraphNode(21, Utilities.OriginalGraphType.Unknown, "page2li-1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[20].Neighbors.Add(new KnowledgeGraphNode(22, Utilities.OriginalGraphType.Unknown, "page2li-2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[20].Neighbors.Add(new KnowledgeGraphNode(23, Utilities.OriginalGraphType.Unknown, "page2li-3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[20].Neighbors.Add(new KnowledgeGraphNode(24, Utilities.OriginalGraphType.Unknown, "page2li-4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(21, Utilities.OriginalGraphType.Unknown, "page2li-1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(22, Utilities.OriginalGraphType.Unknown, "page2li-2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(23, Utilities.OriginalGraphType.Unknown, "page2li-3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(24, Utilities.OriginalGraphType.Unknown, "page2li-4", "li", new Uri("about:blank")));
            // graph from page 3
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(25, Utilities.OriginalGraphType.Unknown, "H2Title3", "h2", new Uri("about:blank")));
            expectedKnGraph.KnGraph[25].Neighbors.Add(new KnowledgeGraphNode(26, Utilities.OriginalGraphType.Unknown, "H3Title3", "h3", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(26, Utilities.OriginalGraphType.Unknown, "H3Title3", "h3", new Uri("about:blank")));
            expectedKnGraph.KnGraph[26].Neighbors.Add(new KnowledgeGraphNode(27, Utilities.OriginalGraphType.Unknown, "page3li-1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[26].Neighbors.Add(new KnowledgeGraphNode(28, Utilities.OriginalGraphType.Unknown, "page3li-2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[26].Neighbors.Add(new KnowledgeGraphNode(29, Utilities.OriginalGraphType.Unknown, "page3li-3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[26].Neighbors.Add(new KnowledgeGraphNode(35, Utilities.OriginalGraphType.Unknown, "page3li-4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[26].Neighbors.Add(new KnowledgeGraphNode(36, Utilities.OriginalGraphType.Unknown, "page3li-5", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(27, Utilities.OriginalGraphType.Unknown, "page3li-1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(28, Utilities.OriginalGraphType.Unknown, "page3li-2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(29, Utilities.OriginalGraphType.Unknown, "page3li-3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(35, Utilities.OriginalGraphType.Unknown, "page3li-4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(36, Utilities.OriginalGraphType.Unknown, "page3li-5", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[29].Neighbors.Add(new KnowledgeGraphNode(30, Utilities.OriginalGraphType.Unknown, "page3li-3.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[29].Neighbors.Add(new KnowledgeGraphNode(31, Utilities.OriginalGraphType.Unknown, "page3li-3.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[29].Neighbors.Add(new KnowledgeGraphNode(32, Utilities.OriginalGraphType.Unknown, "page3li-3.3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[29].Neighbors.Add(new KnowledgeGraphNode(33, Utilities.OriginalGraphType.Unknown, "page3li-3.4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph[29].Neighbors.Add(new KnowledgeGraphNode(34, Utilities.OriginalGraphType.Unknown, "page3li-3.5", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(30, Utilities.OriginalGraphType.Unknown, "page3li-2.1.1", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(31, Utilities.OriginalGraphType.Unknown, "page3li-2.1.2", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(32, Utilities.OriginalGraphType.Unknown, "page3li-2.1.3", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(33, Utilities.OriginalGraphType.Unknown, "page3li-2.1.4", "li", new Uri("about:blank")));
            expectedKnGraph.KnGraph.Add(new KnowledgeGraphNode(34, Utilities.OriginalGraphType.Unknown, "page3li-2.1.5", "li", new Uri("about:blank")));

            // compute actual graph from files
            KnowledgeGraph actualKnGraph = WKGE.ExtractKnGraphFromHtmlFiles(htmlFiles);

            AssertKnowledgegraphsAreEqual(expectedKnGraph, actualKnGraph);
        }