public TaskValidationResultCollection(IEnumerable <TableExtractionTask> tasks) { foreach (var task in tasks) { var taskResult = new TaskValidationResult(task); Results.Add(task, taskResult); } }
public DataTable GetReportTable(TaskValidationResult task, DataTable existingTable = null, List <ValidationOutcome> outcomes = null) { var table = new DataTable(task.task.name + "_prop_validation"); table.SetDescription("Property validation results for task [" + task.task.name + "]"); var column_task = table.Columns.Add("Task").SetWidth(25); var column_propertyName = table.Columns.Add("Property").SetGroup("Declaration").SetWidth(20); var column_propertyType = table.Columns.Add("Type").SetGroup("Declaration").SetWidth(10); var column_contentType = table.Columns.Add("Content").SetGroup("Declaration").SetWidth(10); var column_valueformat = table.Columns.Add("Format").SetGroup("Declaration").SetWidth(10); var column_frequency = table.Columns.Add("Frequency").SetWidth(10); var column_outcome = table.Columns.Add("Outcome").SetGroup("Result").SetWidth(10); var column_message = table.Columns.Add("Comment").SetGroup("Result").SetWidth(50); var column_linkedNode = table.Columns.Add("Node").SetWidth(10).SetGroup("Values"); var column_DistinctValues = table.Columns.Add("Distinct").SetGroup("Values").SetWidth(10); var column_examplevalues1 = table.Columns.Add("Example1").SetGroup("Values").SetWidth(25).SetHeading("Example").SetDesc("Example value found at the property"); var column_examplevalues2 = table.Columns.Add("Example2").SetGroup("Values").SetWidth(25).SetHeading("Example").SetDesc("Example value found at the property"); var column_examplevalues3 = table.Columns.Add("Example3").SetGroup("Values").SetWidth(25).SetHeading("Example").SetDesc("Example value found at the property"); var column_examplevalues4 = table.Columns.Add("Example4").SetGroup("Values").SetWidth(25).SetHeading("Example").SetDesc("Example value found at the property"); var column_examplevalues5 = table.Columns.Add("Example5").SetGroup("Values").SetWidth(25).SetHeading("Example").SetDesc("Example value found at the property"); var column_SpamPropertyMeasure = table.Columns.Add("SpamPropertyMeasure").SetGroup("Values").SetHeading("Spam").SetDesc("Measure describing probability that this property is a spam property").SetFormat("F3").SetWidth(10); var column_allcontenttypes = table.Columns.Add("All types").SetWidth(100); var column_xpath = table.Columns.Add("XPath").SetWidth(100); var results = GetResults(); foreach (var rpair in results) { table.SetAdditionalInfoEntry(rpair.Key.ToString(), rpair.Value.Count, "Number of properties having outcome [" + rpair.Key.ToString() + "]"); } DataTable targetTable = table; if (existingTable != null) { targetTable = existingTable; } if (outcomes == null) { outcomes = new List <ValidationOutcome>() { ValidationOutcome.Validated, ValidationOutcome.Modified, ValidationOutcome.Invalid, ValidationOutcome.undefined }; } foreach (var oc in outcomes) { submethod(results[oc], targetTable); } void submethod(IEnumerable <TaskPropertyValidation> plist, DataTable _targetTable = null) { foreach (TaskPropertyValidation p in plist) { var dr = _targetTable.NewRow(); dr[column_task.ColumnName] = task.task.name; dr[column_SpamPropertyMeasure.ColumnName] = p.SpamPropertyMeasure; List <string> d_vals = p.ValueCounter.GetDistinctItems().trimToLimit(25, true, "...", false, true); dr[column_DistinctValues.ColumnName] = p.DistinctValues; dr[column_examplevalues1.ColumnName] = d_vals.ElementAtOrDefault(0); dr[column_examplevalues2.ColumnName] = d_vals.ElementAtOrDefault(1); dr[column_examplevalues3.ColumnName] = d_vals.ElementAtOrDefault(2); dr[column_examplevalues4.ColumnName] = d_vals.ElementAtOrDefault(3); dr[column_examplevalues5.ColumnName] = d_vals.ElementAtOrDefault(4); dr[column_propertyType.ColumnName] = p.item.ValueTypeName; // source.propertyType; dr[column_frequency.ColumnName] = p.Frequency; //.GetRatio(task.score.metaPropertyNameCounter.DistinctCount()); dr[column_SpamPropertyMeasure.ColumnName] = p.SpamPropertyMeasure; //f.GetRatio(validation_calls); //source.persistance; dr[column_propertyName.ColumnName] = p.item.PropertyName; // source.propertyName; dr[column_message.ColumnName] = p.Message; // source.message; dr[column_outcome.ColumnName] = p.Outcome; dr[column_linkedNode.ColumnName] = p.LinkedNodes; // source.linkedNode; dr[column_contentType.ColumnName] = p.item.ContentType.ToString(); // source.contentType; dr[column_valueformat.ColumnName] = p.item.ValueFormat; // source.valueformat; dr[column_allcontenttypes.ColumnName] = p.item.AllContentTypes.getEnumListFromFlags <CellContentType>().toCsvInLine(); dr[column_xpath.ColumnName] = p.XPath; //.xpath; _targetTable.Rows.Add(dr); } } return(targetTable); }
public void Publish(folderNode folder, TableExtractionTaskReporting TaskReporting, aceAuthorNotation notation) { if (TaskReporting == null) { TaskReporting = new TableExtractionTaskReporting() { baseOutputFolder = folder, currentOutputFolder = folder, }; } List <DataTable> allReportTables = new List <DataTable>(); List <DataTable> trainingReportTables = new List <DataTable>(); List <DataTable> validationReportTables = new List <DataTable>(); //List<DataTable> trainingReportTables = new List<DataTable>(); // DataSet complete_report = new DataSet(); TaskValidationResult firstResult = null; foreach (KeyValuePair <TableExtractionTask, TaskValidationResult> pair in Results) { if (firstResult == null) { firstResult = pair.Value; } pair.Value.Publish(folder, notation); propertyReport_invalid = pair.Value.PropertyValidation.GetReportTable(pair.Value, propertyReport_invalid, new List <ValidationOutcome>() { ValidationOutcome.Invalid }); propertyReport_valid = pair.Value.PropertyValidation.GetReportTable(pair.Value, propertyReport_valid, new List <ValidationOutcome>() { ValidationOutcome.Validated }); propertyReport_other = pair.Value.PropertyValidation.GetReportTable(pair.Value, propertyReport_other, new List <ValidationOutcome>() { ValidationOutcome.Modified, ValidationOutcome.undefined }); trainingReportTables.Add(pair.Value.ReportTable_Training); validationReportTables.Add(pair.Value.ReportTable_PropertyValudation); // allReportTables.AddRange(pair.Value.ReportTables); } allReportTables.Add(propertyReport_invalid); allReportTables.Add(propertyReport_valid); allReportTables.Add(propertyReport_other); DataTable training_report = TaskReporting.GetTaskScore(Results.Keys).GetReportAndSave(TaskReporting.currentOutputFolder, notation); training_report.SetTitle("Training run results"); training_report.GetReportAndSave(folder, notation); //allReportTables.Add(training_report); var overview_table = GetReportDataTable(); //allReportTables.Add(overview_table); propertyReport_invalid.SetTitle("Invalid"); propertyReport_valid.SetTitle("Valid"); propertyReport_other.SetTitle("Other"); allReportTables.GetReportAndSave(folder, notation, "property_reports"); trainingReportTables.GetReportAndSave(folder, notation, "training_reports"); validationReportTables.GetReportAndSave(folder, notation, "validation_reports"); overview_table.GetReportAndSave(folder, notation); //complete_report.GetReportAndSave(folder, notation, "complete_evaluation"); }