Skip to content

Commit

Permalink
Merge commit '0c493260c649ad35f02377f82f25e9ef48c5c405' into feature/…
Browse files Browse the repository at this point in the history
…1531-PDF-recommendation-color-is-really-difficult-to-read

* commit '0c493260c649ad35f02377f82f25e9ef48c5c405': (453 commits)
  No issue. Fix version reference.
  #1870 - Improve roundtrip times on annotation page
  #1870 - Improve roundtrip times on annotation page
  #1870 - Improve roundtrip times on annotation page
  #1870 - Improve roundtrip times on annotation page
  #1870 - Improve roundtrip times on annotation page
  #1870 - Improve roundtrip times on annotation page
  #1870 - Improve roundtrip times on annotation page
  #1868 - Deadlock importing project with large tagset on HSQLDB
  #1860 - Layers without features are not indexed for search
  No issue: Adjust to upstream API change.
  No issue: Fix problem that prepended item is rendered on different row than rest of group (hopefully)
  No issue: Fix warnings when building documentation
  #1859 - Upgrade dependencies
  #1852 - Default ElasticSearch document repository settings do not work
  #1830 - Upgrade to Wicket 9
  #1848 - Documentation-improvements
  #1830 - Upgrade to Wicket 9
  #1830 - Upgrade to Wicket 9
  #1830 - Upgrade to Wicket 9
  ...
  • Loading branch information
reckart committed Dec 1, 2020
2 parents efcd45b + 0c49326 commit 69bb4f7
Show file tree
Hide file tree
Showing 652 changed files with 55,055 additions and 6,375 deletions.
3 changes: 2 additions & 1 deletion .github/ISSUE_TEMPLATE/release-bugfix.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ about: Release checklist for feature releases (first or second digit increase)
maintenance branch and updating the branch info.
- [ ] Remove auto-deploy configuration from the old maintenance branch

**Test server**
**Demo/test server**
- [ ] *stable instance*: Update to release version
- [ ] *testing instance*: Update auto-deployment script to match new SNAPSHOT version
- [ ] *demo instance*: Update to release version

**Docker**
- [ ] Push the release to Docker
Expand Down
3 changes: 2 additions & 1 deletion .github/ISSUE_TEMPLATE/release-feature.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ about: Release checklist for bug-fix releases (third-digit increase)
- [ ] Update the `releases.yml` file
- [ ] Add release documentation to GitHub pages

**Test server**
**Demo/test server**
- [ ] *stable instance*: Update to release version
- [ ] *testing instance*: Update auto-deployment script to match new SNAPSHOT version
- [ ] *demo instance*: Update to release version

**Docker**
- [ ] Push the release to Docker
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ target
cache
idea/
.factorypath
*.jfr
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
language: java
6 changes: 5 additions & 1 deletion inception-active-learning/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>de.tudarmstadt.ukp.inception.app</groupId>
<artifactId>inception-app</artifactId>
<version>0.14.0-SNAPSHOT</version>
<version>0.18.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>inception-active-learning</artifactId>
Expand Down Expand Up @@ -81,6 +81,10 @@
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>

<!-- WICKET DEPENDENCIES -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import de.tudarmstadt.ukp.clarin.webanno.api.DocumentService;
import de.tudarmstadt.ukp.clarin.webanno.model.AnnotationLayer;
import de.tudarmstadt.ukp.clarin.webanno.security.UserDao;
import de.tudarmstadt.ukp.clarin.webanno.security.model.User;
import de.tudarmstadt.ukp.inception.active.learning.config.ActiveLearningAutoConfiguration;
import de.tudarmstadt.ukp.inception.active.learning.strategy.ActiveLearningStrategy;
import de.tudarmstadt.ukp.inception.recommendation.api.LearningRecordService;
import de.tudarmstadt.ukp.inception.recommendation.api.RecommendationService;
Expand All @@ -49,7 +49,12 @@
import de.tudarmstadt.ukp.inception.recommendation.api.model.SuggestionGroup;
import de.tudarmstadt.ukp.inception.recommendation.api.model.SuggestionGroup.Delta;

