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); }
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(); }
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); }