gerbil
gerbil copied to clipboard
Enhancement of the web chart vizualization
Currently, vizualization of the results of a specific annotator in the circle chart (http://gerbil.aksw.org/gerbil/overview) is not very user friendly, especially because similar colors are used for similar annotators. It would be nice if one could click on one specific annotator (or a sub-list of annotators) in the right list (showing associated colors) and only its (their) results will be shown in the circle chart diagram.
That is a valid point.
Anybody aware of a JavaScript library that supports this feature (at least partly)?
Regarding the colours: they are chosen based on the hash value of the annotator name to have an even distribution of colours. However, maybe instead of choosing a colour from an "even" RGB space (which might create several brown colours), we might have to put a higher "gravity" to some regions of the colour space producing colours that can be distinguished in a better way. Another way would be to have a predefined pallet of distinguishable colours.
http://www.amcharts.com is easily capable of doing this it also supports an export as pdf, png,.. option
Task description
The chart on the overview page of GERBIL / GEBRIL QA should be replaced using a library from http://www.amcharts.com/. We would like to have the following features:
- By default, the micro F1-score of all systems x dataset combinations should be visible.
- A user should be able to choose a single system (e.g., by clicking on the legend of the diagram) or a subset of systems and the diagram would show only the information about the selected systems.
A possible way to go:
- Go to http://gerbil.aksw.org/gerbil/overview and click on
Show table!
. After a short loading time, two tables and spider diagrams are shown. These are the diagrams that should be replaced. - Storing the page as HTML might ease the development since you can open it in your browser, change the Java Script code directly, update your browser and see the effect. When the solution is ready, it should be integrated in to the
overview.jsp
file and tested with a locally running GERBIL instance. - Using the inspect function of the browser, the data that comes from the backend can be logged, e.g.,
[[["Micro F1-measure","ACE2004","AIDA/CoNLL-Complete","AIDA/CoNLL-Test A","AIDA/CoNLL-Test B","AIDA/CoNLL-Training","AQUAINT","DBpediaSpotlight","Derczynski","ERD2014","GERDAQ-Dev","GERDAQ-Test","GERDAQ-TrainingA","GERDAQ-TrainingB","IITB","KORE50","MSNBC","Microposts2014-Test","Microposts2014-Train","Microposts2015-Dev","Microposts2015-Test","Microposts2015-Train","Microposts2016-Dev","Microposts2016-Test","Microposts2016-Train","N3-RSS-500","N3-Reuters-128","OKE 2015 Task 1 evaluation dataset","OKE 2015 Task 1 example set","OKE 2015 Task 1 gold standard sample","OKE 2016 Task 1 evaluation dataset","OKE 2016 Task 1 example set","OKE 2016 Task 1 gold standard sample"],
["AIDA","0.262","0.675","0.650","0.654","0.685","0.358","0.207","0.257","0.000","0.000","0.000","0.000","0.000","0.136","0.590","0.631","0.276","0.380","0.207","0.320","0.412","0.076","0.047","0.362","0.349","0.404","0.574","0.737","0.588","0.500","0.737","0.572"],
["Babelfy","0.132","0.448","0.443","0.456","0.447","0.263","0.147","0.283","0.477","0.183","0.214","0.180","0.157","0.128","0.564","0.423","0.232","0.311","0.137","0.209","0.305","0.085","0.029","0.254","0.253","0.289","0.410","0.588","0.488","0.364","0.588","0.428"],
["DBpedia Spotlight","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","0.352","0.473","0.304","0.337","0.303","0.344","0.263","error (-108)","0.457","0.366","0.448","0.254","0.362","0.420","0.203","0.054","0.388","0.276","error (-108)","0.458","0.571","error (-108)","0.447","0.571","0.494"],
["Dexter","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","0.275","0.354","0.414","0.315","0.318","0.306","0.365","0.213","0.233","0.403","0.356","0.393","0.209","0.324","0.380","0.164","0.064","0.345","0.282","0.345","0.472","0.571","0.567","0.425","0.571","0.499"],
["Entityclassifier.eu NER","0.141","0.449","0.425","0.430","0.460","0.269","0.245","0.167","0.000","0.000","0.000","0.000","0.005","0.148","0.300","0.461","0.302","0.314","0.142","0.255","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)"],
["FOX","0.141","0.557","0.526","0.542","0.569","0.177","0.148","0.260","0.000","error (-108)","error (-108)","error (-108)","error (-108)","0.101","0.290","0.124","0.210","0.318","0.182","0.284","0.344","0.058","0.037","0.310","0.432","0.508","0.549","0.700","0.507","0.483","0.700","0.525"],
["FRED","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","0.052","0.121","0.000","0.001","0.000","0.003","0.004","error (-108)","0.188","error (-108)","0.042","0.068","0.083","0.153","0.072","0.159","0.022","0.102","error (-108)","0.100","0.324","0.400","0.347","0.258","0.400","0.327"],
["FREME NER","0.194","0.327","0.325","0.314","0.342","0.275","0.136","0.152","0.000","0.000","0.000","0.000","0.000","0.071","0.155","0.206","0.177","0.251","0.176","0.196","0.261","0.030","0.030","0.227","0.225","0.265","0.274","0.667","0.290","0.248","0.667","0.298"],
["Kea","0.126","0.381","0.344","0.385","0.374","0.330","0.488","0.252","0.377","0.427","0.465","0.450","0.470","0.370","0.503","0.346","0.265","0.353","0.135","0.249","0.299","0.389","0.066","0.270","0.194","0.199","0.490","0.783","0.558","0.509","0.783","0.512"],
["TagMe 2","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)"],
["WAT","0.247","0.673","0.657","0.657","0.680","0.381","0.181","0.338","0.179","0.033","0.060","0.030","0.032","0.139","0.541","0.636","error (-108)","0.398","error (-108)","0.320","0.417","error (-108)","error (-108)","0.364","0.335","0.483","0.532","0.667","0.611","0.508","0.667","0.546"],
["xLisa-NER","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)"],
["xLisa-NGRAM","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)","error (-108)"]],[["Correlations","number of documents","avg. document length","number of entities","entities per document","entities per token","number of persons","number of organizations","number of locations","number of others"],
["AIDA","0.111","-0.101","0.352","-0.261","0.019","0.800","0.007","0.489","-0.705"],
["Babelfy","0.118","-0.221","0.242","-0.255","0.173","0.849","-0.210","0.440","-0.628"],
["DBpedia Spotlight","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a."],
["Dexter","0.511","-0.088","-0.458","-0.467","-0.821","0.103","0.468","0.235","-0.316"],
["Entityclassifier.eu NER","0.251","-0.191","0.342","-0.292","-0.092","0.681","-0.091","0.501","-0.566"],
["FOX","0.294","-0.416","0.435","-0.277","-0.026","0.753","-0.047","0.678","-0.738"],
["FRED","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a."],
["FREME NER","0.314","-0.276","0.337","-0.424","-0.355","0.601","0.224","0.497","-0.674"],
["Kea","0.021","-0.129","0.231","0.160","0.788","0.258","-0.689","-0.455","0.316"],
["TagMe 2","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a."],
["WAT","0.192","-0.161","0.320","-0.308","-0.107","0.829","-0.060","0.495","-0.705"],
["xLisa-NER","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a."],
["xLisa-NGRAM","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a.","n.a."]]]
Note that both tables are received in one response and not all values are numbers. If there is no number, the point/bar shouldn't be drawn.
Further possible extensions (should only be worked on after solving the points above)
- It would be good to offer the visualization in different types of diagrams, i.e., the user can choose from a list of possible diagrams.
- Using a dropdown menu, a user should be able to choose the visualization of macro F1-score, macro/micro precision and macro/micro recall. Further implementations in the backend (Java) might be needed to implement this.
A volunteer should be able to program in Java Script.
Forking / Merging
The solution should be implemented in a branch, forked from the master
branch of the project. The pull request should merge the solution back into the master
branch.