diff --git a/inception/inception-dependencies/pom.xml b/inception/inception-dependencies/pom.xml
index 7a2bec87a49..4334b968e43 100644
--- a/inception/inception-dependencies/pom.xml
+++ b/inception/inception-dependencies/pom.xml
@@ -1153,18 +1153,6 @@
6.7.0.202309050840-r
-
- org.webjars
- c3
- 0.6.6
-
-
-
- org.webjars
- d3js
- 5.5.0
-
-
org.webjars.bowergithub.xbsoftwareenjoyhint
diff --git a/inception/inception-recommendation/pom.xml b/inception/inception-recommendation/pom.xml
index 49d8ddc47e3..ed6156a6ba0 100644
--- a/inception/inception-recommendation/pom.xml
+++ b/inception/inception-recommendation/pom.xml
@@ -247,18 +247,6 @@
org.wicketstuffwicketstuff-annotationeventdispatcher
-
- de.agilecoders.wicket.webjars
- wicket-webjars
-
-
- org.webjars
- c3
-
-
- org.webjars
- d3js
-
@@ -385,14 +373,6 @@
org.springframework:spring-websocket
-
-
- org.webjars:d3js
- org.webjars:c3
-
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/Chart.js b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/Chart.js
deleted file mode 100644
index bdbfd0c3d05..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/Chart.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Technische Universität Darmstadt under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The Technische Universität Darmstadt
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-function updateLearningCurveDiagram(selector, data) {
- var e = c3.generate({
- bindto: selector,
- size : { height: 200 },
- legend: { show: false },
- data: {
- empty: { label: { text: "No Data Available" } },
- json: data,
- x : 'run',
- axes: {
- score: 'y',
- trainSize: 'y2'
- },
- keys: {
- x: 'run',
- value: ['score', 'trainSize']
- },
- names: {
- score: 'Score',
- trainSize: 'Training instances'
- }
- },
- axis: {
- x: {
- type: "category",
- tick: { format: function(a) { return "#" + (a+1); } },
- label: 'Evaluation run',
- },
- y: {
- min: 0,
- //to round off the decimal points of the y-axis values to 4 if it is a decimal number.
- tick: { format: function(a) { return Math.round(1e4 * a) / 1e4; } },
- label: 'Score',
- },
- y2: {
- show: true,
- label: 'Training instances',
- min: 0
- }
- }
- });
-}
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/ChartJsReference.java b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/ChartJsReference.java
deleted file mode 100644
index 06ad9d9064d..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/ChartJsReference.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Technische Universität Darmstadt under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The Technische Universität Darmstadt
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package de.tudarmstadt.ukp.inception.recommendation.chart;
-
-import org.apache.wicket.request.resource.JavaScriptResourceReference;
-
-public class ChartJsReference
- extends JavaScriptResourceReference
-{
- private static final long serialVersionUID = 1L;
-
- private static final ChartJsReference INSTANCE = new ChartJsReference();
-
- /**
- * Gets the instance of the resource reference
- *
- * @return the single instance of the resource reference
- */
- public static ChartJsReference get()
- {
- return INSTANCE;
- }
-
- /**
- * Private constructor
- */
- private ChartJsReference()
- {
- super(ChartJsReference.class, "Chart.js");
- }
-}
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/ChartPanel.html b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/ChartPanel.html
deleted file mode 100644
index b2c5a3d3dc4..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/ChartPanel.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/ChartPanel.java b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/ChartPanel.java
deleted file mode 100644
index 87d529d8838..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/chart/ChartPanel.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Licensed to the Technische Universität Darmstadt under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The Technische Universität Darmstadt
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package de.tudarmstadt.ukp.inception.recommendation.chart;
-
-import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.ANY;
-import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
-import static de.tudarmstadt.ukp.clarin.webanno.support.JSONUtil.toInterpretableJsonString;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.wicket.behavior.AbstractAjaxBehavior;
-import org.apache.wicket.markup.head.CssHeaderItem;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptContentHeaderItem;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.request.handler.TextRequestHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-
-import de.agilecoders.wicket.webjars.request.resource.WebjarsCssResourceReference;
-import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
-import de.tudarmstadt.ukp.inception.recommendation.api.evaluation.EvaluationResult;
-import de.tudarmstadt.ukp.inception.recommendation.model.RecommenderEvaluationScoreMetricEnum;
-
-public class ChartPanel
- extends Panel
-{
- private static final long serialVersionUID = -3849226240909011148L;
-
- private static final Logger LOG = LoggerFactory.getLogger(ChartPanel.class);
-
- private static final String MID_CHART_CONTAINER = "chart";
-
- private final IModel metric;
- private final WebMarkupContainer chart;
- private final ChartAjaxBejavior chartAjaxBejavior;
-
- public ChartPanel(String aId, IModel> aModel,
- IModel aMetric)
- {
- super(aId, aModel);
-
- metric = aMetric;
-
- chart = new WebMarkupContainer(MID_CHART_CONTAINER);
- add(chart);
-
- chartAjaxBejavior = new ChartAjaxBejavior();
- add(chartAjaxBejavior);
- }
-
- @SuppressWarnings("unchecked")
- public List getModelObject()
- {
- return (List) getDefaultModelObject();
- }
-
- @Override
- public void renderHead(IHeaderResponse aResponse)
- {
- super.renderHead(aResponse);
-
- // import Js
- aResponse.render(JavaScriptHeaderItem
- .forReference(new WebjarsJavaScriptResourceReference("c3/current/c3.js")));
- aResponse.render(JavaScriptHeaderItem
- .forReference(new WebjarsJavaScriptResourceReference("d3js/current/d3.js")));
-
- // import Css
- aResponse.render(
- CssHeaderItem.forReference(new WebjarsCssResourceReference("c3/current/c3.css")));
-
- aResponse.render(JavaScriptReferenceHeaderItem.forReference(
- getApplication().getJavaScriptLibrarySettings().getJQueryReference()));
-
- aResponse.render(JavaScriptHeaderItem.forReference(ChartJsReference.get()));
-
- String chartTriggerJavascript = String.join("\n", //
- "$(document).ready(function(){", //
- " $.ajax({", //
- " url:'" + chartAjaxBejavior.getCallbackUrl().toString() + "',", //
- " type:'post',", //
- " contentType:'application/json',", //
- " dataType:'json',", //
- " success : function(result){", //
- " updateLearningCurveDiagram('#" + chart.getMarkupId() + "', result)", //
- " }", //
- " })", //
- "})");
-
- aResponse.render(JavaScriptContentHeaderItem.forScript(chartTriggerJavascript, null));
- }
-
- private List convert(List aEvaluationResults)
- {
- List data = new ArrayList<>();
- int run = 0;
- for (EvaluationResult evaluationResult : aEvaluationResults) {
- run++;
-
- if (evaluationResult.isEvaluationSkipped()) {
- continue;
- }
-
- double score;
- switch (metric.getObject()) {
- case Accuracy:
- score = evaluationResult.computeAccuracyScore();
- break;
- case Precision:
- score = evaluationResult.computePrecisionScore();
- break;
- case Recall:
- score = evaluationResult.computeRecallScore();
- break;
- case F1:
- score = evaluationResult.computeF1Score();
- break;
- default:
- score = evaluationResult.computeAccuracyScore();
- }
-
- data.add(new Datapoint(run, evaluationResult.getTrainingSetSize(),
- evaluationResult.getTrainDataRatio(), score));
- }
-
- return data;
- }
-
- @SuppressWarnings("unused")
- @JsonAutoDetect(fieldVisibility = ANY, getterVisibility = NONE, setterVisibility = NONE)
- private final static class Datapoint
- {
- final int run;
- final int trainSize;
- final double trainRatio;
- final double score;
-
- public Datapoint(int aRun, int aTrainSize, double aTrainRatio, double aScore)
- {
- run = aRun;
- trainSize = aTrainSize;
- trainRatio = aTrainRatio;
- score = aScore;
- }
- }
-
- private final class ChartAjaxBejavior
- extends AbstractAjaxBehavior
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onRequest()
- {
- try {
- String json = toInterpretableJsonString(convert(getModelObject()));
- RequestCycle.get().scheduleRequestHandlerAfterCurrent(
- new TextRequestHandler("application/json", "UTF-8", json));
- }
- catch (IOException e) {
- LOG.error(e.toString(), e);
- }
- }
- }
-}
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/config/RecommenderServiceAutoConfiguration.java b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/config/RecommenderServiceAutoConfiguration.java
index e5943e20646..97e370a68c3 100644
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/config/RecommenderServiceAutoConfiguration.java
+++ b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/config/RecommenderServiceAutoConfiguration.java
@@ -42,7 +42,6 @@
import de.tudarmstadt.ukp.inception.recommendation.api.RecommendationService;
import de.tudarmstadt.ukp.inception.recommendation.api.RecommenderFactoryRegistry;
import de.tudarmstadt.ukp.inception.recommendation.api.recommender.RecommendationEngineFactory;
-import de.tudarmstadt.ukp.inception.recommendation.evaluation.EvaluationSimulationPageMenuItem;
import de.tudarmstadt.ukp.inception.recommendation.exporter.LearningRecordExporter;
import de.tudarmstadt.ukp.inception.recommendation.exporter.RecommenderExporter;
import de.tudarmstadt.ukp.inception.recommendation.footer.RecommendationEventFooterItem;
@@ -86,15 +85,6 @@ public RecommendationService recommendationService(PreferencesService aPreferenc
aProjectService, entityManager, aApplicationEventPublisher);
}
- @ConditionalOnWebApplication
- @ConditionalOnProperty(prefix = "recommender.evaluation-page", //
- name = "enabled", havingValue = "true", matchIfMissing = true)
- @Bean
- public EvaluationSimulationPageMenuItem evaluationSimulationPageMenuItem()
- {
- return new EvaluationSimulationPageMenuItem();
- }
-
@Bean
public RecommenderExporter recommenderExporter(AnnotationSchemaService aAnnotationService,
RecommendationService aRecommendationService)
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPage.html b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPage.html
deleted file mode 100644
index 82a2d67a7d8..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPage.html
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPage.java b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPage.java
deleted file mode 100644
index c1cdf9ec31c..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPage.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2019
- * Ubiquitous Knowledge Processing (UKP) Lab
- * Technische Universität Darmstadt
- *
- * Licensed to the Technische Universität Darmstadt under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The Technische Universität Darmstadt
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package de.tudarmstadt.ukp.inception.recommendation.evaluation;
-
-import static de.tudarmstadt.ukp.clarin.webanno.model.PermissionLevel.MANAGER;
-import static de.tudarmstadt.ukp.clarin.webanno.support.lambda.LambdaBehavior.visibleWhenModelIsNotNull;
-import static de.tudarmstadt.ukp.clarin.webanno.ui.core.page.ProjectPageBase.NS_PROJECT;
-import static de.tudarmstadt.ukp.clarin.webanno.ui.core.page.ProjectPageBase.PAGE_PARAM_PROJECT;
-
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.wicketstuff.annotation.mount.MountPath;
-
-import de.tudarmstadt.ukp.clarin.webanno.api.ProjectService;
-import de.tudarmstadt.ukp.clarin.webanno.model.Project;
-import de.tudarmstadt.ukp.clarin.webanno.security.UserDao;
-import de.tudarmstadt.ukp.clarin.webanno.ui.core.page.ProjectPageBase;
-import de.tudarmstadt.ukp.inception.recommendation.api.model.Recommender;
-import de.tudarmstadt.ukp.inception.recommendation.project.RecommenderListPanel;
-
-@MountPath(NS_PROJECT + "/${" + PAGE_PARAM_PROJECT + "}/simulation")
-public class EvaluationSimulationPage
- extends ProjectPageBase
-{
- private static final long serialVersionUID = 3042218455285633439L;
-
- private IModel selectedRecommenderModel;
- private @SpringBean ProjectService projectService;
- private @SpringBean UserDao userRepository;
-
- private static final String MID_EVALUATION_SIMULATION_CONTAINER = "evaluation-simulation-container";
- private static final String MID_RECOMMENDER_LIST = "recommenderList";
- private static final String MID_RECOMMENDER_VIEW = "recommenderView";
-
- public EvaluationSimulationPage(final PageParameters aPageParameters)
- {
- super(aPageParameters);
-
- Project project = getProject();
-
- requireProjectRole(userRepository.getCurrentUser(), MANAGER);
-
- selectedRecommenderModel = Model.of();
-
- SimulationLearningCurvePanel evaluationSimulationPanel = new SimulationLearningCurvePanel(
- MID_EVALUATION_SIMULATION_CONTAINER, project, selectedRecommenderModel);
- add(evaluationSimulationPanel);
-
- RecommenderViewPanel recommenderViewPanel = new RecommenderViewPanel(MID_RECOMMENDER_VIEW,
- selectedRecommenderModel);
- recommenderViewPanel.setOutputMarkupPlaceholderTag(true);
- recommenderViewPanel.add(visibleWhenModelIsNotNull(recommenderViewPanel));
- add(recommenderViewPanel);
-
- RecommenderListPanel recommenderListPanel = new RecommenderListPanel(MID_RECOMMENDER_LIST,
- Model.of(project), selectedRecommenderModel, false);
- recommenderListPanel.setChangeAction(_target -> {
- evaluationSimulationPanel.recommenderChanged();
- _target.add(recommenderViewPanel);
- });
- add(recommenderListPanel);
- }
-}
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPage.properties b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPage.properties
deleted file mode 100644
index ad24199dbd1..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPage.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Technische Universität Darmstadt under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The Technische Universität Darmstadt
-# licenses this file to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-page.title=Evaluation
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPageMenuItem.java b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPageMenuItem.java
deleted file mode 100644
index a8bfaae83dd..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/EvaluationSimulationPageMenuItem.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Technische Universität Darmstadt under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The Technische Universität Darmstadt
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package de.tudarmstadt.ukp.inception.recommendation.evaluation;
-
-import static de.tudarmstadt.ukp.clarin.webanno.model.PermissionLevel.MANAGER;
-
-import org.apache.wicket.Page;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.annotation.Order;
-
-import de.agilecoders.wicket.core.markup.html.bootstrap.image.IconType;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome5IconType;
-import de.tudarmstadt.ukp.clarin.webanno.api.ProjectService;
-import de.tudarmstadt.ukp.clarin.webanno.model.Project;
-import de.tudarmstadt.ukp.clarin.webanno.security.UserDao;
-import de.tudarmstadt.ukp.clarin.webanno.security.model.User;
-import de.tudarmstadt.ukp.clarin.webanno.ui.core.menu.ProjectMenuItem;
-import de.tudarmstadt.ukp.inception.recommendation.api.RecommendationService;
-import de.tudarmstadt.ukp.inception.recommendation.config.RecommenderServiceAutoConfiguration;
-import wicket.contrib.input.events.key.KeyType;
-
-/**
- *
- * This class is exposed as a Spring Component via
- * {@link RecommenderServiceAutoConfiguration#evaluationSimulationPageMenuItem()}.
- *
- */
-@Order(300)
-public class EvaluationSimulationPageMenuItem
- implements ProjectMenuItem
-{
- private @Autowired UserDao userRepo;
- private @Autowired ProjectService projectService;
- private @Autowired RecommendationService recommenderService;
-
- @Override
- public String getPath()
- {
- return "/evaluation";
- }
-
- @Override
- public IconType getIcon()
- {
- return FontAwesome5IconType.chart_line_s;
- }
-
- @Override
- public String getLabel()
- {
- return "Evaluation";
- }
-
- @Override
- public boolean applies(Project aProject)
- {
- // Visible if the current user is a curator
- User user = userRepo.getCurrentUser();
- if (!(projectService.hasRole(user, aProject, MANAGER))) {
- return false;
- }
-
- return !recommenderService.listRecommenders(aProject).isEmpty();
- }
-
- @Override
- public Class extends Page> getPageClass()
- {
- return EvaluationSimulationPage.class;
- }
-
- @Override
- public KeyType[] shortcut()
- {
- return new KeyType[] { KeyType.Alt, KeyType.s };
- }
-}
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/RecommenderViewPanel.html b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/RecommenderViewPanel.html
deleted file mode 100644
index 5ec6631884d..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/RecommenderViewPanel.html
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/RecommenderViewPanel.java b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/RecommenderViewPanel.java
deleted file mode 100644
index adff0fdd90c..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/RecommenderViewPanel.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Technische Universität Darmstadt under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The Technische Universität Darmstadt
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package de.tudarmstadt.ukp.inception.recommendation.evaluation;
-
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.ComponentPropertyModel;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-
-import de.tudarmstadt.ukp.clarin.webanno.model.AnnotationFeature;
-import de.tudarmstadt.ukp.clarin.webanno.model.AnnotationLayer;
-import de.tudarmstadt.ukp.inception.recommendation.api.RecommenderFactoryRegistry;
-import de.tudarmstadt.ukp.inception.recommendation.api.model.Recommender;
-import de.tudarmstadt.ukp.inception.recommendation.api.recommender.RecommendationEngineFactory;
-
-public class RecommenderViewPanel
- extends Panel
-{
- private static final long serialVersionUID = -5278078988218713188L;
-
- private static final String MID_FORM = "form";
- private static final String MID_NAME = "name";
- private static final String MID_FEATURE = "feature";
- private static final String MID_LAYER = "layer";
- private static final String MID_TOOL = "tool";
-
- private @SpringBean RecommenderFactoryRegistry recommenderRegistry;
-
- public RecommenderViewPanel(String aId, IModel aRecommender)
- {
- super(aId, aRecommender);
-
- Form form = new Form<>(MID_FORM, CompoundPropertyModel.of(aRecommender));
- add(form);
-
- form.add(new TextField<>(MID_NAME, String.class));
- form.add(new TextField<>(MID_TOOL, LoadableDetachableModel.of(this::getToolName),
- String.class));
- form.add(new TextField(MID_FEATURE,
- new ComponentPropertyModel<>("feature.uiName")));
- form.add(new TextField(MID_LAYER,
- new ComponentPropertyModel<>("layer.uiName")));
- }
-
- public Recommender getModelObject()
- {
- return (Recommender) getDefaultModelObject();
- }
-
- private String getToolName()
- {
- if (getModelObject() == null) {
- return null;
- }
-
- RecommendationEngineFactory> factory = recommenderRegistry
- .getFactory(getModelObject().getTool());
- if (factory == null) {
- return "[UNSUPPORTED]";
- }
-
- return factory.getName();
- }
-}
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/RecommenderViewPanel.properties b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/RecommenderViewPanel.properties
deleted file mode 100644
index 2d5ce95f857..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/RecommenderViewPanel.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# Licensed to the Technische Universität Darmstadt under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The Technische Universität Darmstadt
-# licenses this file to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-details=Details
-name=Name
-layer=Layer
-tool=Tool
-feature=Feature
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/SimulationLearningCurvePanel.html b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/SimulationLearningCurvePanel.html
deleted file mode 100644
index fb54df69264..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/SimulationLearningCurvePanel.html
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
diff --git a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/SimulationLearningCurvePanel.java b/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/SimulationLearningCurvePanel.java
deleted file mode 100644
index da824d6be60..00000000000
--- a/inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/evaluation/SimulationLearningCurvePanel.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * Licensed to the Technische Universität Darmstadt under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The Technische Universität Darmstadt
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package de.tudarmstadt.ukp.inception.recommendation.evaluation;
-
-import static de.tudarmstadt.ukp.clarin.webanno.api.CasUpgradeMode.AUTO_CAS_UPGRADE;
-import static de.tudarmstadt.ukp.clarin.webanno.api.casstorage.CasAccessMode.SHARED_READ_ONLY_ACCESS;
-import static de.tudarmstadt.ukp.clarin.webanno.model.PermissionLevel.ANNOTATOR;
-import static de.tudarmstadt.ukp.clarin.webanno.support.WebAnnoConst.CURATION_USER;
-import static de.tudarmstadt.ukp.clarin.webanno.support.WebAnnoConst.INITIAL_CAS_PSEUDO_USER;
-import static de.tudarmstadt.ukp.clarin.webanno.support.lambda.LambdaBehavior.visibleWhen;
-import static de.tudarmstadt.ukp.inception.recommendation.model.RecommenderEvaluationScoreMetricEnum.Accuracy;
-import static java.util.Collections.emptyList;
-import static org.apache.commons.collections4.CollectionUtils.isNotEmpty;
-import static org.apache.commons.lang3.exception.ExceptionUtils.getRootCauseMessage;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Optional;
-
-import org.apache.uima.cas.CAS;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.feedback.IFeedback;
-import org.apache.wicket.markup.html.form.DropDownChoice;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.util.ListModel;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import de.tudarmstadt.ukp.clarin.webanno.api.DocumentService;
-import de.tudarmstadt.ukp.clarin.webanno.api.ProjectService;
-import de.tudarmstadt.ukp.clarin.webanno.model.Project;
-import de.tudarmstadt.ukp.clarin.webanno.model.SourceDocument;
-import de.tudarmstadt.ukp.clarin.webanno.security.UserDao;
-import de.tudarmstadt.ukp.clarin.webanno.security.model.User;
-import de.tudarmstadt.ukp.clarin.webanno.support.lambda.LambdaAjaxButton;
-import de.tudarmstadt.ukp.clarin.webanno.support.lambda.LambdaChoiceRenderer;
-import de.tudarmstadt.ukp.inception.recommendation.api.RecommenderFactoryRegistry;
-import de.tudarmstadt.ukp.inception.recommendation.api.evaluation.EvaluationResult;
-import de.tudarmstadt.ukp.inception.recommendation.api.evaluation.IncrementalSplitter;
-import de.tudarmstadt.ukp.inception.recommendation.api.model.Recommender;
-import de.tudarmstadt.ukp.inception.recommendation.api.recommender.RecommendationEngine;
-import de.tudarmstadt.ukp.inception.recommendation.api.recommender.RecommendationEngineFactory;
-import de.tudarmstadt.ukp.inception.recommendation.api.recommender.RecommendationException;
-import de.tudarmstadt.ukp.inception.recommendation.chart.ChartPanel;
-import de.tudarmstadt.ukp.inception.recommendation.model.RecommenderEvaluationScoreMetricEnum;
-
-public class SimulationLearningCurvePanel
- extends Panel
-{
- private static final long serialVersionUID = 4306746527837380863L;
-
- private static final String MID_CHART_CONTAINER = "chart-container";
- private static final String MID_SIMULATION_START_BUTTON = "simulation-start-button";
- private static final String MID_FORM = "form";
-
- private static final double TRAIN_PERCENTAGE = 0.8;
- private static final int STEPS = 10;
- private static final int LOW_SAMPLE_THRESHOLD = 10;
-
- private static final Logger LOG = LoggerFactory.getLogger(SimulationLearningCurvePanel.class);
-
- private static final List DROPDOWN_VALUES = Arrays
- .asList(RecommenderEvaluationScoreMetricEnum.values());
-
- private @SpringBean DocumentService documentService;
- private @SpringBean ProjectService projectService;
- private @SpringBean UserDao userDao;
- private @SpringBean RecommenderFactoryRegistry recommenderRegistry;
-
- private final Project project;
- private final IModel recommender;
- private final IModel user;
- private final IModel metric;
-
- private final DropDownChoice metricChoice;
- private final DropDownChoice annotatorChoice;
- private final ChartPanel chartPanel;
-
- private final IModel> evaluationResults;
-
- public SimulationLearningCurvePanel(String aId, Project aProject,
- IModel aRecommender)
- {
- super(aId, aRecommender);
-
- project = aProject;
- recommender = aRecommender;
- evaluationResults = new ListModel(emptyList());
- metric = new Model(Accuracy);
-
- Form form = new Form<>(MID_FORM);
- add(form);
-
- chartPanel = new ChartPanel(MID_CHART_CONTAINER, evaluationResults, metric);
- chartPanel.setOutputMarkupPlaceholderTag(true);
- chartPanel.add(visibleWhen(() -> isNotEmpty(chartPanel.getModelObject())));
- form.add(chartPanel);
-
- metricChoice = new DropDownChoice("metric", metric,
- new ListModel(DROPDOWN_VALUES));
- metricChoice.setOutputMarkupId(true);
- form.add(metricChoice);
-
- IModel> annotatorChoiceModel = LoadableDetachableModel
- .of(this::getSelectableAnnotators);
- user = Model.of(annotatorChoiceModel.getObject().get(0));
- annotatorChoice = new DropDownChoice("annotator", user, annotatorChoiceModel);
- annotatorChoice.setChoiceRenderer(new LambdaChoiceRenderer<>(User::getUiName));
- annotatorChoice.setOutputMarkupId(true);
- form.add(annotatorChoice);
-
- // clicking the start button the annotated documents are evaluated and the learning curve
- // for the selected recommender is plotted in the hCart Panel
- form.add(new LambdaAjaxButton<>(MID_SIMULATION_START_BUTTON, (_target, _form) -> {
- recommenderChanged();
- evaluate();
- _target.add(chartPanel);
- }));
- }
-
- private List getSelectableAnnotators()
- {
- List list = new ArrayList<>();
- list.add(new User(INITIAL_CAS_PSEUDO_USER, "