@Component
/**
* <p>
* This class is exposed as a Spring Component via
* {@link ActiveLearningAutoConfiguration#activeLearningService}.
* </p>
*/
public class ActiveLearningServiceImpl
implements ActiveLearningService
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/*
* Copyright 2020
* Ubiquitous Knowledge Processing (UKP) Lab
* Technische Universität Darmstadt
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* 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.active.learning.config;

import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import de.tudarmstadt.ukp.clarin.webanno.api.DocumentService;
import de.tudarmstadt.ukp.clarin.webanno.security.UserDao;
import de.tudarmstadt.ukp.inception.active.learning.ActiveLearningService;
import de.tudarmstadt.ukp.inception.active.learning.ActiveLearningServiceImpl;
import de.tudarmstadt.ukp.inception.active.learning.log.ActiveLearningRecommendationEventAdapter;
import de.tudarmstadt.ukp.inception.active.learning.log.ActiveLearningSuggestionOfferedAdapter;
import de.tudarmstadt.ukp.inception.active.learning.sidebar.ActiveLearningSidebarFactory;
import de.tudarmstadt.ukp.inception.recommendation.api.LearningRecordService;
import de.tudarmstadt.ukp.inception.recommendation.api.RecommendationService;
import de.tudarmstadt.ukp.inception.recommendation.config.RecommenderServiceAutoConfiguration;

@Configuration
@AutoConfigureAfter(RecommenderServiceAutoConfiguration.class)
@ConditionalOnBean(RecommendationService.class)
@ConditionalOnProperty(
prefix = "recommender.active-learning",
name = "enabled",
havingValue = "true",
matchIfMissing = true)
public class ActiveLearningAutoConfiguration
{
@Bean
public ActiveLearningService activeLearningService(DocumentService aDocumentService,
RecommendationService aRecommendationService, UserDao aUserDao,
LearningRecordService aLearningHistoryService)
{
return new ActiveLearningServiceImpl(aDocumentService, aRecommendationService, aUserDao,
aLearningHistoryService);
}

@Bean
public ActiveLearningRecommendationEventAdapter activeLearningRecommendationEventAdapter()
{
return new ActiveLearningRecommendationEventAdapter();
}

@Bean
public ActiveLearningSuggestionOfferedAdapter activeLearningSuggestionOfferedAdapter()
{
return new ActiveLearningSuggestionOfferedAdapter();
}

@Bean
public ActiveLearningSidebarFactory activeLearningSidebarFactory()
{
return new ActiveLearningSidebarFactory();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,20 @@

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import de.tudarmstadt.ukp.clarin.webanno.support.JSONUtil;
import de.tudarmstadt.ukp.inception.active.learning.config.ActiveLearningAutoConfiguration;
import de.tudarmstadt.ukp.inception.active.learning.event.ActiveLearningRecommendationEvent;
import de.tudarmstadt.ukp.inception.log.adapter.EventLoggingAdapter;
import de.tudarmstadt.ukp.inception.log.model.AnnotationDetails;
import de.tudarmstadt.ukp.inception.recommendation.api.model.LearningRecordType;


@Component
/**
* <p>
* This class is exposed as a Spring Component via
* {@link ActiveLearningAutoConfiguration#activeLearningRecommendationEventAdapter()}.
* </p>
*/
public class ActiveLearningRecommendationEventAdapter
implements EventLoggingAdapter<ActiveLearningRecommendationEvent>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,21 @@

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import de.tudarmstadt.ukp.clarin.webanno.support.JSONUtil;
import de.tudarmstadt.ukp.inception.active.learning.config.ActiveLearningAutoConfiguration;
import de.tudarmstadt.ukp.inception.active.learning.event.ActiveLearningRecommendationEvent;
import de.tudarmstadt.ukp.inception.active.learning.event.ActiveLearningSuggestionOfferedEvent;
import de.tudarmstadt.ukp.inception.log.adapter.EventLoggingAdapter;
import de.tudarmstadt.ukp.inception.log.model.AnnotationDetails;
import de.tudarmstadt.ukp.inception.recommendation.api.model.LearningRecordType;


@Component
/**
* <p>
* This class is exposed as a Spring Component via
* {@link ActiveLearningAutoConfiguration#activeLearningSuggestionOfferedAdapter}.
* </p>
*/
public class ActiveLearningSuggestionOfferedAdapter
implements EventLoggingAdapter<ActiveLearningSuggestionOfferedEvent>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,50 +20,48 @@
<wicket:panel>
<div wicket:id="confirmationDialog"></div>
<div class="flex-content flex-v-container flex-gutter flex-only-internal-gutter">
<div wicket:id="mainContainer" class="panel panel-default panel-flex flex-content">
<div class="panel-heading">
<h3 class="panel-title"><wicket:message key="activeLearning"/></h3>
<div wicket:id="mainContainer" class="card flex-content">
<div class="card-header">
<wicket:message key="activeLearning"/>
</div>
<div class="panel-body flex-v-container">
<span class="col-sm-12" wicket:id="noRecommenders">no Recommenders</span>
<form class="panel panel-default panel-small" wicket:id="sessionControlForm">
<div class="panel-heading">
<h3 class="panel-title"><wicket:message key="session"/></h3>
</div>
<div class="panel-body">
<div class="form-group form-horizontal">
<div class="input-group">
<select class="form-control flex-content" wicket:id="selectLayer" data-container="body"></select>
<span class="input-group-btn">
<a wicket:id="startSession" class="btn btn-default">
<i class="fa fa-play" aria-hidden="true"></i>
</a>
<a wicket:id="stopSession" class="btn btn-default">
<i class="fa fa-stop" aria-hidden="true"></i>
</a>
</span>
</div>
</div>
<div class="card-body flex-v-container">

<span class="flex-content no-data-notice" wicket:id="noRecommenders">no Recommenders</span>

<form wicket:id="sessionControlForm">
<div class="input-group">
<select class="form-control flex-content" wicket:id="selectLayer" data-container="body"></select>
<span class="input-group-append">
<a wicket:id="startSession" class="btn btn-primary">
<i class="fa fa-play" aria-hidden="true"></i>
</a>
<a wicket:id="stopSession" class="btn btn-secondary">
<i class="fa fa-stop" aria-hidden="true"></i>
</a>
</span>
</div>
</form>

<div class="panel panel-default panel-small" wicket:enclosure="noRecommendationLabel">
<span class="col-sm-12" wicket:id="noRecommendationLabel">no Recommendation</span>
<div class="card" wicket:enclosure="noRecommendationLabel">
<div class="card-body">
<span class="no-data-notice" wicket:id="noRecommendationLabel"></span>
</div>
</div>

<form class="panel panel-default panel-small" wicket:id="learnFromSkippedRecommendationForm">
<form class="card" wicket:id="learnFromSkippedRecommendationForm">
<span class="col-sm-12" wicket:id="onlySkippedRecommendationLabel">learnSkippedOnes</span>
<div class="panel-footer text-right">
<div class="card-footer text-right">
<input type="submit" class="btn btn-success" wicket:id="learnSkippedOnes" value="Yes"/>
</div>
</form>
<form class="panel panel-default panel-small" wicket:id="recommendationForm">
<div class="panel-heading">
<h3 class="panel-title"><wicket:message key="recommendation"/></h3>

<form class="card" wicket:id="recommendationForm">
<div class="card-header small">
<wicket:message key="recommendation"/>
</div>
<div class="panel-body form-horizontal">
<div class="form-group">
<label class="col-sm-3 control-label"><wicket:message key="text"/></label>
<div class="card-body">
<div class="form-group form-row">
<label class="col-sm-3 col-form-label"><wicket:message key="text"/></label>
<div class="col-sm-9" style="position: relative; height: 5em;">
<div class="form-control"
style="overflow-y: auto; width: unset; word-wrap: break-word; height: 5em; position: absolute; top: 0; left: 10px; right: 10px;"
Expand All @@ -76,14 +74,14 @@ <h3 class="panel-title"><wicket:message key="recommendation"/></h3>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"><wicket:message key="suggestion"/></label>
<div class="form-group form-row">
<label class="col-sm-3 col-form-label"><wicket:message key="suggestion"/></label>
<div class="col-sm-9">
<span class="form-control" wicket:id="recommendedPredition"></span>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"><wicket:message key="score"/></label>
<div class="form-group form-row">
<label class="col-sm-3 col-form-label"><wicket:message key="score"/></label>
<div class="col-sm-9">
<span class="form-control">
<wicket:container wicket:id="recommendedConfidence"/>
Expand All @@ -94,37 +92,33 @@ <h3 class="panel-title"><wicket:message key="recommendation"/></h3>
</div>
<div wicket:id="editor"></div>
</div>
<div class="panel-footer text-right">
<div class="card-footer text-right">
<input type="submit" class="btn btn-success" wicket:id="annotateButton" value="Annotate"/>
<input type="button" class="btn btn-danger" wicket:id="rejectButton" value="Reject"/>
<input type="button" class="btn btn-warning" wicket:id="skipButton" value="Skip"/>
</div>
</form>

<form class="panel panel-default panel-flex panel-small flex-content"
<form class="card flex-content"
wicket:id="learningHistoryForm">
<div class="panel-heading">
<h3 class="panel-title"><wicket:message key="history"/></h3>
<div class="card-header small">
<wicket:message key="history"/>
</div>
<div class="scrolling panel-body">
<table class="table table-condensed col-sm-12">
<wicket:container wicket:id="historyListview">
<tr style="font-size: 90%;">
<td style="width: 100%; padding-bottom: 0px;">
<a wicket:id="removeRecord" class="btn-xs btn-danger pull-right" style="white-space:nowrap;">
<i class="fa fa-trash" aria-hidden="true"></i>
</a>
<a wicket:id="jumpToAnnotation"></a>
</td>
</tr>
<tr style="font-size: 70%; padding: 0px;">
<td style="border:none;">
<span wicket:id="userAction" class="pull-right"></span>
<span wicket:id="recommendedAnnotation"></span>
</td>
</tr>
</wicket:container>
</table>
<div class="scrolling card-body p-0">
<div class="list-group-flush">
<div wicket:id="historyListview" class="list-group-item px-2 py-1">
<div class="clearfix">
<a wicket:id="removeRecord" class="btn-sm btn-outline-danger float-right" style="white-space:nowrap;">
<i class="fa fa-trash" aria-hidden="true"></i>
</a>
<a wicket:id="jumpToAnnotation"></a>
</div>
<div class="small">
<span wicket:id="userAction" class="badge badge-secondary float-right"></span>
<span wicket:id="recommendedAnnotation"></span>
</div>
</div>
</div>
</div>
</form>
</div>
Expand Down
Loading

0 comments on commit 69bb4f7

Please sign in to comment.