From e8a056df6e6a2666958baac6246726b727823e6e Mon Sep 17 00:00:00 2001 From: Jelte van Boheemen Date: Thu, 7 Apr 2022 14:32:07 +0200 Subject: [PATCH 01/16] SIF documentation markdown --- docs/Sasta input format.md | 81 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs/Sasta input format.md diff --git a/docs/Sasta input format.md b/docs/Sasta input format.md new file mode 100644 index 00000000..20506543 --- /dev/null +++ b/docs/Sasta input format.md @@ -0,0 +1,81 @@ +# SASTA Input Format (SIF) + +Dit document beschrijft het SASTA Input Formaat (SIF). In dit formaat kunnen transcripten aangeleverd worden voor analyse in SASTA. + +## 1 - Het bestand +Het transcript dient te worden aangeleverd als een Microsoft Word `.docx`-bestand. Een `.txt`-estand mt `utf-8`-encoding wordt ook geaccepteerd. De naam van het bestand wordt gebruikt als titel van het transcript binnen SASTA. Zo zal het bestand `sample 12.docx` het transcript `sample 12` opleveren. + +## 2 - Sprekers +Het transcript kan uitingen van meerdere sprekers bevatten. Ken elke spreker een unieke drieletterige code toe; bijvoorbeeld CHI (child), INV (interviewer) of PMA (patient met afasie). + + +## 3 - Metadata +### 3.1 - Uitingen selecteren +SASTA werkt optimaal wanneer het volledige transcript wordt aangeleverd. Dus ook uitingen van sprekers die niet geanalyseerd hoeven te worden, kunnen de resultaten verbeteren. Het is nodig om in dit volledige transcript de uitingen te markeren waarin je geinterresseerd bent. Je kunt dit mechanisme gebruiken om de analyse te baseren op een vast aantal uitingen, bijvoorbeeld 50. + +Er zijn twee manieren om een zin te markeren voor analyse: + +1. De spreker van de uiting + +2. De uiting nummeren (zie 3) + +Om alle uitingen van spreker PMA te analyseren, voeg je de volgende regel in: + +``` + +##TARGET SPEAKER PMA + +``` + +Om alleen de genummerde uitingen te analyseren: + +``` + +##TARGET UTTIDS + +``` + +Wanneer uitingen van een spreker worden gemarkeerd, **én** er zijn gemarkeerde uitingen aanwezig, worden alleen de genummerde uitingen van de spreker geanalyseerd. + +### 3.2 samplenaam +Het is mogelijk de titel van een transcript te overschrijven aan de hand van het metadata-veld `samplenaam`: +```##META text samplenaam = ASTA-13``` +Als dit veld aanwezig is wordt de bestandsnaam genegeerd. + +### 3.3 Overige metadata +Alle metadata volgens het [PAQU-formaat](https://paqu.let.rug.nl:8068/info.html#credits) zijn geldige invoer. deze worden echter door niet door SASTA verwerkt. + +## 4 - Uitingen + +Elke uiting begint op een nieuwe regel. Ze kunnen doorlopen op de volgende regel, maar mogen niet onderbroken worden met een regeleinde. Uitingen hebben een vaste vorm: + +``` +SPK:Inhoud van de uiting. + +``` + +Optioneel zijn ze ook genummerd: + +``` + +INV: Waar ben je vandaag geweest? + +1 | PMA: In de dierentuin. + +``` + + + +### 4.2 Annoteren +Uitingen kunnen geannoteerd worden volgens de [CHAT handleiding][chat-manual]. + +[chat-manual]: https://talkbank.org/manuals/CHAT.pdf +Voor lijsten met veel gebruikte annotaties, zie TODO: ASTA, STAP, TARSP-specifieke annotaties. + +### 4.3 Voorbeelden +``` +1 | CHI: Ja we gingen daar ook schaatsen. +INV: ja +9 | PMA: was niks aan de hand meer + +``` From 12f777d65df82a77b88a4d890f6bb75dcf986ada Mon Sep 17 00:00:00 2001 From: Jelte van Boheemen Date: Tue, 28 Feb 2023 15:29:04 +0100 Subject: [PATCH 02/16] Manual module and service --- docs/local-installation (Docker).md | 1 + frontend/src/app/app-routing/routes.ts | 5 ++++ frontend/src/app/app.module.ts | 3 +++ frontend/src/app/manual/manual.component.html | 1 + frontend/src/app/manual/manual.component.scss | 0 .../src/app/manual/manual.component.spec.ts | 25 +++++++++++++++++++ frontend/src/app/manual/manual.component.ts | 15 +++++++++++ frontend/src/app/manual/manual.module.ts | 10 ++++++++ frontend/src/app/menu/menu.component.html | 9 +++++++ frontend/src/app/menu/menu.component.ts | 2 ++ .../src/app/services/manual.service.spec.ts | 19 ++++++++++++++ frontend/src/app/services/manual.service.ts | 23 +++++++++++++++++ frontend/src/assets/manual/manifest.json | 0 .../src/assets/manual/sasta-input-format.md | 4 ++- 14 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 frontend/src/app/manual/manual.component.html create mode 100644 frontend/src/app/manual/manual.component.scss create mode 100644 frontend/src/app/manual/manual.component.spec.ts create mode 100644 frontend/src/app/manual/manual.component.ts create mode 100644 frontend/src/app/manual/manual.module.ts create mode 100644 frontend/src/app/services/manual.service.spec.ts create mode 100644 frontend/src/app/services/manual.service.ts create mode 100644 frontend/src/assets/manual/manifest.json rename docs/Sasta input format.md => frontend/src/assets/manual/sasta-input-format.md (99%) diff --git a/docs/local-installation (Docker).md b/docs/local-installation (Docker).md index 4dbf459d..4164fc8f 100644 --- a/docs/local-installation (Docker).md +++ b/docs/local-installation (Docker).md @@ -9,6 +9,7 @@ You need to install the following software: # Cloning SASTADEV SASTA requires SASTADEV to run. Clone it (from root directory). + SSH: ```console diff --git a/frontend/src/app/app-routing/routes.ts b/frontend/src/app/app-routing/routes.ts index 6b257781..cbf525f3 100644 --- a/frontend/src/app/app-routing/routes.ts +++ b/frontend/src/app/app-routing/routes.ts @@ -10,6 +10,7 @@ import { MethodComponent } from '../method/method.component'; import { ProcessComponent } from '../process/process.component'; import { UploadComponent } from '../upload/upload.component'; import { AuthGuard } from './auth.guard'; +import { ManualComponent } from '../manual/manual.component'; const routes: Routes = [ { @@ -59,6 +60,10 @@ const routes: Routes = [ path: 'confirm-email/:key', component: VerifyComponent, }, + { + path: 'manual', + component: ManualComponent, + }, { path: '', redirectTo: '/corpora', diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index ae867e31..186d9367 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -30,6 +30,7 @@ import { CorpusComponent } from './corpus/corpus.component'; import { ListCorpusComponent } from './corpus/list-corpus.component'; import { FooterComponent } from './footer/footer.component'; import { HomeComponent } from './home/home.component'; +import { ManualModule } from './manual/manual.module'; import { MenuComponent } from './menu/menu.component'; import { ListMethodComponent } from './method/list-method.component'; import { MethodComponent } from './method/method.component'; @@ -93,6 +94,8 @@ import { UtterancesListComponent } from './utterances/utterances-list.component' PanelModule, ProgressSpinnerModule, StepsModule, + // Feature modules + ManualModule, ], providers: [ConfirmationService, MessageService, XmlParseService], bootstrap: [AppComponent], diff --git a/frontend/src/app/manual/manual.component.html b/frontend/src/app/manual/manual.component.html new file mode 100644 index 00000000..a5616c64 --- /dev/null +++ b/frontend/src/app/manual/manual.component.html @@ -0,0 +1 @@ +

