Commit c3e66fbc authored by Ubbo Veentjer's avatar Ubbo Veentjer
Browse files

Merge branch 'develop' into feature/markdown

parents 37801fbb 422eb50e
......@@ -49,3 +49,37 @@ For the latter i recommend to open two terminal windows too run two commands par
and one for running the spring-boot dev server:
./gradlew bootRun
# Release process
We use git-flow.
git checkout develop
git flow release start 3.1.1
edit build.gradle and set version number, afterwards:
git commit -am "set version 3.1.1"
git checkout master
git push
git checkout develop
edit build.gradle and set version number to 3.1.2-SNAPSHOT, afterwards:
git commit -am "start 3.1.2-SNAPSHOT"
git push
in gitlab-ci go to https://gitlab.gwdg.de/dariah-de/textgridrep-portal/-/releases, click on "New Release"
* Tag name: 3.1.1
* Create from: master
* Message:
* Release notes:
* rewritten index.md
* rename doc and explore link
* own page for mission statement
This creates a new tag 3.1.1. Creating the tag will trigger the relase-build, which will be deployed to https://textgridrep.org
......@@ -9,7 +9,7 @@ apply plugin: 'jacoco'
apply plugin: 'war'
group = 'info.textgrid.rep'
version = '3.1.1-SNAPSHOT'
version = '3.1.2-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
......
# TODO
\ No newline at end of file
# TODO
\ No newline at end of file
Das TextGrid Repository, ein Langzeitarchiv für geisteswissenschaftliche Forschungsdaten, liefert einen umfangreichen,
durchsuch- und nachnutzbaren Bestand XML/TEI-kodierter Texte, Bilder und Datenbanken. Zum stetig wachsenden Bestand
zählen mit der [Digitalen Bibliothek von TextGrid](https://textgrid.de/digitale-bibliothek) heute z.B. Werke von rund 600 Autorinnen und Autoren deutschsprachiger
Belletristik (Prosa, Lyrik, Dramen) und Sachliteratur von den Anfängen des Buchdrucks bis zum frühen 20. Jahrhundert,
die in verschiedenen Ausgabeformaten (z.B. XML, ePub, PDF) gespeichert, publiziert und durchsucht werden können.
Mit verschiedenen Werkzeugen, wie etwa zur Bildbetrachtung oder zur quantitativen Textanalyse, können die Texte
weiter erforscht und visualisiert werden.
Das TextGrid Repository ist ein Langzeitarchiv für geisteswissenschaftliche Forschungsdaten. Es liefert einen umfangreichen, durchsuch- und nachnutzbaren Bestand an Texten und Bildern. An den Grundsätzen von Open Access und den FAIR-Prinzipien orientiert, wurde das TextGrid Repository 2020 mit dem [CoreTrustSeal](https://www.coretrustseal.org/why-certification/certified-repositories/) versehen. Für Forschende bietet das TextGrid Repository eine nachhaltige, dauerhafte und sichere Möglichkeit, zur zitierfähigen Publikation ihrer Forschungsdaten und zur verständlichen Beschreibung derselben durch erforderliche Metadaten. Mehr zum Thema Nachhaltigkeit, FAIR und Open Access im [Mission Statement](/docs/mission-statement) des TextGrid Repository.
Das TextGrid Repository ist Teil der Virtuellen Forschungsumgebung [TextGrid](https://textgrid.de/), die neben dem fachwissenschaftlichen
Langzeitarchiv eine Open Source-Software für die kollaborative Erstellung und Publikation z.B. digitaler Editionen
auf XML/TEI-Basis anbietet.
Die überwiegende Anzahl der Texte ist neben dem Reintextformat auch XML/TEI-kodiert und ermöglicht so vielfältige Nachnutzung. Der Bestand wurde mit dem Erwerb der [Digitalen Bibliothek](https://textgrid.de/de/digitale-bibliothek) aufgebaut und entwickelt sich fortwährend auf der Basis der [TextGrid Community](https://textgrid.de/de/community). Durch zahlreiche Editionsprojekte, die in der virtuellen Forschungsumgebung des [TextGrid Laboratory](https://textgrid.de/de_DE/download) entstehen, sind sowohl Manuskripte (Bilder) als auch Transkriptionen (XML/TEI-kodierte Textdaten) vorhanden (z. B. die [Bibliothek der Neologie](/search?filter=project.value%3aNeologie) oder auch das Projekt zur deutsch-französischen Reisekorrespondenz [Architrave](/search?filter=project.value%3aArchitrave)).
Durch Eingabe eines Suchwortes kann direkt im Bestand gesucht werden; alternativ kann dieser über "Explore"
nach vordefinierten Kategorien (z.B. "Autor", "Genre") angezeigt und aufgerufen werden.
Die Inhalte sind demnach zum Teil projektspezifisch und wachsen im Laufe der Zeit. Grundstock bildet ein umfangreiches Korpus der Weltliteratur vom Beginn des Buchdrucks bis ins 20. Jahrhundert aus Texten von rund 600 Autorinnen und Autoren: die [Digitale Bibliothek](https://textgrid.de/de/digitale-bibliothek). Es handelt sich um Literatur, die in deutscher Sprache geschrieben oder übersetzt wurde. Dennoch hat das TextGrid Repository keine sprachliche Beschränkung und es werden je nach Projektkontext fremdsprachliche Texte hier veröffentlicht.
Die Suche unterstützt die Anfragesprache [Lucene](https://lucene.apache.org/core/); neben der Freitextsuche ermöglicht sie u.a. Anfragen nach
folgendem Muster:
Neben der erweiterten [Suche](/docs/syntax) sind die Inhalte des TextGrid Repository auch explorativ durch Filter [nach Autor](/facet/edition.agent.value?order=term:asc), [nach Genre](/facet/work.genre), [nach Dateityp](/facet/format) und [nach Projekt](https://textgridrep.org/facet/project.value) erkundbar.
[edition.agent.value:goethe AND pudel](/search?query=edition.agent.value%3Agoethe+AND+pudel)
Alle veröffentlichten Inhalte sind nach dem Open-Access-Prinzip frei zugänglich, sollten aber wie gewöhnlich nach dem jeweils angegeben Zitationsvorschlag nachgewiesen werden. Das TextGrid Repository bietet über die [Regalfunktion](/shelf) die Möglichkeit, individuelle Kollektionen zusammenzustellen. Diese können in den Formaten xml oder txt gesammelt heruntergeladen oder direkt mit einer Reihe von digitalen Werkzeugen untersucht werden.
Weitere Informationen zur Suchsyntax, zu Suchkategorien und -filtern finden Sie in der [Hilfe](/doc/syntax).
**Mitmachen**
Möchten Sie eigenes XML-erschlossenes Material im TextGrid Repository zitierfähig archivieren und zugänglich machen?
Nehmen Sie Kontakt mit uns auf: https://textgrid.de/kontakt/
**Mitmachen**
Möchten Sie eigenes XML-erschlossenes Material im TextGrid Repository zitierfähig archivieren und zugänglich machen?
Nehmen Sie [Kontakt](https://textgrid.de/kontakt/) mit uns auf.
\ No newline at end of file
# Mission Statement
Das TextGrid Repository (TextGridRep) ist ein digitales Langzeitarchiv für geisteswissenschaftliche Forschungsdaten und bietet eine Vielzahl an Daten für Lehr- und Forschungszwecke. Es folgt den Prinzipien des Open Access, bedient offene Standards und erlaubt damit eine effiziente Nachnutzung für die Forschung. Das TextGridRep bietet Wissenschaftlerinnen und Wissenschaftlern weiterhin umfassende und zuverlässige Dienste für die permanente Datensicherung, gut dokumentiert und mit stabilen Referenzen für Zitation und Nachhaltigkeit.
Das TextGridRep ist Teil der Virtuellen Forschungsumgebung [TextGrid](https://textgrid.de), die neben dem fachwissenschaftlichen Langzeitarchiv eine Open Source-Software für die kollaborative Erstellung, Analyse und Publikation von Texten und Bildern. Die virtuelle Forschungsumgebung ist optimiert für digitale Editionen auf XML/TEI-Basis und editorische Publikation mit dem TextGrid Laboratory (TextGridLab). Eine von diesen Formaten unabhängige Publikation aus dem TextGridLab ist jedoch ebenso möglich wie ein Import von Daten über die TextGridRep API wie z. B. TG-import.
Das TextGrid Repository wurde als Projekt der Digitalen Forschungsinfrastruktur für die Geistes- und Kulturwissenschaften in Deutschland Community-orientiert erarbeitet und ist zusammen mit dem DARIAH-DE Repository Teil des [Humanities Data Center](https://humanities-data-centre.de/) (HDC).
Ziel des TextGridRep ist die Unterstützung nationaler und internationaler Forschung und Lehre durch das Erhalten, Nachnutzen, öffentliche Teilen und Verbreiten von digitalen Forschungsdaten unter Einhaltung der wissenschaftlichen und ethischen Standards der internationalen Forschungsgemeinschaft.
Damit ist das Projekt auf die [Open Access Strategie der Universität Göttingen](https://www.uni-goettingen.de/de/221506.html) und ihrer [Forschungsdaten-Leitlinie](https://www.uni-goettingen.de/de/488918.html) abgestimmt und stellt somit alle notwendigen Ressourcen zur Unterstützung der Forschung zur Verfügung. Der Einsatz für Open Access betrifft sowohl die organisatorische und technische Infrastruktur, als auch die Archvierungsvorgänge des Repository, sodass Daten und Publikationen ohne Zugangsbeschränkungen zugänglich sind.
Das [Data Management](https://wiki.de.dariah.eu/display/TextGrid/Digital+Object+Management) nutzt für Verwaltung, Publikation und Erhaltung der Daten die Workflows des Open Archiving Information Systems (OAIS). Mehr Informationen dazu sind im öffentlichen TextGrid-Wiki auf der Seite [TextGrid Repository - Digital Object Management](https://wiki.de.dariah.eu/display/TextGrid/Digital+Object+Management#DigitalObjectManagement-TextGridandtheOpenArchivalInformationSystem(OAIS)) dokumentiert.
Die langfristige Nachhaltigkeit des Repositorys wird durch die Unterstützung der [Niedersächsischen Staats- und Universitätsbibliothek Göttingen (SUB)](https://www.sub.uni-goettingen.de/wir-ueber-uns/portrait/) und der [Gesellschaft für wissenschaftliche Datenverarbeitung Göttingen mbH (GWDG)](https://www.gwdg.de/about-us) gewährleistet.
Beide Institutionen teilen ihren Einsatz für die Nachhaltigkeit ihrer Dienstleistungen und halten sich an die Richtlinien der [FAIR principles](https://www.go-fair.org/fair-principles/) für Forschung und Infrastruktur. Das Thema Forschungsdatenmanagement ist ein wichtiger Aspekt der [Strategie der SUB Göttingen](https://www.sub.uni-goettingen.de/wir-ueber-uns/portrait/strategie-2018-2021/). Nicht nur für Forschungsdaten, sondern auch für alle digitalen Ressourcen, folgt die SUB Göttingen den [Grundsätzen für die digitalen Angebote](https://www.sub.uni-goettingen.de/wir-ueber-uns/portrait/digital-policies-grundsaetze-fuer-die-digitalen-angebote-der-sub-goettingen/), die Leitlinien für die Qualitätssicherung von Zugriff, Metadaten und IT Architektur beinhalten.
Im Zusammenhang mit Open Access beteiligt sich die SUB auch an nationalen und internationalen Projekten wie der [Confederation of Open Access Repositories (COAR)](https://www.coar-repositories.org/) und [OpenAIRE](https://www.openaire.eu/). Dadurch ist das TextGrid Repository auch auf die [Open Access Richtlinien der Deutschen Forschungsgemeinschaft (S.44 Abschnitt 12.2.1)](https://www.dfg.de/formulare/2_00/v/dfg_2_00_de_v1215.pdf) und der Europäischen Union abgestimmt. Nach Erlass der Europäischen Kommission und des Europäischen Forschungsrats müssen alle finanzierten Projekte ihre Ergebnisse als Open Access veröffentlichen. Weitere Informationen finden sich im [Horizon 2020 Online Manual](https://ec.europa.eu/research/participants/docs/h2020-funding-guide/cross-cutting-issues/open-access-data-management/open-access_en.htm) und auf der Webseite der Universität Göttingen [Open Access & Pilot on Open Data](https://www.uni-goettingen.de/en/487290.html).
# Mission Statement
The TextGrid Repository (TextGridRep) is a digital preservation archive for human sciences research data providing a variety of data for teaching and research purposes. It promotes open access to research data including open standards allowing an efficient reuse for research. The TextGridRep also provides researchers with a comprehensive and reliable service to store their data permanently, well described and with a stable reference for citation and reuse.
The TextGridRep is part of the [TextGrid](https://textgrid.de/en/) Virtual Research Environment (VRE), which offers besides digital preservation also open-source software for collaborative creation, analysis and publication of text and images. The TextGrid VRE is optimised for XML/TEI formats and editorial publication out of the TextGrid Laboratory (TextGridLab). An independent publication from the TextGridLab including other types of data and formats is equally possible by tools using the TextGridRep API such as TG-import.
The TextGrid Repository is a community orientated result of a national program to establish a Digital Humanities infrastructure in Germany and operates together with the DARIAH-DE Repository as part of the [Humanities Data Center](https://humanities-data-centre.de/) (HDC).
The mission of the TextGridRep is to serve national and international research, teaching and learning by providing long term preservation, further processing, openly sharing and dissemination of digital research data according to ethical and scientific standards of the international research community.
The repository's mission is in line with the [Open Access strategy of the University of Göttingen](https://www.uni-goettingen.de/en/221506.html) and its [research data policy](http://www.uni-goettingen.de/en/488918.html). It provides all necessary resources to promote and support making the research results of its researchers as widely accessible and usable as possible. This commitment to open access is reflected in the organisational and technical infrastructure as well as in its archiving procedures of the repository to allow the use of publications and data without any access restriction in order “to support research and innovation in science […] and society in a direct and lasting way”.
In terms of [data management](https://wiki.de.dariah.eu/display/TextGrid/Digital+Object+Management), publication and preservation workflows are based on the Open Archiving Information System, see [TextGrid Repository – Digital Object Management](https://wiki.de.dariah.eu/display/TextGrid/Digital+Object+Management#DigitalObjectManagement-TextGridandtheOpenArchivalInformationSystem(OAIS)).
The commitment is strongly supported by the two relevant institutions ensuring also the long-term sustainability of the repository and its data: The [Göttingen State and University Library](https://www.sub.uni-goettingen.de/en/about-us/portrait/) (SUB) and the [Gesellschaft für wissenschaftliche Datenverarbeitung Göttingen mbH](https://www.gwdg.de/about-us) (GWDG).
Both institutions share a commitment to the sustainability of services and to [FAIR principles](https://www.go-fair.org/fair-principles/) in research and its infrastructures. For the SUB research data management is an important aspect of the [strategic aims of Göttingen State and University Library](https://www.sub.uni-goettingen.de/en/about-us/portrait/strategy/#c13124). Not only for research data, but for all digital resources, Göttingen State and University Library follows a [policy](https://www.sub.uni-goettingen.de/en/about-us/portrait/goettingen-state-and-university-library-digital-policies-guiding-principles/), which contains guiding principles in order to ensure the quality for access, metadata and IT architecture.
In the context of open access, the Göttingen State and University Library also participates in national and international projects, such as the [Confederation of Open Access Repositories](https://www.coar-repositories.org/) (COAR) and [OpenAIRE](http://www.openaire.eu/). In this perspective the TextGrid Repository is also in line with open access requirements of important funders of the German research system as the German Research Foundation (DFG) (see <https://www.dfg.de/formulare/2_00/v/dfg_2_00_de_v1215.pdf>, p. 44, section 12.2.1) and the European Union. Mandates of the European Commission and the European Research Council require as stated e.g. in the European Open Access Pilot on Open Data all funded projects to publish their results in Open Access (see the [Horizon 2020 Online Manual](https://ec.europa.eu/research/participants/docs/h2020-funding-guide/cross-cutting-issues/open-access-data-management/open-access_en.htm)). The Research Department at Göttingen University offers detailed information about the [European Union Open Access Pilot](https://www.uni-goettingen.de/en/487290.html) also on its web pages.
# TODO
\ No newline at end of file
# TODO
\ No newline at end of file
......@@ -89,7 +89,7 @@ public class SearchController {
model.addAttribute("mode", mode);
model.addAttribute("results", res.getResult());
model.addAttribute("facets", res.getFacetResponse().getFacetGroup());
model.addAttribute("facetResponse", res.getFacetResponse());
model.addAttribute("query", HtmlUtils.htmlEscape(query));
model.addAttribute("order", order);
model.addAttribute("start", start);
......
package info.textgrid.rep.service;
import javax.annotation.PostConstruct;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
public class TgrepConfigurationService {
private static final Log log = LogFactory.getLog(TgrepConfigurationService.class);
@Value("${textgrid.host}")
private String textgridHost;
@Value("${handle.host}")
......@@ -73,13 +77,13 @@ public class TgrepConfigurationService {
@PostConstruct
public void postConstruct() {
System.out.println("--------textgrid host: " + textgridHost);
System.out.println("--------handle host: " + handleHost);
System.out.println("--------voyant host: " + toolVoyantHost);
System.out.println("--------annotate host: " + toolAnnotateHost);
System.out.println("--------mirador host: " + toolMiradorHost);
System.out.println("--------digilib host: " + toolDigilibHost);
System.out.println("--------switchboard host: " + toolSwitchboardHost);
log.info("textgrid host: " + textgridHost);
log.info("handle host: " + handleHost);
log.info("voyant host: " + toolVoyantHost);
log.info("annotate host: " + toolAnnotateHost);
log.info("mirador host: " + toolMiradorHost);
log.info("digilib host: " + toolDigilibHost);
log.info("switchboard host: " + toolSwitchboardHost);
}
}
......@@ -6,6 +6,7 @@ import javax.annotation.PostConstruct;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import info.textgrid.clients.SearchClient;
import info.textgrid.namespaces.middleware.tgsearch.FacetResponse;
......@@ -13,12 +14,20 @@ import info.textgrid.namespaces.middleware.tgsearch.Response;
import info.textgrid.namespaces.middleware.tgsearch.ResultType;
import info.textgrid.namespaces.middleware.tgsearch.Revisions;
@Service
public class TgsearchClientService {
@Value("${tgsearch.query.facetlimit}")
private int facetLimit = 10;
@Autowired
private TgrepConfigurationService tgrepConfig;
private SearchClient searchClient;
private static final Log log = LogFactory.getLog(TgsearchClientService.class);
private List<String> facets = Arrays.asList(new String[] {
"edition.agent.value",
"work.genre",
......@@ -26,13 +35,6 @@ public class TgsearchClientService {
"project.value"
});
private static final Log log = LogFactory.getLog(TgsearchClientService.class);
@Autowired
public TgsearchClientService(TgrepConfigurationService tgrepConfig) {
this.tgrepConfig = tgrepConfig;
}
@PostConstruct
public void postConstruct() {
this.setupClient();
......@@ -57,6 +59,7 @@ public class TgsearchClientService {
.setStart(start)
.setLimit(limit)
.setFacetList(facets)
.setFacetLimit(facetLimit)
.setFilterList(filter)
.setSearchSandbox(sandbox)
.setResolvePath(true)
......
......@@ -20,3 +20,5 @@ tool.switchboard.host: https://switchboard.clarin.eu/#/textgridrep
lang.available: en, de
lang.default: en
tgsearch.query.facetlimit = 10000
#tgsearch.query.facetlimit = 10
\ No newline at end of file
......@@ -119,4 +119,5 @@ settings=Einstellungen
shelf=Regal
imprint=Impressum
privpol=Datenschutzerklärung
help=Hilfe
documentation=Dokumentation
content=Inhalte
......@@ -120,3 +120,5 @@ shelf=Shelf
imprint=Imprint
privpol=Privacy Policy
help=Help
documentation=Documentation
content=Content
......@@ -28,7 +28,7 @@
<li class="tg nav_item -has-dropdown" id="nav-explore" role="presentation">
<a aria-labelledby="nav-explore" class="tg dropdown_toggle -nav" aria-haspopup="true" role="menuitem">
Explore
${i18n['content']}
</a>
<ul class="tg dropdown_menu -nav" role="menu">
<li class="" id="layout_18" role="presentation">
......@@ -51,7 +51,7 @@
<li class="tg nav_item -has-dropdown" id="nav-explore" role="presentation">
<a aria-labelledby="nav-explore" class="tg dropdown_toggle -nav" aria-haspopup="true" role="menuitem">
${i18n['help']}
${i18n['documentation']}
</a>
<ul class="tg dropdown_menu -nav" role="menu">
<li class="" id="layout_18" role="presentation">
......@@ -60,6 +60,9 @@
<li class="" id="layout_18" role="presentation">
<a aria-labelledby="layout_18" href="/docs/voyant" role="menuitem" tabindex="">Voyant</a>
</li>
<li class="" id="layout_18" role="presentation">
<a aria-labelledby="layout_18" href="/docs/mission-statement" role="menuitem" tabindex="">Mission Statement</a>
</li>
</ul>
</li>
<!--
......
......@@ -64,7 +64,7 @@
</section>
</c:if>
<c:forEach items="${facets}" var="facetGroup">
<c:forEach items="${facetResponse.facetGroup}" var="facetGroup">
<c:if test="${facetGroup.facet.size() != 0}">
<section class="tgrep sidebar_panel">
<h3 class="tgrep sidebar_subheading">${i18n[facetGroup.name]}</h3>
......
......@@ -130,6 +130,17 @@ public class SearchControllerTest {
.andExpect(model().attribute("filter", hasSize(2)));
}
// #57 - NPE when no facetresponse set (empty result)
@Test
public void noResults() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/search")
.queryParam("query", "(genre:\"roman\") AND (work.dateOfCreation.date:\"18??\") AND format:\"text/xml\"")
.accept(MediaType.TEXT_HTML))
.andExpect(status().isOk())
.andExpect(view().name("search"))
.andExpect(forwardedUrl("/WEB-INF/jsp/search.jsp"));
}
// TODO: test gallery image view: changing filters, view or limit should persist the
// already set properties and not drop them
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment