3.8.1. WiTTFind-Web¶
This repository contains all files for the WiTTFind frontend.
3.8.1.1. Requirements¶
The following libraries must be installed:
npm
- it takes care of downloading all necessary javascript libraries
To download all necessary javascript dependencies, just execute:
npm install
3.8.1.2. Development server¶
The npm package light-server
can be used as a kind of development server.
Thus, no “full” webserver like Apache or nginx is needed. The light-server
package can be installed with:
npm install
To start the light-server
the following command can be used:
npm run dev
This starts a lightweight webserver on port 8080. The startpage of
WiTTFind can be viewed in a webbrowser under http://localhost:8080
.
3.8.1.3. Makefile¶
The whole project is managed via make
. Here’s an overview of all Makefile
variables, which can be set:
Name | Default | Description |
---|---|---|
BOWER_CMD |
bower |
Defines filename for bower |
BOWER_OPT |
--allow-root --config.interactive=false |
Defines configuration options for bower |
BOWER |
$(BOWER_CMD) $(BOWER_OPT) |
Puts command and options for bower together |
3.8.1.4. Folder structure¶
├── CHANGELOG.md
├── Helppage
│ ├── frequenzliste_adjektive.html
│ ├── frequenzliste_adv.html
│ ├── frequenzliste_det.html
│ ├── frequenzliste_en.html
│ ├── frequenzliste_intj.html
│ ├── frequenzliste_konj.html
│ ├── frequenzliste_nomen.html
│ ├── frequenzliste_part.html
│ ├── frequenzliste_pdet.html
│ ├── frequenzliste_prep.html
│ ├── frequenzliste_verben.html
│ └── frequenzliste_vpart.html
├── Makefile
├── README.md
├── SemantischeKlassen
│ ├── ... (various frequency lists)
├── bower.json
├── code
│ ├── ... (various html files)
├── feedback.html
├── grapheditor.html
├── grapheditorii
│ ├── ... (various files for graph editor)
├── help.html
├── hook
│ └── issue-mailer.php
├── images
│ ├── banner-background.png
│ ├── branding-left-small.png
│ ├── branding-left.png
│ └── branding-right.png
├── include
│ ├── GraphEditorII.css
│ ├── autosuggestions.js
│ ├── changelog.js
│ ├── code.css
│ ├── code.js
│ ├── config.js
│ ├── feedback.js
│ ├── graph.js
│ ├── help.js
│ ├── main.js
│ ├── router.js
│ ├── search.js
│ ├── semantics.js
│ ├── settings.js
│ ├── translator.js
│ ├── tutorial.js
│ ├── wittfind.css
│ └── word-cloud.js
├── index.html
├── make
│ ├── bower.make
│ ├── clean.make
│ └── describe.make
├── semantics.html
├── settings.html
├── translator.html
└── tutorial.html
3.8.1.5. Folders¶
Helppage
contains html rendered lists for the help page ofwittfind-web
SemantischeKlassen
contains many frequency lists for semantic categoriescode
contains many lists and html files for the code page ofwittfind-web
grapheditorii
contains all files for the (currently deprecated) graph editorhook
contains files acting as GitLab hooksimages
contains all header imagesmake
contains various Makefile scripts
3.8.1.5.1. Files¶
CHANGELOG.md
: a brief history of all important changesMakefile
: the top level Makefile, includes the sub Makefiles (frommake
folder)README.md
: main readme filebower.json
: defines all client-side dependenciesfeedback.html
: feedback page forwittfind-web
grapheditor.html
: (currently deprecated) grapheditor entry pagehelp.html
: entry point for help pageindex.html
: main index paagesemantics.html
: entry point for semantics pagesettings.html
: settings pagetranslator.html
translator page for Wittgensteins codetutorial.html
: tutorial page
3.8.1.6. Micro services¶
The wittfind-web
site uses the following micro services requests for creating search, retrieve facsimile extracts or getting auto-suggestions.
They are maintained as an own git Projekt under the CAST- gitlab group. Every micro-service has an own .ci pipeline for deploy-testing
and deploy-production
.
Currently every microservices run on the debian virtual-debian-linus-Host cast2
under the user schweter2
.
Every Microservice manages his own CI/CD environment under their git repository:
.ci Pipelines will be found under the gitlab Menu: CI/CD Pipelines.
logfiles for testing and building pipelines will be found under the gitlab Menu: CI/CD Jobs.
Name | Description | Upstream repository |
---|---|---|
quadroreader |
The Quadroreader allows the user to present a set of facsimile in the web browser | here |
wfa |
Server for converting wf search results into an anchored xml compatible format | here |
axs |
Server for anchored xml (stand-off markup) | here |
sis |
Server for getting auto suggestions for a character sequence | here |
3.8.1.6.1. Dataflow¶
A small overview of the dataflow of wittfind-web
can be seen here:
3.8.1.6.2. Example¶
The following example uses the search pattern undenkbaren to explain the
data flow more detailed. The first request is sent to the wfa
server:
curl 'http://wfa.wittfind.cis.uni-muenchen.de/' --data '{"query":"\"undenkbaren\"","max":200}'
JSON:
{
"max" : 200,
"query" : "\"undenkbaren\""
}
Then the wfa
server would return something like this:
{
"/mounts/Users/student/schweter2/production-wf-wittfind/anchored-data/witt-data/ciswab/wab2cis/opensource_nachlass
/Ms-114_OA/norm/Ms-114_OA_NORM-expanded-tagged-annotated.xml" : {
"1831" : {
"matches" : [
{
"end" : [ 224, 12, 8 ],
"name" : "Ms-114,93r[2]_2",
"start" : [ 224, 12, 8 ]
}
]
}
}
}
The wittfind-web
search core will iterate over all matches
and sends
requests to the axs
server to get the search results. The request to axs
looks like:
curl 'http://axs.wittfind.cis.uni-muenchen.de/api/v1' \
--data '{"sentencenr": 1831, \
"display_tags": 0, \
"document": "Ms-114", \
"display_raw_output": 1, \
"highlighting": [{"start": [224,12,8], "end": [224,12,8]}]}'
JSON:
{
"display_tags" : 0,
"display_raw_output" : 1,
"document" : "Ms-114",
"highlighting" : [
{
"end" : [
24,
12,
8
],
"start" : [
224,
12,
8
]
}
],
"sentencenr" : 1831
}
The axs
returns the following (shortened output):
{
"results" : [
{
"alternativenr" : 0,
"end_highlighting" : 0,
"lemma" : "die",
"linenr" : 12,
"pagenr" : 224,
"paragraphnr" : 378,
"sentencenr" : 1831,
"start_highlighting" : 0,
"tag" : "ART",
"tokennr" : 7,
"word" : "den"
},
{
"alternativenr" : 0,
"end_highlighting" : 1,
"lemma" : "undenkbar",
"linenr" : 12,
"pagenr" : 224,
"paragraphnr" : 378,
"sentencenr" : 1831,
"start_highlighting" : 1,
"tag" : "ADJA",
"tokennr" : 8,
"word" : "undenkbaren"
}
]
}
Then the search output can generate a nice output for a search result.
3.8.1.6.3. Autosuggestions¶
The frontend also displays auto suggestions for a given character sequence doing
API calls to sis
. For the pattern “Erho” a request looks like:
curl 'http://sis.wittfind.cis.lmu.de/lemmasearch?query=Erho'
The sis
response is:
[
{
"lemma": "Erholung,4",
"variants": [
"Erholung,4"
]
},
{
"lemma": "Erhörte,1",
"variants": [
"Erhörtes,1"
]
}
]
3.8.1.7. Configuring¶
All micro services can be configured in include/config.js
. The default
configuration is:
Name | Host | Port |
---|---|---|
quadroreader |
dev.reader.wittfind.cis.lmu.de |
80 |
wfa |
dev.wfa.wittfind.cis.uni-muenchen.de |
80 |
axs |
dev.axs.wittfind.cis.uni-muenchen.de |
80 |
sis |
dev.sis.wittfind.cis.lmu.de |
80 |
3.8.1.8. Infrastructure¶
All micro services for wittfind-web
are monitored. See the WAST
infrastructure
repository for latest status.
3.8.1.9. Continuous Integration & Deployment¶
wittfind-web
uses continuous integration and deployment in combination
with GitLab:
URL | Server | Branches |
---|---|---|
wittfind.cis.uni-muenchen.de |
marmolata |
Only pushes to master are deployed |
dev.wittfind.cis.uni-muenchen.de |
uschebti |
Pushes to all branches are deployed |
For more information see:
GitLab CI configuration for
wittfind-web
GitLab CI documentation
3.8.1.10. Contributing¶
To contribute to wittfind-web
please refer to the contributing
documentation.