manual works!

diff --git a/frontend/src/app/manual/manual.component.scss b/frontend/src/app/manual/manual.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/frontend/src/app/manual/manual.component.spec.ts b/frontend/src/app/manual/manual.component.spec.ts new file mode 100644 index 00000000..a2b36fd0 --- /dev/null +++ b/frontend/src/app/manual/manual.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ManualComponent } from './manual.component'; + +describe('ManualComponent', () => { + let component: ManualComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ManualComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ManualComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/manual/manual.component.ts b/frontend/src/app/manual/manual.component.ts new file mode 100644 index 00000000..96b5d44f --- /dev/null +++ b/frontend/src/app/manual/manual.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sas-manual', + templateUrl: './manual.component.html', + styleUrls: ['./manual.component.scss'] +}) +export class ManualComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/frontend/src/app/manual/manual.module.ts b/frontend/src/app/manual/manual.module.ts new file mode 100644 index 00000000..f9c88373 --- /dev/null +++ b/frontend/src/app/manual/manual.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { ManualComponent } from './manual.component'; + +@NgModule({ + declarations: [ManualComponent], + imports: [CommonModule], + exports: [ManualComponent], +}) +export class ManualModule {} diff --git a/frontend/src/app/menu/menu.component.html b/frontend/src/app/menu/menu.component.html index 4b102e8f..54415524 100644 --- a/frontend/src/app/menu/menu.component.html +++ b/frontend/src/app/menu/menu.component.html @@ -52,6 +52,15 @@

SASTA

Admin + + + + + + Manual + + diff --git a/frontend/src/app/menu/menu.component.ts b/frontend/src/app/menu/menu.component.ts index 10ebceab..6ed54ae7 100644 --- a/frontend/src/app/menu/menu.component.ts +++ b/frontend/src/app/menu/menu.component.ts @@ -1,6 +1,7 @@ import { Component, NgZone } from '@angular/core'; import { Router } from '@angular/router'; import { + faBook, faFileUpload, faFolder, faListAlt, @@ -26,6 +27,7 @@ export class MenuComponent { faListAlt = faListAlt; faFileUpload = faFileUpload; faUserShield = faUserShield; + faBook = faBook; version = environment.appVersion; constructor( diff --git a/frontend/src/app/services/manual.service.spec.ts b/frontend/src/app/services/manual.service.spec.ts new file mode 100644 index 00000000..df7793ec --- /dev/null +++ b/frontend/src/app/services/manual.service.spec.ts @@ -0,0 +1,19 @@ +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { TestBed } from '@angular/core/testing'; + +import { ManualService } from './manual.service'; + +describe('ManualService', () => { + let service: ManualService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + }); + service = TestBed.inject(ManualService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/services/manual.service.ts b/frontend/src/app/services/manual.service.ts new file mode 100644 index 00000000..17105526 --- /dev/null +++ b/frontend/src/app/services/manual.service.ts @@ -0,0 +1,23 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; + +export interface ManualPageMetaData { + title: string; + id: string; +} + +@Injectable({ + providedIn: 'root', +}) +export class ManualService { + constructor(private http: HttpClient) {} + + getManifest(): Observable { + return this.http.get( + this.docsPath('manifest.json') + ); + } + + private docsPath = (file: string): string => `assets/manual/${file}`; +} diff --git a/frontend/src/assets/manual/manifest.json b/frontend/src/assets/manual/manifest.json new file mode 100644 index 00000000..e69de29b diff --git a/docs/Sasta input format.md b/frontend/src/assets/manual/sasta-input-format.md similarity index 99% rename from docs/Sasta input format.md rename to frontend/src/assets/manual/sasta-input-format.md index 20506543..2b5b3f7d 100644 --- a/docs/Sasta input format.md +++ b/frontend/src/assets/manual/sasta-input-format.md @@ -69,7 +69,7 @@ INV: Waar ben je vandaag geweest? ### 4.2 Annoteren Uitingen kunnen geannoteerd worden volgens de [CHAT handleiding][chat-manual]. -[chat-manual]: https://talkbank.org/manuals/CHAT.pdf + Voor lijsten met veel gebruikte annotaties, zie TODO: ASTA, STAP, TARSP-specifieke annotaties. ### 4.3 Voorbeelden @@ -79,3 +79,5 @@ INV: ja 9 | PMA: was niks aan de hand meer ``` + +[chat-manual]: https://talkbank.org/manuals/CHAT.pdf From eaf4800cbadf15588ad576bdd2a38f013ea438a9 Mon Sep 17 00:00:00 2001 From: Jelte van Boheemen Date: Tue, 28 Feb 2023 16:22:09 +0100 Subject: [PATCH 03/16] Display manual pages as json --- frontend/src/app/app-routing/routes.ts | 2 +- .../src/app/manual/manual-nav.component.html | 13 ++++++++ .../src/app/manual/manual-nav.component.scss | 0 .../app/manual/manual-nav.component.spec.ts | 25 +++++++++++++++ .../src/app/manual/manual-nav.component.ts | 14 +++++++++ frontend/src/app/manual/manual.component.html | 14 ++++++++- frontend/src/app/manual/manual.component.ts | 31 +++++++++++++++---- frontend/src/app/manual/manual.module.ts | 8 +++-- frontend/src/app/menu/menu.component.html | 2 +- frontend/src/app/services/manual.service.ts | 27 ++++++++++++++-- frontend/src/assets/manual/main.md | 1 + frontend/src/assets/manual/manifest.json | 4 +++ 12 files changed, 126 insertions(+), 15 deletions(-) create mode 100644 frontend/src/app/manual/manual-nav.component.html create mode 100644 frontend/src/app/manual/manual-nav.component.scss create mode 100644 frontend/src/app/manual/manual-nav.component.spec.ts create mode 100644 frontend/src/app/manual/manual-nav.component.ts create mode 100644 frontend/src/assets/manual/main.md diff --git a/frontend/src/app/app-routing/routes.ts b/frontend/src/app/app-routing/routes.ts index cbf525f3..e0eeed25 100644 --- a/frontend/src/app/app-routing/routes.ts +++ b/frontend/src/app/app-routing/routes.ts @@ -61,7 +61,7 @@ const routes: Routes = [ component: VerifyComponent, }, { - path: 'manual', + path: 'manual/:identifier', component: ManualComponent, }, { diff --git a/frontend/src/app/manual/manual-nav.component.html b/frontend/src/app/manual/manual-nav.component.html new file mode 100644 index 00000000..0728ca75 --- /dev/null +++ b/frontend/src/app/manual/manual-nav.component.html @@ -0,0 +1,13 @@ + diff --git a/frontend/src/app/manual/manual-nav.component.scss b/frontend/src/app/manual/manual-nav.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/frontend/src/app/manual/manual-nav.component.spec.ts b/frontend/src/app/manual/manual-nav.component.spec.ts new file mode 100644 index 00000000..d1c33318 --- /dev/null +++ b/frontend/src/app/manual/manual-nav.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ManualNavComponent } from './manual-nav.component'; + +describe('ManualNavComponent', () => { + let component: ManualNavComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ManualNavComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ManualNavComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/manual/manual-nav.component.ts b/frontend/src/app/manual/manual-nav.component.ts new file mode 100644 index 00000000..c7595d1d --- /dev/null +++ b/frontend/src/app/manual/manual-nav.component.ts @@ -0,0 +1,14 @@ +import { Component, OnInit } from '@angular/core'; +import { ManualService } from '../services/manual.service'; + +@Component({ + selector: 'sas-manual-nav', + templateUrl: './manual-nav.component.html', + styleUrls: ['./manual-nav.component.scss'], +}) +export class ManualNavComponent implements OnInit { + manifest$ = this.manualService.manifest$.asObservable(); + constructor(private manualService: ManualService) {} + + ngOnInit(): void {} +} diff --git a/frontend/src/app/manual/manual.component.html b/frontend/src/app/manual/manual.component.html index a5616c64..4c07b1a3 100644 --- a/frontend/src/app/manual/manual.component.html +++ b/frontend/src/app/manual/manual.component.html @@ -1 +1,13 @@ -

manual works!

+ + +
+
+
+ +
+

title

+
{{(currentPage | async) | json}}
+
+
+
+
diff --git a/frontend/src/app/manual/manual.component.ts b/frontend/src/app/manual/manual.component.ts index 96b5d44f..ba2dbb15 100644 --- a/frontend/src/app/manual/manual.component.ts +++ b/frontend/src/app/manual/manual.component.ts @@ -1,15 +1,34 @@ import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { combineLatest, Observable } from 'rxjs'; +import { map, switchMap, tap } from 'rxjs/operators'; +import { ManualPage, ManualService } from '../services/manual.service'; @Component({ - selector: 'sas-manual', - templateUrl: './manual.component.html', - styleUrls: ['./manual.component.scss'] + selector: 'sas-manual', + templateUrl: './manual.component.html', + styleUrls: ['./manual.component.scss'], }) export class ManualComponent implements OnInit { + manifest$ = this.manualService.manifest$.asObservable(); - constructor() { } + currentPage: Observable; - ngOnInit(): void { - } + constructor( + private manualService: ManualService, + private activatedRoute: ActivatedRoute + ) {} + ngOnInit(): void { + this.currentPage = combineLatest([ + this.manifest$, + this.activatedRoute.paramMap, + ]).pipe( + switchMap(([manifest, params]) => { + const identifier = params.get('identifier'); + const meta = manifest.find((m) => m.id === identifier); + return this.manualService.getPage(meta); + }) + ); + } } diff --git a/frontend/src/app/manual/manual.module.ts b/frontend/src/app/manual/manual.module.ts index f9c88373..f2978b17 100644 --- a/frontend/src/app/manual/manual.module.ts +++ b/frontend/src/app/manual/manual.module.ts @@ -1,10 +1,12 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { ManualComponent } from './manual.component'; +import { RouterModule } from '@angular/router'; +import { ManualNavComponent } from './manual-nav.component'; @NgModule({ - declarations: [ManualComponent], - imports: [CommonModule], - exports: [ManualComponent], + declarations: [ManualComponent, ManualNavComponent], + imports: [CommonModule, RouterModule], + exports: [ManualComponent, ManualNavComponent], }) export class ManualModule {} diff --git a/frontend/src/app/menu/menu.component.html b/frontend/src/app/menu/menu.component.html index 54415524..e8ed3209 100644 --- a/frontend/src/app/menu/menu.component.html +++ b/frontend/src/app/menu/menu.component.html @@ -52,7 +52,7 @@

SASTA

Admin - diff --git a/frontend/src/app/services/manual.service.ts b/frontend/src/app/services/manual.service.ts index 17105526..808f4afe 100644 --- a/frontend/src/app/services/manual.service.ts +++ b/frontend/src/app/services/manual.service.ts @@ -1,19 +1,40 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { Observable } from 'rxjs'; +import { Observable, Subject } from 'rxjs'; +import { map } from 'rxjs/operators'; export interface ManualPageMetaData { title: string; id: string; } +export interface ManualPage extends ManualPageMetaData { + content: string; +} + @Injectable({ providedIn: 'root', }) export class ManualService { - constructor(private http: HttpClient) {} + manifest$ = new Subject(); + page$ = new Subject(); + + constructor(private http: HttpClient) { + this.getManifest().subscribe( + (man) => this.manifest$.next(man), + (error) => console.error(error) + ); + } + + getPage(meta: ManualPageMetaData): Observable { + const file = meta.id + '.md'; + const url = this.docsPath(file); + return this.http + .get(url, { responseType: 'text' }) + .pipe(map((text) => ({ ...meta, content: text }))); + } - getManifest(): Observable { + private getManifest(): Observable { return this.http.get( this.docsPath('manifest.json') ); diff --git a/frontend/src/assets/manual/main.md b/frontend/src/assets/manual/main.md new file mode 100644 index 00000000..1bab3f58 --- /dev/null +++ b/frontend/src/assets/manual/main.md @@ -0,0 +1 @@ +JOejoe diff --git a/frontend/src/assets/manual/manifest.json b/frontend/src/assets/manual/manifest.json index e69de29b..ade80e18 100644 --- a/frontend/src/assets/manual/manifest.json +++ b/frontend/src/assets/manual/manifest.json @@ -0,0 +1,4 @@ +[ + { "id": "main", "title": "SASTA User Manual" }, + { "id": "sasta-input-format", "title": "SASTA Input Format (SIF)" } +] From 0a0ef41957ce8a88c5e61fced442d58300374038 Mon Sep 17 00:00:00 2001 From: Jelte van Boheemen Date: Wed, 1 Mar 2023 10:16:24 +0100 Subject: [PATCH 04/16] Add documentation and serve --- frontend/package.json | 2 + frontend/src/app/manual/manual.component.html | 4 +- frontend/src/app/manual/manual.component.ts | 4 +- frontend/src/app/services/manual.service.ts | 15 +++++-- frontend/src/assets/manual/accounts.md | 4 ++ frontend/src/assets/manual/corpora.md | 26 +++++++++++++ frontend/src/assets/manual/main.md | 4 +- frontend/src/assets/manual/manifest.json | 12 +++++- frontend/src/assets/manual/process.md | 8 ++++ .../src/assets/manual/sasta-input-format.md | 20 +++++----- frontend/src/assets/manual/transcript.md | 39 +++++++++++++++++++ frontend/src/assets/manual/upload.md | 25 ++++++++++++ frontend/yarn.lock | 10 +++++ 13 files changed, 152 insertions(+), 21 deletions(-) create mode 100644 frontend/src/assets/manual/accounts.md create mode 100644 frontend/src/assets/manual/corpora.md create mode 100644 frontend/src/assets/manual/process.md create mode 100644 frontend/src/assets/manual/transcript.md create mode 100644 frontend/src/assets/manual/upload.md diff --git a/frontend/package.json b/frontend/package.json index b47549e0..2c4ea458 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -33,12 +33,14 @@ "@fortawesome/fontawesome-svg-core": "^1.2.24", "@fortawesome/free-solid-svg-icons": "^5.11.1", "@types/file-saver": "^2.0.1", + "@types/marked": "^4.0.8", "brace": "^0.11.1", "bulma": ">0.9.0", "fast-xml-parser": "^3.15.1", "file-saver": "^2.0.2", "jquery": "^3.6.0", "lassy-xpath": "^0.12.0", + "marked": "^4.2.12", "ngx-json-viewer": "^2.4.0", "primeicons": "^2.0.0", "primeng": "~12.0.0", diff --git a/frontend/src/app/manual/manual.component.html b/frontend/src/app/manual/manual.component.html index 4c07b1a3..08c1659c 100644 --- a/frontend/src/app/manual/manual.component.html +++ b/frontend/src/app/manual/manual.component.html @@ -5,8 +5,8 @@
-

title

-
{{(currentPage | async) | json}}
+

{{(currentPage$ | async)?.title}}

+
diff --git a/frontend/src/app/manual/manual.component.ts b/frontend/src/app/manual/manual.component.ts index ba2dbb15..56cf430f 100644 --- a/frontend/src/app/manual/manual.component.ts +++ b/frontend/src/app/manual/manual.component.ts @@ -12,7 +12,7 @@ import { ManualPage, ManualService } from '../services/manual.service'; export class ManualComponent implements OnInit { manifest$ = this.manualService.manifest$.asObservable(); - currentPage: Observable; + currentPage$: Observable; constructor( private manualService: ManualService, @@ -20,7 +20,7 @@ export class ManualComponent implements OnInit { ) {} ngOnInit(): void { - this.currentPage = combineLatest([ + this.currentPage$ = combineLatest([ this.manifest$, this.activatedRoute.paramMap, ]).pipe( diff --git a/frontend/src/app/services/manual.service.ts b/frontend/src/app/services/manual.service.ts index 808f4afe..9d6aa792 100644 --- a/frontend/src/app/services/manual.service.ts +++ b/frontend/src/app/services/manual.service.ts @@ -1,7 +1,9 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; +import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; import { Observable, Subject } from 'rxjs'; import { map } from 'rxjs/operators'; +import { marked } from 'marked'; export interface ManualPageMetaData { title: string; @@ -9,7 +11,7 @@ export interface ManualPageMetaData { } export interface ManualPage extends ManualPageMetaData { - content: string; + content: SafeHtml; } @Injectable({ @@ -19,7 +21,7 @@ export class ManualService { manifest$ = new Subject(); page$ = new Subject(); - constructor(private http: HttpClient) { + constructor(private http: HttpClient, private domSanitizer: DomSanitizer) { this.getManifest().subscribe( (man) => this.manifest$.next(man), (error) => console.error(error) @@ -31,7 +33,14 @@ export class ManualService { const url = this.docsPath(file); return this.http .get(url, { responseType: 'text' }) - .pipe(map((text) => ({ ...meta, content: text }))); + .pipe(map((text) => ({ ...meta, content: this.parseMD(text) }))); + } + + private parseMD(raw: string): SafeHtml { + const html = marked + .parse(raw) + .replace(/
Date: Wed, 1 Mar 2023 12:13:10 +0100 Subject: [PATCH 07/16] Update docs --- docs/accounts.md | 14 +- docs/assets/favicon.svg | 537 ++++++++++++++++++ docs/assets/uu.svg | 184 ++++++ docs/example-files/sif.docx | Bin 0 -> 15678 bytes docs/example-files/sif.txt | 33 ++ docs/input-formats/sif.md | 44 +- docs/input-formats/voorbeelden.md | 7 + docs/methodes.md | 11 + docs/process.md | 2 +- docs/upload.md | 6 +- frontend/src/app/app-routing/routes.ts | 8 +- frontend/src/app/method/method.component.html | 6 - mkdocs.yml | 4 + 13 files changed, 815 insertions(+), 41 deletions(-) create mode 100644 docs/assets/favicon.svg create mode 100644 docs/assets/uu.svg create mode 100644 docs/example-files/sif.docx create mode 100644 docs/example-files/sif.txt create mode 100644 docs/input-formats/voorbeelden.md create mode 100644 docs/methodes.md diff --git a/docs/accounts.md b/docs/accounts.md index 23ccf8b9..206de1b2 100644 --- a/docs/accounts.md +++ b/docs/accounts.md @@ -1,5 +1,17 @@ # Gebruikersaccount + +## Registreren - Kies in de menubalk de optie `Sign up` - Vul het formulier in, zorg voor een geldig e-mailadres - Als de registratie succesvol verlopen is, ontvangt u een email met instructies om uw e-mailadres te bevestigen -- Na bevestigen kunt u inloggen door in de menubalk `Login` te kiezen en uw gebruikersnaam en wachtwoord op te geven +- Na bevestigen kunt u inloggen + +## Inloggen +- Kies in de menubalk de optie `Login` +- Vul uw gebruikersnaam en wachtwoord in en log in + +## Uitloggen +- Kies rechts in de menubalk de knop met uw gebruikersnaam, en vervolgens `Logout` + +## Account verwijderen +- Er is geen mogelijheid tot automatische verwijdering van uw account. Als u uw account en alle bijbehorende corpora en transcripten dient te wissen, neemt u [contact met ons op](mailto:dh.developers@uu.nl?subject=[SASTA]%20Account%20verwijderen). diff --git a/docs/assets/favicon.svg b/docs/assets/favicon.svg new file mode 100644 index 00000000..e3c8389e --- /dev/null +++ b/docs/assets/favicon.svg @@ -0,0 +1,537 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/docs/assets/uu.svg b/docs/assets/uu.svg new file mode 100644 index 00000000..629918ff --- /dev/null +++ b/docs/assets/uu.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/example-files/sif.docx b/docs/example-files/sif.docx new file mode 100644 index 0000000000000000000000000000000000000000..06373779d7557042518f38b0d164306204f4414c GIT binary patch literal 15678 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 literal 0 HcmV?d00001 diff --git a/docs/example-files/sif.txt b/docs/example-files/sif.txt new file mode 100644 index 00000000..710dfa89 --- /dev/null +++ b/docs/example-files/sif.txt @@ -0,0 +1,33 @@ +##META text samplenaam = ASTA-00 +##TARGET SPEAKERS = PMA + +INV: +1 | PMA: +INV: +2 | PMA: +INV: +3 | PMA: +INV: +4 | PMA: +INV: +5 | PMA: +INV: +6 | PMA: +INV: +7 | PMA: +INV: +8 | PMA: +INV: +9 | PMA: +INV: +10 | PMA: +INV: +11 | PMA: +INV: +12 | PMA: +INV: +13 | PMA: +INV: +14 | PMA: +INV: +15 | PMA: diff --git a/docs/input-formats/sif.md b/docs/input-formats/sif.md index c63782ef..45a972a2 100644 --- a/docs/input-formats/sif.md +++ b/docs/input-formats/sif.md @@ -1,81 +1,73 @@ -Dit document beschrijft het SASTA Input Formaat (SIF). In dit formaat kunnen transcripten aangeleverd worden voor analyse in SASTA. +# SASTA Input Format (SIF) -# Het bestand -Het transcript dient te worden aangeleverd als een Microsoft Word `.docx`-bestand. Een `.txt`-estand mt `utf-8`-encoding wordt ook geaccepteerd. De naam van het bestand wordt gebruikt als titel van het transcript binnen SASTA. Zo zal het bestand `sample 12.docx` het transcript `sample 12` opleveren. +## Het bestand +Het transcript dient te worden aangeleverd als een Microsoft Word `.docx`-bestand. Een `.txt`-bestand met `utf-8`-encoding wordt ook geaccepteerd. De naam van het bestand wordt gebruikt als titel van het transcript binnen SASTA. Zo zal het bestand `sample 12.docx` het transcript `sample_12` opleveren. -# Sprekers +## Sprekers Het transcript kan uitingen van meerdere sprekers bevatten. Ken elke spreker een unieke drieletterige code toe; bijvoorbeeld CHI (child), INV (interviewer) of PMA (patient met afasie). -# Metadata -## Uitingen selecteren +## Metadata +### Uitingen selecteren SASTA werkt optimaal wanneer het volledige transcript wordt aangeleverd. Dus ook uitingen van sprekers die niet geanalyseerd hoeven te worden, kunnen de resultaten verbeteren. Het is nodig om in dit volledige transcript de uitingen te markeren waarin je geinterresseerd bent. Je kunt dit mechanisme gebruiken om de analyse te baseren op een vast aantal uitingen, bijvoorbeeld 50. Er zijn twee manieren om een zin te markeren voor analyse: 1. De spreker van de uiting -2. De uiting nummeren (zie 3) +2. De uiting nummeren, zie [uitingen](#uitingen) Om alle uitingen van spreker PMA te analyseren, voeg je de volgende regel in: ``` - ##TARGET SPEAKER PMA - ``` Om alleen de genummerde uitingen te analyseren: ``` - ##TARGET UTTIDS - ``` Wanneer uitingen van een spreker worden gemarkeerd, **én** er zijn gemarkeerde uitingen aanwezig, worden alleen de genummerde uitingen van de spreker geanalyseerd. -## samplenaam +### Samplenaam Het is mogelijk de titel van een transcript te overschrijven aan de hand van het metadata-veld `samplenaam`: ```##META text samplenaam = ASTA-13``` Als dit veld aanwezig is wordt de bestandsnaam genegeerd. -## Overige metadata +### Overige metadata Alle metadata volgens het [PAQU-formaat](https://paqu.let.rug.nl:8068/info.html#credits) zijn geldige invoer. deze worden echter door niet door SASTA verwerkt. -# Uitingen +## Uitingen Elke uiting begint op een nieuwe regel. Ze kunnen doorlopen op de volgende regel, maar mogen niet onderbroken worden met een regeleinde. Uitingen hebben een vaste vorm: ``` -SPK:Inhoud van de uiting. - +SPK:Inhoud van de uiting ``` Optioneel zijn ze ook genummerd: +``` + | SPK:Inhoud van de uiting +``` ``` INV: Waar ben je vandaag geweest? - 1 | PMA: In de dierentuin. - +2 | INV: Oh wat leuk! ``` -## Annoteren +### Annoteren Uitingen kunnen geannoteerd worden volgens de [CHAT handleiding][chat-manual]. Voor lijsten met veel gebruikte annotaties, zie TODO: ASTA, STAP, TARSP-specifieke annotaties. -## Voorbeelden -``` -1 | CHI: Ja we gingen daar ook schaatsen. -INV: ja -9 | PMA: was niks aan de hand meer - -``` +## Voorbeeldbestanden +Zie [link](/input-formats/voorbeelden) voor downloadbare voorbeeldbestanden. [chat-manual]: https://talkbank.org/manuals/CHAT.pdf diff --git a/docs/input-formats/voorbeelden.md b/docs/input-formats/voorbeelden.md new file mode 100644 index 00000000..61b1635f --- /dev/null +++ b/docs/input-formats/voorbeelden.md @@ -0,0 +1,7 @@ +# Voorbeeldbestanden + +## [SASTA Input Formaat](/input-formats/sif) +- Microsoft Word (`.docx`): [download](/example-files/sif.docx) +- Platte tekst (`.txt`): [download](/example-files/sif.txt) + +## CHAT Input diff --git a/docs/methodes.md b/docs/methodes.md new file mode 100644 index 00000000..94c58b02 --- /dev/null +++ b/docs/methodes.md @@ -0,0 +1,11 @@ +# Methode-overzicht +In SASTA kan gewerkt worden met `ASTA`, `STAP`, en `TARSP`. +Kies in de menubalk voor `Methods` om naar het overzicht van de methodes te navigeren. +Door op de rij van een methode te klikken, worden de details van deze methode geopend. + +## Methode details +Voor de geselecteerde methode wordt een tabel getoond met per query (taalmaat): +- `code`: de interne code die SASTA hanteert. +- `level`: Het niveau waarop de query opereert. Per methodecategorie verschillen de beschikbare niveaus. Zie [TODO](link/naar/categorieen) voor details. +- `item`: De code die gegenereert wordt door SASTA, en door de gebruiker ook toegevoegd kan worden in het [TODO](link/naar/annotatieformaat). De codes zijn hoofdletter-ongevoelig, dus `BVBep` en `bvbep` leveren dezelfde scores op. +- `actions`: Klik op het vergrootglas om alle beschikbare details van een query te tonen. diff --git a/docs/process.md b/docs/process.md index 341c640b..5f494661 100644 --- a/docs/process.md +++ b/docs/process.md @@ -2,7 +2,7 @@ Om het transcript geschikt te maken voor analyse, voer SASTA een aantal bewerkingen uit. Het transcript wordt onder andere opgeschoond, en er wordt geparseerd met behulp van Alpino. ## Starten -- Na het uploaden komt u automatisch op de `process` pagina van het corpus terecht. U kunt deze ook bereiekn door op de corpus-pagina `re(process)` te kiezen. +- Na het uploaden komt u automatisch op de `process` pagina van het corpus terecht. U kunt deze ook bereiken door op de corpus-pagina `re(process)` te kiezen. - Kies `Process` om de bewerkingen te starten. ## Het statusoverzicht diff --git a/docs/upload.md b/docs/upload.md index e4d2a219..d99ae2c6 100644 --- a/docs/upload.md +++ b/docs/upload.md @@ -1,11 +1,11 @@ # Uploaden van transcripten ## Invoerformaat -SASTA accepteert drie invoer,- en bestandsformaten: +SASTA accepteert drie invoerformaten: 1. CHAT -2. Microsoft Word (`.docx`) bestanden in het SASTA Input Formaat [link] -3. Platte tekst in het [SASTA Input Formaat](input-formats/sif.md) +2. Microsoft Word (`.docx`) bestanden in het SASTA Input Formaat [SASTA Input Formaat](input-formats/sif.md) +3. Platte tekst bestanden (`.txt`) in het [SASTA Input Formaat](input-formats/sif.md) ## Corpus kiezen SASTA groepeert transcripten in verzamelingen: **corpora**. Wat deze verzameling representeert is aan u. U kunt ervoor kiezen al uw transcripten in één verzameling op te slaan, of dat bijvoorbeeld te doen per sessie of participant. diff --git a/frontend/src/app/app-routing/routes.ts b/frontend/src/app/app-routing/routes.ts index e0eeed25..0c4e4c46 100644 --- a/frontend/src/app/app-routing/routes.ts +++ b/frontend/src/app/app-routing/routes.ts @@ -60,10 +60,10 @@ const routes: Routes = [ path: 'confirm-email/:key', component: VerifyComponent, }, - { - path: 'manual/:identifier', - component: ManualComponent, - }, + // { + // path: 'manual/:identifier', + // component: ManualComponent, + // }, { path: '', redirectTo: '/corpora', diff --git a/frontend/src/app/method/method.component.html b/frontend/src/app/method/method.component.html index 7a269069..7f1643a5 100644 --- a/frontend/src/app/method/method.component.html +++ b/frontend/src/app/method/method.component.html @@ -8,7 +8,6 @@

{{method.date_added}} | {{method.queries?.length}} queries< Code Level Item - Query Actions @@ -18,11 +17,6 @@

{{method.date_added}} | {{method.queries?.length}} queries< {{query.query_id}} {{query.level}} {{query.item}} - - - - -