From 22145598517b5e11e7eef65c0e4d58e12646a2c4 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Tue, 12 Nov 2024 09:46:22 +0100 Subject: [PATCH 01/33] UFAL/Share submission with user not only admin (#728) * The submitter information cannot be displayed in some cases, but show a few information about the Item * Added missing trailing comma * Fixed docs --- .../change-submitter-page.component.html | 33 +++++++--- .../change-submitter-page.component.ts | 60 +++++++++++++++---- .../autoregistration.component.ts | 1 - src/assets/i18n/cs.json5 | 6 ++ src/assets/i18n/en.json5 | 5 ++ 5 files changed, 84 insertions(+), 21 deletions(-) diff --git a/src/app/change-submitter-page/change-submitter-page.component.html b/src/app/change-submitter-page/change-submitter-page.component.html index 1c9a9b3d7af..b401b3126cf 100644 --- a/src/app/change-submitter-page/change-submitter-page.component.html +++ b/src/app/change-submitter-page/change-submitter-page.component.html @@ -1,15 +1,32 @@
-

{{'share.submission.page.title' | translate}}

- {{'change.submitter.page.message' | translate}} - {{getSubmitterName(sub)}} - ({{sub?.email}}) -
- + {{'change.submitter.page.button.take-it' | translate}} + +
diff --git a/src/app/change-submitter-page/change-submitter-page.component.ts b/src/app/change-submitter-page/change-submitter-page.component.ts index cf84c9f86ba..41c09c1d9a5 100644 --- a/src/app/change-submitter-page/change-submitter-page.component.ts +++ b/src/app/change-submitter-page/change-submitter-page.component.ts @@ -17,10 +17,13 @@ import { isNullOrUndef } from 'chart.js/helpers'; import { HALEndpointService } from '../core/shared/hal-endpoint.service'; import { RemoteDataBuildService } from '../core/cache/builders/remote-data-build.service'; import { RequestService } from '../core/data/request.service'; -import { PostRequest } from '../core/data/request.models'; +import { GetRequest } from '../core/data/request.models'; import { RemoteData } from '../core/data/remote-data'; import { NotificationsService } from '../shared/notifications/notifications.service'; import { TranslateService } from '@ngx-translate/core'; +import { HttpHeaders } from '@angular/common/http'; +import { HttpOptions } from '../core/dspace-rest/dspace-rest.service'; +import { Item } from '../core/shared/item.model'; @Component({ selector: 'ds-change-submitter-page', @@ -34,11 +37,22 @@ export class ChangeSubmitterPageComponent implements OnInit { */ private shareToken = ''; + /** + * WorkspaceItem id from the url. + * This id is used to get authorization rights to call REST API to change the submitter. + */ + private workspaceitemid = ''; + /** * BehaviorSubject that contains the submitter of the WorkspaceItem. */ submitter: BehaviorSubject = new BehaviorSubject(null); + /** + * BehaviorSubject that contains the Item. + */ + item: BehaviorSubject = new BehaviorSubject(null); + /** * BehaviorSubject that contains the WorkspaceItem. */ @@ -61,6 +75,8 @@ export class ChangeSubmitterPageComponent implements OnInit { ngOnInit(): void { // Load `share_token` param value from the url this.shareToken = this.route.snapshot.queryParams.share_token; + // Load `workspaceitem_id` param value from the url + this.workspaceitemid = this.route.snapshot.queryParams.workspaceitemid; this.loadWorkspaceItemAndAssignSubmitter(this.shareToken); } @@ -70,17 +86,36 @@ export class ChangeSubmitterPageComponent implements OnInit { loadWorkspaceItemAndAssignSubmitter(shareToken: string) { this.findWorkspaceItemByShareToken(shareToken)?.subscribe((workspaceItem: WorkspaceItem) => { this.workspaceItem.next(workspaceItem); + this.loadItemFromWorkspaceItem(workspaceItem); this.loadAndAssignSubmitter(workspaceItem); }); } + /** + * Load the Item from the WorkspaceItem and assign it to the item BehaviorSubject. + */ + loadItemFromWorkspaceItem(workspaceItem: WorkspaceItem) { + if (workspaceItem.item instanceof Observable) { + workspaceItem.item + .pipe(getFirstSucceededRemoteDataPayload()) + .subscribe((item: Item) => { + this.item.next(item); + }); + } + } + /** * Find a WorkspaceItem by its shareToken. */ findWorkspaceItemByShareToken(shareToken: string): Observable { + let requestHeaders = new HttpHeaders(); + const requestOptions: HttpOptions = Object.create({}); + requestHeaders = requestHeaders.append('shareToken', shareToken); + requestOptions.headers = requestHeaders; + return this.workspaceItemService.searchBy('shareToken', { searchParams: [Object.assign(new RequestParam('shareToken', shareToken))] - }, false, false, followLink('submitter')).pipe(getFirstSucceededRemoteListPayload(), + }, false, false, followLink('item'), followLink('submitter')).pipe(getFirstSucceededRemoteListPayload(), map((workspaceItems: WorkspaceItem[]) => workspaceItems?.[0])); } @@ -112,27 +147,28 @@ export class ChangeSubmitterPageComponent implements OnInit { } /** - * Get the name of the submitter using the DSONameService. - * @param submitter + * Get the name of the submitter or item using the DSONameService. */ - getSubmitterName(submitter: EPerson): string { - if (isNullOrUndef(submitter)) { + getName(object: EPerson | Item) { + if (isNullOrUndef(object)) { return ''; } - return this.dsoNameService.getName(submitter); + return this.dsoNameService.getName(object); } /** - * Change the submitter of the WorkspaceItem using the shareToken. This will send a POST request to the backend when + * Change the submitter of the WorkspaceItem using the shareToken. This will send a GET request to the backend when * the submitter of the Item is changed. */ changeSubmitter() { const requestId = this.requestService.generateRequestId(); - const url = this.halService.getRootHref() + '/submission/setOwner?shareToken=' + this.shareToken; - const postRequest = new PostRequest(requestId, url); - // Send POST request - this.requestService.send(postRequest); + const url = this.halService.getRootHref() + '/submission/setOwner?shareToken=' + this.shareToken + + '&workspaceitemid=' + this.workspaceitemid; + + const getRequest = new GetRequest(requestId, url); + // Send GET request + this.requestService.send(getRequest); this.changeSubmitterSpinner = true; // Get response const response = this.rdbService.buildFromRequestUUID(requestId); diff --git a/src/app/login-page/autoregistration/autoregistration.component.ts b/src/app/login-page/autoregistration/autoregistration.component.ts index bfd67f62e85..39775fb641f 100644 --- a/src/app/login-page/autoregistration/autoregistration.component.ts +++ b/src/app/login-page/autoregistration/autoregistration.component.ts @@ -189,7 +189,6 @@ export class AutoregistrationComponent implements OnInit { * Retrieve the `ClarinVerificationToken` object by the `verificationToken` value. */ private loadVerificationToken() { - console.log('I am here'); this.verificationTokenService.searchBy('byToken', this.createSearchOptions(this.verificationToken)) .pipe(getFirstSucceededRemoteListPayload()) .subscribe(res => { diff --git a/src/assets/i18n/cs.json5 b/src/assets/i18n/cs.json5 index 5acbe99cc90..620a2ba2a4f 100644 --- a/src/assets/i18n/cs.json5 +++ b/src/assets/i18n/cs.json5 @@ -8413,4 +8413,10 @@ "change.submitter.page.changed-successfully": "Předkladatel byl úspěšně změněn", // "change.submitter.page.changed-error": "An error occurred while changing the submitter", "change.submitter.page.changed-error": "Při změně předkladatele došlo k chybě", + // "change.submitter.page.cannot.see.submitter.message": "You do not have permission to see submitter information.", + "change.submitter.page.cannot.see.submitter.message": "Nemáte oprávnění k zobrazení informací o předkladateli.", + // "change.submitter.page.items.handle.message": "Item's handle: ", + "change.submitter.page.items.handle.message": "Handle záznamu: ", + // "change.submitter.page.items.name.message": "Item's name: ", + "change.submitter.page.items.name.message": "Název záznamu: ", } diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 4d7894251ce..76eb19a43f6 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -5964,4 +5964,9 @@ "change.submitter.page.changed-error": "An error occurred while changing the submitter", + "change.submitter.page.cannot.see.submitter.message": "You do not have permission to see submitter information.", + + "change.submitter.page.items.handle.message": "Item's handle: ", + + "change.submitter.page.items.name.message": "Item's name: ", } From 057632d07390a3bfc58a6e502adb596e2102c8f8 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Thu, 14 Nov 2024 08:36:47 +0100 Subject: [PATCH 02/33] Updated messages following last commit to upstream. (#731) --- src/assets/i18n/cs.json5 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/assets/i18n/cs.json5 b/src/assets/i18n/cs.json5 index 620a2ba2a4f..979dec58a09 100644 --- a/src/assets/i18n/cs.json5 +++ b/src/assets/i18n/cs.json5 @@ -3148,9 +3148,9 @@ // "workflow-item.search.result.notification.deleted.failure": "Failed to delete supervision order \"{{name}}\"", "workflow-item.search.result.notification.deleted.failure": "Při mazání příkazu supervize \"{{name}}\" došlo k chybě", // "workflow-item.search.result.list.element.supervised-by": "Supervised by:", - "workflow-item.search.result.list.element.supervised-by": "Pod dohledem:", + "workflow-item.search.result.list.element.supervised-by": "Dohlížející autorita:", // "workflow-item.search.result.list.element.supervised.remove-tooltip": "Remove supervision group", - "workflow-item.search.result.list.element.supervised.remove-tooltip": "Odebrat skupinu dohledu", + "workflow-item.search.result.list.element.supervised.remove-tooltip": "Odebrat dohlížející autoritu", // "confidence.indicator.help-text.accepted": "This authority value has been confirmed as accurate by an interactive user", // TODO New key - Add a translation "confidence.indicator.help-text.accepted": "This authority value has been confirmed as accurate by an interactive user", @@ -5503,7 +5503,7 @@ // TODO New key - Add a translation "search.filters.filter.supervisedBy.placeholder": "Supervised By", // "search.filters.filter.supervisedBy.label": "Search Supervised By", - "search.filters.filter.supervisedBy.label": "Hledat pod dohledem", + "search.filters.filter.supervisedBy.label": "Hledat dohlížející autoritu", // "search.filters.filter.rights.head": "Rights", "search.filters.filter.rights.head": "Práva", // "search.filters.filter.language.head": "Language (ISO)", From aa6e71bcba638c464cc8a33ff1625bb4ebf57514 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 15 Nov 2024 13:05:25 +0100 Subject: [PATCH 03/33] Updated dspace prefix to lindat (#734) --- src/assets/i18n/cs.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/i18n/cs.json5 b/src/assets/i18n/cs.json5 index 979dec58a09..a61eb7ba97b 100644 --- a/src/assets/i18n/cs.json5 +++ b/src/assets/i18n/cs.json5 @@ -5033,7 +5033,7 @@ // "repository.title": "DSpace Repository", "repository.title": "Institucionální digitální repozitář", // "repository.title.prefix": "DSpace Repository :: ", - "repository.title.prefix": "IDR :: ", + "repository.title.prefix": "LINDAT/CLARIAH-CZ Repozitář", // "resource-policies.add.button": "Add", "resource-policies.add.button": "Přidat", // "resource-policies.add.for.": "Add a new policy", From d5060748ed345fc65ec9fa2284acb7ee048fb7a2 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Tue, 19 Nov 2024 08:29:40 +0100 Subject: [PATCH 04/33] Added notification when the shibboleth authentication is failed (#732) --- .../log-in-container.component.spec.ts | 5 ++++ .../shared/log-in/log-in.component.spec.ts | 5 ++++ .../log-in-password.component.spec.ts | 5 ++++ .../password/log-in-password.component.ts | 27 +++++++++++++++++-- src/assets/i18n/cs.json5 | 4 +++ src/assets/i18n/en.json5 | 4 +++ 6 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/app/shared/log-in/container/log-in-container.component.spec.ts b/src/app/shared/log-in/container/log-in-container.component.spec.ts index be4ae915ce3..301689af948 100644 --- a/src/app/shared/log-in/container/log-in-container.component.spec.ts +++ b/src/app/shared/log-in/container/log-in-container.component.spec.ts @@ -25,6 +25,8 @@ import { ConfigurationProperty } from '../../../core/shared/configuration-proper import { ActivatedRoute, Router } from '@angular/router'; import { CookieService } from '../../../core/services/cookie.service'; import { CookieServiceMock } from '../../mocks/cookie.service.mock'; +import { NotificationsServiceStub } from '../../testing/notifications-service.stub'; +import { NotificationsService } from '../../notifications/notifications.service'; describe('LogInContainerComponent', () => { @@ -36,6 +38,7 @@ describe('LogInContainerComponent', () => { let hardRedirectService: HardRedirectService; let configurationDataService: ConfigurationDataService; let authService: any; + let notificationService: NotificationsServiceStub; beforeEach(waitForAsync(() => { hardRedirectService = jasmine.createSpyObj('hardRedirectService', { @@ -55,6 +58,7 @@ describe('LogInContainerComponent', () => { ] })) }); + notificationService = new NotificationsServiceStub(); // refine the test module by declaring the test component TestBed.configureTestingModule({ @@ -85,6 +89,7 @@ describe('LogInContainerComponent', () => { } }, { provide: Router, useValue: new RouterMock() }, { provide: CookieService, useClass: CookieServiceMock }, + { provide: NotificationsService, useValue: notificationService }, LogInContainerComponent ], schemas: [ diff --git a/src/app/shared/log-in/log-in.component.spec.ts b/src/app/shared/log-in/log-in.component.spec.ts index e14c090db8a..d665ab350bd 100644 --- a/src/app/shared/log-in/log-in.component.spec.ts +++ b/src/app/shared/log-in/log-in.component.spec.ts @@ -30,6 +30,8 @@ import { ConfigurationProperty } from '../../core/shared/configuration-property. import { RouterStub } from '../testing/router.stub'; import { CookieService } from '../../core/services/cookie.service'; import { CookieServiceMock } from '../mocks/cookie.service.mock'; +import { NotificationsService } from '../notifications/notifications.service'; +import { NotificationsServiceStub } from '../testing/notifications-service.stub'; describe('LogInComponent', () => { @@ -50,6 +52,7 @@ describe('LogInComponent', () => { let authorizationService: AuthorizationDataService; let authService: any; let configurationDataService: ConfigurationDataService; + let notificationService: NotificationsServiceStub; beforeEach(waitForAsync(() => { hardRedirectService = jasmine.createSpyObj('hardRedirectService', { @@ -72,6 +75,7 @@ describe('LogInComponent', () => { ] })) }); + notificationService = new NotificationsServiceStub(); // refine the test module by declaring the test component void TestBed.configureTestingModule({ @@ -102,6 +106,7 @@ describe('LogInComponent', () => { provideMockStore({ initialState }), { provide: ThemeService, useValue: getMockThemeService() }, { provide: CookieService, useClass: CookieServiceMock }, + { provide: NotificationsService, useValue: notificationService }, LogInComponent ], schemas: [ diff --git a/src/app/shared/log-in/methods/password/log-in-password.component.spec.ts b/src/app/shared/log-in/methods/password/log-in-password.component.spec.ts index 78a6af98522..101438a7949 100644 --- a/src/app/shared/log-in/methods/password/log-in-password.component.spec.ts +++ b/src/app/shared/log-in/methods/password/log-in-password.component.spec.ts @@ -25,6 +25,8 @@ import { createSuccessfulRemoteDataObject$ } from '../../../remote-data.utils'; import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model'; import { CookieService } from '../../../../core/services/cookie.service'; import { CookieServiceMock } from '../../../mocks/cookie.service.mock'; +import { NotificationsService } from '../../../notifications/notifications.service'; +import { NotificationsServiceStub } from '../../../testing/notifications-service.stub'; describe('LogInPasswordComponent', () => { const uiUrl = 'localhost:4000'; @@ -36,6 +38,7 @@ describe('LogInPasswordComponent', () => { let hardRedirectService: HardRedirectService; let authService: any; let configurationDataService: ConfigurationDataService; + let notificationService: NotificationsServiceStub; beforeEach(() => { hardRedirectService = jasmine.createSpyObj('hardRedirectService', { @@ -68,6 +71,7 @@ describe('LogInPasswordComponent', () => { ] })) }); + notificationService = new NotificationsServiceStub(); }); @@ -102,6 +106,7 @@ describe('LogInPasswordComponent', () => { } }, { provide: Router, useValue: new RouterMock() }, { provide: CookieService, useClass: CookieServiceMock }, + { provide: NotificationsService, useValue: notificationService }, provideMockStore({ initialState }), ], schemas: [ diff --git a/src/app/shared/log-in/methods/password/log-in-password.component.ts b/src/app/shared/log-in/methods/password/log-in-password.component.ts index 0569d012033..91276a36fbc 100644 --- a/src/app/shared/log-in/methods/password/log-in-password.component.ts +++ b/src/app/shared/log-in/methods/password/log-in-password.component.ts @@ -16,7 +16,6 @@ import { AuthMethodType } from '../../../../core/auth/models/auth.method-type'; import { renderAuthMethodFor } from '../log-in.methods-decorator'; import { AuthMethod } from '../../../../core/auth/models/auth.method'; import { AuthService } from '../../../../core/auth/auth.service'; -import { HardRedirectService } from '../../../../core/services/hard-redirect.service'; import { CoreState } from '../../../../core/core-state.model'; import { getForgotPasswordRoute, getRegisterRoute } from '../../../../app-routing-paths'; import { FeatureID } from '../../../../core/data/feature-authorization/feature-id'; @@ -26,6 +25,11 @@ import { getBaseUrl } from '../../../clarin-shared-util'; import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model'; import { ConfigurationDataService } from '../../../../core/data/configuration-data.service'; import { CookieService } from '../../../../core/services/cookie.service'; +import { NotificationsService } from '../../../notifications/notifications.service'; +import { TranslateService } from '@ngx-translate/core'; +import { NotificationOptions } from '../../../notifications/models/notification-options.model'; +import { HELP_DESK_PROPERTY } from '../../../../item-page/tombstone/tombstone.component'; +import { getFirstSucceededRemoteDataPayload } from '../../../../core/shared/operators'; export const SHOW_DISCOJUICE_POPUP_CACHE_NAME = 'SHOW_DISCOJUICE_POPUP'; /** @@ -96,7 +100,6 @@ export class LogInPasswordComponent implements OnInit { @Inject('authMethodProvider') public injectedAuthMethodModel: AuthMethod, @Inject('isStandalonePage') public isStandalonePage: boolean, private authService: AuthService, - private hardRedirectService: HardRedirectService, private formBuilder: UntypedFormBuilder, protected store: Store, protected authorizationService: AuthorizationDataService, @@ -104,6 +107,8 @@ export class LogInPasswordComponent implements OnInit { protected router: Router, protected configurationService: ConfigurationDataService, protected storage: CookieService, + private notificationService: NotificationsService, + private translateService: TranslateService ) { this.authMethod = injectedAuthMethodModel; } @@ -113,6 +118,7 @@ export class LogInPasswordComponent implements OnInit { * @method ngOnInit */ public async ngOnInit() { + this.checkIfHasLoginError(); this.initializeDiscoJuiceCache(); this.redirectUrl = ''; // set formGroup @@ -155,6 +161,23 @@ export class LogInPasswordComponent implements OnInit { return getForgotPasswordRoute(); } + private checkIfHasLoginError() { + const loginError = this.route.snapshot.queryParams?.error; + if (loginError !== 'shibboleth-authentication-failed') { + return; + } + + // It is a Shibboleth authentication error + // Load the help desk email from the server + const helpDeskEmail$ = this.configurationService.findByPropertyName(HELP_DESK_PROPERTY); + helpDeskEmail$.pipe(getFirstSucceededRemoteDataPayload()) + .subscribe((helpDeskEmailCfg) => { + this.notificationService.error(this.translateService.instant('login.auth.failed.shibboleth.title'), + this.translateService.instant('login.auth.failed.shibboleth.message', + { email: helpDeskEmailCfg?.values?.[0] }), new NotificationOptions(-1, true)); + }); + } + /** * Set up redirect URL. It could be loaded from the `authorizationService.getRedirectUrl()` or from the url. */ diff --git a/src/assets/i18n/cs.json5 b/src/assets/i18n/cs.json5 index a61eb7ba97b..cc12cae55f9 100644 --- a/src/assets/i18n/cs.json5 +++ b/src/assets/i18n/cs.json5 @@ -3797,6 +3797,10 @@ "login.form.new-user": "Jste nový uživatel? Klikněte zde pro registraci.", // "login.form.or-divider": "or", "login.form.or-divider": "nebo", + // "login.auth.failed.shibboleth.title": "Shibboleth authentication failed", + "login.auth.failed.shibboleth.title": "Přihlášení pomocí Shibboleth selhalo", + // "login.auth.failed.shibboleth.message": "Authentication failed because your IdP did not send the required Shibboleth headers. Please contact the Help Desk by email: {{ email }} .", + "login.auth.failed.shibboleth.message": "Přihlášení selhalo, protože vaše IDP neposlal požadované hlavičky Shibboleth. Kontaktujte prosím poradnu emailem: {{ email }} .", // "login.form.oidc": "Log in with OIDC", "login.form.oidc": "Přihlásit se pomocí OIDC", // "login.form.orcid": "Log in with ORCID", diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 76eb19a43f6..41e4a05c66f 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -3191,6 +3191,10 @@ "login.form.or-divider": "or", + "login.auth.failed.shibboleth.title": "Shibboleth authentication failed", + + "login.auth.failed.shibboleth.message": "Authentication failed because your IDP did not send the required Shibboleth headers. Please contact the Help Desk by email: {{ email }} .", + "login.title": "Login", "login.breadcrumbs": "Login", From 5e21da0486d716ebf9da184ee4a4cbfe9dc9a524 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Wed, 20 Nov 2024 13:05:18 +0100 Subject: [PATCH 05/33] Removed two IT: (#737) 1. Author does not have a two input fields. 2. Test for checking the notice step will be transformed into UI test, because we do not want to keep such specific collection for generic IT. --- cypress/e2e/submission-ui.cy.ts | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/cypress/e2e/submission-ui.cy.ts b/cypress/e2e/submission-ui.cy.ts index db41ba66756..63c8ec79d9d 100644 --- a/cypress/e2e/submission-ui.cy.ts +++ b/cypress/e2e/submission-ui.cy.ts @@ -230,18 +230,6 @@ describe('Create a new submission', () => { createItemProcess.showErrorNotSupportedLicense(); }); - // Author field should consist of two input fields - it('Author field should consist of two input fields', { - retries: { - runMode: 6, - openMode: 6, - }, - defaultCommandTimeout: 10000 - },() => { - createItemProcess.checkAuthorFirstnameField(); - createItemProcess.checkAuthorLastnameField(); - }); - it('The submission should not have the Notice Step', { retries: { runMode: 6, @@ -261,16 +249,6 @@ describe('Create a new submission in the clariah collection', () => { // This page is restricted, so we will be shown the login form. Fill it out & submit. cy.loginViaForm(TEST_ADMIN_USER, TEST_ADMIN_PASSWORD); }); - - it('The submission should have the Notice Step', { - retries: { - runMode: 6, - openMode: 6, - }, - defaultCommandTimeout: 10000 - },() => { - createItemProcess.checkClarinNoticeStep(); - }); }); function addEUSponsor(euSponsorOrder) { From 753594d053cc78cf09038f91441c559a8421a74d Mon Sep 17 00:00:00 2001 From: Paurikova2 <107862249+Paurikova2@users.noreply.github.com> Date: Wed, 20 Nov 2024 14:07:01 +0100 Subject: [PATCH 06/33] Update all static licenses (#726) * added licenses from ufal commit dcbe87e02931dee78b13c4b3995a6cef3aeacd32 * added missing static licenses * remove static from licenses path * no_static_ as const * checkstyle --- src/app/static-page/static-page.component.ts | 8 +- .../Qwant_LongEval_BY-NC-SA_License.html | 371 +++++ src/static-files/about.html | 2 +- src/static-files/cs/about.html | 2 +- src/static-files/cs/dummy.html | 5 + src/static-files/cs/faq.html | 38 +- src/static-files/cs/item-lifecycle.html | 26 +- src/static-files/cs/theaitre-license.html | 56 + src/static-files/deep-sequoia-licence.html | 20 + src/static-files/faq.html | 44 +- .../hplt-dataset-license-1.0.html | 36 + src/static-files/item-lifecycle.html | 38 +- src/static-files/licence-mwe-1.3.html | 78 ++ src/static-files/license-corefud-1.1.html | 115 ++ src/static-files/license-corefud-1.2.html | 131 ++ src/static-files/license-lb.html | 108 ++ src/static-files/license-ud-2.10.html | 969 ++++++++++++++ src/static-files/license-ud-2.11.html | 1030 ++++++++++++++ src/static-files/license-ud-2.12.html | 1038 ++++++++++++++ src/static-files/license-ud-2.13.html | 1094 +++++++++++++++ src/static-files/license-ud-2.14.html | 1189 +++++++++++++++++ src/static-files/license-umr-1.0.html | 66 + src/static-files/theaitre-license.html | 55 + 23 files changed, 6443 insertions(+), 76 deletions(-) create mode 100644 src/static-files/Qwant_LongEval_BY-NC-SA_License.html create mode 100644 src/static-files/cs/dummy.html create mode 100644 src/static-files/cs/theaitre-license.html create mode 100644 src/static-files/deep-sequoia-licence.html create mode 100644 src/static-files/hplt-dataset-license-1.0.html create mode 100644 src/static-files/licence-mwe-1.3.html create mode 100644 src/static-files/license-corefud-1.1.html create mode 100644 src/static-files/license-corefud-1.2.html create mode 100644 src/static-files/license-lb.html create mode 100644 src/static-files/license-ud-2.10.html create mode 100644 src/static-files/license-ud-2.11.html create mode 100644 src/static-files/license-ud-2.12.html create mode 100644 src/static-files/license-ud-2.13.html create mode 100644 src/static-files/license-ud-2.14.html create mode 100644 src/static-files/license-umr-1.0.html create mode 100644 src/static-files/theaitre-license.html diff --git a/src/app/static-page/static-page.component.ts b/src/app/static-page/static-page.component.ts index ac148e41c3e..bb19403a704 100644 --- a/src/app/static-page/static-page.component.ts +++ b/src/app/static-page/static-page.component.ts @@ -16,6 +16,7 @@ import { APP_CONFIG, AppConfig } from '../../config/app-config.interface'; styleUrls: ['./static-page.component.scss'] }) export class StaticPageComponent implements OnInit { + static readonly no_static: string = 'no_static_'; htmlContent: BehaviorSubject = new BehaviorSubject(''); htmlFileName: string; @@ -70,7 +71,9 @@ export class StaticPageComponent implements OnInit { private composeRedirectUrl(href: string | null, namespacePrefix: string): string { const staticPagePath = STATIC_PAGE_PATH; const baseUrl = new URL(window.location.origin); - baseUrl.pathname = `${namespacePrefix}/${staticPagePath}/`; + baseUrl.pathname = href.startsWith(StaticPageComponent.no_static) + ? `${namespacePrefix}/` + : `${namespacePrefix}/${staticPagePath}/`; return baseUrl.href; } @@ -99,6 +102,9 @@ export class StaticPageComponent implements OnInit { } private redirectToAbsoluteLink(redirectUrl: string, href: string | null, namespacePrefix: string): void { + if (href.startsWith(StaticPageComponent.no_static)) { + href = href.replace(StaticPageComponent.no_static, ''); + } const absoluteUrl = new URL(href, redirectUrl.replace(namespacePrefix, '')); window.location.href = absoluteUrl.href; } diff --git a/src/static-files/Qwant_LongEval_BY-NC-SA_License.html b/src/static-files/Qwant_LongEval_BY-NC-SA_License.html new file mode 100644 index 00000000000..66f9a2c6e16 --- /dev/null +++ b/src/static-files/Qwant_LongEval_BY-NC-SA_License.html @@ -0,0 +1,371 @@ +
+

+ Qwant LongEval Attribution-NonCommercial-ShareAlike License +

+ + +

+ By exercising the Licensed Rights (defined below), You accept and agree + to be bound by the terms and conditions of this Qwant LongEval + Attribution-NonCommercial-ShareAlike License ("Qwant License"). + To the extent this Qwant License may be interpreted as a contract, + You are granted the Licensed Rights in consideration of Your acceptance + of these terms and conditions, and the Licensor grants You such rights + in consideration of benefits the Licensor receives from making the + Licensed Material available under these terms and conditions. +

+ + +
+
+Section 1 -- Definitions.
+
+  a. Adapted Material means material subject to Copyright and Similar
+     Rights that is derived from or based upon the Licensed Material
+     and in which the Licensed Material is translated, altered,
+     arranged, transformed, or otherwise modified in a manner requiring
+     permission under the Copyright and Similar Rights held by the
+     Licensor.
+
+  b. Adapter's License means the license You apply to Your Copyright
+     and Similar Rights in Your contributions to Adapted Material in
+     accordance with the terms and conditions of this Qwant License.
+
+  c. BY-NC-SA Compatible License means a license listed at
+     creativecommons.org/compatiblelicenses, approved by Creative
+     Commons as essentially the equivalent of this Qwant License.
+
+  d. Copyright and Similar Rights means copyright and/or similar rights
+     closely related to copyright including, without limitation,
+     performance, broadcast, sound recording, and Sui Generis Database
+     Rights, without regard to how the rights are labeled or
+     categorized. For purposes of this Qwant License, the rights
+     specified in Section 2(b)(1)-(2) are not Copyright and Similar
+     Rights.
+
+  e. Effective Technological Measures means those measures that, in the
+     absence of proper authority, may not be circumvented under laws
+     fulfilling obligations under Article 11 of the WIPO Copyright
+     Treaty adopted on December 20, 1996, and/or similar international
+     agreements.
+
+  f. Exceptions and Limitations means fair use, fair dealing, and/or
+     any other exception or limitation to Copyright and Similar Rights
+     that applies to Your use of the Licensed Material.
+
+  g. License Elements means the license attributes listed in the name
+     of a Creative Commons Public License. The License Elements of this
+     Qwant License are Attribution, NonCommercial, and ShareAlike.
+
+  h. Licensed Material means the artistic or literary work, database,
+     or other material to which the Licensor applied this Qwant
+     License.
+
+  i. Licensed Rights means the rights granted to You subject to the
+     terms and conditions of this Qwant License, which are limited to
+     all Copyright and Similar Rights that apply to Your use of the
+     Licensed Material and that the Licensor has authority to license.
+
+  j. Licensor means the individual(s) or entity(ies) granting rights
+     under this Qwant License.
+
+  k. NonCommercial means not primarily intended for or directed towards
+     commercial advantage or monetary compensation. For purposes of
+     this Qwant License, the exchange of the Licensed Material for
+     other material subject to Copyright and Similar Rights by digital
+     file-sharing or similar means is NonCommercial provided there is
+     no payment of monetary compensation in connection with the
+     exchange.
+
+  l. Share means to provide material to the public by any means or
+     process that requires permission under the Licensed Rights, such
+     as reproduction, public display, public performance, distribution,
+     dissemination, communication, or importation, and to make material
+     available to the public including in ways that members of the
+     public may access the material from a place and at a time
+     individually chosen by them.
+
+  m. Sui Generis Database Rights means rights other than copyright
+     resulting from Directive 96/9/EC of the European Parliament and of
+     the Council of 11 March 1996 on the legal protection of databases,
+     as amended and/or succeeded, as well as other essentially
+     equivalent rights anywhere in the world.
+
+  n. You means the individual or entity exercising the Licensed Rights
+     under this Qwant License. Your has a corresponding meaning.
+
+
+Section 2 -- Scope.
+
+  a. License grant.
+
+       1. Subject to the terms and conditions of this Qwant License,
+          the Licensor hereby grants You a worldwide, royalty-free,
+          non-sublicensable, non-exclusive, irrevocable license to
+          exercise the Licensed Rights in the Licensed Material to:
+
+            a. reproduce and Share the Licensed Material, in whole or
+               in part, for NonCommercial purposes only; and
+
+            b. produce, reproduce, and Share Adapted Material for
+               NonCommercial purposes only.
+
+       2. Exceptions and Limitations. For the avoidance of doubt, where
+          Exceptions and Limitations apply to Your use, this Qwant
+          License does not apply, and You do not need to comply with
+          its terms and conditions.
+
+       3. Term. The term of this Qwant License is specified in Section
+          6(a).
+
+       4. Media and formats; technical modifications allowed. The
+          Licensor authorizes You to exercise the Licensed Rights in
+          all media and formats whether now known or hereafter created,
+          and to make technical modifications necessary to do so. The
+          Licensor waives and/or agrees not to assert any right or
+          authority to forbid You from making technical modifications
+          necessary to exercise the Licensed Rights, including
+          technical modifications necessary to circumvent Effective
+          Technological Measures. For purposes of this Qwant License,
+          simply making modifications authorized by this Section 2(a)
+          (4) never produces Adapted Material.
+
+       5. Downstream recipients.
+
+            a. Offer from the Licensor -- Licensed Material. Every
+               recipient of the Licensed Material automatically
+               receives an offer from the Licensor to exercise the
+               Licensed Rights under the terms and conditions of this
+               Qwant License.
+
+            b. Additional offer from the Licensor -- Adapted Material.
+               Every recipient of Adapted Material from You
+               automatically receives an offer from the Licensor to
+               exercise the Licensed Rights in the Adapted Material
+               under the conditions of the Adapter's License You apply.
+
+            c. No downstream restrictions. You may not offer or impose
+               any additional or different terms or conditions on, or
+               apply any Effective Technological Measures to, the
+               Licensed Material if doing so restricts exercise of the
+               Licensed Rights by any recipient of the Licensed
+               Material.
+
+       6. No endorsement. Nothing in this Qwant License constitutes or
+          may be construed as permission to assert or imply that You
+          are, or that Your use of the Licensed Material is, connected
+          with, or sponsored, endorsed, or granted official status by,
+          the Licensor or others designated to receive attribution as
+          provided in Section 3(a)(1).
+
+  b. Other rights.
+
+       1. Moral rights, such as the right of integrity, are not
+          licensed under this Qwant License, nor are publicity,
+          privacy, and/or other similar personality rights; however, to
+          the extent possible, the Licensor waives and/or agrees not to
+          assert any such rights held by the Licensor to the limited
+          extent necessary to allow You to exercise the Licensed
+          Rights, but not otherwise.
+
+       2. Patent and trademark rights are not licensed under this
+          Qwant License.
+
+       3. To the extent possible, the Licensor waives any right to
+          collect royalties from You for the exercise of the Licensed
+          Rights, whether directly or through a collecting society
+          under any voluntary or waivable statutory or compulsory
+          licensing scheme. In all other cases the Licensor expressly
+          reserves any right to collect such royalties, including when
+          the Licensed Material is used other than for NonCommercial
+          purposes.
+
+
+Section 3 -- License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+  a. Attribution.
+
+       1. Usage of this data is conditioned on providing Qwant SAS with
+       basic contact information. Individuals and organizations copying
+       and sharing this data are responsible for collecting these basic
+       information and keeping them available to Qwant SAS in case of a
+       license breach.
+
+       2. If You Share the Licensed Material (including in modified
+          form), You must:
+
+            a. retain the following if it is supplied by the Licensor
+               with the Licensed Material:
+
+                 i. identification of the creator(s) of the Licensed
+                    Material and any others designated to receive
+                    attribution, in any reasonable manner requested by
+                    the Licensor (including by pseudonym if
+                    designated);
+
+                ii. a copyright notice;
+
+               iii. a notice that refers to this Qwant License;
+
+                iv. a notice that refers to the disclaimer of
+                    warranties;
+
+                 v. a URI or hyperlink to the Licensed Material to the
+                    extent reasonably practicable;
+
+            b. indicate if You modified the Licensed Material and
+               retain an indication of any previous modifications; and
+
+            c. indicate the Licensed Material is licensed under this
+               Qwant License, and include the text of, or the URI or
+               hyperlink to, this Qwant License.
+
+       3. You may satisfy the conditions in Section 3(a)(2) in any
+          reasonable manner based on the medium, means, and context in
+          which You Share the Licensed Material. For example, it may be
+          reasonable to satisfy the conditions by providing a URI or
+          hyperlink to a resource that includes the required
+          information.
+       4. If requested by the Licensor, You must remove any of the
+          information required by Section 3(a)(2)(A) to the extent
+          reasonably practicable.
+
+  b. ShareAlike.
+
+     In addition to the conditions in Section 3(b), if You Share
+     Adapted Material You produce, the following conditions also apply.
+
+       1. The Adapter's License You apply must be Qwant license with
+          the same License Elements, this version or later.
+
+       2. You must include the text of, or the URI or hyperlink to, the
+          Adapter's License You apply. You may satisfy this condition
+          in any reasonable manner based on the medium, means, and
+          context in which You Share Adapted Material.
+
+       3. You may not offer or impose any additional or different terms
+          or conditions on, or apply any Effective Technological
+          Measures to, Adapted Material that restrict exercise of the
+          rights granted under the Adapter's License You apply.
+
+
+Section 4 -- Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that
+apply to Your use of the Licensed Material:
+
+  a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+     to extract, reuse, reproduce, and Share all or a substantial
+     portion of the contents of the database for NonCommercial purposes
+     only;
+
+  b. if You include all or a substantial portion of the database
+     contents in a database in which You have Sui Generis Database
+     Rights, then the database in which You have Sui Generis Database
+     Rights (but not its individual contents) is Adapted Material,
+     including for purposes of Section 3(b); and
+
+  c. You must comply with the conditions in Section 3(a) if You Share
+     all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Qwant License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+
+Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+
+  a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+     EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+     AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+     ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+     IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+     WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+     PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+     ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+     KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+     ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+
+  b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+     TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+     NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+     INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+     COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS QWANT LICENSE OR
+     USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+     ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+     DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+     IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+
+  c. The disclaimer of warranties and limitation of liability provided
+     above shall be interpreted in a manner that, to the extent
+     possible, most closely approximates an absolute disclaimer and
+     waiver of all liability.
+
+
+Section 6 -- Term and Termination.
+
+  a. This Qwant License applies for the term of the Copyright and
+     Similar Rights licensed here. However, if You fail to comply with
+     this Qwant License, then Your rights under this Qwant License
+     terminate automatically.
+
+  b. Where Your right to use the Licensed Material has terminated under
+     Section 6(a), it reinstates:
+
+       1. automatically as of the date the violation is cured, provided
+          it is cured within 30 days of Your discovery of the
+          violation; or
+
+       2. upon express reinstatement by the Licensor.
+
+     For the avoidance of doubt, this Section 6(b) does not affect any
+     right the Licensor may have to seek remedies for Your violations
+     of this Qwant License.
+
+  c. For the avoidance of doubt, the Licensor may also offer the
+     Licensed Material under separate terms or conditions or stop
+     distributing the Licensed Material at any time; however, doing so
+     will not terminate this Qwant License.
+
+  d. Sections 1, 5, 6, 7, and 8 survive termination of this Qwant
+     License.
+
+
+Section 7 -- Other Terms and Conditions.
+
+  a. The Licensor shall not be bound by any additional or different
+     terms or conditions communicated by You unless expressly agreed.
+
+  b. Any arrangements, understandings, or agreements regarding the
+     Licensed Material not stated herein are separate from and
+     independent of the terms and conditions of this Qwant License.
+
+
+Section 8 -- Interpretation.
+
+  a. For the avoidance of doubt, this Qwant License does not, and
+     shall not be interpreted to, reduce, limit, restrict, or impose
+     conditions on any use of the Licensed Material that could lawfully
+     be made without permission under this Qwant License.
+
+  b. To the extent possible, if any provision of this Qwant License is
+     deemed unenforceable, it shall be automatically reformed to the
+     minimum extent necessary to make it enforceable. If the provision
+     cannot be reformed, it shall be severed from this Qwant License
+     without affecting the enforceability of the remaining terms and
+     conditions.
+
+  c. No term or condition of this Qwant License will be waived and no
+     failure to comply consented to unless expressly agreed to by the
+     Licensor.
+
+  d. Nothing in this Qwant License constitutes or may be interpreted
+     as a limitation upon, or waiver of, any privileges and immunities
+     that apply to the Licensor or You, including from the legal
+     processes of any jurisdiction or authority.
+
+
+
diff --git a/src/static-files/about.html b/src/static-files/about.html index 06a9e36d744..c3feb07a29c 100644 --- a/src/static-files/about.html +++ b/src/static-files/about.html @@ -65,7 +65,7 @@

License Agreement and Contracts

At the moment, UFAL distinguishes three types of contracts.

  • For every deposit, we enter into a standard contract with the submitter, the so-called "Distribution License Agreement", in which we describe our rights and duties and the submitter acknowledges that they have the right to submit the data and gives us (the repository centre) right to distribute the data on their behalf.
  • -
  • Everyone who downloads data is bound by the licence assigned to the item - in order to download protected data, one has to be authenticated and needs to electronically sign the licence. A list of available licenses in our repository can be found here.
  • +
  • Everyone who downloads data is bound by the licence assigned to the item - in order to download protected data, one has to be authenticated and needs to electronically sign the licence. A list of available licenses in our repository can be found here.
  • For submitters, there is a possibility for setting custom licences to items during the submission workflow.
diff --git a/src/static-files/cs/about.html b/src/static-files/cs/about.html index 60f84a3a682..d9f8426bdad 100644 --- a/src/static-files/cs/about.html +++ b/src/static-files/cs/about.html @@ -64,7 +64,7 @@

Licenční ujednání a smlouvy

V současné době se rozlišují tři typy smluv.

  • Při každém vložení dat vstupujeme s tím, kdo data vkládá ("vkladatelem") do standardního smluvního vztahu - jde o tzv. "Licenční ujednání", ve kterém popisujeme naše práva a povinnosti a vkladatel stvrzuje, že má právo svá data vložit. Zároveň nám dává právo tato data jeho jménem distribuovat prostřednictvím repozitáře LINDAT/CLARIAH-CZ.
  • -
  • Každý, kdo si data stáhne, je vázán licencí, která je k nim přiřazena. Pro stažení chráněných dat musí být uživatel identifikován jedním z ověřených způsobů a musí licenci elektronicky podepsat. Seznam všech licencí používaných v našem repozitáři lze nalézt zde.
  • +
  • Každý, kdo si data stáhne, je vázán licencí, která je k nim přiřazena. Pro stažení chráněných dat musí být uživatel identifikován jedním z ověřených způsobů a musí licenci elektronicky podepsat. Seznam všech licencí používaných v našem repozitáři lze nalézt zde.
  • Vkladatel má rovněž možnost zavést a následně nastavit pro vkládanou položku dat vlastní licenci, která bude po schválení administrátorem přidána do seznamu použitých licencí.
diff --git a/src/static-files/cs/dummy.html b/src/static-files/cs/dummy.html new file mode 100644 index 00000000000..3f2c5f915d1 --- /dev/null +++ b/src/static-files/cs/dummy.html @@ -0,0 +1,5 @@ +
+ +

LINDAT/CLARIAH-CZ dočasná stránka

+

Než budou hotové překlady přepněte se prosím na anglickou verzi.

+
diff --git a/src/static-files/cs/faq.html b/src/static-files/cs/faq.html index 1849ae6332a..e27d1a70caf 100644 --- a/src/static-files/cs/faq.html +++ b/src/static-files/cs/faq.html @@ -35,7 +35,7 @@

Co je repozitář?

  • ukládání dat uživatelem s jistotou bezpečného uložení - všichni je mohou najít, používat i správně citovat (čímž uživatel získá příslušný kredit).
  • - +

    Jaké příspěvky přijímáme?

    Přijímáme jakákoli jazyková data a/nebo NLP data a nástroje: korpusy, anotované korpusy, slovníky, ale také natrénované jazykové modely, parsery, taggery, systémy strojového překladu, jazykové webové služby apod. @@ -45,14 +45,14 @@

    Jaké příspěvky přijímáme?

    Při nahrávání jazykových zdrojů zkuste prosím použít některý z doporučených formátů, uvedených v LRT Standardech.

    - +

    Musím si vytvořit účet, abych mohl stahovat nebo ukládat data?

    • Bez jakýchkoli problémů si můžete stáhnout data a nástroje s licencí, která umožňuje bezplatné a volné sdílení. Pouze si přečtěte licenci a stahujte. To se týká všech dat s licencí Creative Commons a dat s lincencí s otevřeným přístupem. - +
    • Pro stahování dat a nástrojů, které vyžadují podepsání licence, se musíte přihlásit. Přihlásit se musíte také v případě, že chcete vložit příspěvek (datovou položku). Pokud jste z akademického prostředí, pravděpodobně nebudete ani potřebovat nový účet.
    • @@ -68,7 +68,7 @@

      Ukáže se mi chyba při přihlašování

      Čas od času (obvykle jste-li první, kdo se přihlašuje přes svou domovskou instituci), můžete vidět následující chybu "Ověřování bylo úspěšné; nicméně váš poskytovatel identity neposkytl ani váš e-mail, eppn ani požadované id." To znamená, že vaše domovská instituce nám o vás neposlala dostatek údajů, na jejichž základě bychom pro vás mohli provozovat naše služby. Uvedené údaje žádáme proto, abychom vás chránili. Požadujeme pouze email a řídíme se Kodexem chování pro ochranu dat, který nám pomáhá přesvědčit vaši domovskou instituci. Vaše osobní údaje v žádném případě nejde zneužít.

      Máte-li účet u více poskytovatelů a přihlásíte-li se pokaždé s jiným, může se zobrazit následující chyba "Váš e-mail je již spojen s jiným uživatelem.". Prosím, zkuste používat vždy stejného poskytovatele, pokud to není možné, dejte nám vědět a my změníme jeho výchozí nastavení.

    - +

    Proč bych měl ukládat data do repozitáře?

      @@ -79,12 +79,12 @@

      Proč bych měl uklád (google, VLO, DataCite, OLAC, Data Citation Index, arXive).
    • Data lze snadno citovat. Poskytujeme ready-to-use citace na jeden klik v BibTex formátu, v RIS formátu a dalších populárních citačních formátech. - Všechny citace obsahují stálý odkaz vytvořený z trvalých ("perzistentních") identifikátorů (pro PID používáme systém Handle). + Všechny citace obsahují stálý odkaz vytvořený z trvalých ("perzistentních") identifikátorů (pro PID používáme systém Handle). Tyto PID identifikátory jsou i z hlediska budoucnosti bezpečné.
    • Pro některá data, např. text, korpusy nebo anotované korpusy, nabízíme dodatečné služby, jako fultextové textové hledání nebo vyhledávání ve stromových strukturách (treebancích) pomocí speciálních dotazů.
    - +

    Proč bych měl ukládat nástroje do repozitáře?

      @@ -94,16 +94,16 @@

      Proč bych měl ukládat nástroje do repo

    - +

    K čemu je dobrý systém Handle (PID)?

    Je to specifická permanentní adresa typu URL. Poskytuje stálý odkaz, který bude fungovat správně, i když budou data v nějaké vzdálené budoucnosti přesunuta. Z tohoto důvodu by se měla v citacích používat právě permanentní adresa typu URL.

    - +

    Jaký je vlastní postup ukládání dat a jejich archivace?

    V průběhu ukládání digitálních jazykových zdrojů do repozitáře procházejí data kurátorským procesem s cílem zajistit jejich kvalitu a konzistenci. - Pomůžeme vám při plnění nezbytných požadavků na dlouhodobou archivaci zdrojů. Data musí být především opatřena metadaty ve standardních formátech + Pomůžeme vám při plnění nezbytných požadavků na dlouhodobou archivaci zdrojů. Data musí být především opatřena metadaty ve standardních formátech přijatých příslušnými komunitami; musí být opatřena perzistentními identifikátory (PID), musí u nich být vyřešeny otázky práv k duševnímu vlastnictví, musí být opatřena jasnými prohlášeními ohledně udělování licencí a také musí být správně ošetřeno, pokud jste vkládaná data vytvořili za použití dalších zdrojů. Vkladatel musí elektronicky podepsat licenci (smlouvu) o ukládání dat, čímž potvrzuje, že je držitelem práv k datům, a že má právo udělovat práva uvedená v licenci přiřazené k těmto datům vkladatelem. Jakmile jsou data po kontrole uložena v repozitáři, je jim přiřazen PID jako trvalý odkaz.

    @@ -117,8 +117,8 @@

    Co když chci/potřebuji aktualizovat archivovaná data?<

    Co když chci v budoucnu svá data odstranit? Mohu je smazat?

    -

    Ano, v tomto případě kontaktujte naši Linku podpory a uveďte PID příspěvku a důvod odstranění dat. - Referenci o tom, že data byla v našem repozitáři uložena (protože byl vydán trvalý identifikátor - PID), budeme ovšem archivovat; +

    Ano, v tomto případě kontaktujte naši Linku podpory a uveďte PID příspěvku a důvod odstranění dat. + Referenci o tom, že data byla v našem repozitáři uložena (protože byl vydán trvalý identifikátor - PID), budeme ovšem archivovat; administrativní metadata budou zachována a my tak budeme vědět, že vlastní data byla odstraněna.

    @@ -133,7 +133,7 @@

    Začali jsme budovat náš vlastní repozitář,

    Nechci/nemohu mít data veřejně dostupná, anebo je nemohu uveřejnit po určitou dobu. Budete je moci archivovat i za těchto podmínek?

    V souladu s ideou výzkumných infrastruktur a s obecným postojem k otevřenému přístupu (Open Access) důrazně vybízíme producenty dat, aby byli maximálně otevření. - + Za určitých okolností však můžeme přistoupit na vložení vašich dat, i když nebudou veřejně dostupná nebo nebudou dostupná hned. Pokud vkládáte taková data a nenajdete-li vhodnou licenci v našem seznamu, obraťte se prosím ještě před dokončením procesu ukládání dat na naši Linku podpory.

    @@ -142,7 +142,7 @@

    Nechci/nemohu mít data veřejně dostupná, anebo je ne

    Jak citovat příspěvek?

    Viz naše pravidla.

    - +

    Pokud uložím data v repozitáři, jak jsou zabezpečena?

    Zcela bezpečná, pravděpodobně mnohem bezpečnější než ve vašem počítači. V našem repozitáři platí následující pravidla bezpečnosti dat:

    @@ -153,11 +153,11 @@

    Pokud uložím data v repozi
  • Uchováváme nejméně tři kopie, přičemž jedna z nich je za všech okolností uchovávána mimo fyzické umístění repozitáře.
  • - +

    Jakou licenci si mám pro svá data/nástroje vybrat?

    - Doporučujeme používat bezplatnou, otevřenou licenci. Reprezentativní výběr bezplatných + Doporučujeme používat bezplatnou, otevřenou licenci. Reprezentativní výběr bezplatných licencí na sofwarové nástroje a CC licencí (vhodnějších pro data) je k dispozici přímo během ukládání dat. Máme k dispozici OPEN License Selector, který vás provede výběrem vhodných licencí.
    Pokud potřebujete z určitých důvodů jinou licenci, kontaktujte nás. @@ -167,8 +167,8 @@

    Jakou licenci si mám pro sv

    Kde najdu více informací o podporovaných licencích?

    - Seznam licencí, které jsou v současné době podporovány, najdete zde. - Pokud potřebujete jinou licenci (např. s elektronickým podpisem apod.), neváhejte nás kontaktovat. + Seznam licencí, které jsou v současné době podporovány, najdete zde. + Pokud potřebujete jinou licenci (např. s elektronickým podpisem apod.), neváhejte nás kontaktovat. V případě odůvodněné potřeby jsme schopni přidat do seznamu licencí i takové licence, které jsou doprovázeny různými požadavky, např. omezení na přihlášené uživatele, plnění dalších podrobností (účel) apod.

    @@ -176,8 +176,8 @@

    Kde najdu více informací o podporovaných licencích

    Proč upřednostňujeme skutečné autory před institucemi?

    - Není to o kontaktu, je to věc citací, kreditu a důvěry. Proto máme samostatná metadata pro autory a pro kontaktní osoby. -Kontakt na "institucionální" Linku podpory pro vaše data je skvělý, ale zároveň je nutné citovat autory dat a vědeckých prací. Náš repozitář dává přednost přímým citacím dat + Není to o kontaktu, je to věc citací, kreditu a důvěry. Proto máme samostatná metadata pro autory a pro kontaktní osoby. +Kontakt na "institucionální" Linku podpory pro vaše data je skvělý, ale zároveň je nutné citovat autory dat a vědeckých prací. Náš repozitář dává přednost přímým citacím dat (https://www.force11.org/datacitation). Proto jim udělujeme PID identifikátory, vytváříme formátované citace atd. To je také důvod, proč chceme v metadatech mít přímo autory dat. Ti získají citace svých děl a ostatní vědci zas na oplátku budou vědět, na čí práce spoléhají.

    diff --git a/src/static-files/cs/item-lifecycle.html b/src/static-files/cs/item-lifecycle.html index 69f28a76c02..c821e70cd39 100644 --- a/src/static-files/cs/item-lifecycle.html +++ b/src/static-files/cs/item-lifecycle.html @@ -20,49 +20,49 @@

    Nově vložené příspěvky

    Příspěvky procházející kontrolou

    -

    Úkolem redaktora repozitáře je ověřit, zda příspěvek splňuje naše požadavky ohledně kvality a úplnosti metadat, konzistence souboru(ů) s daty a ohledně práv k duševnímu vlastnictví (IPR). Redaktor může příspěvek autorovi (vkladateli příspěvku) vrátit a popíše mu, jaké změny v příspěvku požaduje. Tento krok se opakuje, dokud redaktor příspěvek neschválí. Ze schváleného příspěvku se pak stane příspěvek publikovaný. +

    Úkolem redaktora repozitáře je ověřit, zda příspěvek splňuje naše požadavky ohledně kvality a úplnosti metadat, konzistence souboru(ů) s daty a ohledně práv k duševnímu vlastnictví (IPR). Redaktor může příspěvek autorovi (vkladateli příspěvku) vrátit a popíše mu, jaké změny v příspěvku požaduje. Tento krok se opakuje, dokud redaktor příspěvek neschválí. Ze schváleného příspěvku se pak stane příspěvek publikovaný.

    Publikované příspěvky

    -

    Publikovaný příspěvek získá PID (trvalý "perzistentní" identifikátor), který se používá pro reference a citace, např. +

    Publikovaný příspěvek získá PID (trvalý "perzistentní" identifikátor), který se používá pro reference a citace, např. http://hdl.handle.net/11858/00-097C-0000-0022-F59C-8. LINDAT repozitář zajistí, že PID (přesněji řečeno, pro PID používáme http proxy) vždy povede na platnou webovou stránku (i v případě, že současná infrastruktura serveru bude změněna nebo přesunuta jinam).

    - +

    - + Publikované příspěvky jsou k dispozici v našem vyhledávacím rozhraní, v režimu prohlížení. Metadata všech datových položek jsou zpřístupněna obecným internetovým vyhledávačům a jsou také k dispozici prostřednictvím protokolu OAI-PMH (mnohé instituce využívají náš repozitář právě pro získání a agregaci uložených metadat), např. http://catalog.clarin.eu/vlo/). Prostřednictvím protokolu OAI-ORE jsou k dispozici rovněž datové soubory veřejných příspěvků (pro data s omezeným přístupem viz Příspěvky s omezeními).

    - +

    Mazání a úprava publikovaných příspěvků

    O vymazání publikovaných příspěvků může požádat kdokoli; ale jednotlivé žádosti budou vyhodnocovány případ od případu. Vyhrazujeme si právo ponechat metadata publikovaných příspěvků k dispozici v případě, že neexistuje žádný zvláštní důvod, proč je odstranit. Takový postup by byl proti pojetí persistentních identifikátorů - PID. - Všechny identifikátory PID zůstávají i po vymazání příspěvku k dispozici přes systémové rozhraní OAI-PMH, i když pak lze získat jen informaci o tom, že příspěvek byl vymazán. + Všechny identifikátory PID zůstávají i po vymazání příspěvku k dispozici přes systémové rozhraní OAI-PMH, i když pak lze získat jen informaci o tom, že příspěvek byl vymazán.

    - +

    Přes naši Linku podpory umožňujeme provést drobné změny v příspěvcích (např. opravu překlepů v dokumentaci). I zde záleží na konkrétním případu a rozsahu změny. Pokud jde o větší změny, vkladatel příspěvku je obvykle vyzván, aby předložil novou verzi příspěvku. Zároveň zařídíme, aby z metadat původní položky vedl odkaz na novou verzi, a původní položka bude pak označena jako "zastaralá". -       +      

    Příspěvky s omezeními

    -

    Pokud není možné, obvykle z důvodu nejasného nebo omezeného právního statusu části dat, která ukládáte do repozitáře, přiřadit datům nebo nástroji otevřenou licenci, je možné dohodnout takovou restriktivní (omezenou) licenci, která bude vyžadovat explicitní souhlas uživatele s jejími podmínkami. Zdůrazňujeme, že toto nelze aplikovat na metadata položky - ta jsou vždy veřejně a otevřeně dostupná. +

    Pokud není možné, obvykle z důvodu nejasného nebo omezeného právního statusu části dat, která ukládáte do repozitáře, přiřadit datům nebo nástroji otevřenou licenci, je možné dohodnout takovou restriktivní (omezenou) licenci, která bude vyžadovat explicitní souhlas uživatele s jejími podmínkami. Zdůrazňujeme, že toto nelze aplikovat na metadata položky - ta jsou vždy veřejně a otevřeně dostupná. Podporujeme tedy i takové restriktivní licence pro balíčky souborů s daty, které vyžadují před stahováním "elektronický podpis." Tyto elektronické podpisy uchováváme pro případy sporů o porušení práv k duševnímu vlastnictví.

    - -

    Podívejte se na licence, které jsou v současné době k dispozici, nebo nás kontaktujte, pokud budete chtít nějakou speciální licenci přidat. + +

    Podívejte se na licence, které jsou v současné době k dispozici, nebo nás kontaktujte, pokud budete chtít nějakou speciální licenci přidat.

    - +

    Podporujeme také (dočasné) embargo na balíčky souborů s daty, což znamená, že je zpřístupňujeme veřejnosti až po určité době, kterou můžete při vkládání nastavit.

    - +
    diff --git a/src/static-files/cs/theaitre-license.html b/src/static-files/cs/theaitre-license.html new file mode 100644 index 00000000000..fe9082cbe35 --- /dev/null +++ b/src/static-files/cs/theaitre-license.html @@ -0,0 +1,56 @@ +
    +

    THEAITRE licence - pro výzkum v oblasti AI

    +
    + (2022/12/20) +
    +
    +

    Licence pro využití dat pro vědecký výzkum v oblasti umělé inteligence

    +

    The text of the contract is available in both Czech and English. The English text is informative only, the Czech text is legally binding.

    +
    +

    Souhlas k užití díla - podlicence

    +

    Nabyvatel dat, identifikovaný osobními údaji (jméno, adresa, e-mail), které vyplnil při elektronickém souhlasu s touto licencí na webu databáze LINDAT/CLARIAH-CZ (na jedné straně; dále jen „Nabyvatel“)

    +

    + a +

    +

    + Univerzita Karlova
    + Veřejná vysoká škola dle z. č. 111/1998 Sb., v platném znění
    + se sídlem Ovocný trh 560/5, 116 36 Praha 1
    + IČO: 00216208 DIČ: CZ00216208
    + Týká se součásti: Matematicko-fyzikální fakulta
    + Adresa: Ke Karlovu 2027/3, 121 16 Praha 2
    + zastoupená děkanem Matematicko-fyzikální fakulty, doc. RNDr. Mirko Rokytou, CSc., jednajícím na základě plné moci udělené rektorkou Univerzity Karlovy prof. MUDr. Milenou Králíčkovou, Ph.D.
    + (na straně druhé; dále jen „Zprostředkovatell“)
    +

    +
    + +

    uzavírají dnešního dne, měsíce a roku podle § 2358 a násl. zákona č. 89/2012 Sb., občanského zákoníku, v platném a účinném znění, a dále podle zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon), v platném a účinném znění, tuto smlouvu o udělení souhlasu k užití díla (dále jen „Smlouva“):

    +
    + +

    + Čl. I. Úvodní ustanovení
    + 1. Zprostředkovatel licence není původní autor díla, ale má od autora (v zastoupení umělecké agentury DILIA) na základě smluvního ujednání oprávnění k uveřejnění díla v databázi LINDAT/CLARIAH-CZ (dále jen „Databáze“) a dále poskytovat podlicenci k užití díla za účelem umožnění dalšího vědeckého výzkumu v oblasti umělé inteligence.
    +

    +

    + Čl. II. Předmět Smlouvy
    + 1. Zprostředkovatel uděluje Nabyvateli svolení a oprávnění k užití Díla uveřejněném v Databázi za podmínek dále uvedených v této Smlouvě.
    + 2. Nabyvatel se zavazuje k užití díla jen a výhradně pro vědecké účely. Zprostředkovatel nebude požadovat po Nabyvateli žádnou finanční odměnu.
    +

    +

    + Čl. III. Dílo a poskytnutí licence k jeho užití
    + 1. Zprostředkovatel touto Smlouvou uděluje Nabyvateli svolení a oprávnění k užití Díla pro účely dalšího vědeckého výzkumu v oblasti umělé inteligence.
    + 2. Oprávnění dle této Smlouvy je poskytováno coby nevýhradní bez časového, množstevního, teritoriálního a jakéhokoliv jiného omezení.
    + 3. Nabyvatel není oprávněn užít Dílo nad rámec oprávnění udělených Smlouvou. Nabyvatel se dále zavazuje, že:
    + a) jakékoliv dílo, či jiný výsledek předmětného vědeckého výzkumu nebude obsahovat prvky nebo náznaky, že je v něm užito Dílo,
    + b) Dílo nebude zpřístupněné třetí osobě vyjma osob, které pracují s Databází, resp. se podílejí na předmětném vědeckém výzkumu týkajícím se umělé inteligence,
    + c) Autorovi, resp. DILIA bude kdykoliv umožněna kontrola podmínek stanovených touto Smlouvou,
    + d) v souvislosti s projektem umělé inteligence nebude v žádném případě veřejně použito či zmíněno jméno Autora či název Díla.
    +

    +

    + Čl. V. Závěrečná ustanovení
    + 1. Tato Smlouva nabývá platnosti i účinnosti dnem jejího elektronického odsouhlasení Nabyvatelem prostřednictvím webu databáze LINDAT/CLARIAH-CZ.
    + 2. Tato Smlouva se uzavírá na dobu neurčitou. Může být vypovězena bez udání důvodu kteroukoli ze smluvních stran doporučeným dopisem, doručeným straně druhé, s dodržením výpovědní lhůty v délce jednoho měsíce plynoucí od prvého dne měsíce následujícího po obdržení výpovědi druhou stranou.
    + 3. Tato Smlouva může být měněna nebo doplňována pouze písemnými dodatky podepsanými oběma smluvními stranami.
    +

    +
    +
    diff --git a/src/static-files/deep-sequoia-licence.html b/src/static-files/deep-sequoia-licence.html new file mode 100644 index 00000000000..070f50e879c --- /dev/null +++ b/src/static-files/deep-sequoia-licence.html @@ -0,0 +1,20 @@ +
    + +

    Deep Sequoia Licence

    +
    + (2021/01/15) +
    + +
    + +
    +

    License Terms

    +

    + The annotated data are distributed under : +

      +
    • CC-BY-SA 4.0 for the PARSEME-FR annotations (multi-word expressions and named entities)
    • +
    • LGPL-LR licence for all other annotations.
    • +
    +

    +
    +
    diff --git a/src/static-files/faq.html b/src/static-files/faq.html index 03b84df5ab1..da2ea5762e0 100644 --- a/src/static-files/faq.html +++ b/src/static-files/faq.html @@ -35,7 +35,7 @@

    What is the repository?

    can find it, use it, and correctly cite it (giving you credit)
    - +

    What submissions do we accept?

    @@ -51,7 +51,7 @@

    What submissions do we mentioned in LRT Standards.

    - +

    Do @@ -82,7 +82,7 @@

    I see an error logging in

    Occasionally (usually when you are the first one logging in using your home institution) you might see an error stating "The authentication was successful; however, your identity provider did provide neither your email, eppn nor targeted id." This means your home institution did not send us enough data about you to operate our service; the institution is doing so to protect your personal data. We only require an email and we are following Data Protection Code of Conduct, which helps us convince the institution we won't abuse data about you.

    If you have an account with multiple providers and you login with different one each time, you might see error stating "Your email is already associated with a different user.". Please try to use the same provider each time, if that is not possible, let us know and we'll change the default one.

    - +

    Why should I submit my data into your repository?

    @@ -96,14 +96,14 @@

    Why (google, VLO, DataCite, OLAC, Data Citation Index, arXive).
  • The data is easy to cite. We provide ready-to-use one-click citations in BibTex, RIS, and other popular reference - formats. All the citations include permanent links created from persistent identifiers (we use handles for PIDs). + formats. All the citations include permanent links created from persistent identifiers (we use handles for PIDs). These PIDs are future-proof.
  • For some data, like text corpora or treebanks, we can provide additional services, like full-text or even tree-query search.
  • - +

    Why should I submit my tools?

    @@ -115,25 +115,25 @@

    Why should I submit my page, or demo site.

    - +

    What is the PID (handle) good for?

    It is a special permanent URL. It provides a permanent link that will resolve correctly even if in some distant future the data is moved. Thus it should be used as URL in citations.

    - +

    What is the actual depositing/archiving procedure?

    -

    During the submission of digital language resources to the repository, the data undergo a curation - process in order to ensure quality and consistency. We assist you in meeting necessary requirements - for sustainable resource archiving. Data have to be provided with metadata in standard formats - accepted/adopted in the respective communities, persistent identifiers (PIDs) have to be assigned, IPR - issues have to be resolved and clear statements with regard to licensing and possible use of the +

    During the submission of digital language resources to the repository, the data undergo a curation + process in order to ensure quality and consistency. We assist you in meeting necessary requirements + for sustainable resource archiving. Data have to be provided with metadata in standard formats + accepted/adopted in the respective communities, persistent identifiers (PIDs) have to be assigned, IPR + issues have to be resolved and clear statements with regard to licensing and possible use of the resources are to be made. - The depositor is also required to electronically sign a deposition agreement acknowledging the - (s)he is the holder of rights to the data and that (s)he has the right to grant the + The depositor is also required to electronically sign a deposition agreement acknowledging the + (s)he is the holder of rights to the data and that (s)he has the right to grant the rights contained in this licence. Once the data is indeed deposited in the repository it is assigned a PID for stable reference.

    @@ -149,7 +149,7 @@

    What if I want/need to update the archived data?

    What if I want to withdraw the resources in the future? Can I delete the data?

    -

    Yes, in this case contact our Help Desk with the submission PID and the reason. +

    Yes, in this case contact our Help Desk with the submission PID and the reason. However, we need to keep a reference that the data was in our repository (because a persistent identifier was issued), so the administrative metadata will be retained indicating that the data itself were removed.

    @@ -163,12 +163,12 @@

    We have started our own repository, can we someh

    -

    I don't want / cannot make the data publicly available or make +

    I don't want / cannot make the data publicly available or make them available after a specific date. Would you still archive them for me?

    -

    In accordance with the advocacy of the research infrastructures and the general development +

    In accordance with the advocacy of the research infrastructures and the general development with respect to Open Access, we strongly encourage the data producers to be as open as possible. - - However, in other circumstances we will archive your data even if they will not be publicly available. Please, contact + + However, in other circumstances we will archive your data even if they will not be publicly available. Please, contact our Help Desk prior to completing the submission.

    @@ -177,7 +177,7 @@

    I don't want / cannot make the data publicly available o

    How to cite a submissions?

    See our policies.

    - +

    How safe is my data, if I store it with you?

    @@ -193,7 +193,7 @@

    How safe is my times

    - +

    What license should I pick for my data/tool?

    @@ -208,7 +208,7 @@

    What license

    Where can I find more information about supported licenses?

    - The list of licenses currently supported is here. + The list of licenses currently supported is here. However, do not hesitate to Contact Us in case you need your specific license. The licenses can be accompanied by various requirements; eg. limiting to logged in users, filling additional details (purpose) etc.

    diff --git a/src/static-files/hplt-dataset-license-1.0.html b/src/static-files/hplt-dataset-license-1.0.html new file mode 100644 index 00000000000..d63714c263c --- /dev/null +++ b/src/static-files/hplt-dataset-license-1.0.html @@ -0,0 +1,36 @@ +
    + +

    HPLT Dataset License v1.0

    +
    + (2023/10/02) +
    + +
    + +
    +

    Terms

    +

    + These data are released under this licensing scheme: +

    +

    + +

    Notice and take down policy

    +

    + Notice: Should you consider that our data contains material that is owned by you and should therefore not be reproduced here, please: +

      +
    • Clearly identify yourself, with detailed contact data such as an address, telephone number or email address at which you can be contacted.
    • +
    • Clearly identify the copyrighted work claimed to be infringed.
    • +
    • Clearly identify the material that is claimed to be infringing and information reasonably sufficient to allow us to locate the material.
    • +
    +

    + +

    You can reach us at hplt-datasets@ufal.mff.cuni.cz

    + +

    Take down: We will comply to legitimate requests by removing the affected sources from the next release of the corpora.

    + +

    * It is you resposibility that any use of the data complies with any applicable legal framework, such as, among others, the EU Copyright Directive 2019/790 and the General Data Protection Regulation 2018, as amended.

    +
    +
    diff --git a/src/static-files/item-lifecycle.html b/src/static-files/item-lifecycle.html index 297953b8961..aa04bcfe3fc 100644 --- a/src/static-files/item-lifecycle.html +++ b/src/static-files/item-lifecycle.html @@ -14,39 +14,39 @@

    Deposited Item Lifecycle

    Submitted Item

    -

    After you deposit a submission it will be inserted into a +

    After you deposit a submission it will be inserted into a pool of submitted items. The item is not publicly available and waits for an editor - to approve (or reject) it. + to approve (or reject) it.

    Edited Item

    -

    The task of the editor is to verify whether the submission meets our requirements in respect to - metadata quality and completeness, bitstream consistency and IPR. The editor can return the submission to the data depositor - describing the needed changes. This step is repeated until the editor approves the item. The approved item becomes a - published item. +

    The task of the editor is to verify whether the submission meets our requirements in respect to + metadata quality and completeness, bitstream consistency and IPR. The editor can return the submission to the data depositor + describing the needed changes. This step is repeated until the editor approves the item. The approved item becomes a + published item.

    Published Item

    -

    A published item obtains a PID (persistent identifier) which should be used for referencing and citing e.g., +

    A published item obtains a PID (persistent identifier) which should be used for referencing and citing e.g., http://hdl.handle.net/11858/00-097C-0000-0022-F59C-8. The LINDAT repository will ensure that the PID (more precisely, we use http handle proxy of the PID) will be resolved into a working web page (even if the current server infrastructure changes or is moved) - describing your resource. + describing your resource.

    - +

    - Published items are available through our search interface, browsing mode. Metadata of all items are submitted to + Published items are available through our search interface, browsing mode. Metadata of all items are submitted to search engines and are available through OAI-PMH protocol (several institutes harvest our repository for item's metadata e.g., http://catalog.clarin.eu/vlo/). Bitstreams of public submissions (see Restricted Submissions) are also available through OAI-ORE protocol.

    - +

    Deleting and Modifying of Published Item

    Anybody can request deletion of published items; however, these will be evaluated on case-by-case basis. @@ -54,9 +54,9 @@

    Deleting and Modifying of Published Item

    in case there is no specific reason why to delete the metadata. The reason is that it is against the concept of PIDs (persistent identifiers). All PIDs are available through OAI-PMH interface even if only to inform that the item - has been deleted. + has been deleted.

    - +

    We allow for minor edits of the submission (e.g., typos) through our Help Desk. These are also evaluated on case-by-case basis. For major changes, the user is requested to submit a new version @@ -66,17 +66,17 @@

    Deleting and Modifying of Published Item

    Restricted Submissions

    -

    First of all, all metadata are always publicly available. We - support open access submissions; however, we also support +

    First of all, all metadata are always publicly available. We + support open access submissions; however, we also support restrictive licences for bitstreams which require e-signing before downloading the bitstreams. We keep track of these e-signatures in case there are IPR infringements.

    - -

    See currently available licenses or ask us + +

    See currently available licenses or ask us to add a specific one.

    - +

    We also support putting embargo on bitstreams which means that the bitstreams become publicly available after specific dates.

    - +
    diff --git a/src/static-files/licence-mwe-1.3.html b/src/static-files/licence-mwe-1.3.html new file mode 100644 index 00000000000..951dc6b7ca9 --- /dev/null +++ b/src/static-files/licence-mwe-1.3.html @@ -0,0 +1,78 @@ +
    + +

    PARSEME Corpora v. 1.3 - Licence Agreement

    +
    + (2020/10/05) +
    + +
    + +
    +

    License Terms

    + +

    + The PARSEME corpora annotated for verbal multiword expressions (version 1.3) is a collection of linguistic data and tools. + Each of the corpora has its own license terms and you (the “User”) are responsible for complying with the license terms applicable to those parts which you use. If you do not agree with the license terms, you must stop using the corpora and destroy all copies of the data that you have obtained. +


    +

    The license for every corpus included in the release is specified in the appropriate language directory. The licenses for VMWE annotations (column 11) and morphological/syntactic data (columns 1-10) can be different, which is also indicated in the table below. All files in the bin/ and trial/ folders are licensed under CC BY 4.0.


    + +

    Overview of the corpora and their license terms

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    LanguageLanguage codeVMWEs (column 11)Morphosyntax (columns 1-10)
    Arabic AR CC BY 4.0 CC BY-NC-SA 3.0
    Bulgarian BG CC BY 4.0 CC BY 4.0
    Czech CS CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    German DE CC BY 4.0 CC BY-NC-SA 3.0 US
    Greek EL CC BY 4.0 CC BY-NC-SA 4.0 (UD GDT); GNU GPL 3.0 (remainder corpora)
    English EN CC BY 4.0 CC BY-SA 4.0 (UD Original, UD LinES); CC BY-SA 3.0 (UD PUD)
    Spanish ES CC BY 4.0 CC BY 4.0 (IXA); GNU GPL 3.0 (Ancora), CC BY-NC-SA 3.0 US (UD)
    Basque EU CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    Farsi/Persian FA CC BY-NC-SA 4.0 (special license for MULTEX-East, see README) CC BY-NC-SA 4.0 (special license for MULTEX-East, see README)
    French FR CC BY 4.0 CC BY-NC-SA 4.0 (UD); LGPL-LR (Sequoia)
    Irish GA CC BY 3.0 CC BY-SA 4.0
    Hebrew HE CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    Hindi HI CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    Croatian HR CC BY-SA 4.0 CC BY-SA 4.0
    Hungarian HU CC BY 4.0 GNU GPL 3.0
    Italian IT CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    Lithuanian LT CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    Maltese MT CC BY 4.0 CC BY 4.0
    Polish PL CC BY 4.0 GNU GPL v.3 (columns 1-6 with source_sent_id containing NationalCorpusOfPolish), CC BY-NC v.4 (columns 1-6 with source_sent_id containing PolishCoreferenceCorpus), and CC BY-NC-SA 4.0 (columns 1-6 with source_sent_id containing pdb-ud and columns 7-9 for all sentences).
    Portuguese PT CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    Romanian RO CC BY 4.0 CC BY 4.0
    Slovenian SL CC BY-SA 4.0 CC BY-SA 4.0
    Serbian SR CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    Swedish SV CC BY 4.0 CC BY-SA 4.0
    Turkish TR CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    Chinese ZH CC BY-NC-SA 4.0 CC BY-NC-SA 4.0
    + +

    Licenses

    + + + + + + + + + + + + + + + + +
    LicenseURL
    GNU GPL 3.0 http://opensource.org/licenses/GPL-3.0
    LGPL-LR http://infolingu.univ-mlv.fr/DonneesLinguistiques/Lexiques-Grammaires/lgpllr.html
    CC BY-SA 3.0 http://creativecommons.org/licenses/by-sa/3.0/
    CC BY-NC-SA 3.0 http://creativecommons.org/licenses/by-nc-sa/3.0/us/
    CC BY-NC-SA 3.0 US http://creativecommons.org/licenses/by-nc-sa/3.0/us/
    CC BY 4.0 http://creativecommons.org/licenses/by/4.0/
    CC BY-SA 4.0 http://creativecommons.org/licenses/by-sa/4.0/
    CC BY-NC 4.0 http://creativecommons.org/licenses/by-nc-sa/4.0/
    CC BY-NC-SA 4.0 http://creativecommons.org/licenses/by-nc-sa/4.0/
    + +
    +
    diff --git a/src/static-files/license-corefud-1.1.html b/src/static-files/license-corefud-1.1.html new file mode 100644 index 00000000000..4e4fb47e039 --- /dev/null +++ b/src/static-files/license-corefud-1.1.html @@ -0,0 +1,115 @@ +
    +

    CorefUD v1.1 License Agreement

    +
    + (2023/02/24) +
    +
    +
    +

    CorefUD v1.1 License Terms

    +

    CorefUD v1.1 (referred to as “CorefUD” in the rest of this document) + is a collection of linguistic data. Each of the corpora has its own license terms + and you (the “User”) are responsible for complying with the license terms + applicable to those parts of CorefUD which you use. If you do not agree with the license terms, + you must stop using CorefUD and destroy all copies of CorefUD data that you have obtained.

    +
    +

    You are specifically reminded that some of the corpora + permit only non-commercial usage.

    +
    +

    The license for every corpus included in the release is specified in the appropriate + corpus directory.

    +
    + +

    Overview of the corpora and their license terms

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CorpusLicense
    CorefUD_Catalan-AnCoraCC BY 4.0
    CorefUD_Czech-PCEDTCC BY-NC-SA 3.0
    CorefUD_Czech-PDTCC BY-NC-SA 4.0
    CorefUD_English-GUMCC BY-NC-SA 4.0
    CorefUD_English-ParCorFullCC BY-NC 4.0
    CorefUD_French-DemocratCC BY-SA 4.0
    CorefUD_German-ParCorFullCC BY-NC 4.0
    CorefUD_German-PotsdamCCCC BY-NC-SA 4.0
    CorefUD_Hungarian-KorKorCC BY 4.0
    CorefUD_Hungarian-SzegedKorefCC BY 4.0
    CorefUD_Lithuanian-LCCCLARIN-LT End User License
    CorefUD_Norwegian-BokmaalNARCCC BY-SA 4.0
    CorefUD_Norwegian-NynorskNARCCC BY-SA 4.0
    CorefUD_Polish-PCCCC BY 3.0
    CorefUD_Russian-RuCorCC BY-SA 4.0
    CorefUD_Spanish-AnCoraCC BY 4.0
    CorefUD_Turkish-ITCCCC BY-NC-SA 4.0
    + +

    Licenses

    + + + + + + + + + + + + + +
    LicenseURL
    CC BY 3.0http://creativecommons.org/licenses/by/3.0/
    CC BY 4.0http://creativecommons.org/licenses/by/4.0/
    CC BY-NC 4.0http://creativecommons.org/licenses/by-nc/4.0/
    CC BY-NC-SA 3.0http://creativecommons.org/licenses/by-nc-sa/3.0/
    CC BY-NC-SA 4.0http://creativecommons.org/licenses/by-nc-sa/4.0/
    CC BY-SA 4.0http://creativecommons.org/licenses/by-sa/4.0/
    CLARIN-LT End User Licensehttps://clarin.vdu.lt/licenses/eula/PUB_CLARIN-LT_End-User-Licence-Agreement_EN-LT.htm
    +
    +
    diff --git a/src/static-files/license-corefud-1.2.html b/src/static-files/license-corefud-1.2.html new file mode 100644 index 00000000000..e6387a6717e --- /dev/null +++ b/src/static-files/license-corefud-1.2.html @@ -0,0 +1,131 @@ +
    +

    CorefUD v1.2 License Agreement

    +
    + (2024/03/25) +
    +
    +
    +

    CorefUD v1.2 License Terms

    +

    CorefUD v1.2 (referred to as “CorefUD” in the rest of this document) + is a collection of linguistic data. Each of the corpora has its own license terms + and you (the “User”) are responsible for complying with the license terms + applicable to those parts of CorefUD which you use. If you do not agree with the license terms, + you must stop using CorefUD and destroy all copies of CorefUD data that you have obtained.

    +
    +

    You are specifically reminded that some of the corpora + permit only non-commercial usage.

    +
    +

    The license for every corpus included in the release is specified in the appropriate + corpus directory.

    +
    + +

    Overview of the corpora and their license terms

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CorpusLicense
    CorefUD_Ancient_Greek-PROIELCC BY-NC-SA 4.0
    CorefUD_Ancient_Hebrew-PTNKCC BY-NC 4.0
    CorefUD_Catalan-AnCoraCC BY 4.0
    CorefUD_Czech-PCEDTCC BY-NC-SA 3.0
    CorefUD_Czech-PDTCC BY-NC-SA 4.0
    CorefUD_English-GUMCC BY-NC-SA 4.0
    CorefUD_English-LitBankCC BY 4.0
    CorefUD_English-ParCorFullCC BY-NC 4.0
    CorefUD_French-DemocratCC BY-SA 4.0
    CorefUD_German-ParCorFullCC BY-NC 4.0
    CorefUD_German-PotsdamCCCC BY-NC-SA 4.0
    CorefUD_Hungarian-KorKorCC BY 4.0
    CorefUD_Hungarian-SzegedKorefCC BY 4.0
    CorefUD_Lithuanian-LCCCLARIN-LT End User License
    CorefUD_Norwegian-BokmaalNARCCC BY-SA 4.0
    CorefUD_Norwegian-NynorskNARCCC BY-SA 4.0
    CorefUD_Old_Church_Slavonic-PROIELCC BY-NC-SA 4.0
    CorefUD_Polish-PCCCC BY 3.0
    CorefUD_Russian-RuCorCC BY-SA 4.0
    CorefUD_Spanish-AnCoraCC BY 4.0
    CorefUD_Turkish-ITCCCC BY-NC-SA 4.0
    + +

    Licenses

    + + + + + + + + + + + + + +
    LicenseURL
    CC BY 3.0http://creativecommons.org/licenses/by/3.0/
    CC BY 4.0http://creativecommons.org/licenses/by/4.0/
    CC BY-NC 4.0http://creativecommons.org/licenses/by-nc/4.0/
    CC BY-NC-SA 3.0http://creativecommons.org/licenses/by-nc-sa/3.0/
    CC BY-NC-SA 4.0http://creativecommons.org/licenses/by-nc-sa/4.0/
    CC BY-SA 4.0http://creativecommons.org/licenses/by-sa/4.0/
    CLARIN-LT End User Licensehttps://clarin.vdu.lt/licenses/eula/PUB_CLARIN-LT_End-User-Licence-Agreement_EN-LT.htm
    +
    +
    diff --git a/src/static-files/license-lb.html b/src/static-files/license-lb.html new file mode 100644 index 00000000000..99e54f1f821 --- /dev/null +++ b/src/static-files/license-lb.html @@ -0,0 +1,108 @@ +
    + +

    Dictionary of Medieval Latin in the Czech Lands - digital version 2.2 License Agreement

    +
    + + +
    + License Agreement for Dictionary of Medieval Latin in the Czech Lands - digital version 2.2 +
    + +
    + between +
    + +
    + The Proprietor:
    + Institute of Philosophy at the Czech Academy of Sciences
    + Jilská 1
    + CZ-11000 Praha 1
    + Czech Republic
    + http://www.flu.cas.cz/ +
    + +
    + and +
    + +
    + The User:
    + Name ________________________
    + Affiliation__________________
    + Address______________________
    + Country______________________
    + Phone________________________
    + Email (official)_____________
    +
    + +
    + whereas, +
    + +
    +
      +
    1. +

      LATINITATIS MEDII AEVI LEXICON BOHEMORUM – DICTIONARY OF MEDIEVAL LATIN IN THE CZECH LANDS – digital + version 2.2 (below, LB) is a collection of textual data and software tools for their processing as described in the documentation, developed at and by the Proprietor, with the support provided by the LINDAT/CLARIAH-CZ Research Infrastructure, supported by the Ministry of Education, Youth, and Sports of the Czech Republic (Project No. LM2018101), and the long-term conceptual development of the Institute of Philosophy (RVO: 67985955).

      +
    2. +
    3. +

      The Proprietor is the copyright holder of LB and is entitled to grant a license to the User.

      +
    4. +
    5. +

      The User is an academic, educational or research institution, or other organization, or an individual wishing to make use of LB for research and/or education purposes.

      +
    6. +
    +
    + +
    + It is hereby agreed as follows: +
    + +
    +
      +
    1. +

      This agreement is made on the date of submission and effective immediately.

      +
    2. +
    3. +

      The User is granted a non-exclusive license to use LB to extract information directly or indirectly in any form and volume, provided that LB itself or any derivative work is used only by the User her/himself or his/her immediate collaborators, employees, managers and/or her/his students from the same Institution for research purposes only, and provided she/he is continuously observing all the terms and conditions contained in this Agreement. If any part of LB contains its own license or an additional restriction, the more restrictive version and/or amendment of the license shall be in effect, unless specifically stated otherwise in such a part. In particular, all the documentation which is provided should be considered a personal copy of the respective Author's reprint and handled as such.

      +
    4. +
    5. +

      The User shall not use LB itself or any derivative work (including but not limited to statistics obtained by using it or any derivative work thereof) based on it (however small the contribution of LB to such derivative work is) in whatever form for commercial purposes of any kind, nor for a deployment in any routinely used application, regardless whether it is of commercial nature or not.

      +
    6. +
    7. +

      The User shall include the following notice in all publications or publicly available materials, regardless of their form (printed, electronic, or other), describing work which uses LB: "The Dictionary of Medieval Latin in Czech Lands: Digital Version 2.2, Prague: Filosofický ústav AV ČR, v. v. i., 2019. Available at: http://lb.ics.cas.cz."

      +
    8. +
    9. +

      The User agrees not to re-distribute or otherwise make publicly available LB, or any derivative work based on it as described in paragraph 3, to a third party without a prior written permission of the Proprietor, with the exception of examples and citations as described in paragraph 4.

      +
    10. +
    11. +

      The User undertakes to adopt any security measures needed to protect the Proprietors' copyright in LB and undertakes to take all reasonable steps to ensure that no unauthorized use is made of LB and of any copies, derivative works or extracts thereof.

      +
    12. +
    13. +

      Any usage of LB which does not conform to the specification set forth in the 3rd paragraph of this Agreement (such as, e.g., commercial usage of LB) is subject of separate negotiations and a written contract between the User and the Proprietor and/or other parties. The Proprietor is in general not obliged to enter and/or conclude such negotiations.

      +
    14. +
    15. +

      LB is provided as is. Therefore, the Proprietor does not warrant the usefulness of LB for any purpose, regardless of formulations which can be found at some places in the accompanying documentation stating the intended purpose and use of LB.

      +
    16. +
    17. +

      If the User reports to the Proprietor any discovered errors, inconsistencies or suggested corrections or improvements to LB, the Proprietor undertake: (a) to maintain these comments in confidence and to use them only for the purposes of improving, modifying and/or maintaining LB, (b) not to disclose the comments except in confidence to those of their employees or directors who need to know the same for the aforesaid purpose.

      +
    18. +
    19. +

      Should the Users by themselves or anyone acting on their behalf fail to comply with any of the conditions in this agreement (save with the written consent of the Proprietor) this agreement shall terminate immediately and LB, its copies and derivative works based on it shall be destroyed at the User's site and at all sites under his control. Such termination shall be without prejudice to any claim which the Proprietor may have either for monies due and/or damages and/or otherwise.

      +
    20. +
    21. +

      Failure by the Proprietor to exercise or enforce any rights in this agreement shall not be deemed to be a waiver of any such right nor operate so as to bar the exercise or enforcement thereof at any time or times thereafter.

      +
    22. +
    23. +

      This agreement terminates if (a) the User destroys all copies of LB or any derivative work thereof, (b) the User or its Institution ceases to exist, unless all its obligations are transferred to a new entity, which is then considered to be bound by this Agreement. The User or its successor shall inform the Proprietor about any such transfer or succession; failure to do so will terminate this Agreement after one month after such transfer or succession. (c) the Proprietor ceases to exist without a legal successor.

      +
    24. +
    25. +

      The Proprietor shall keep the information about the User provided when submitting this Agreement in confidentiality and will not disclose it to other parties, except in a summary form such that individual users will not be identified, unless they specifically agree to such a disclosure in writing.

      +
    26. +
    27. +

      This agreement is governed by the laws of the Czech Republic and all disputes concerning this agreement will be resolved by its jurisdiction.

      +
    28. +
    +
    + +
    diff --git a/src/static-files/license-ud-2.10.html b/src/static-files/license-ud-2.10.html new file mode 100644 index 00000000000..bce0c9785ea --- /dev/null +++ b/src/static-files/license-ud-2.10.html @@ -0,0 +1,969 @@ +
    +

    Universal Dependencies v2.10 License Agreement

    +
    + (2022/05/15) +
    +
    +
    +

    Universal Dependencies v2.10 License Terms

    +

    Universal Dependencies v2.10 (referred to as “UD” in the rest of this document) + is a collection of linguistic data and tools. Each of the treebanks has its own license terms + and you (the “User”) are responsible for complying with the license terms + applicable to those parts of UD which you use. If you do not agree with the license terms, + you must stop using UD and destroy all copies of UD data that you have obtained.

    +
    +

    You are specifically reminded that some of the treebanks + permit only non-commercial usage.

    +
    +

    The additional software tools are provided as-is (without any warranty) and are redistributed + under GNU GPL Version 2.

    +
    +

    The license for every treebank included in the release is specified in the appropriate + treebank directory.

    +
    + +

    Overview of the treebanks and their license terms

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TreebankLicense
    Afrikaans-AfriBoomsCC BY-SA 4.0
    Akkadian-PISANDUBCC BY-SA 4.0
    Akkadian-RIAOCC BY-SA 3.0
    Akuntsu-TuDeTCC BY-SA 4.0
    Albanian-TSACC BY-SA 4.0
    Amharic-ATTCC BY-SA 4.0
    Ancient_Greek-PROIELCC BY-NC-SA 3.0
    Ancient_Greek-PerseusCC BY-NC-SA 2.5
    Ancient_Hebrew-PTNKCC BY-NC 4.0
    Apurina-UFPACC BY-SA 4.0
    Arabic-NYUADCC BY-SA 4.0
    Arabic-PADTCC BY-NC-SA 3.0
    Arabic-PUDCC BY-SA 3.0
    Armenian-ArmTDPCC BY-SA 4.0
    Armenian-BSUTCC BY-SA 4.0
    Assyrian-ASCC BY-SA 4.0
    Bambara-CRBCC BY-SA 4.0
    Basque-BDTCC BY-NC-SA 3.0
    Beja-NSCCC BY-SA 4.0
    Belarusian-HSECC BY-SA 4.0
    Bengali-BRUCC BY-SA 4.0
    Bhojpuri-BHTBCC BY-SA 4.0
    Breton-KEBCC BY-SA 4.0
    Bulgarian-BTBCC BY-NC-SA 3.0
    Buryat-BDTCC BY-SA 4.0
    Cantonese-HKCC BY-SA 4.0
    Catalan-AnCoraCC BY 4.0
    Cebuano-GJACC BY-SA 4.0
    Chinese-CFLCC BY-SA 4.0
    Chinese-GSDCC BY-SA 4.0
    Chinese-GSDSimpCC BY-SA 4.0
    Chinese-HKCC BY-SA 4.0
    Chinese-PUDCC BY-SA 3.0
    Chukchi-HSECC BY-SA 4.0
    Classical_Chinese-KyotoPD
    Coptic-ScriptoriumCC BY 4.0
    Croatian-SETCC BY-SA 4.0
    Czech-CACCC BY-SA 4.0
    Czech-CLTTCC BY-SA 4.0
    Czech-FicTreeCC BY-NC-SA 4.0
    Czech-PDTCC BY-NC-SA 3.0
    Czech-PUDCC BY-SA 4.0
    Danish-DDTCC BY-SA 4.0
    Dutch-AlpinoCC BY-SA 4.0
    Dutch-LassySmallCC BY-SA 4.0
    English-AtisCC BY-SA 4.0
    English-ESLCC BY-SA 4.0
    English-EWTCC BY-SA 4.0
    English-GUMCC BY-NC-SA 4.0
    English-GUMRedditCC BY 4.0
    English-LinESCC BY-NC-SA 4.0
    English-PUDCC BY-SA 3.0
    English-ParTUTCC BY-NC-SA 4.0
    English-PronounsCC BY-SA 4.0
    Erzya-JRCC BY-SA 4.0
    Estonian-EDTCC BY-NC-SA 4.0
    Estonian-EWTCC BY-NC-SA 4.0
    Faroese-FarPaHCCC BY-SA 4.0
    Faroese-OFTCC BY-SA 4.0
    Finnish-FTBCC BY 4.0
    Finnish-OODCC BY-SA 4.0
    Finnish-PUDCC BY-SA 4.0
    Finnish-TDTCC BY-SA 4.0
    French-FQBLGPL-LR
    French-FTBLGPL-LR
    French-GSDCC BY-SA 4.0
    French-PUDCC BY-SA 3.0
    French-ParTUTCC BY-NC-SA 4.0
    French-ParisStoriesCC BY-SA 4.0
    French-RhapsodieCC BY-SA 4.0
    French-SequoiaLGPL-LR
    Frisian_Dutch-FameCC BY-SA 4.0
    Galician-CTGCC BY-NC-SA 3.0
    Galician-TreeGalLGPL-LR
    German-GSDCC BY-SA 4.0
    German-HDTCC BY-SA 4.0
    German-LITCC BY-NC-SA 4.0
    German-PUDCC BY-SA 3.0
    Gothic-PROIELCC BY-NC-SA 3.0
    Greek-GDTCC BY-NC-SA 3.0
    Guajajara-TuDeTCC BY-SA 4.0
    Guarani-OldTuDeTCC BY-SA 4.0
    Hebrew-HTBCC BY-NC-SA 4.0
    Hebrew-IAHLTwikiCC BY-SA 4.0
    Hindi-HDTBCC BY-NC-SA 4.0
    Hindi-PUDCC BY-SA 3.0
    Hindi_English-HIENCSCC BY-SA 4.0
    Hittite-HitTBCC BY-SA 4.0
    Hungarian-SzegedCC BY-NC-SA 3.0
    Icelandic-IcePaHCCC BY-SA 4.0
    Icelandic-ModernCC BY-SA 4.0
    Icelandic-PUDCC BY-SA 4.0
    Indonesian-CSUICC BY-SA 4.0
    Indonesian-GSDCC BY-SA 4.0
    Indonesian-PUDCC BY-SA 3.0
    Irish-IDTCC BY-SA 3.0
    Irish-TwittIrishCC BY-SA 4.0
    Italian-ISDTCC BY-NC-SA 3.0
    Italian-MarkITCC BY 4.0
    Italian-PUDCC BY-SA 3.0
    Italian-ParTUTCC BY-NC-SA 4.0
    Italian-PoSTWITACC BY-NC-SA 4.0
    Italian-TWITTIROCC BY-SA 4.0
    Italian-VITCC BY-NC-SA 3.0
    Italian-ValicoCC BY-SA 4.0
    Japanese-BCCWJCC BY-NC-SA 4.0
    Japanese-BCCWJLUWCC BY-NC-SA 4.0
    Japanese-GSDCC BY-SA 4.0
    Japanese-GSDLUWCC BY-SA 4.0
    Japanese-ModernCC BY-NC-ND 3.0
    Japanese-PUDCC BY-SA 3.0
    Japanese-PUDLUWCC BY-SA 3.0
    Javanese-CSUICC BY-SA 4.0
    Kaapor-TuDeTCC BY-SA 4.0
    Kangri-KDTBCC BY-SA 4.0
    Karelian-KKPPCC BY-SA 4.0
    Karo-TuDeTCC BY-SA 4.0
    Kazakh-KTBCC BY-SA 4.0
    Khunsari-AHACC BY-SA 4.0
    Kiche-IUCC BY-SA 4.0
    Komi_Permyak-UHCC BY-SA 4.0
    Komi_Zyrian-IKDPCC BY-SA 4.0
    Komi_Zyrian-LatticeCC BY-SA 4.0
    Korean-GSDCC BY-SA 4.0
    Korean-KaistCC BY-SA 4.0
    Korean-PUDCC BY-SA 3.0
    Kurmanji-MGCC BY-SA 4.0
    Latin-ITTBCC BY-NC-SA 3.0
    Latin-LLCTCC BY-SA 4.0
    Latin-PROIELCC BY-NC-SA 3.0
    Latin-PerseusCC BY-NC-SA 2.5
    Latin-UDanteCC BY-NC-SA 3.0
    Latvian-LVTBCC BY-SA 4.0
    Ligurian-GLTC-UDA 1.0
    Lithuanian-ALKSNISCC BY-SA 4.0
    Lithuanian-HSECC BY-SA 4.0
    Livvi-KKPPCC BY-SA 4.0
    Low_Saxon-LSDCCC BY-SA 4.0
    Madi-JarawaraCC BY-SA 4.0
    Makurap-TuDeTCC BY-SA 4.0
    Maltese-MUDTCC BY-SA 4.0
    Manx-CadhanGNU GPL 3.0
    Marathi-UFALCC BY-SA 4.0
    Mbya_Guarani-DooleyCC BY-NC-SA 4.0
    Mbya_Guarani-ThomasCC BY-NC-SA 4.0
    Moksha-JRCC BY-SA 4.0
    Munduruku-TuDeTCC BY-SA 4.0
    Naija-NSCCC BY-SA 4.0
    Nayini-AHACC BY-SA 4.0
    Neapolitan-RBCC BY-SA 4.0
    North_Sami-GiellaCC BY-SA 4.0
    Norwegian-BokmaalCC BY-SA 4.0
    Norwegian-NynorskCC BY-SA 4.0
    Norwegian-NynorskLIACC BY-SA 4.0
    Old_Church_Slavonic-PROIELCC BY-NC-SA 3.0
    Old_East_Slavic-BirchbarkCC BY-SA 4.0
    Old_East_Slavic-RNCCC BY-SA 4.0
    Old_East_Slavic-TOROTCC BY-NC-SA 3.0
    Old_French-SRCMFCC BY-NC-SA 3.0
    Old_Turkish-TonqqCC0 1.0
    Persian-PerDTCC BY-SA 4.0
    Persian-SerajiCC BY-SA 4.0
    Polish-LFGGNU GPL 3.0
    Polish-PDBCC BY-NC-SA 4.0
    Polish-PUDCC BY-SA 4.0
    Pomak-PhilotisCC BY-NC-SA 3.0
    Portuguese-BosqueCC BY-SA 4.0
    Portuguese-GSDCC BY-SA 4.0
    Portuguese-PUDCC BY-SA 3.0
    Romanian-ArTCC BY-SA 4.0
    Romanian-NonstandardCC BY-SA 4.0
    Romanian-RRTCC BY-SA 4.0
    Romanian-SiMoNERoCC BY-SA 4.0
    Russian-GSDCC BY-SA 4.0
    Russian-PUDCC BY-SA 3.0
    Russian-SynTagRusCC BY-NC-SA 4.0
    Russian-TaigaCC BY-SA 4.0
    Sanskrit-UFALCC BY-SA 4.0
    Sanskrit-VedicCC BY-SA 4.0
    Scottish_Gaelic-ARCOSGCC BY-SA 4.0
    Serbian-SETCC BY-SA 4.0
    Skolt_Sami-GiellagasCC BY-SA 4.0
    Slovak-SNKCC BY-SA 4.0
    Slovenian-SSJCC BY-NC-SA 4.0
    Slovenian-SSTCC BY-NC-SA 4.0
    Soi-AHACC BY-SA 4.0
    South_Levantine_Arabic-MADARCC BY-SA 4.0
    Spanish-AnCoraCC BY 4.0
    Spanish-GSDCC BY-SA 4.0
    Spanish-PUDCC BY-SA 3.0
    Swedish-LinESCC BY-NC-SA 4.0
    Swedish-PUDCC BY-SA 4.0
    Swedish-TalbankenCC BY-SA 4.0
    Swedish_Sign_Language-SSLCCC BY-SA 4.0
    Swiss_German-UZHCC BY-SA 4.0
    Tagalog-TRGCC BY-SA 4.0
    Tagalog-UgnayanCC BY-NC-SA 4.0
    Tamil-MWTTCC BY-SA 4.0
    Tamil-TTBCC BY-NC-SA 3.0
    Tatar-NMCTTCC BY-SA 4.0
    Teko-TuDeTCC BY-SA 4.0
    Telugu-MTGCC BY-SA 4.0
    Thai-PUDCC BY-SA 3.0
    Tupinamba-TuDeTCC BY-SA 4.0
    Turkish-AtisCC BY-SA 4.0
    Turkish-BOUNCC BY-SA 4.0
    Turkish-FrameNetCC BY-SA 4.0
    Turkish-GBCC BY-SA 4.0
    Turkish-IMSTCC BY-NC-SA 4.0
    Turkish-KenetCC BY-SA 4.0
    Turkish-PUDCC BY-SA 3.0
    Turkish-PennCC BY-SA 4.0
    Turkish-TourismCC BY-SA 4.0
    Turkish_German-SAGTCC BY-NC-SA 4.0
    Ukrainian-IUCC BY-NC-SA 4.0
    Umbrian-IKUVINACC BY-SA 4.0
    Upper_Sorbian-UFALCC BY-SA 4.0
    Urdu-UDTBCC BY-NC-SA 4.0
    Uyghur-UDTCC BY-SA 4.0
    Vietnamese-VTBCC BY-SA 4.0
    Warlpiri-UFALCC BY-SA 4.0
    Welsh-CCGCC BY-SA 4.0
    Western_Armenian-ArmTDPCC BY-SA 4.0
    Wolof-WTBCC BY-SA 4.0
    Xibe-XDTCC BY-NC-SA 3.0
    Yakut-YKTDTCC BY-SA 4.0
    Yoruba-YTBCC BY-SA 4.0
    Yupik-SLICC BY-SA 4.0
    + +

    Licenses

    + + + + + + + + + + + + + + + + + + + + +
    LicenseURL
    C-UDA 1.0https://cdla.dev/computational-use-of-data-agreement-v1-0/
    CC BY 4.0http://creativecommons.org/licenses/by/4.0/
    CC BY-NC 4.0http://creativecommons.org/licenses/by-nc/4.0/
    CC BY-NC-ND 3.0http://creativecommons.org/licenses/by-nc-nd/3.0/
    CC BY-NC-SA 2.5http://creativecommons.org/licenses/by-nc-sa/2.5/
    CC BY-NC-SA 3.0http://creativecommons.org/licenses/by-nc-sa/3.0/
    CC BY-NC-SA 4.0http://creativecommons.org/licenses/by-nc-sa/4.0/
    CC BY-SA 3.0http://creativecommons.org/licenses/by-sa/3.0/
    CC BY-SA 4.0http://creativecommons.org/licenses/by-sa/4.0/
    CC0 1.0http://creativecommons.org/publicdomain/zero/1.0/
    GNU GPL 2.0http://opensource.org/licenses/GPL-2.0
    GNU GPL 3.0http://opensource.org/licenses/GPL-3.0
    LGPL-LRhttp://www.ida.liu.se/~sarst/bitse/lgpllr.html
    PDpublic domain
    +
    +
    diff --git a/src/static-files/license-ud-2.11.html b/src/static-files/license-ud-2.11.html new file mode 100644 index 00000000000..1fed9fedf91 --- /dev/null +++ b/src/static-files/license-ud-2.11.html @@ -0,0 +1,1030 @@ +
    +

    Universal Dependencies v2.11 License Agreement

    +
    + (2022/11/15) +
    +
    +
    +

    Universal Dependencies v2.11 License Terms

    +

    Universal Dependencies v2.11 (referred to as “UD” in the rest of this document) + is a collection of linguistic data and tools. Each of the treebanks has its own license terms + and you (the “User”) are responsible for complying with the license terms + applicable to those parts of UD which you use. If you do not agree with the license terms, + you must stop using UD and destroy all copies of UD data that you have obtained.

    +
    +

    You are specifically reminded that some of the treebanks + permit only non-commercial usage.

    +
    +

    The additional software tools are provided as-is (without any warranty) and are redistributed + under GNU GPL Version 2.

    +
    +

    The license for every treebank included in the release is specified in the appropriate + treebank directory.

    +
    + +

    Overview of the treebanks and their license terms

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TreebankLicense
    Abaza-ATBCC BY-SA 4.0
    Afrikaans-AfriBoomsCC BY-SA 4.0
    Akkadian-PISANDUBCC BY-SA 4.0
    Akkadian-RIAOCC BY-SA 3.0
    Akuntsu-TuDeTCC BY-SA 4.0
    Albanian-TSACC BY-SA 4.0
    Amharic-ATTCC BY-SA 4.0
    Ancient_Greek-PROIELCC BY-NC-SA 3.0
    Ancient_Greek-PerseusCC BY-NC-SA 2.5
    Ancient_Hebrew-PTNKCC BY-NC 4.0
    Apurina-UFPACC BY-SA 4.0
    Arabic-NYUADCC BY-SA 4.0
    Arabic-PADTCC BY-NC-SA 3.0
    Arabic-PUDCC BY-SA 3.0
    Armenian-ArmTDPCC BY-SA 4.0
    Armenian-BSUTCC BY-SA 4.0
    Assyrian-ASCC BY-SA 4.0
    Bambara-CRBCC BY-SA 4.0
    Basque-BDTCC BY-NC-SA 3.0
    Beja-NSCCC BY-SA 4.0
    Belarusian-HSECC BY-SA 4.0
    Bengali-BRUCC BY-SA 4.0
    Bhojpuri-BHTBCC BY-SA 4.0
    Breton-KEBCC BY-SA 4.0
    Bulgarian-BTBCC BY-NC-SA 3.0
    Buryat-BDTCC BY-SA 4.0
    Cantonese-HKCC BY-SA 4.0
    Catalan-AnCoraCC BY 4.0
    Cebuano-GJACC BY-SA 4.0
    Chinese-CFLCC BY-SA 4.0
    Chinese-GSDCC BY-SA 4.0
    Chinese-GSDSimpCC BY-SA 4.0
    Chinese-HKCC BY-SA 4.0
    Chinese-PUDCC BY-SA 3.0
    Chinese-PatentCharCC BY-NC-SA 3.0
    Chukchi-HSECC BY-SA 4.0
    Classical_Chinese-KyotoPD
    Coptic-ScriptoriumCC BY 4.0
    Croatian-SETCC BY-SA 4.0
    Czech-CACCC BY-SA 4.0
    Czech-CLTTCC BY-SA 4.0
    Czech-FicTreeCC BY-NC-SA 4.0
    Czech-PDTCC BY-NC-SA 3.0
    Czech-PUDCC BY-SA 4.0
    Danish-DDTCC BY-SA 4.0
    Dutch-AlpinoCC BY-SA 4.0
    Dutch-LassySmallCC BY-SA 4.0
    English-AtisCC BY-SA 4.0
    English-ESLCC BY-SA 4.0
    English-EWTCC BY-SA 4.0
    English-GUMCC BY-NC-SA 4.0
    English-GUMRedditCC BY 4.0
    English-LinESCC BY-NC-SA 4.0
    English-PUDCC BY-SA 3.0
    English-ParTUTCC BY-NC-SA 4.0
    English-PronounsCC BY-SA 4.0
    Erzya-JRCC BY-SA 4.0
    Estonian-EDTCC BY-NC-SA 4.0
    Estonian-EWTCC BY-NC-SA 4.0
    Faroese-FarPaHCCC BY-SA 4.0
    Faroese-OFTCC BY-SA 4.0
    Finnish-FTBCC BY 4.0
    Finnish-OODCC BY-SA 4.0
    Finnish-PUDCC BY-SA 4.0
    Finnish-TDTCC BY-SA 4.0
    French-FQBLGPL-LR
    French-FTBLGPL-LR
    French-GSDCC BY-SA 4.0
    French-PUDCC BY-SA 3.0
    French-ParTUTCC BY-NC-SA 4.0
    French-ParisStoriesCC BY-SA 4.0
    French-RhapsodieCC BY-SA 4.0
    French-SequoiaLGPL-LR
    Frisian_Dutch-FameCC BY-SA 4.0
    Galician-CTGCC BY-NC-SA 3.0
    Galician-TreeGalLGPL-LR
    German-GSDCC BY-SA 4.0
    German-HDTCC BY-SA 4.0
    German-LITCC BY-NC-SA 4.0
    German-PUDCC BY-SA 3.0
    Gheg-GPSCC BY-SA 4.0
    Gothic-PROIELCC BY-NC-SA 3.0
    Greek-GDTCC BY-NC-SA 3.0
    Guajajara-TuDeTCC BY-SA 4.0
    Guarani-OldTuDeTCC BY-SA 4.0
    Hebrew-HTBCC BY-NC-SA 4.0
    Hebrew-IAHLTwikiCC BY-SA 4.0
    Hindi-HDTBCC BY-NC-SA 4.0
    Hindi-PUDCC BY-SA 3.0
    Hindi_English-HIENCSCC BY-SA 4.0
    Hittite-HitTBCC BY-SA 4.0
    Hungarian-SzegedCC BY-NC-SA 3.0
    Icelandic-GCCC BY-SA 4.0
    Icelandic-IcePaHCCC BY-SA 4.0
    Icelandic-ModernCC BY-SA 4.0
    Icelandic-PUDCC BY-SA 4.0
    Indonesian-CSUICC BY-SA 4.0
    Indonesian-GSDCC BY-SA 4.0
    Indonesian-PUDCC BY-SA 3.0
    Irish-CadhanCC BY-SA 4.0
    Irish-IDTCC BY-SA 3.0
    Irish-TwittIrishCC BY-SA 4.0
    Italian-ISDTCC BY-NC-SA 3.0
    Italian-MarkITCC BY 4.0
    Italian-PUDCC BY-SA 3.0
    Italian-ParTUTCC BY-NC-SA 4.0
    Italian-ParlaMintCC BY-SA 4.0
    Italian-PoSTWITACC BY-NC-SA 4.0
    Italian-TWITTIROCC BY-SA 4.0
    Italian-VITCC BY-NC-SA 3.0
    Italian-ValicoCC BY-SA 4.0
    Japanese-BCCWJCC BY-NC-SA 4.0
    Japanese-BCCWJLUWCC BY-NC-SA 4.0
    Japanese-GSDCC BY-SA 4.0
    Japanese-GSDLUWCC BY-SA 4.0
    Japanese-ModernCC BY-NC-ND 3.0
    Japanese-PUDCC BY-SA 3.0
    Japanese-PUDLUWCC BY-SA 3.0
    Javanese-CSUICC BY-SA 4.0
    Kaapor-TuDeTCC BY-SA 4.0
    Kangri-KDTBCC BY-SA 4.0
    Karelian-KKPPCC BY-SA 4.0
    Karo-TuDeTCC BY-SA 4.0
    Kazakh-KTBCC BY-SA 4.0
    Khunsari-AHACC BY-SA 4.0
    Kiche-IUCC BY-SA 4.0
    Komi_Permyak-UHCC BY-SA 4.0
    Komi_Zyrian-IKDPCC BY-SA 4.0
    Komi_Zyrian-LatticeCC BY-SA 4.0
    Korean-GSDCC BY-SA 4.0
    Korean-KaistCC BY-SA 4.0
    Korean-PUDCC BY-SA 3.0
    Kurmanji-MGCC BY-SA 4.0
    Latin-ITTBCC BY-NC-SA 3.0
    Latin-LLCTCC BY-SA 4.0
    Latin-PROIELCC BY-NC-SA 3.0
    Latin-PerseusCC BY-NC-SA 2.5
    Latin-UDanteCC BY-NC-SA 3.0
    Latvian-LVTBCC BY-SA 4.0
    Ligurian-GLTC-UDA 1.0
    Lithuanian-ALKSNISCC BY-SA 4.0
    Lithuanian-HSECC BY-SA 4.0
    Livvi-KKPPCC BY-SA 4.0
    Low_Saxon-LSDCCC BY-SA 4.0
    Madi-JarawaraCC BY-SA 4.0
    Makurap-TuDeTCC BY-SA 4.0
    Malayalam-UFALCC BY-SA 4.0
    Maltese-MUDTCC BY-SA 4.0
    Manx-CadhanGNU GPL 3.0
    Marathi-UFALCC BY-SA 4.0
    Mbya_Guarani-DooleyCC BY-NC-SA 4.0
    Mbya_Guarani-ThomasCC BY-NC-SA 4.0
    Moksha-JRCC BY-SA 4.0
    Munduruku-TuDeTCC BY-SA 4.0
    Naija-NSCCC BY-SA 4.0
    Nayini-AHACC BY-SA 4.0
    Neapolitan-RBCC BY-SA 4.0
    Nheengatu-CompLinCC BY-NC-SA 4.0
    North_Sami-GiellaCC BY-SA 4.0
    Norwegian-BokmaalCC BY-SA 4.0
    Norwegian-NynorskCC BY-SA 4.0
    Norwegian-NynorskLIACC BY-SA 4.0
    Old_Church_Slavonic-PROIELCC BY-NC-SA 3.0
    Old_East_Slavic-BirchbarkCC BY-SA 4.0
    Old_East_Slavic-RNCCC BY-SA 4.0
    Old_East_Slavic-RuthenianCC BY-SA 4.0
    Old_East_Slavic-TOROTCC BY-NC-SA 3.0
    Old_French-SRCMFCC BY-NC-SA 3.0
    Old_Turkish-TonqqCC0 1.0
    Persian-PerDTCC BY-SA 4.0
    Persian-SerajiCC BY-SA 4.0
    Polish-LFGGNU GPL 3.0
    Polish-PDBCC BY-NC-SA 4.0
    Polish-PUDCC BY-SA 4.0
    Pomak-PhilotisCC BY-NC-SA 3.0
    Portuguese-BosqueCC BY-SA 4.0
    Portuguese-CINTILCC BY-NC-ND 4.0
    Portuguese-GSDCC BY-SA 4.0
    Portuguese-PUDCC BY-SA 3.0
    Portuguese-PetroGoldCC BY-SA 4.0
    Romanian-ArTCC BY-SA 4.0
    Romanian-NonstandardCC BY-SA 4.0
    Romanian-RRTCC BY-SA 4.0
    Romanian-SiMoNERoCC BY-SA 4.0
    Russian-GSDCC BY-SA 4.0
    Russian-PUDCC BY-SA 3.0
    Russian-SynTagRusCC BY-NC-SA 4.0
    Russian-TaigaCC BY-SA 4.0
    Sanskrit-UFALCC BY-SA 4.0
    Sanskrit-VedicCC BY-SA 4.0
    Scottish_Gaelic-ARCOSGCC BY-SA 4.0
    Serbian-SETCC BY-SA 4.0
    Sinhala-STBCC BY-SA 4.0
    Skolt_Sami-GiellagasCC BY-SA 4.0
    Slovak-SNKCC BY-SA 4.0
    Slovenian-SSJCC BY-SA 4.0
    Slovenian-SSTCC BY-NC-SA 4.0
    Soi-AHACC BY-SA 4.0
    South_Levantine_Arabic-MADARCC BY-SA 4.0
    Spanish-AnCoraCC BY 4.0
    Spanish-GSDCC BY-SA 4.0
    Spanish-PUDCC BY-SA 3.0
    Swedish-LinESCC BY-NC-SA 4.0
    Swedish-PUDCC BY-SA 4.0
    Swedish-TalbankenCC BY-SA 4.0
    Swedish_Sign_Language-SSLCCC BY-SA 4.0
    Swiss_German-UZHCC BY-SA 4.0
    Tagalog-TRGCC BY-SA 4.0
    Tagalog-UgnayanCC BY-NC-SA 4.0
    Tamil-MWTTCC BY-SA 4.0
    Tamil-TTBCC BY-NC-SA 3.0
    Tatar-NMCTTCC BY-SA 4.0
    Teko-TuDeTCC BY-SA 4.0
    Telugu-MTGCC BY-SA 4.0
    Thai-PUDCC BY-SA 3.0
    Tupinamba-TuDeTCC BY-SA 4.0
    Turkish-AtisCC BY-SA 4.0
    Turkish-BOUNCC BY-SA 4.0
    Turkish-FrameNetCC BY-SA 4.0
    Turkish-GBCC BY-SA 4.0
    Turkish-IMSTCC BY-NC-SA 4.0
    Turkish-KenetCC BY-SA 4.0
    Turkish-PUDCC BY-SA 3.0
    Turkish-PennCC BY-SA 4.0
    Turkish-TourismCC BY-SA 4.0
    Turkish_German-SAGTCC BY-NC-SA 4.0
    Ukrainian-IUCC BY-NC-SA 4.0
    Umbrian-IKUVINACC BY-SA 4.0
    Upper_Sorbian-UFALCC BY-SA 4.0
    Urdu-UDTBCC BY-NC-SA 4.0
    Uyghur-UDTCC BY-SA 4.0
    Vietnamese-VTBCC BY-SA 4.0
    Warlpiri-UFALCC BY-SA 4.0
    Welsh-CCGCC BY-SA 4.0
    Western_Armenian-ArmTDPCC BY-SA 4.0
    Western_Sierra_Puebla_Nahuatl-ITMLCC BY-SA 4.0
    Wolof-WTBCC BY-SA 4.0
    Xavante-XDTCC BY-SA 4.0
    Xibe-XDTCC BY-NC-SA 3.0
    Yakut-YKTDTCC BY-SA 4.0
    Yoruba-YTBCC BY-SA 4.0
    Yupik-SLICC BY-SA 4.0
    Zaar-AutogrammCC BY-SA 4.0
    + +

    Licenses

    + + + + + + + + + + + + + + + + + + + + + +
    LicenseURL
    C-UDA 1.0https://cdla.dev/computational-use-of-data-agreement-v1-0/
    CC BY 4.0http://creativecommons.org/licenses/by/4.0/
    CC BY-NC 4.0http://creativecommons.org/licenses/by-nc/4.0/
    CC BY-NC-ND 3.0http://creativecommons.org/licenses/by-nc-nd/3.0/
    CC BY-NC-ND 4.0http://creativecommons.org/licenses/by-nc-nd/4.0/
    CC BY-NC-SA 2.5http://creativecommons.org/licenses/by-nc-sa/2.5/
    CC BY-NC-SA 3.0http://creativecommons.org/licenses/by-nc-sa/3.0/
    CC BY-NC-SA 4.0http://creativecommons.org/licenses/by-nc-sa/4.0/
    CC BY-SA 3.0http://creativecommons.org/licenses/by-sa/3.0/
    CC BY-SA 4.0http://creativecommons.org/licenses/by-sa/4.0/
    CC0 1.0http://creativecommons.org/publicdomain/zero/1.0/
    GNU GPL 2.0http://opensource.org/licenses/GPL-2.0
    GNU GPL 3.0http://opensource.org/licenses/GPL-3.0
    LGPL-LRhttp://www.ida.liu.se/~sarst/bitse/lgpllr.html
    PDpublic domain
    +
    +
    diff --git a/src/static-files/license-ud-2.12.html b/src/static-files/license-ud-2.12.html new file mode 100644 index 00000000000..e91bdf617cc --- /dev/null +++ b/src/static-files/license-ud-2.12.html @@ -0,0 +1,1038 @@ +
    +

    Universal Dependencies v2.12 License Agreement

    +
    + (2023/05/15) +
    +
    +
    +

    Universal Dependencies v2.12 License Terms

    +

    Universal Dependencies v2.12 (referred to as “UD” in the rest of this document) + is a collection of linguistic data and tools. Each of the treebanks has its own license terms + and you (the “User”) are responsible for complying with the license terms + applicable to those parts of UD which you use. If you do not agree with the license terms, + you must stop using UD and destroy all copies of UD data that you have obtained.

    +
    +

    You are specifically reminded that some of the treebanks + permit only non-commercial usage.

    +
    +

    The additional software tools are provided as-is (without any warranty) and are redistributed + under GNU GPL Version 2.

    +
    +

    The license for every treebank included in the release is specified in the appropriate + treebank directory.

    +
    + +

    Overview of the treebanks and their license terms

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TreebankLicense
    Abaza-ATBCC BY-SA 4.0
    Afrikaans-AfriBoomsCC BY-SA 4.0
    Akkadian-PISANDUBCC BY-SA 4.0
    Akkadian-RIAOCC BY-SA 3.0
    Akuntsu-TuDeTCC BY-SA 4.0
    Albanian-TSACC BY-SA 4.0
    Amharic-ATTCC BY-SA 4.0
    Ancient_Greek-PROIELCC BY-NC-SA 3.0
    Ancient_Greek-PerseusCC BY-NC-SA 2.5
    Ancient_Hebrew-PTNKCC BY-NC 4.0
    Apurina-UFPACC BY-SA 4.0
    Arabic-NYUADCC BY-SA 4.0
    Arabic-PADTCC BY-NC-SA 3.0
    Arabic-PUDCC BY-SA 3.0
    Armenian-ArmTDPCC BY-SA 4.0
    Armenian-BSUTCC BY-SA 4.0
    Assyrian-ASCC BY-SA 4.0
    Bambara-CRBCC BY-SA 4.0
    Basque-BDTCC BY-NC-SA 3.0
    Beja-NSCCC BY-SA 4.0
    Belarusian-HSECC BY-SA 4.0
    Bengali-BRUCC BY-SA 4.0
    Bhojpuri-BHTBCC BY-SA 4.0
    Bororo-BDTCC BY-SA 4.0
    Breton-KEBCC BY-SA 4.0
    Bulgarian-BTBCC BY-NC-SA 3.0
    Buryat-BDTCC BY-SA 4.0
    Cantonese-HKCC BY-SA 4.0
    Catalan-AnCoraCC BY 4.0
    Cebuano-GJACC BY-SA 4.0
    Chinese-CFLCC BY-SA 4.0
    Chinese-GSDCC BY-SA 4.0
    Chinese-GSDSimpCC BY-SA 4.0
    Chinese-HKCC BY-SA 4.0
    Chinese-PUDCC BY-SA 3.0
    Chinese-PatentCharCC BY-NC-SA 3.0
    Chukchi-HSECC BY-SA 4.0
    Classical_Chinese-KyotoPD
    Coptic-ScriptoriumCC BY 4.0
    Croatian-SETCC BY-SA 4.0
    Czech-CACCC BY-SA 4.0
    Czech-CLTTCC BY-SA 4.0
    Czech-FicTreeCC BY-NC-SA 4.0
    Czech-PDTCC BY-NC-SA 4.0
    Czech-PUDCC BY-SA 4.0
    Danish-DDTCC BY-SA 4.0
    Dutch-AlpinoCC BY-SA 4.0
    Dutch-LassySmallCC BY-SA 4.0
    English-AtisCC BY-SA 4.0
    English-ESLSpokCC BY-SA 4.0
    English-EWTCC BY-SA 4.0
    English-GENTLECC BY-NC-SA 4.0
    English-GUMCC BY-NC-SA 4.0
    English-GUMRedditCC BY 4.0
    English-LinESCC BY-NC-SA 4.0
    English-PUDCC BY-SA 3.0
    English-ParTUTCC BY-NC-SA 4.0
    English-PronounsCC BY-SA 4.0
    Erzya-JRCC BY-SA 4.0
    Estonian-EDTCC BY-NC-SA 4.0
    Estonian-EWTCC BY-NC-SA 4.0
    Faroese-FarPaHCCC BY-SA 4.0
    Faroese-OFTCC BY-SA 4.0
    Finnish-FTBCC BY 4.0
    Finnish-OODCC BY-SA 4.0
    Finnish-PUDCC BY-SA 4.0
    Finnish-TDTCC BY-SA 4.0
    French-FQBLGPL-LR
    French-GSDCC BY-SA 4.0
    French-PUDCC BY-SA 3.0
    French-ParTUTCC BY-NC-SA 4.0
    French-ParisStoriesCC BY-SA 4.0
    French-RhapsodieCC BY-SA 4.0
    French-SequoiaLGPL-LR
    Frisian_Dutch-FameCC BY-SA 4.0
    Galician-CTGCC BY-NC-SA 3.0
    Galician-TreeGalLGPL-LR
    German-GSDCC BY-SA 4.0
    German-HDTCC BY-SA 4.0
    German-LITCC BY-NC-SA 4.0
    German-PUDCC BY-SA 3.0
    Gheg-GPSCC BY-SA 4.0
    Gothic-PROIELCC BY-NC-SA 3.0
    Greek-GDTCC BY-NC-SA 3.0
    Greek-GUDCC BY-SA 4.0
    Guajajara-TuDeTCC BY-SA 4.0
    Guarani-OldTuDeTCC BY-SA 4.0
    Hebrew-HTBCC BY-NC-SA 4.0
    Hebrew-IAHLTwikiCC BY-SA 4.0
    Hindi-HDTBCC BY-NC-SA 4.0
    Hindi-PUDCC BY-SA 3.0
    Hittite-HitTBCC BY-SA 4.0
    Hungarian-SzegedCC BY-NC-SA 3.0
    Icelandic-GCCC BY-SA 4.0
    Icelandic-IcePaHCCC BY-SA 4.0
    Icelandic-ModernCC BY-SA 4.0
    Icelandic-PUDCC BY-SA 4.0
    Indonesian-CSUICC BY-SA 4.0
    Indonesian-GSDCC BY-SA 4.0
    Indonesian-PUDCC BY-SA 3.0
    Irish-CadhanCC BY-SA 4.0
    Irish-IDTCC BY-SA 3.0
    Irish-TwittIrishCC BY-SA 4.0
    Italian-ISDTCC BY-NC-SA 3.0
    Italian-MarkITCC BY 4.0
    Italian-PUDCC BY-SA 3.0
    Italian-ParTUTCC BY-NC-SA 4.0
    Italian-ParlaMintCC BY-SA 4.0
    Italian-PoSTWITACC BY-NC-SA 4.0
    Italian-TWITTIROCC BY-SA 4.0
    Italian-VITCC BY-NC-SA 3.0
    Italian-ValicoCC BY-SA 4.0
    Japanese-BCCWJCC BY-NC-SA 4.0
    Japanese-BCCWJLUWCC BY-NC-SA 4.0
    Japanese-GSDCC BY-SA 4.0
    Japanese-GSDLUWCC BY-SA 4.0
    Japanese-PUDCC BY-SA 3.0
    Japanese-PUDLUWCC BY-SA 3.0
    Javanese-CSUICC BY-SA 4.0
    Kaapor-TuDeTCC BY-SA 4.0
    Kangri-KDTBCC BY-SA 4.0
    Karelian-KKPPCC BY-SA 4.0
    Karo-TuDeTCC BY-SA 4.0
    Kazakh-KTBCC BY-SA 4.0
    Khunsari-AHACC BY-SA 4.0
    Kiche-IUCC BY-SA 4.0
    Komi_Permyak-UHCC BY-SA 4.0
    Komi_Zyrian-IKDPCC BY-SA 4.0
    Komi_Zyrian-LatticeCC BY-SA 4.0
    Korean-GSDCC BY-SA 4.0
    Korean-KaistCC BY-SA 4.0
    Korean-PUDCC BY-SA 3.0
    Kurmanji-MGCC BY-SA 4.0
    Kyrgyz-KTMUCC BY-SA 4.0
    Latin-ITTBCC BY-NC-SA 3.0
    Latin-LLCTCC BY-SA 4.0
    Latin-PROIELCC BY-NC-SA 3.0
    Latin-PerseusCC BY-NC-SA 2.5
    Latin-UDanteCC BY-NC-SA 3.0
    Latvian-LVTBCC BY-SA 4.0
    Ligurian-GLTC-UDA 1.0
    Lithuanian-ALKSNISCC BY-SA 4.0
    Lithuanian-HSECC BY-SA 4.0
    Livvi-KKPPCC BY-SA 4.0
    Low_Saxon-LSDCCC BY-SA 4.0
    Madi-JarawaraCC BY-SA 4.0
    Maghrebi_Arabic_French-ArabiziCC BY-SA 4.0
    Makurap-TuDeTCC BY-SA 4.0
    Malayalam-UFALCC BY-SA 4.0
    Maltese-MUDTCC BY-SA 4.0
    Manx-CadhanGNU GPL 3.0
    Marathi-UFALCC BY-SA 4.0
    Mbya_Guarani-DooleyCC BY-NC-SA 4.0
    Mbya_Guarani-ThomasCC BY-NC-SA 4.0
    Moksha-JRCC BY-SA 4.0
    Munduruku-TuDeTCC BY-SA 4.0
    Naija-NSCCC BY-SA 4.0
    Nayini-AHACC BY-SA 4.0
    Neapolitan-RBCC BY-SA 4.0
    Nheengatu-CompLinCC BY-NC-SA 4.0
    North_Sami-GiellaCC BY-SA 4.0
    Norwegian-BokmaalCC BY-SA 4.0
    Norwegian-NynorskCC BY-SA 4.0
    Old_Church_Slavonic-PROIELCC BY-NC-SA 4.0
    Old_East_Slavic-BirchbarkCC BY-SA 4.0
    Old_East_Slavic-RNCCC BY-SA 4.0
    Old_East_Slavic-RuthenianCC BY-SA 4.0
    Old_East_Slavic-TOROTCC BY-NC-SA 4.0
    Old_French-SRCMFCC BY-NC-SA 3.0
    Old_Irish-DipSGGCC BY-NC-SA 4.0
    Old_Irish-DipWBGCC BY-SA 4.0
    Old_Turkish-TonqqCC0 1.0
    Persian-PerDTCC BY-SA 4.0
    Persian-SerajiCC BY-SA 4.0
    Polish-LFGGNU GPL 3.0
    Polish-PDBCC BY-NC-SA 4.0
    Polish-PUDCC BY-SA 4.0
    Pomak-PhilotisCC BY-NC-SA 3.0
    Portuguese-BosqueCC BY-SA 4.0
    Portuguese-CINTILCC BY-NC-ND 4.0
    Portuguese-PUDCC BY-SA 3.0
    Portuguese-PetroGoldCC BY-SA 4.0
    Romanian-ArTCC BY-SA 4.0
    Romanian-NonstandardCC BY-SA 4.0
    Romanian-RRTCC BY-SA 4.0
    Romanian-SiMoNERoCC BY-SA 4.0
    Russian-GSDCC BY-SA 4.0
    Russian-PUDCC BY-SA 3.0
    Russian-SynTagRusCC BY-NC-SA 4.0
    Russian-TaigaCC BY-SA 4.0
    Sanskrit-UFALCC BY-SA 4.0
    Sanskrit-VedicCC BY-SA 4.0
    Scottish_Gaelic-ARCOSGCC BY-SA 4.0
    Serbian-SETCC BY-SA 4.0
    Sinhala-STBCC BY-SA 4.0
    Skolt_Sami-GiellagasCC BY-SA 4.0
    Slovak-SNKCC BY-SA 4.0
    Slovenian-SSJCC BY-SA 4.0
    Slovenian-SSTCC BY-NC-SA 4.0
    Soi-AHACC BY-SA 4.0
    South_Levantine_Arabic-MADARCC BY-SA 4.0
    Spanish-AnCoraCC BY 4.0
    Spanish-GSDCC BY-SA 4.0
    Spanish-PUDCC BY-SA 3.0
    Swedish-LinESCC BY-NC-SA 4.0
    Swedish-PUDCC BY-SA 4.0
    Swedish-TalbankenCC BY-SA 4.0
    Swedish_Sign_Language-SSLCCC BY-SA 4.0
    Swiss_German-UZHCC BY-SA 4.0
    Tagalog-TRGCC BY-SA 4.0
    Tagalog-UgnayanCC BY-NC-SA 4.0
    Tamil-MWTTCC BY-SA 4.0
    Tamil-TTBCC BY-NC-SA 3.0
    Tatar-NMCTTCC BY-SA 4.0
    Teko-TuDeTCC BY-SA 4.0
    Telugu-MTGCC BY-SA 4.0
    Thai-PUDCC BY-SA 3.0
    Tupinamba-TuDeTCC BY-SA 4.0
    Turkish-AtisCC BY-SA 4.0
    Turkish-BOUNCC BY-SA 4.0
    Turkish-FrameNetCC BY-SA 4.0
    Turkish-GBCC BY-SA 4.0
    Turkish-IMSTCC BY-NC-SA 4.0
    Turkish-KenetCC BY-SA 4.0
    Turkish-PUDCC BY-SA 3.0
    Turkish-PennCC BY-SA 4.0
    Turkish-TourismCC BY-SA 4.0
    Turkish_German-SAGTCC BY-NC-SA 4.0
    Ukrainian-IUCC BY-NC-SA 4.0
    Umbrian-IKUVINACC BY-SA 4.0
    Upper_Sorbian-UFALCC BY-SA 4.0
    Urdu-UDTBCC BY-NC-SA 4.0
    Uyghur-UDTCC BY-SA 4.0
    Vietnamese-VTBCC BY-SA 4.0
    Warlpiri-UFALCC BY-SA 4.0
    Welsh-CCGCC BY-SA 4.0
    Western_Armenian-ArmTDPCC BY-SA 4.0
    Western_Sierra_Puebla_Nahuatl-ITMLCC BY-SA 4.0
    Wolof-WTBCC BY-SA 4.0
    Xavante-XDTCC BY-SA 4.0
    Xibe-XDTCC BY-NC-SA 3.0
    Yakut-YKTDTCC BY-SA 4.0
    Yoruba-YTBCC BY-SA 4.0
    Yupik-SLICC BY-SA 4.0
    Zaar-AutogrammCC BY-SA 4.0
    + +

    Licenses

    + + + + + + + + + + + + + + + + + + + + + +
    LicenseURL
    C-UDA 1.0https://cdla.dev/computational-use-of-data-agreement-v1-0/
    CC BY 4.0http://creativecommons.org/licenses/by/4.0/
    CC BY-NC 4.0http://creativecommons.org/licenses/by-nc/4.0/
    CC BY-NC-ND 3.0http://creativecommons.org/licenses/by-nc-nd/3.0/
    CC BY-NC-ND 4.0http://creativecommons.org/licenses/by-nc-nd/4.0/
    CC BY-NC-SA 2.5http://creativecommons.org/licenses/by-nc-sa/2.5/
    CC BY-NC-SA 3.0http://creativecommons.org/licenses/by-nc-sa/3.0/
    CC BY-NC-SA 4.0http://creativecommons.org/licenses/by-nc-sa/4.0/
    CC BY-SA 3.0http://creativecommons.org/licenses/by-sa/3.0/
    CC BY-SA 4.0http://creativecommons.org/licenses/by-sa/4.0/
    CC0 1.0http://creativecommons.org/publicdomain/zero/1.0/
    GNU GPL 2.0http://opensource.org/licenses/GPL-2.0
    GNU GPL 3.0http://opensource.org/licenses/GPL-3.0
    LGPL-LRhttp://www.ida.liu.se/~sarst/bitse/lgpllr.html
    PDpublic domain
    +
    +
    diff --git a/src/static-files/license-ud-2.13.html b/src/static-files/license-ud-2.13.html new file mode 100644 index 00000000000..b934e0e9639 --- /dev/null +++ b/src/static-files/license-ud-2.13.html @@ -0,0 +1,1094 @@ +
    +

    Universal Dependencies v2.13 License Agreement

    +
    + (2023/11/15) +
    +
    +
    +

    Universal Dependencies v2.13 License Terms

    +

    Universal Dependencies v2.13 (referred to as “UD” in the rest of this document) + is a collection of linguistic data and tools. Each of the treebanks has its own license terms + and you (the “User”) are responsible for complying with the license terms + applicable to those parts of UD which you use. If you do not agree with the license terms, + you must stop using UD and destroy all copies of UD data that you have obtained.

    +
    +

    You are specifically reminded that some of the treebanks + permit only non-commercial usage.

    +
    +

    The additional software tools are provided as-is (without any warranty) and are redistributed + under GNU GPL Version 2.

    +
    +

    The license for every treebank included in the release is specified in the appropriate + treebank directory.

    +
    + +

    Overview of the treebanks and their license terms

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TreebankLicense
    Abaza-ATBCC BY-SA 4.0
    Afrikaans-AfriBoomsCC BY-SA 4.0
    Akkadian-PISANDUBCC BY-SA 4.0
    Akkadian-RIAOCC BY-SA 3.0
    Akuntsu-TuDeTCC BY-SA 4.0
    Albanian-TSACC BY-SA 4.0
    Amharic-ATTCC BY-SA 4.0
    Ancient_Greek-PROIELCC BY-NC-SA 3.0
    Ancient_Greek-PTNKCC BY-SA 4.0
    Ancient_Greek-PerseusCC BY-NC-SA 2.5
    Ancient_Hebrew-PTNKCC BY-NC 4.0
    Apurina-UFPACC BY-SA 4.0
    Arabic-NYUADCC BY-SA 4.0
    Arabic-PADTCC BY-NC-SA 3.0
    Arabic-PUDCC BY-SA 3.0
    Armenian-ArmTDPCC BY-SA 4.0
    Armenian-BSUTCC BY-SA 4.0
    Assyrian-ASCC BY-SA 4.0
    Bambara-CRBCC BY-SA 4.0
    Basque-BDTCC BY-NC-SA 3.0
    Beja-NSCCC BY-SA 4.0
    Belarusian-HSECC BY-SA 4.0
    Bengali-BRUCC BY-SA 4.0
    Bhojpuri-BHTBCC BY-SA 4.0
    Bororo-BDTCC BY-SA 4.0
    Breton-KEBCC BY-SA 4.0
    Bulgarian-BTBCC BY-NC-SA 3.0
    Buryat-BDTCC BY-SA 4.0
    Cantonese-HKCC BY-SA 4.0
    Catalan-AnCoraCC BY 4.0
    Cebuano-GJACC BY-SA 4.0
    Chinese-BeginnerCC BY-NC-SA 3.0
    Chinese-CFLCC BY-SA 4.0
    Chinese-GSDCC BY-SA 4.0
    Chinese-GSDSimpCC BY-SA 4.0
    Chinese-HKCC BY-SA 4.0
    Chinese-PUDCC BY-SA 3.0
    Chinese-PatentCharCC BY-NC-SA 3.0
    Chukchi-HSECC BY-SA 4.0
    Classical_Armenian-CAVaLCC BY-SA 4.0
    Classical_Chinese-KyotoPD
    Coptic-ScriptoriumCC BY 4.0
    Croatian-SETCC BY-SA 4.0
    Czech-CACCC BY-SA 4.0
    Czech-CLTTCC BY-SA 4.0
    Czech-FicTreeCC BY-NC-SA 4.0
    Czech-PDTCC BY-NC-SA 4.0
    Czech-PUDCC BY-SA 4.0
    Czech-PoetryCC BY-SA 4.0
    Danish-DDTCC BY-SA 4.0
    Dutch-AlpinoCC BY-SA 4.0
    Dutch-LassySmallCC BY-SA 4.0
    English-AtisCC BY-SA 4.0
    English-ESLSpokCC BY-SA 4.0
    English-EWTCC BY-SA 4.0
    English-GENTLECC BY-NC-SA 4.0
    English-GUMCC BY-NC-SA 4.0
    English-GUMRedditCC BY 4.0
    English-LinESCC BY-NC-SA 4.0
    English-PUDCC BY-SA 3.0
    English-ParTUTCC BY-NC-SA 4.0
    English-PronounsCC BY-SA 4.0
    Erzya-JRCC BY-SA 4.0
    Estonian-EDTCC BY-NC-SA 4.0
    Estonian-EWTCC BY-NC-SA 4.0
    Faroese-FarPaHCCC BY-SA 4.0
    Faroese-OFTCC BY-SA 4.0
    Finnish-FTBCC BY 4.0
    Finnish-OODCC BY-SA 4.0
    Finnish-PUDCC BY-SA 4.0
    Finnish-TDTCC BY-SA 4.0
    French-FQBLGPL-LR
    French-GSDCC BY-SA 4.0
    French-PUDCC BY-SA 3.0
    French-ParTUTCC BY-NC-SA 4.0
    French-ParisStoriesCC BY-SA 4.0
    French-RhapsodieCC BY-SA 4.0
    French-SequoiaLGPL-LR
    Frisian_Dutch-FameCC BY-SA 4.0
    Galician-CTGCC BY-NC-SA 3.0
    Galician-TreeGalLGPL-LR
    Georgian-GLCCC BY-SA 4.0
    German-GSDCC BY-SA 4.0
    German-HDTCC BY-SA 4.0
    German-LITCC BY-NC-SA 4.0
    German-PUDCC BY-SA 3.0
    Gheg-GPSCC BY-SA 4.0
    Gothic-PROIELCC BY-NC-SA 3.0
    Greek-GDTCC BY-NC-SA 3.0
    Greek-GUDCC BY-SA 4.0
    Guajajara-TuDeTCC BY-SA 4.0
    Guarani-OldTuDeTCC BY-SA 4.0
    Haitian_Creole-AutogrammCC BY-SA 4.0
    Hebrew-HTBCC BY-NC-SA 4.0
    Hebrew-IAHLTwikiCC BY-SA 4.0
    Highland_Puebla_Nahuatl-ITMLCC BY-SA 4.0
    Hindi-HDTBCC BY-NC-SA 4.0
    Hindi-PUDCC BY-SA 3.0
    Hittite-HitTBCC BY-SA 4.0
    Hungarian-SzegedCC BY-NC-SA 3.0
    Icelandic-GCCC BY-SA 4.0
    Icelandic-IcePaHCCC BY-SA 4.0
    Icelandic-ModernCC BY-SA 4.0
    Icelandic-PUDCC BY-SA 4.0
    Indonesian-CSUICC BY-SA 4.0
    Indonesian-GSDCC BY-SA 4.0
    Indonesian-PUDCC BY-SA 3.0
    Irish-CadhanCC BY-SA 4.0
    Irish-IDTCC BY-SA 3.0
    Irish-TwittIrishCC BY-SA 4.0
    Italian-ISDTCC BY-NC-SA 3.0
    Italian-MarkITCC BY 4.0
    Italian-OldCC BY-SA 4.0
    Italian-PUDCC BY-SA 3.0
    Italian-ParTUTCC BY-NC-SA 4.0
    Italian-ParlaMintCC BY-SA 4.0
    Italian-PoSTWITACC BY-NC-SA 4.0
    Italian-TWITTIROCC BY-SA 4.0
    Italian-VITCC BY-NC-SA 3.0
    Italian-ValicoCC BY-SA 4.0
    Japanese-BCCWJCC BY-NC-SA 4.0
    Japanese-BCCWJLUWCC BY-NC-SA 4.0
    Japanese-GSDCC BY-SA 4.0
    Japanese-GSDLUWCC BY-SA 4.0
    Japanese-PUDCC BY-SA 3.0
    Japanese-PUDLUWCC BY-SA 3.0
    Javanese-CSUICC BY-SA 4.0
    Kaapor-TuDeTCC BY-SA 4.0
    Kangri-KDTBCC BY-SA 4.0
    Karelian-KKPPCC BY-SA 4.0
    Karo-TuDeTCC BY-SA 4.0
    Kazakh-KTBCC BY-SA 4.0
    Khunsari-AHACC BY-SA 4.0
    Kiche-IUCC BY-SA 4.0
    Komi_Permyak-UHCC BY-SA 4.0
    Komi_Zyrian-IKDPCC BY-SA 4.0
    Komi_Zyrian-LatticeCC BY-SA 4.0
    Korean-GSDCC BY-SA 4.0
    Korean-KaistCC BY-SA 4.0
    Korean-PUDCC BY-SA 3.0
    Kurmanji-MGCC BY-SA 4.0
    Kyrgyz-KTMUCC BY-SA 4.0
    Latin-ITTBCC BY-NC-SA 3.0
    Latin-LLCTCC BY-SA 4.0
    Latin-PROIELCC BY-NC-SA 3.0
    Latin-PerseusCC BY-NC-SA 2.5
    Latin-UDanteCC BY-NC-SA 3.0
    Latvian-LVTBCC BY-SA 4.0
    Ligurian-GLTC-UDA 1.0
    Lithuanian-ALKSNISCC BY-SA 4.0
    Lithuanian-HSECC BY-SA 4.0
    Livvi-KKPPCC BY-SA 4.0
    Low_Saxon-LSDCCC BY-SA 4.0
    Macedonian-MTBCC BY-SA 4.0
    Madi-JarawaraCC BY-SA 4.0
    Maghrebi_Arabic_French-ArabiziCC BY-SA 4.0
    Makurap-TuDeTCC BY-SA 4.0
    Malayalam-UFALCC BY-SA 4.0
    Maltese-MUDTCC BY-SA 4.0
    Manx-CadhanGNU GPL 3.0
    Marathi-UFALCC BY-SA 4.0
    Mbya_Guarani-DooleyCC BY-NC-SA 4.0
    Mbya_Guarani-ThomasCC BY-NC-SA 4.0
    Middle_French-PROFITEROLECC BY-NC-SA 4.0
    Moksha-JRCC BY-SA 4.0
    Munduruku-TuDeTCC BY-SA 4.0
    Naija-NSCCC BY-SA 4.0
    Nayini-AHACC BY-SA 4.0
    Neapolitan-RBCC BY-SA 4.0
    Nheengatu-CompLinCC BY-NC-SA 4.0
    North_Sami-GiellaCC BY-SA 4.0
    Norwegian-BokmaalCC BY-SA 4.0
    Norwegian-NynorskCC BY-SA 4.0
    Old_Church_Slavonic-PROIELCC BY-NC-SA 4.0
    Old_East_Slavic-BirchbarkCC BY-SA 4.0
    Old_East_Slavic-RNCCC BY-SA 4.0
    Old_East_Slavic-RuthenianCC BY-SA 4.0
    Old_East_Slavic-TOROTCC BY-NC-SA 4.0
    Old_French-PROFITEROLECC BY-NC-SA 3.0
    Old_Irish-DipSGGCC BY-NC-SA 4.0
    Old_Irish-DipWBGCC BY-SA 4.0
    Old_Turkish-TonqqCC0 1.0
    Persian-PerDTCC BY-SA 4.0
    Persian-SerajiCC BY-SA 4.0
    Polish-LFGGNU GPL 3.0
    Polish-PDBCC BY-NC-SA 4.0
    Polish-PUDCC BY-SA 4.0
    Pomak-PhilotisCC BY-NC-SA 3.0
    Portuguese-BosqueCC BY-SA 4.0
    Portuguese-CINTILCC BY-NC-ND 4.0
    Portuguese-GSDCC BY-SA 4.0
    Portuguese-PUDCC BY-SA 3.0
    Portuguese-PetroGoldCC BY-SA 4.0
    Portuguese-PorttinariCC BY 4.0
    Romanian-ArTCC BY-SA 4.0
    Romanian-NonstandardCC BY-SA 4.0
    Romanian-RRTCC BY-SA 4.0
    Romanian-SiMoNERoCC BY-SA 4.0
    Russian-GSDCC BY-SA 4.0
    Russian-PUDCC BY-SA 3.0
    Russian-PoetryCC BY-SA 4.0
    Russian-SynTagRusCC BY-NC-SA 4.0
    Russian-TaigaCC BY-SA 4.0
    Sanskrit-UFALCC BY-SA 4.0
    Sanskrit-VedicCC BY-SA 4.0
    Scottish_Gaelic-ARCOSGCC BY-SA 4.0
    Serbian-SETCC BY-SA 4.0
    Sinhala-STBCC BY-SA 4.0
    Skolt_Sami-GiellagasCC BY-SA 4.0
    Slovak-SNKCC BY-SA 4.0
    Slovenian-SSJCC BY-SA 4.0
    Slovenian-SSTCC BY-NC-SA 4.0
    Soi-AHACC BY-SA 4.0
    South_Levantine_Arabic-MADARCC BY-SA 4.0
    Spanish-AnCoraCC BY 4.0
    Spanish-GSDCC BY-SA 4.0
    Spanish-PUDCC BY-SA 3.0
    Swedish-LinESCC BY-NC-SA 4.0
    Swedish-PUDCC BY-SA 4.0
    Swedish-TalbankenCC BY-SA 4.0
    Swedish_Sign_Language-SSLCCC BY-SA 4.0
    Swiss_German-UZHCC BY-SA 4.0
    Tagalog-TRGCC BY-SA 4.0
    Tagalog-UgnayanCC BY-NC-SA 4.0
    Tamil-MWTTCC BY-SA 4.0
    Tamil-TTBCC BY-NC-SA 3.0
    Tatar-NMCTTCC BY-SA 4.0
    Teko-TuDeTCC BY-SA 4.0
    Telugu-MTGCC BY-SA 4.0
    Thai-PUDCC BY-SA 3.0
    Tupinamba-TuDeTCC BY-SA 4.0
    Turkish-AtisCC BY-SA 4.0
    Turkish-BOUNCC BY-SA 4.0
    Turkish-FrameNetCC BY-SA 4.0
    Turkish-GBCC BY-SA 4.0
    Turkish-IMSTCC BY-NC-SA 4.0
    Turkish-KenetCC BY-SA 4.0
    Turkish-PUDCC BY-SA 3.0
    Turkish-PennCC BY-SA 4.0
    Turkish-TourismCC BY-SA 4.0
    Turkish_German-SAGTCC BY-NC-SA 4.0
    Ukrainian-IUCC BY-NC-SA 4.0
    Umbrian-IKUVINACC BY-SA 4.0
    Upper_Sorbian-UFALCC BY-SA 4.0
    Urdu-UDTBCC BY-NC-SA 4.0
    Uyghur-UDTCC BY-SA 4.0
    Veps-VWTCC BY-SA 4.0
    Vietnamese-VTBCC BY-SA 4.0
    Warlpiri-UFALCC BY-SA 4.0
    Welsh-CCGCC BY-SA 4.0
    Western_Armenian-ArmTDPCC BY-SA 4.0
    Western_Sierra_Puebla_Nahuatl-ITMLCC BY-SA 4.0
    Wolof-WTBCC BY-SA 4.0
    Xavante-XDTCC BY-SA 4.0
    Xibe-XDTCC BY-NC-SA 3.0
    Yakut-YKTDTCC BY-SA 4.0
    Yoruba-YTBCC BY-SA 4.0
    Yupik-SLICC BY-SA 4.0
    Zaar-AutogrammCC BY-SA 4.0
    + +

    Licenses

    + + + + + + + + + + + + + + + + + + + + + +
    LicenseURL
    C-UDA 1.0https://cdla.dev/computational-use-of-data-agreement-v1-0/
    CC BY 4.0http://creativecommons.org/licenses/by/4.0/
    CC BY-NC 4.0http://creativecommons.org/licenses/by-nc/4.0/
    CC BY-NC-ND 3.0http://creativecommons.org/licenses/by-nc-nd/3.0/
    CC BY-NC-ND 4.0http://creativecommons.org/licenses/by-nc-nd/4.0/
    CC BY-NC-SA 2.5http://creativecommons.org/licenses/by-nc-sa/2.5/
    CC BY-NC-SA 3.0http://creativecommons.org/licenses/by-nc-sa/3.0/
    CC BY-NC-SA 4.0http://creativecommons.org/licenses/by-nc-sa/4.0/
    CC BY-SA 3.0http://creativecommons.org/licenses/by-sa/3.0/
    CC BY-SA 4.0http://creativecommons.org/licenses/by-sa/4.0/
    CC0 1.0http://creativecommons.org/publicdomain/zero/1.0/
    GNU GPL 2.0http://opensource.org/licenses/GPL-2.0
    GNU GPL 3.0http://opensource.org/licenses/GPL-3.0
    LGPL-LRhttps://spdx.org/licenses/LGPLLR.html
    PDpublic domain
    +
    +
    diff --git a/src/static-files/license-ud-2.14.html b/src/static-files/license-ud-2.14.html new file mode 100644 index 00000000000..5ee24ee0002 --- /dev/null +++ b/src/static-files/license-ud-2.14.html @@ -0,0 +1,1189 @@ +
    +

    Universal Dependencies v2.14 License Agreement

    +
    + (2024/05/15) +
    +
    +
    +

    Universal Dependencies v2.14 License Terms

    +

    Universal Dependencies v2.14 (referred to as “UD” in the rest of this document) + is a collection of linguistic data and tools. Each of the treebanks has its own license terms + and you (the “User”) are responsible for complying with the license terms + applicable to those parts of UD which you use. If you do not agree with the license terms, + you must stop using UD and destroy all copies of UD data that you have obtained.

    +
    +

    You are specifically reminded that some of the treebanks + permit only non-commercial usage.

    +
    +

    The additional software tools are provided as-is (without any warranty) and are redistributed + under GNU GPL Version 2.

    +
    +

    The license for every treebank included in the release is specified in the appropriate + treebank directory.

    +
    +

    Overview of the treebanks and their license terms

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TreebankLicense
    Abaza-ATBCC BY-SA 4.0
    Abkhaz-AbNCCC BY-SA 4.0
    Afrikaans-AfriBoomsCC BY-SA 4.0
    Akkadian-PISANDUBCC BY-SA 4.0
    Akkadian-RIAOCC BY-SA 3.0
    Akuntsu-TuDeTCC BY-SA 4.0
    Albanian-TSACC BY-SA 4.0
    Amharic-ATTCC BY-SA 4.0
    Ancient_Greek-PROIELCC BY-NC-SA 3.0
    Ancient_Greek-PTNKCC BY-SA 4.0
    Ancient_Greek-PerseusCC BY-NC-SA 2.5
    Ancient_Hebrew-PTNKCC BY-NC 4.0
    Apurina-UFPACC BY-SA 4.0
    Arabic-NYUADCC BY-SA 4.0
    Arabic-PADTCC BY-NC-SA 3.0
    Arabic-PUDCC BY-SA 3.0
    Armenian-ArmTDPCC BY-SA 4.0
    Armenian-BSUTCC BY-SA 4.0
    Assyrian-ASCC BY-SA 4.0
    Azerbaijani-TueCLCC BY-SA 4.0
    Bambara-CRBCC BY-SA 4.0
    Basque-BDTCC BY-NC-SA 3.0
    Bavarian-MaiBaamCC BY-SA 4.0
    Beja-NSCCC BY-SA 4.0
    Belarusian-HSECC BY-SA 4.0
    Bengali-BRUCC BY-SA 4.0
    Bhojpuri-BHTBCC BY-SA 4.0
    Bororo-BDTCC BY-SA 4.0
    Breton-KEBCC BY-SA 4.0
    Bulgarian-BTBCC BY-NC-SA 3.0
    Buryat-BDTCC BY-SA 4.0
    Cantonese-HKCC BY-SA 4.0
    Cappadocian-TueCLCC BY-SA 4.0
    Catalan-AnCoraCC BY 4.0
    Cebuano-GJACC BY-SA 4.0
    Chinese-BeginnerCC BY-NC-SA 3.0
    Chinese-CFLCC BY-SA 4.0
    Chinese-GSDCC BY-SA 4.0
    Chinese-GSDSimpCC BY-SA 4.0
    Chinese-HKCC BY-SA 4.0
    Chinese-PUDCC BY-SA 3.0
    Chinese-PatentCharCC BY-NC-SA 3.0
    Chukchi-HSECC BY-SA 4.0
    Classical_Armenian-CAVaLCC BY-SA 4.0
    Classical_Chinese-KyotoPD
    Classical_Chinese-TueCLCC BY-SA 4.0
    Coptic-ScriptoriumCC BY 4.0
    Croatian-SETCC BY-SA 4.0
    Czech-CACCC BY-SA 4.0
    Czech-CLTTCC BY-SA 4.0
    Czech-FicTreeCC BY-NC-SA 4.0
    Czech-PDTCC BY-NC-SA 4.0
    Czech-PUDCC BY-SA 4.0
    Czech-PoetryCC BY-SA 4.0
    Danish-DDTCC BY-SA 4.0
    Dutch-AlpinoCC BY-SA 4.0
    Dutch-LassySmallCC BY-SA 4.0
    Egyptian-UJaenCC BY-SA 4.0
    English-AtisCC BY-SA 4.0
    English-CTeTexCC BY-SA 4.0
    English-ESLSpokCC BY-SA 4.0
    English-EWTCC BY-SA 4.0
    English-GENTLECC BY-NC-SA 4.0
    English-GUMCC BY-NC-SA 4.0
    English-GUMRedditCC BY 4.0
    English-LinESCC BY-NC-SA 4.0
    English-PUDCC BY-SA 3.0
    English-ParTUTCC BY-NC-SA 4.0
    English-PronounsCC BY-SA 4.0
    Erzya-JRCC BY-SA 4.0
    Estonian-EDTCC BY-NC-SA 4.0
    Estonian-EWTCC BY-NC-SA 4.0
    Faroese-FarPaHCCC BY-SA 4.0
    Faroese-OFTCC BY-SA 4.0
    Finnish-FTBCC BY 4.0
    Finnish-OODCC BY-SA 4.0
    Finnish-PUDCC BY-SA 4.0
    Finnish-TDTCC BY-SA 4.0
    French-FQBLGPL-LR
    French-GSDCC BY-SA 4.0
    French-PUDCC BY-SA 3.0
    French-ParTUTCC BY-NC-SA 4.0
    French-ParisStoriesCC BY-SA 4.0
    French-RhapsodieCC BY-SA 4.0
    French-SequoiaLGPL-LR
    Frisian_Dutch-FameCC BY-SA 4.0
    Galician-CTGCC BY-NC-SA 3.0
    Galician-PUDCC BY-SA 4.0
    Galician-TreeGalLGPL-LR
    Georgian-GLCCC BY-SA 4.0
    German-GSDCC BY-SA 4.0
    German-HDTCC BY-SA 4.0
    German-LITCC BY-NC-SA 4.0
    German-PUDCC BY-SA 3.0
    Gheg-GPSCC BY-SA 4.0
    Gothic-PROIELCC BY-NC-SA 3.0
    Greek-GDTCC BY-NC-SA 3.0
    Greek-GUDCC BY-SA 4.0
    Guajajara-TuDeTCC BY-SA 4.0
    Guarani-OldTuDeTCC BY-SA 4.0
    Gujarati-GujTBCC BY-SA 4.0
    Haitian_Creole-AutogrammCC BY-SA 4.0
    Hausa-NorthernAutogrammCC BY-SA 4.0
    Hausa-SouthernAutogrammCC BY-SA 4.0
    Hebrew-HTBCC BY-NC-SA 4.0
    Hebrew-IAHLTwikiCC BY-SA 4.0
    Highland_Puebla_Nahuatl-ITMLCC BY-SA 4.0
    Hindi-HDTBCC BY-NC-SA 4.0
    Hindi-PUDCC BY-SA 3.0
    Hittite-HitTBCC BY-SA 4.0
    Hungarian-SzegedCC BY-NC-SA 3.0
    Icelandic-GCCC BY-SA 4.0
    Icelandic-IcePaHCCC BY-SA 4.0
    Icelandic-ModernCC BY-SA 4.0
    Icelandic-PUDCC BY-SA 4.0
    Indonesian-CSUICC BY-SA 4.0
    Indonesian-GSDCC BY-SA 4.0
    Indonesian-PUDCC BY-SA 3.0
    Irish-CadhanCC BY-SA 4.0
    Irish-IDTCC BY-SA 3.0
    Irish-TwittIrishCC BY-SA 4.0
    Italian-ISDTCC BY-NC-SA 3.0
    Italian-MarkITCC BY 4.0
    Italian-OldCC BY-SA 4.0
    Italian-PUDCC BY-SA 3.0
    Italian-ParTUTCC BY-NC-SA 4.0
    Italian-ParlaMintCC BY-SA 4.0
    Italian-PoSTWITACC BY-NC-SA 4.0
    Italian-TWITTIROCC BY-SA 4.0
    Italian-VITCC BY-NC-SA 3.0
    Italian-ValicoCC BY-SA 4.0
    Japanese-BCCWJCC BY-NC-SA 4.0
    Japanese-BCCWJLUWCC BY-NC-SA 4.0
    Japanese-GSDCC BY-SA 4.0
    Japanese-GSDLUWCC BY-SA 4.0
    Japanese-PUDCC BY-SA 3.0
    Japanese-PUDLUWCC BY-SA 3.0
    Javanese-CSUICC BY-SA 4.0
    Kaapor-TuDeTCC BY-SA 4.0
    Kangri-KDTBCC BY-SA 4.0
    Karelian-KKPPCC BY-SA 4.0
    Karo-TuDeTCC BY-SA 4.0
    Kazakh-KTBCC BY-SA 4.0
    Khunsari-AHACC BY-SA 4.0
    Kiche-IUCC BY-SA 4.0
    Komi_Permyak-UHCC BY-SA 4.0
    Komi_Zyrian-IKDPCC BY-SA 4.0
    Komi_Zyrian-LatticeCC BY-SA 4.0
    Korean-GSDCC BY-SA 4.0
    Korean-KaistCC BY-SA 4.0
    Korean-PUDCC BY-SA 3.0
    Kurmanji-MGCC BY-SA 4.0
    Kyrgyz-KTMUCC BY-SA 4.0
    Kyrgyz-TueCLCC BY-SA 4.0
    Latgalian-CairoCC BY-SA 4.0
    Latin-CIRCSECC BY-SA 4.0
    Latin-ITTBCC BY-NC-SA 3.0
    Latin-LLCTCC BY-SA 4.0
    Latin-PROIELCC BY-NC-SA 3.0
    Latin-PerseusCC BY-NC-SA 2.5
    Latin-UDanteCC BY-NC-SA 3.0
    Latvian-CairoCC BY-SA 4.0
    Latvian-LVTBCC BY-SA 4.0
    Ligurian-GLTC-UDA 1.0
    Lithuanian-ALKSNISCC BY-SA 4.0
    Lithuanian-HSECC BY-SA 4.0
    Livvi-KKPPCC BY-SA 4.0
    Low_Saxon-LSDCCC BY-SA 4.0
    Luxembourgish-LuxBankCC BY-SA 4.0
    Macedonian-MTBCC BY-SA 4.0
    Madi-JarawaraCC BY-SA 4.0
    Maghrebi_Arabic_French-ArabiziCC BY-SA 4.0
    Makurap-TuDeTCC BY-SA 4.0
    Malayalam-UFALCC BY-SA 4.0
    Maltese-MUDTCC BY-SA 4.0
    Manx-CadhanGNU GPL 3.0
    Marathi-UFALCC BY-SA 4.0
    Mbya_Guarani-DooleyCC BY-NC-SA 4.0
    Mbya_Guarani-ThomasCC BY-NC-SA 4.0
    Middle_French-PROFITEROLECC BY-NC-SA 4.0
    Moksha-JRCC BY-SA 4.0
    Munduruku-TuDeTCC BY-SA 4.0
    Naija-NSCCC BY-SA 4.0
    Nayini-AHACC BY-SA 4.0
    Neapolitan-RBCC BY-SA 4.0
    Nheengatu-CompLinCC BY-NC-SA 4.0
    North_Sami-GiellaCC BY-SA 4.0
    Norwegian-BokmaalCC BY-SA 4.0
    Norwegian-NynorskCC BY-SA 4.0
    Old_Church_Slavonic-PROIELCC BY-NC-SA 4.0
    Old_East_Slavic-BirchbarkCC BY-SA 4.0
    Old_East_Slavic-RNCCC BY-SA 4.0
    Old_East_Slavic-RuthenianCC BY-SA 4.0
    Old_East_Slavic-TOROTCC BY-NC-SA 4.0
    Old_French-PROFITEROLECC BY-NC-SA 3.0
    Old_Irish-DipSGGCC BY-NC-SA 4.0
    Old_Irish-DipWBGCC BY-SA 4.0
    Old_Turkish-ClausalCC0 1.0
    Ottoman_Turkish-BOUNCC BY-SA 4.0
    Ottoman_Turkish-DUDUCC BY-SA 4.0
    Paumari-TueCLCC BY-SA 4.0
    Persian-PerDTCC BY-SA 4.0
    Persian-SerajiCC BY-SA 4.0
    Polish-LFGGNU GPL 3.0
    Polish-PDBCC BY-NC-SA 4.0
    Polish-PUDCC BY-SA 4.0
    Pomak-PhilotisCC BY-NC-SA 3.0
    Portuguese-BosqueCC BY-SA 4.0
    Portuguese-CINTILCC BY-NC-ND 4.0
    Portuguese-GSDCC BY-SA 4.0
    Portuguese-PUDCC BY-SA 3.0
    Portuguese-PetroGoldCC BY-SA 4.0
    Portuguese-PorttinariCC BY 4.0
    Romanian-ArTCC BY-SA 4.0
    Romanian-NonstandardCC BY-SA 4.0
    Romanian-RRTCC BY-SA 4.0
    Romanian-SiMoNERoCC BY-SA 4.0
    Romanian-TueCLCC BY-SA 4.0
    Russian-GSDCC BY-SA 4.0
    Russian-PUDCC BY-SA 3.0
    Russian-PoetryCC BY-SA 4.0
    Russian-SynTagRusCC BY-NC-SA 4.0
    Russian-TaigaCC BY-SA 4.0
    Sanskrit-UFALCC BY-SA 4.0
    Sanskrit-VedicCC BY-SA 4.0
    Scottish_Gaelic-ARCOSGCC BY-SA 4.0
    Serbian-SETCC BY-SA 4.0
    Sinhala-STBCC BY-SA 4.0
    Skolt_Sami-GiellagasCC BY-SA 4.0
    Slovak-SNKCC BY-SA 4.0
    Slovenian-SSJCC BY-SA 4.0
    Slovenian-SSTCC BY-NC-SA 4.0
    Soi-AHACC BY-SA 4.0
    South_Levantine_Arabic-MADARCC BY-SA 4.0
    Spanish-AnCoraCC BY 4.0
    Spanish-COSERCC BY-SA 4.0
    Spanish-GSDCC BY-SA 4.0
    Spanish-PUDCC BY-SA 3.0
    Swedish-LinESCC BY-NC-SA 4.0
    Swedish-PUDCC BY-SA 4.0
    Swedish-TalbankenCC BY-SA 4.0
    Swedish_Sign_Language-SSLCCC BY-SA 4.0
    Swiss_German-UZHCC BY-SA 4.0
    Tagalog-TRGCC BY-SA 4.0
    Tagalog-UgnayanCC BY-NC-SA 4.0
    Tamil-MWTTCC BY-SA 4.0
    Tamil-TTBCC BY-NC-SA 3.0
    Tatar-NMCTTCC BY-SA 4.0
    Teko-TuDeTCC BY-SA 4.0
    Telugu-MTGCC BY-SA 4.0
    Telugu_English-TECTCC BY-SA 4.0
    Thai-PUDCC BY-SA 3.0
    Tswana-PopapoleloCC BY-SA 4.0
    Tupinamba-TuDeTCC BY-SA 4.0
    Turkish-AtisCC BY-SA 4.0
    Turkish-BOUNCC BY-SA 4.0
    Turkish-FrameNetCC BY-SA 4.0
    Turkish-GBCC BY-SA 4.0
    Turkish-IMSTCC BY-NC-SA 4.0
    Turkish-KenetCC BY-SA 4.0
    Turkish-PUDCC BY-SA 3.0
    Turkish-PennCC BY-SA 4.0
    Turkish-TourismCC BY-SA 4.0
    Turkish_German-SAGTCC BY-NC-SA 4.0
    Ukrainian-IUCC BY-NC-SA 4.0
    Umbrian-IKUVINACC BY-SA 4.0
    Upper_Sorbian-UFALCC BY-SA 4.0
    Urdu-UDTBCC BY-NC-SA 4.0
    Uyghur-UDTCC BY-SA 4.0
    Veps-VWTCC BY-SA 4.0
    Vietnamese-TueCLCC BY-SA 4.0
    Vietnamese-VTBCC BY-SA 4.0
    Warlpiri-UFALCC BY-SA 4.0
    Welsh-CCGCC BY-SA 4.0
    Western_Armenian-ArmTDPCC BY-SA 4.0
    Western_Sierra_Puebla_Nahuatl-ITMLCC BY-SA 4.0
    Wolof-WTBCC BY-SA 4.0
    Xavante-XDTCC BY-SA 4.0
    Xibe-XDTCC BY-NC-SA 3.0
    Yakut-YKTDTCC BY-SA 4.0
    Yoruba-YTBCC BY-SA 4.0
    Yupik-SLICC BY-SA 4.0
    Zaar-AutogrammCC BY-SA 4.0
    + +

    Licenses

    + + + + + + + + + + + + + + + + + + + + + +
    LicenseURL
    C-UDA 1.0https://cdla.dev/computational-use-of-data-agreement-v1-0/
    CC BY 4.0http://creativecommons.org/licenses/by/4.0/
    CC BY-NC 4.0http://creativecommons.org/licenses/by-nc/4.0/
    CC BY-NC-ND 3.0http://creativecommons.org/licenses/by-nc-nd/3.0/
    CC BY-NC-ND 4.0http://creativecommons.org/licenses/by-nc-nd/4.0/
    CC BY-NC-SA 2.5http://creativecommons.org/licenses/by-nc-sa/2.5/
    CC BY-NC-SA 3.0http://creativecommons.org/licenses/by-nc-sa/3.0/
    CC BY-NC-SA 4.0http://creativecommons.org/licenses/by-nc-sa/4.0/
    CC BY-SA 3.0http://creativecommons.org/licenses/by-sa/3.0/
    CC BY-SA 4.0http://creativecommons.org/licenses/by-sa/4.0/
    CC0 1.0http://creativecommons.org/publicdomain/zero/1.0/
    GNU GPL 2.0http://opensource.org/licenses/GPL-2.0
    GNU GPL 3.0http://opensource.org/licenses/GPL-3.0
    LGPL-LRhttps://spdx.org/licenses/LGPLLR.html
    PDpublic domain
    +
    +
    diff --git a/src/static-files/license-umr-1.0.html b/src/static-files/license-umr-1.0.html new file mode 100644 index 00000000000..c166cb29bd0 --- /dev/null +++ b/src/static-files/license-umr-1.0.html @@ -0,0 +1,66 @@ +
    +

    Uniform Meaning Representation v1.0 License Agreement

    +
    + (2023/07/31) +
    +
    +
    +

    Uniform Meaning Representation v1.0 License Terms

    +

    Uniform Meaning Representation v1.0 (referred to as “UMR” in the rest of this document) + is a collection of linguistic data. Each of the graphbanks has its own license terms + and you (the “User”) are responsible for complying with the license terms + applicable to those parts of UMR which you use. If you do not agree with the license terms, + you must stop using UMR and destroy all copies of UMR data that you have obtained.

    +
    +

    You are specifically reminded that some of the graphbanks + permit only non-commercial usage.

    +
    +

    The license for every graphbank included in the release is specified in the appropriate + graphbank directory.

    +
    + +

    Overview of the graphbanks and their license terms

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GraphbankLicense
    Arapaho-UMRCC BY-NC-ND 4.0
    Chinese-UMRCC BY-NC-ND 4.0
    English-UMRCC BY-SA 4.0
    Kukama-UMRCC BY-NC-ND 4.0
    Navajo-UMRCC BY-NC-ND 4.0
    Sanapana-UMRCC BY-NC-ND 4.0
    + +

    Licenses

    + + + + + + + + +
    LicenseURL
    CC BY-NC-ND 4.0http://creativecommons.org/licenses/by-nc-nd/4.0/
    CC BY-SA 4.0http://creativecommons.org/licenses/by-sa/4.0/
    +
    +
    diff --git a/src/static-files/theaitre-license.html b/src/static-files/theaitre-license.html new file mode 100644 index 00000000000..fc6c294d4d1 --- /dev/null +++ b/src/static-files/theaitre-license.html @@ -0,0 +1,55 @@ +
    +

    THEAITRE AI research only license

    +
    + (2022/12/20) +
    +
    +

    License for using the data for scientific research in the field of artificial intelligence

    +

    The text of the contract is available in both Czech and English. The English text is informative only, the Czech text is legally binding.

    +
    +

    Consent to use the work - sublicense

    +

    The data obtainer, identified by the personal data (name, address, e-mail) he/she has filled in when electronically agreeing to this licence on the LINDAT/CLARIAH-CZ website + (on the one hand; hereinafter referred to as the "Licensee")

    +

    + and +

    +

    + Charles University
    + Public university pursuant to Act No. 111/1998 Coll., as amended
    + having its registered office at Ovocný trh 560/5, 116 36 Prague 1
    + IČO: 00216208 DIČ: CZ00216208
    + Related to: Faculty of Mathematics and Physics
    + Address: Ke Karlovu 2027/3, 121 16 Prague 2
    + represented by the Dean of the Faculty of Mathematics and Physics, doc. RNDr. Mirko Rokyta, CSc., acting on the basis of a power of attorney granted by the Rector of Charles University, prof. MUDr. Milena Králíčková, Ph.D.
    + (on the other hand; hereinafter referred to as "Intermediary")
    +

    +
    + +

    on this day, month and year, pursuant to Sections 2358 et seq. of Act No. 89/2012 Coll., the Civil Code, as amended and in force, and pursuant to Act No. 121/2000 Coll., on Copyright, on Rights Related to Copyright and on Amendments to Certain Acts (Copyright Act), as amended and in force, enter into the following agreement on granting consent to use the Work (hereinafter referred to as the "Agreement"): +

    +
    + +

    + Article I. Introductory Provisions
    + 1. The Intermediary is not the original author of the Work, but is authorized by the author (on behalf of the DILIA art agency), by contractual agreement, to publish the Work in the LINDAT/CLARIAH-CZ database (hereinafter referred to as the "Database") and to grant a sublicense to use the Work for the purpose of enabling further scientific research in the field of artificial intelligence.
    +

    + Article II. Subject matter of the Agreement
    + 1. The Intermediary grants the Licensee permission and authorisation to use the Work published in the Database under the terms and conditions set out in this Agreement.
    + 2. The Licensee undertakes to use the Work solely and exclusively for scientific purposes. The Intermediary shall not demand any financial remuneration from the Licensee.
    +

    + Article III. The Work and the granting of a licence to use it
    + 1. The Intermediary hereby grants the Licensee permission and authorisation to use the Work for the purpose of further scientific research in the field of artificial intelligence.
    + 2. The authorisation under this Agreement is granted as non-exclusive without limitation in time, quantity, territory or otherwise.
    + 3. The Licensee shall not be entitled to use the Work beyond the authorisations granted in the Agreement. The Licensee further undertakes that:
    + (a) any work or other result of the subject scientific research shall not contain elements or indications that the Work is used therein,
    + b) the Work shall not be made available to any third party except to persons working with the Database or involved in the subject scientific research relating to artificial intelligence,
    + c) the Author or DILIA will be allowed to check the terms of this Agreement at any time,
    + d) the name of the Author or the title of the Work will not be used or mentioned publicly in any way in connection with the Artificial Intelligence Project.
    +

    + Article V. Final Provisions
    + 1. This Agreement shall enter into force and effect on the date of its electronic acceptance by the Licensee via the LINDAT/CLARIAH-CZ website.
    + 2. This Agreement is concluded for an indefinite period of time. It may be terminated without giving any reason by either party by registered letter delivered to the other party, subject to a notice period of one month starting from the first day of the month following the receipt of the notice by the other party.
    + 3. This Agreement may be amended or supplemented only by written amendments signed by both Parties.
    +

    +
    +
    From f9f6e6269b1d2affa536b6ff7d98f39bd1c14d62 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:29:38 +0100 Subject: [PATCH 07/33] Use NAMESPACES from the .env (#727) * Use NAMESPACES from the .env * Created symbolic link for the tomcat folder * Updated docker compose files - can load more properties from the `.env` --- docker/docker-compose-rest.yml | 12 ++++++++---- docker/docker-compose.yml | 13 +++++++------ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/docker/docker-compose-rest.yml b/docker/docker-compose-rest.yml index 55543984ccb..e62da488676 100644 --- a/docker/docker-compose-rest.yml +++ b/docker/docker-compose-rest.yml @@ -63,11 +63,11 @@ services: # BE server port - published: 808${INSTANCE} target: 8080 - host_ip: 127.0.0.1 + host_ip: ${HOST_IP:-127.0.0.1} # original debug port - published: 800${INSTANCE} target: 8000 - host_ip: 127.0.0.1 + host_ip: ${HOST_IP:-127.0.0.1} # handle binary port as per https://www.handle.net/hnr_support.html (5th paragraph) - published: 264${INSTANCE} target: 2641 @@ -93,6 +93,10 @@ services: entrypoint: - /bin/bash - '-c' + # When customizing the namespace, add the following command to the entrypoint command below (after `while ...`): + # `pushd ../webapps && unlink server && ln -s /dspace/webapps/server/ 'repository#server' && popd` + # This will create a symlink from the webapps directory to the server directory with the custom namespace + # (e.g. /dspace/webapps/server -> /dspace/webapps/repository#server) - | while (! /dev/null 2>&1; do sleep 1; done; /dspace/bin/dspace database migrate force @@ -112,7 +116,7 @@ services: ports: - published: 543${INSTANCE} target: 543${INSTANCE} - host_ip: 127.0.0.1 + host_ip: ${HOST_IP:-127.0.0.1} stdin_open: true tty: true volumes: @@ -133,7 +137,7 @@ services: ports: - published: 898${INSTANCE} target: 898${INSTANCE} - host_ip: 127.0.0.1 + host_ip: ${HOST_IP:-127.0.0.1} stdin_open: true tty: true working_dir: /var/solr/data diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 001a6b91b0a..96d20fc42ab 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -17,15 +17,16 @@ services: TZ: ${TIMEZONE:-Europe/Bratislava} DSPACE_UI_SSL: 'false' DSPACE_UI_HOST: dspace-angular - DSPACE_UI_PORT: 4000 - DSPACE_UI_NAMESPACE: / + DSPACE_UI_PORT: ${UI_PORT:-4000} + DSPACE_UI_NAMESPACE: ${DSPACE_UI_NAMESPACE:-/} DSPACE_REST_SSL: ${DSPACE_SSL:-false} DSPACE_REST_HOST: ${DSPACE_HOST:-localhost} - DSPACE_REST_PORT: ${DSPACE_REST_PORT} - DSPACE_REST_NAMESPACE: /server + DSPACE_REST_PORT: ${DSPACE_REST_PORT:-8080} + DSPACE_REST_NAMESPACE: ${DSPACE_REST_NAMESPACE:-/server} image: ${DSPACE_UI_IMAGE:-dataquest/dspace-angular:dspace-7_x} volumes: - ./config.prod.yml:/app/config/config.prod.yml +# - ./aai.js:/app/dist/browser/aai.js # - ./dspace-ui.json:/app/docker/dspace-ui.json:rw build: context: .. @@ -36,9 +37,9 @@ services: ports: - published: 400${INSTANCE} target: 4000 - host_ip: 127.0.0.1 + host_ip: ${HOST_IP:-127.0.0.1} - published: 987${INSTANCE} target: 987${INSTANCE} - host_ip: 127.0.0.1 + host_ip: ${HOST_IP:-127.0.0.1} stdin_open: true tty: true From a6310f047be010bb09932c085e40db54c72934d3 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Thu, 21 Nov 2024 09:22:58 +0100 Subject: [PATCH 08/33] Update deploy.yml to increase timeout (#738) Because some tests were canceled during processing. --- .github/workflows/deploy.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b1018b4ed6e..9fb0a83a5af 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -147,7 +147,7 @@ jobs: playwright-after-deploy8: runs-on: ubuntu-latest needs: deploy-8 - timeout-minutes: 15 + timeout-minutes: 45 if: '!inputs.IMPORT' steps: - name: run playwright @@ -184,7 +184,7 @@ jobs: rest-tests-after-deploy8: runs-on: ubuntu-latest needs: playwright-after-deploy8 - timeout-minutes: 15 + timeout-minutes: 45 steps: - name: run rest-tests run: | @@ -219,7 +219,7 @@ jobs: runs-on: ubuntu-latest needs: import-8 if: inputs.IMPORT - timeout-minutes: 15 + timeout-minutes: 45 steps: - name: run playwright run: | @@ -256,7 +256,7 @@ jobs: rest-tests-after-import8: runs-on: ubuntu-latest needs: playwright-after-import8 - timeout-minutes: 15 + timeout-minutes: 45 steps: - name: run rest-tests run: | From a2a3e535817693a43d0907da23ad6974b019ee07 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:23:03 +0100 Subject: [PATCH 09/33] Use only 4000, not the {UI_PORT} from the .env because in the container it is always 4000 (#740) --- docker/docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 96d20fc42ab..1d0914a5b5a 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -17,7 +17,8 @@ services: TZ: ${TIMEZONE:-Europe/Bratislava} DSPACE_UI_SSL: 'false' DSPACE_UI_HOST: dspace-angular - DSPACE_UI_PORT: ${UI_PORT:-4000} + # Use only 4000, not the {UI_PORT} from the .env because in the container it is always 4000 + DSPACE_UI_PORT: 4000 DSPACE_UI_NAMESPACE: ${DSPACE_UI_NAMESPACE:-/} DSPACE_REST_SSL: ${DSPACE_SSL:-false} DSPACE_REST_HOST: ${DSPACE_HOST:-localhost} From 09e11679faa1df18ed378842bda2a11092e170fd Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Thu, 21 Nov 2024 12:29:49 +0100 Subject: [PATCH 10/33] Update docker-compose-rest.yml Uncommented /repository/ namespace in the docker-compose.yml. It is only for one deploy. --- docker/docker-compose-rest.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/docker-compose-rest.yml b/docker/docker-compose-rest.yml index e62da488676..249e52973a2 100644 --- a/docker/docker-compose-rest.yml +++ b/docker/docker-compose-rest.yml @@ -99,6 +99,7 @@ services: # (e.g. /dspace/webapps/server -> /dspace/webapps/repository#server) - | while (! /dev/null 2>&1; do sleep 1; done; + `pushd ../webapps && unlink server && ln -s /dspace/webapps/server/ 'repository#server' && popd` /dspace/bin/dspace database migrate force custom_run.sh /dspace/bin/start-handle-server From c5bc34bb5586ee477cdd406da232450d9c32e0ce Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Thu, 21 Nov 2024 12:52:34 +0100 Subject: [PATCH 11/33] Update docker-compose-rest.yml Undo exposing server on the /repository/ path --- docker/docker-compose-rest.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/docker-compose-rest.yml b/docker/docker-compose-rest.yml index 249e52973a2..e62da488676 100644 --- a/docker/docker-compose-rest.yml +++ b/docker/docker-compose-rest.yml @@ -99,7 +99,6 @@ services: # (e.g. /dspace/webapps/server -> /dspace/webapps/repository#server) - | while (! /dev/null 2>&1; do sleep 1; done; - `pushd ../webapps && unlink server && ln -s /dspace/webapps/server/ 'repository#server' && popd` /dspace/bin/dspace database migrate force custom_run.sh /dspace/bin/start-handle-server From 8d68def3f86c7cc2d12332fa9bf57f1065983e4b Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Thu, 21 Nov 2024 13:09:27 +0100 Subject: [PATCH 12/33] Use only / and /server namespaces, not the values from the .env because in the container it is always `/` and `/server` (#741) --- docker/docker-compose.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 1d0914a5b5a..790746b5e64 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -17,13 +17,15 @@ services: TZ: ${TIMEZONE:-Europe/Bratislava} DSPACE_UI_SSL: 'false' DSPACE_UI_HOST: dspace-angular - # Use only 4000, not the {UI_PORT} from the .env because in the container it is always 4000 + # Use only `4000`, not the {UI_PORT} from the .env because in the container it is always `4000` DSPACE_UI_PORT: 4000 - DSPACE_UI_NAMESPACE: ${DSPACE_UI_NAMESPACE:-/} + # Use only `/`, not the {DSPACE_UI_NAMESPACE} from the .env because in the container it is always `/` + DSPACE_UI_NAMESPACE: / DSPACE_REST_SSL: ${DSPACE_SSL:-false} DSPACE_REST_HOST: ${DSPACE_HOST:-localhost} DSPACE_REST_PORT: ${DSPACE_REST_PORT:-8080} - DSPACE_REST_NAMESPACE: ${DSPACE_REST_NAMESPACE:-/server} + # Use only `/server`, not the {DSPACE_UI_NAMESPACE} from the .env because in the container it is always `/server` + DSPACE_REST_NAMESPACE: /server image: ${DSPACE_UI_IMAGE:-dataquest/dspace-angular:dspace-7_x} volumes: - ./config.prod.yml:/app/config/config.prod.yml From 4e108e6ef0320130242edf9c5128f124efda05cd Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Thu, 21 Nov 2024 13:10:24 +0100 Subject: [PATCH 13/33] Expose tomcat `/server` on `/repository/server` --- docker/docker-compose-rest.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/docker-compose-rest.yml b/docker/docker-compose-rest.yml index e62da488676..249e52973a2 100644 --- a/docker/docker-compose-rest.yml +++ b/docker/docker-compose-rest.yml @@ -99,6 +99,7 @@ services: # (e.g. /dspace/webapps/server -> /dspace/webapps/repository#server) - | while (! /dev/null 2>&1; do sleep 1; done; + `pushd ../webapps && unlink server && ln -s /dspace/webapps/server/ 'repository#server' && popd` /dspace/bin/dspace database migrate force custom_run.sh /dspace/bin/start-handle-server From 5843e54851b30ddcc5eef725f5c36bf09db3cf8d Mon Sep 17 00:00:00 2001 From: milanmajchrak Date: Thu, 21 Nov 2024 13:35:31 +0100 Subject: [PATCH 14/33] Take a customized docker-compose-rest.yml which exposes the server on /repository/server --- .github/workflows/deploy.yml | 3 +++ docker/docker-compose-rest.yml | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9fb0a83a5af..a7421354ea4 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -57,6 +57,9 @@ jobs: working-directory: build-scripts/run/ run: | ./start.sh dspace-$INSTANCE + # use customized docker-compose file for the `85` port because the server is exposed with the namespace `repository` + # `/repository/server` + docker compose --env-file $ENVFILE -p dspace-$INSTANCE -f docker/docker-compose.yml -f docker/docker-compose-rest.yml -f /opt/dspace-envs/5/docker-compose-rest.yml up -d --no-build deploy-8: if: inputs.INSTANCE == '*' || inputs.INSTANCE == '8' diff --git a/docker/docker-compose-rest.yml b/docker/docker-compose-rest.yml index 249e52973a2..e62da488676 100644 --- a/docker/docker-compose-rest.yml +++ b/docker/docker-compose-rest.yml @@ -99,7 +99,6 @@ services: # (e.g. /dspace/webapps/server -> /dspace/webapps/repository#server) - | while (! /dev/null 2>&1; do sleep 1; done; - `pushd ../webapps && unlink server && ln -s /dspace/webapps/server/ 'repository#server' && popd` /dspace/bin/dspace database migrate force custom_run.sh /dspace/bin/start-handle-server From e7e8185b41c1d0d76f3b83637d872ce5fac53f07 Mon Sep 17 00:00:00 2001 From: milanmajchrak Date: Thu, 21 Nov 2024 14:06:43 +0100 Subject: [PATCH 15/33] Updated a path to take right docker-compose files --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a7421354ea4..cbac614d891 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -57,6 +57,7 @@ jobs: working-directory: build-scripts/run/ run: | ./start.sh dspace-$INSTANCE + cd ../.. # use customized docker-compose file for the `85` port because the server is exposed with the namespace `repository` # `/repository/server` docker compose --env-file $ENVFILE -p dspace-$INSTANCE -f docker/docker-compose.yml -f docker/docker-compose-rest.yml -f /opt/dspace-envs/5/docker-compose-rest.yml up -d --no-build From 3d052e684a6c9b16df75263fbd8f64396a347093 Mon Sep 17 00:00:00 2001 From: milanmajchrak Date: Thu, 21 Nov 2024 14:37:20 +0100 Subject: [PATCH 16/33] Undo using only default namespaced `/` and `/server` --- docker/docker-compose.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 790746b5e64..c6cc475a30c 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -19,13 +19,11 @@ services: DSPACE_UI_HOST: dspace-angular # Use only `4000`, not the {UI_PORT} from the .env because in the container it is always `4000` DSPACE_UI_PORT: 4000 - # Use only `/`, not the {DSPACE_UI_NAMESPACE} from the .env because in the container it is always `/` - DSPACE_UI_NAMESPACE: / + DSPACE_UI_NAMESPACE: ${DSPACE_UI_NAMESPACE:-/} DSPACE_REST_SSL: ${DSPACE_SSL:-false} DSPACE_REST_HOST: ${DSPACE_HOST:-localhost} DSPACE_REST_PORT: ${DSPACE_REST_PORT:-8080} - # Use only `/server`, not the {DSPACE_UI_NAMESPACE} from the .env because in the container it is always `/server` - DSPACE_REST_NAMESPACE: /server + DSPACE_REST_NAMESPACE: ${DSPACE_REST_NAMESPACE:-/server} image: ${DSPACE_UI_IMAGE:-dataquest/dspace-angular:dspace-7_x} volumes: - ./config.prod.yml:/app/config/config.prod.yml From 56f0730b6798ef61e1935c5b91c54a771b1918cc Mon Sep 17 00:00:00 2001 From: milanmajchrak Date: Fri, 22 Nov 2024 08:20:17 +0100 Subject: [PATCH 17/33] Use custom `docker-compose.yml` from the testing server --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index cbac614d891..3270d2491f1 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -60,7 +60,7 @@ jobs: cd ../.. # use customized docker-compose file for the `85` port because the server is exposed with the namespace `repository` # `/repository/server` - docker compose --env-file $ENVFILE -p dspace-$INSTANCE -f docker/docker-compose.yml -f docker/docker-compose-rest.yml -f /opt/dspace-envs/5/docker-compose-rest.yml up -d --no-build + docker compose --env-file $ENVFILE -p dspace-$INSTANCE -f docker/docker-compose.yml -f docker/docker-compose-rest.yml -f /opt/dspace-envs/5/docker-compose-rest.yml -f /opt/dspace-envs/5/docker-compose.yml up -d --no-build deploy-8: if: inputs.INSTANCE == '*' || inputs.INSTANCE == '8' From 01b4a933b4fc5eda444de5055012aa0e4bcd5286 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 22 Nov 2024 08:22:19 +0100 Subject: [PATCH 18/33] UFAL/Shibboleth fixed wrong redirect after login with verification token (#733) * Used hardredirect instead of the standard router.redirect because the user could be stucked on the loading page * Added doc why * Added missing whitespace --- .../autoregistration.component.ts | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/app/login-page/autoregistration/autoregistration.component.ts b/src/app/login-page/autoregistration/autoregistration.component.ts index 39775fb641f..eeeb2a3e4c3 100644 --- a/src/app/login-page/autoregistration/autoregistration.component.ts +++ b/src/app/login-page/autoregistration/autoregistration.component.ts @@ -1,7 +1,10 @@ import { Component, OnInit } from '@angular/core'; import { GetRequest, PostRequest } from '../../core/data/request.models'; -import { getFirstCompletedRemoteData,getFirstSucceededRemoteListPayload } from '../../core/shared/operators'; -import { ActivatedRoute, Router } from '@angular/router'; +import { + getFirstCompletedRemoteData, getFirstSucceededRemoteData, + getFirstSucceededRemoteListPayload +} from '../../core/shared/operators'; +import { ActivatedRoute } from '@angular/router'; import { RequestService } from '../../core/data/request.service'; import { NotificationsService } from '../../shared/notifications/notifications.service'; import { HALEndpointService } from '../../core/shared/hal-endpoint.service'; @@ -24,6 +27,8 @@ import { FindListOptions } from '../../core/data/find-list-options.model'; import { getBaseUrl } from '../../shared/clarin-shared-util'; import { ConfigurationProperty } from '../../core/shared/configuration-property.model'; import { RemoteData } from '../../core/data/remote-data'; +import { HardRedirectService } from '../../core/services/hard-redirect.service'; +import { environment } from '../../../environments/environment'; /** * This component is showed up when the user has clicked on the `verification token`. @@ -69,8 +74,7 @@ export class AutoregistrationComponent implements OnInit { */ showAttributes: BehaviorSubject = new BehaviorSubject(false); - constructor(protected router: Router, - public route: ActivatedRoute, + constructor(public route: ActivatedRoute, private requestService: RequestService, protected halService: HALEndpointService, protected rdbService: RemoteDataBuildService, @@ -78,7 +82,8 @@ export class AutoregistrationComponent implements OnInit { private translateService: TranslateService, private configurationService: ConfigurationDataService, private verificationTokenService: ClarinVerificationTokenDataService, - private store: Store + private store: Store, + private hardRedirectService: HardRedirectService ) { } async ngOnInit(): Promise { @@ -159,22 +164,21 @@ export class AutoregistrationComponent implements OnInit { this.requestService.send(postRequest); // Get response const response = this.rdbService.buildFromRequestUUID(requestId); - // Process response - response - .pipe(getFirstCompletedRemoteData()) + response.pipe(getFirstSucceededRemoteData()) .subscribe(responseRD$ => { - if (hasSucceeded(responseRD$.state)) { - // Retrieve the token from the response. The token is returned as array of string. + if (responseRD$.hasSucceeded) { const token = Object.values(responseRD$?.payload).join(''); const authToken = new AuthTokenInfo(token); - this.deleteVerificationToken(); this.store.dispatch(new AuthenticatedAction(authToken)); - this.router.navigate(['home']); + this.deleteVerificationToken(); + // Use hard redirect to load all components from the beginning as the logged-in user. Because some components + // are not loaded correctly when the user is logged in e.g., `log in` button is still visible instead of + // log out button. + this.hardRedirectService.redirect(environment.ui.baseUrl + 'home'); } else { this.notificationService.error(this.translateService.instant('clarin.autologin.error.message')); - console.error(responseRD$.errorMessage); } - }); + }); } /** From ea056b26f1605fdc5d540500cdb061ab594679fb Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 22 Nov 2024 15:42:38 +0100 Subject: [PATCH 19/33] Use path `./assets` instead of `/assets` (#742) --- .../file-description/file-description.component.ts | 2 +- .../clarin-item-box-view/clarin-item-box-view.component.ts | 2 +- src/themes/dspace/app/header/header.component.html | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/item-page/simple/field-components/preview-section/file-description/file-description.component.ts b/src/app/item-page/simple/field-components/preview-section/file-description/file-description.component.ts index ebeec24cd31..6a2b69acdce 100644 --- a/src/app/item-page/simple/field-components/preview-section/file-description/file-description.component.ts +++ b/src/app/item-page/simple/field-components/preview-section/file-description/file-description.component.ts @@ -10,7 +10,7 @@ const allowedPreviewFormats = ['text/plain', 'text/html', 'application/zip', 'ap styleUrls: ['./file-description.component.scss'], }) export class FileDescriptionComponent { - MIME_TYPE_IMAGES_PATH = '/assets/images/mime/'; + MIME_TYPE_IMAGES_PATH = './assets/images/mime/'; MIME_TYPE_DEFAULT_IMAGE_NAME = 'application-octet-stream.png'; @Input() diff --git a/src/app/shared/clarin-item-box-view/clarin-item-box-view.component.ts b/src/app/shared/clarin-item-box-view/clarin-item-box-view.component.ts index 8dc1defc1f1..687ee86dfdd 100644 --- a/src/app/shared/clarin-item-box-view/clarin-item-box-view.component.ts +++ b/src/app/shared/clarin-item-box-view/clarin-item-box-view.component.ts @@ -44,7 +44,7 @@ export class ClarinItemBoxViewComponent implements OnInit { protected readonly AUTHOR_METADATA_FIELDS = AUTHOR_METADATA_FIELDS; - ITEM_TYPE_IMAGES_PATH = '/assets/images/item-types/'; + ITEM_TYPE_IMAGES_PATH = './assets/images/item-types/'; ITEM_TYPE_DEFAULT_IMAGE_NAME = 'application-x-zerosize.png'; /** diff --git a/src/themes/dspace/app/header/header.component.html b/src/themes/dspace/app/header/header.component.html index e7d72813b75..db6ab5ce03e 100644 --- a/src/themes/dspace/app/header/header.component.html +++ b/src/themes/dspace/app/header/header.component.html @@ -5,7 +5,7 @@
    From 6e281baf07bd5de41aed2ec372f56cbcba127c0f Mon Sep 17 00:00:00 2001 From: Paurikova2 <107862249+Paurikova2@users.noreply.github.com> Date: Tue, 26 Nov 2024 08:30:09 +0100 Subject: [PATCH 20/33] new download instruction for cmd using zip from backend (#739) --- .../clarin-files-section/clarin-files-section.component.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/app/item-page/clarin-files-section/clarin-files-section.component.ts b/src/app/item-page/clarin-files-section/clarin-files-section.component.ts index 464ff1c272d..00f875a93e7 100644 --- a/src/app/item-page/clarin-files-section/clarin-files-section.component.ts +++ b/src/app/item-page/clarin-files-section/clarin-files-section.component.ts @@ -107,9 +107,7 @@ export class ClarinFilesSectionComponent implements OnInit { return file.name; }); - this.command = `curl --remote-name-all ` + this.halService.getRootHref() + `/core/bitstreams/handle/${ - this.itemHandle - }/{${fileNames.join(',')}}`; + this.command = `curl --remote-name-all ` + this.halService.getRootHref() + `/core/items/${this.item.id}/allzip?handleId=${this.itemHandle}`; } loadDownloadZipConfigProperties() { From c335482395690c1ed65ac3a775d0ca4c73eb30e7 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:10:48 +0100 Subject: [PATCH 21/33] Get UI base URL from BE (#744) --- .../autoregistration/autoregistration.component.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app/login-page/autoregistration/autoregistration.component.ts b/src/app/login-page/autoregistration/autoregistration.component.ts index eeeb2a3e4c3..10bc546fb60 100644 --- a/src/app/login-page/autoregistration/autoregistration.component.ts +++ b/src/app/login-page/autoregistration/autoregistration.component.ts @@ -28,7 +28,6 @@ import { getBaseUrl } from '../../shared/clarin-shared-util'; import { ConfigurationProperty } from '../../core/shared/configuration-property.model'; import { RemoteData } from '../../core/data/remote-data'; import { HardRedirectService } from '../../core/services/hard-redirect.service'; -import { environment } from '../../../environments/environment'; /** * This component is showed up when the user has clicked on the `verification token`. @@ -174,7 +173,10 @@ export class AutoregistrationComponent implements OnInit { // Use hard redirect to load all components from the beginning as the logged-in user. Because some components // are not loaded correctly when the user is logged in e.g., `log in` button is still visible instead of // log out button. - this.hardRedirectService.redirect(environment.ui.baseUrl + 'home'); + const redirectUrl = this.baseUrl.endsWith('/') + ? `${this.baseUrl}home` + : `${this.baseUrl}/home`; + this.hardRedirectService.redirect(redirectUrl); } else { this.notificationService.error(this.translateService.instant('clarin.autologin.error.message')); } From b782d786ae84102031515b78c7b149e69dd9ad6a Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Thu, 28 Nov 2024 08:27:23 +0100 Subject: [PATCH 22/33] Check that the custom type bind field in configured in the `submission-forms` when it is configured in the cfg property (#745) --- .../form/builder/form-builder.service.ts | 25 +++++++++++++------ .../form/builder/models/form-field.model.ts | 3 +++ .../form/builder/parsers/field-parser.ts | 3 +++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/app/shared/form/builder/form-builder.service.ts b/src/app/shared/form/builder/form-builder.service.ts index 45fb6a55100..b6f7a4673dd 100644 --- a/src/app/shared/form/builder/form-builder.service.ts +++ b/src/app/shared/form/builder/form-builder.service.ts @@ -54,7 +54,7 @@ import { FormRowModel } from '../../../core/config/models/config-submission-form /** * The key for the default type bind field. {'default': 'dc_type'} */ -export const TYPE_BIND_DEFAULT = 'default'; +export const TYPE_BIND_DEFAULT_KEY = 'default'; @Injectable() export class FormBuilderService extends DynamicFormService { @@ -91,7 +91,7 @@ export class FormBuilderService extends DynamicFormService { this.typeFields = new Map(); this.typeBindModel = new Map(); - this.typeFields.set(TYPE_BIND_DEFAULT, 'dc_type'); + this.typeFields.set(TYPE_BIND_DEFAULT_KEY, 'dc_type'); // If optional config service was passed, perform an initial set of type field (default dc_type) for type binds if (hasValue(this.configService)) { this.setTypeBindFieldFromConfig(); @@ -118,9 +118,18 @@ export class FormBuilderService extends DynamicFormService { getTypeBindModel(typeBingField: string): DynamicFormControlModel { let typeBModelKey = this.typeFields.get(typeBingField); if (isUndefined(typeBModelKey)) { - typeBModelKey = this.typeFields.get(TYPE_BIND_DEFAULT); + typeBModelKey = this.typeFields.get(TYPE_BIND_DEFAULT_KEY); } - return this.typeBindModel.get(typeBModelKey); + // 1. The candidate is undefined when the custom field is configured for a specific metadata field + // e.g., `dc.language.iso=>edm.type`, but the custom field is not configured in the + // `submission-forms` configuration (type-bind without custom `field`) + // 2. If candidateTypeBindModel does not have custom `field` property, return the default typeBindModel, also + // that means that the custom field is not configured in the `submission-forms` configuration + const candidateTypeBindModel = this.typeBindModel.get(typeBModelKey); + if (isUndefined(candidateTypeBindModel) || isNotUndefined((candidateTypeBindModel as any).typeBindField)) { + return this.typeBindModel.get(this.typeFields.get(TYPE_BIND_DEFAULT_KEY)); + } + return candidateTypeBindModel; } setTypeBindModel(model: DynamicFormControlModel) { @@ -587,7 +596,7 @@ export class FormBuilderService extends DynamicFormService { } // Always update the typeFields map with the default value, normalized - this.typeFields.set(TYPE_BIND_DEFAULT, typeFieldConfigValue.replace(/\./g, '_')); + this.typeFields.set(TYPE_BIND_DEFAULT_KEY, typeFieldConfigValue.replace(/\./g, '_')); }); }); } @@ -599,11 +608,11 @@ export class FormBuilderService extends DynamicFormService { getTypeField(metadataField: string): string { if (hasValue(this.configService) && isEmpty(this.typeFields.values())) { this.setTypeBindFieldFromConfig(metadataField); - } else if (hasNoValue(this.typeFields.get(TYPE_BIND_DEFAULT))) { - this.typeFields.set(TYPE_BIND_DEFAULT, 'dc_type'); + } else if (hasNoValue(this.typeFields.get(TYPE_BIND_DEFAULT_KEY))) { + this.typeFields.set(TYPE_BIND_DEFAULT_KEY, 'dc_type'); } - return this.typeFields.get(metadataField) || this.typeFields.get(TYPE_BIND_DEFAULT); + return this.typeFields.get(metadataField) || this.typeFields.get(TYPE_BIND_DEFAULT_KEY); } } diff --git a/src/app/shared/form/builder/models/form-field.model.ts b/src/app/shared/form/builder/models/form-field.model.ts index f33c46af009..f6c132567e5 100644 --- a/src/app/shared/form/builder/models/form-field.model.ts +++ b/src/app/shared/form/builder/models/form-field.model.ts @@ -137,4 +137,7 @@ export class FormFieldModel { @autoserialize autocompleteCustom: string; + + @autoserialize + typeBindField: string; } diff --git a/src/app/shared/form/builder/parsers/field-parser.ts b/src/app/shared/form/builder/parsers/field-parser.ts index 731f5a11031..0ea016d15b2 100644 --- a/src/app/shared/form/builder/parsers/field-parser.ts +++ b/src/app/shared/form/builder/parsers/field-parser.ts @@ -330,6 +330,9 @@ export abstract class FieldParser { this.parserOptions.typeField); } + if (isNotEmpty(this.configData.typeBindField)) { + controlModel.typeBindField = this.configData.typeBindField; + } return controlModel; } From 42040a63d6f428102457c33ce7a8b62605c433ab Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 29 Nov 2024 09:00:20 +0100 Subject: [PATCH 23/33] Searching by type is changed to 'type' instead of 'itemtype' because it was changed in the autocomplete enhnancement (#749) --- src/app/shared/clarin-shared-util.ts | 2 +- src/assets/i18n/cs.json5 | 16 ++++++++-------- src/assets/i18n/en.json5 | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/app/shared/clarin-shared-util.ts b/src/app/shared/clarin-shared-util.ts index 44b087a9910..f82987f9e0f 100644 --- a/src/app/shared/clarin-shared-util.ts +++ b/src/app/shared/clarin-shared-util.ts @@ -31,7 +31,7 @@ export function convertMetadataFieldIntoSearchType(field: string[]) { case field.includes('dc.contributor.author') || field.includes('dc.creator'): return 'author'; case field.includes('dc.type'): - return 'itemtype'; + return 'type'; case field.includes('dc.publisher') || field.includes('creativework.publisher'): return 'publisher'; case field.includes('dc.language.iso') || field.includes('local.language.name'): diff --git a/src/assets/i18n/cs.json5 b/src/assets/i18n/cs.json5 index cc12cae55f9..815b03fb4a7 100644 --- a/src/assets/i18n/cs.json5 +++ b/src/assets/i18n/cs.json5 @@ -5277,8 +5277,8 @@ // "search.filters.applied.f.original_bundle_descriptions": "File description", // TODO New key - Add a translation "search.filters.applied.f.original_bundle_descriptions": "File description", - // "search.filters.applied.f.itemtype": "Type", - "search.filters.applied.f.itemtype": "Typ", + // "search.filters.applied.f.type": "Type", + "search.filters.applied.f.type": "Typ", // "search.filters.applied.f.namedresourcetype": "Status", "search.filters.applied.f.namedresourcetype": "Status", // "search.filters.applied.f.subject": "Subject", @@ -5422,12 +5422,12 @@ // "search.filters.filter.original_bundle_descriptions.label": "Search File description", // TODO New key - Add a translation "search.filters.filter.original_bundle_descriptions.label": "Search File description", - // "search.filters.filter.itemtype.head": "Type", - "search.filters.filter.itemtype.head": "Typ", - // "search.filters.filter.itemtype.placeholder": "Type", - "search.filters.filter.itemtype.placeholder": "Typ", - // "search.filters.filter.itemtype.label": "Search type", - "search.filters.filter.itemtype.label": "Hledat typ", + // "search.filters.filter.type.head": "Type", + "search.filters.filter.type.head": "Typ", + // "search.filters.filter.type.placeholder": "Type", + "search.filters.filter.type.placeholder": "Typ", + // "search.filters.filter.type.label": "Search type", + "search.filters.filter.type.label": "Hledat typ", // "search.filters.filter.jobTitle.head": "Job Title", "search.filters.filter.jobTitle.head": "Název pracovní pozice", // "search.filters.filter.jobTitle.placeholder": "Job Title", diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 41e4a05c66f..2de89608a5a 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -4221,7 +4221,7 @@ "search.filters.applied.f.has_content_in_original_bundle": "Contain Files", - "search.filters.applied.f.itemtype": "Type", + "search.filters.applied.f.type": "Type", "search.filters.applied.f.namedresourcetype": "Status", @@ -4315,11 +4315,11 @@ "search.filters.filter.has_content_in_original_bundle.head": "Contain Files", - "search.filters.filter.itemtype.head": "Type", + "search.filters.filter.type.head": "Type", - "search.filters.filter.itemtype.placeholder": "Type", + "search.filters.filter.type.placeholder": "Type", - "search.filters.filter.itemtype.label": "Search type", + "search.filters.filter.type.label": "Search type", "search.filters.filter.jobTitle.head": "Job Title", From 6ffc7e510cc367a89717f102a33054f2004f056e Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 29 Nov 2024 09:02:18 +0100 Subject: [PATCH 24/33] Use `autoLogin` method (#747) --- .../autoregistration/autoregistration.component.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/app/login-page/autoregistration/autoregistration.component.ts b/src/app/login-page/autoregistration/autoregistration.component.ts index 10bc546fb60..c0821e5b9d2 100644 --- a/src/app/login-page/autoregistration/autoregistration.component.ts +++ b/src/app/login-page/autoregistration/autoregistration.component.ts @@ -22,7 +22,6 @@ import { HttpHeaders } from '@angular/common/http'; import { AuthTokenInfo } from '../../core/auth/models/auth-token-info.model'; import { isEmpty } from '../../shared/empty.util'; import { CoreState } from 'src/app/core/core-state.model'; -import { hasSucceeded } from 'src/app/core/data/request-entry-state.model'; import { FindListOptions } from '../../core/data/find-list-options.model'; import { getBaseUrl } from '../../shared/clarin-shared-util'; import { ConfigurationProperty } from '../../core/shared/configuration-property.model'; @@ -99,7 +98,7 @@ export class AutoregistrationComponent implements OnInit { }); if (this.showAttributes.value === false) { - this.sendAutoLoginRequest(); + this.autologin(); } } @@ -119,11 +118,9 @@ export class AutoregistrationComponent implements OnInit { const response = this.rdbService.buildFromRequestUUID(requestId); // Process response response - .pipe(getFirstCompletedRemoteData()) + .pipe(getFirstSucceededRemoteData()) .subscribe(responseRD$ => { - if (hasSucceeded(responseRD$.state)) { - // Show successful message - this.notificationService.success(this.translateService.instant('clarin.autoregistration.successful.message')); + if (responseRD$.hasSucceeded) { // Call autologin this.sendAutoLoginRequest(); } else { From e7e15778a8a7f4fe93f392afe49288698f3148ce Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 29 Nov 2024 11:08:02 +0100 Subject: [PATCH 25/33] UFAL/Matomo statistics using angulartics2 (#748) * Modified matomo tracking in footer component * Do not use routerless Matomo because we want to track view on every page redirect * The Matomo statistics are tracked properly. * Prettyfied the code * Fix linting error * Fixed unit tests following the matomo statistics update * Fixed linting error * Added a document title in the footer * Added category to the eventTrack because it is required for the Matomo. * Refactored using matomo statistics - added into browser init service, because the Matomo statistics wasn't rendered on production * Changed matomo-settings location --------- Co-authored-by: Matus Kasak --- src/app/footer/footer.component.html | 24 +------------------ src/app/footer/footer.component.spec.ts | 6 ----- .../dspace/view-tracker.component.ts | 3 ++- src/main.browser.ts | 18 ++++++++++++++ src/matomo/matomo-settings.ts | 7 ++++++ src/modules/app/browser-app.module.ts | 6 +++-- src/modules/app/browser-init.service.ts | 3 +++ 7 files changed, 35 insertions(+), 32 deletions(-) create mode 100644 src/matomo/matomo-settings.ts diff --git a/src/app/footer/footer.component.html b/src/app/footer/footer.component.html index 40e44a83e3b..b5ba6d5af1e 100644 --- a/src/app/footer/footer.component.html +++ b/src/app/footer/footer.component.html @@ -88,29 +88,7 @@

    Services

    ga('create', 'UA-27008245-2', 'cuni.cz'); ga('send', 'pageview'); //]]> - - - - - - +

    diff --git a/src/app/footer/footer.component.spec.ts b/src/app/footer/footer.component.spec.ts index 593a9f9e51d..e193db48612 100644 --- a/src/app/footer/footer.component.spec.ts +++ b/src/app/footer/footer.component.spec.ts @@ -5,8 +5,6 @@ import { CUSTOM_ELEMENTS_SCHEMA, DebugElement } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { By } from '@angular/platform-browser'; - import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { StoreModule } from '@ngrx/store'; @@ -62,10 +60,6 @@ describe('Footer component', () => { fixture = TestBed.createComponent(FooterComponent); comp = fixture.componentInstance; // component test instance - - // query for the title

    by CSS element selector - de = fixture.debugElement.query(By.css('p')); - el = de.nativeElement; }); it('should create footer', inject([FooterComponent], (app: FooterComponent) => { diff --git a/src/app/statistics/angulartics/dspace/view-tracker.component.ts b/src/app/statistics/angulartics/dspace/view-tracker.component.ts index 805d311cfd9..edb8165967a 100644 --- a/src/app/statistics/angulartics/dspace/view-tracker.component.ts +++ b/src/app/statistics/angulartics/dspace/view-tracker.component.ts @@ -40,7 +40,8 @@ export class ViewTrackerComponent implements OnInit, OnDestroy { action: 'page_view', properties: { object: this.object, - referrer + referrer, + category: 'page_view', }, }); }); diff --git a/src/main.browser.ts b/src/main.browser.ts index 43b2ffbaf40..03e39a7c739 100644 --- a/src/main.browser.ts +++ b/src/main.browser.ts @@ -10,6 +10,7 @@ import { environment } from './environments/environment'; import { AppConfig } from './config/app-config.interface'; import { extendEnvironmentWithAppConfig } from './config/config.util'; import { enableProdMode } from '@angular/core'; +import { matomoSettings } from './matomo/matomo-settings'; const bootstrap = () => platformBrowserDynamic() .bootstrapModule(BrowserAppModule, {}); @@ -26,6 +27,7 @@ const main = () => { if (environment.production) { enableProdMode(); } + addMatomoStatistics(); if (hasTransferState) { // Configuration will be taken from transfer state during initialization @@ -42,6 +44,22 @@ const main = () => { } }; +function addMatomoStatistics() { + (window as any)._paq = (window as any)._paq || []; + + // Push all configuration commands first + (window as any)._paq.push(['setTrackerUrl', matomoSettings.hostUrl + 'matomo.php']); + (window as any)._paq.push(['setSiteId', matomoSettings.siteId]); + (window as any)._paq.push(['enableLinkTracking']); + + const g = document.createElement('script'); + g.type = 'text/javascript'; + g.async = true; + g.defer = true; + g.src = matomoSettings.hostUrl + 'matomo.js'; + document.getElementsByTagName('head')[0].appendChild(g); +} + // support async tag or hmr if (document.readyState === 'complete' && !hasTransferState) { main(); diff --git a/src/matomo/matomo-settings.ts b/src/matomo/matomo-settings.ts new file mode 100644 index 00000000000..e0217cfb66b --- /dev/null +++ b/src/matomo/matomo-settings.ts @@ -0,0 +1,7 @@ +/** + * Matomo settings for tracking statistics. This file could be mounted in the docker container. + */ +export const matomoSettings = { + hostUrl: 'http://localhost:8135/', + siteId: '1' +}; diff --git a/src/modules/app/browser-app.module.ts b/src/modules/app/browser-app.module.ts index d6295cf791d..48f0f823aa0 100644 --- a/src/modules/app/browser-app.module.ts +++ b/src/modules/app/browser-app.module.ts @@ -15,7 +15,9 @@ import { AppModule } from '../../app/app.module'; import { ClientCookieService } from '../../app/core/services/client-cookie.service'; import { CookieService } from '../../app/core/services/cookie.service'; import { AuthService } from '../../app/core/auth/auth.service'; -import { Angulartics2GoogleTagManager, Angulartics2RouterlessModule } from 'angulartics2'; +import { + Angulartics2GoogleTagManager, Angulartics2Module, +} from 'angulartics2'; import { SubmissionService } from '../../app/submission/submission.service'; import { StatisticsModule } from '../../app/statistics/statistics.module'; import { BrowserKlaroService } from '../../app/shared/cookies/browser-klaro.service'; @@ -54,7 +56,7 @@ export function getRequest(transferState: TransferState): any { // forRoot ensures the providers are only created once IdlePreloadModule.forRoot(), StatisticsModule.forRoot(), - Angulartics2RouterlessModule.forRoot(), + Angulartics2Module.forRoot(), BrowserAnimationsModule, BrowserTransferStateModule, TranslateModule.forRoot({ diff --git a/src/modules/app/browser-init.service.ts b/src/modules/app/browser-init.service.ts index bf40f0c68b6..2a0dc6662fb 100644 --- a/src/modules/app/browser-init.service.ts +++ b/src/modules/app/browser-init.service.ts @@ -33,6 +33,7 @@ import { MenuService } from '../../app/shared/menu/menu.service'; import { RootDataService } from '../../app/core/data/root-data.service'; import { firstValueFrom, Subscription } from 'rxjs'; import { ServerCheckGuard } from '../../app/core/server-check/server-check.guard'; +import { Angulartics2Matomo } from 'angulartics2'; /** * Performs client-side initialization. @@ -59,6 +60,7 @@ export class BrowserInitService extends InitService { protected menuService: MenuService, private rootDataService: RootDataService, protected serverCheckGuard: ServerCheckGuard, + private angulartics2Matomo: Angulartics2Matomo ) { super( store, @@ -100,6 +102,7 @@ export class BrowserInitService extends InitService { this.initRouteListeners(); this.themeService.listenForThemeChanges(true); this.trackAuthTokenExpiration(); + this.angulartics2Matomo.startTracking(); this.initKlaro(); From 0d69bccd58458322fbafeee878594aa193f19ef6 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Sat, 30 Nov 2024 14:59:55 +0100 Subject: [PATCH 26/33] Update db-import action Try a commit when the import worked. --- .github/actions/import-db/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/import-db/action.yml b/.github/actions/import-db/action.yml index 9120d1b1e30..9e8dfbf8b37 100644 --- a/.github/actions/import-db/action.yml +++ b/.github/actions/import-db/action.yml @@ -27,7 +27,7 @@ runs: - uses: actions/checkout@v4 with: repository: dataquest-dev/dspace-import - ref: 'main' + ref: 'eaa122481ac3837d7d7dc66a8dfc423e9e2a99aa' submodules: 'recursive' path: 'dspace-import' From 8126cb7221ae337fb431cdabf509cd074ae2965c Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Sat, 30 Nov 2024 17:27:27 +0100 Subject: [PATCH 27/33] Update import-db action - use main branch --- .github/actions/import-db/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/import-db/action.yml b/.github/actions/import-db/action.yml index 9e8dfbf8b37..9120d1b1e30 100644 --- a/.github/actions/import-db/action.yml +++ b/.github/actions/import-db/action.yml @@ -27,7 +27,7 @@ runs: - uses: actions/checkout@v4 with: repository: dataquest-dev/dspace-import - ref: 'eaa122481ac3837d7d7dc66a8dfc423e9e2a99aa' + ref: 'main' submodules: 'recursive' path: 'dspace-import' From 374c062a8e40663792d724bd179542ffad0320c3 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Mon, 2 Dec 2024 13:47:49 +0100 Subject: [PATCH 28/33] Added a translation for the searching filter `subjectFirstValue` (redirect from home page). (#752) --- src/assets/i18n/cs.json5 | 2 ++ src/assets/i18n/en.json5 | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/assets/i18n/cs.json5 b/src/assets/i18n/cs.json5 index 815b03fb4a7..cbd5a71cc42 100644 --- a/src/assets/i18n/cs.json5 +++ b/src/assets/i18n/cs.json5 @@ -5283,6 +5283,8 @@ "search.filters.applied.f.namedresourcetype": "Status", // "search.filters.applied.f.subject": "Subject", "search.filters.applied.f.subject": "Předmět", + // "search.filters.applied.f.subjectFirstValue": "Subject", + "search.filters.applied.f.subjectFirstValue": "Předmět", // "search.filters.applied.f.submitter": "Submitter", "search.filters.applied.f.submitter": "Odesílatel", // "search.filters.applied.f.jobTitle": "Job Title", diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 2de89608a5a..b282b3bf685 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -4227,6 +4227,8 @@ "search.filters.applied.f.subject": "Subject", + "search.filters.applied.f.subjectFirstValue": "Subject", + "search.filters.applied.f.submitter": "Submitter", "search.filters.applied.f.jobTitle": "Job Title", From 60e2983cd1517b8a9b24a6b0f313030c6a2b7aeb Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:00:00 +0100 Subject: [PATCH 29/33] Ensure the redirect URL starts with a slash (#753) --- src/aai/aai.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/aai/aai.js b/src/aai/aai.js index d669631e6eb..f5e744c1c91 100644 --- a/src/aai/aai.js +++ b/src/aai/aai.js @@ -38,7 +38,10 @@ if (redirectUrlFromLogin != null && redirectUrlFromLogin !== '') { // Redirect from the login page with retrieved redirect URL - redirectUrl = window.location.origin + (namespace === '' ? namespace : '/' + namespace) + redirectUrlFromLogin; + var baseUrl = window.location.origin + formatNamespace(namespace); + var redirectPath = ensureLeadingSlash(redirectUrlFromLogin); + + redirectUrl = baseUrl + redirectPath; } // Encode the redirect URL @@ -129,6 +132,20 @@ var cookieString = name + '=' + value + ';expires=' + expirationDate.toUTCString() + ';path=/'; document.cookie = cookieString; } + + /** + * Return empty string if namespace is empty, otherwise return namespace with leading slash. + */ + function formatNamespace(namespace) { + return namespace === '' ? '' : ensureLeadingSlash(namespace); + } + + /** + * Ensure that the path starts with a leading slash. + */ + function ensureLeadingSlash(path) { + return path.startsWith('/') ? path : '/' + path; + } } if (!window.aai) { From fc70fcb6d7c6dbb9a070f19b54377384f0038368 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:14:28 +0100 Subject: [PATCH 30/33] Added volume into docker-compose (#754) --- docker/docker-compose.yml | 1 + docker/matomo-settings.ts | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 docker/matomo-settings.ts diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index c6cc475a30c..68e48ba1775 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -29,6 +29,7 @@ services: - ./config.prod.yml:/app/config/config.prod.yml # - ./aai.js:/app/dist/browser/aai.js # - ./dspace-ui.json:/app/docker/dspace-ui.json:rw + - ./matomo-settings.ts:/src/matomo/matomo-settings.ts build: context: .. dockerfile: Dockerfile diff --git a/docker/matomo-settings.ts b/docker/matomo-settings.ts new file mode 100644 index 00000000000..e0217cfb66b --- /dev/null +++ b/docker/matomo-settings.ts @@ -0,0 +1,7 @@ +/** + * Matomo settings for tracking statistics. This file could be mounted in the docker container. + */ +export const matomoSettings = { + hostUrl: 'http://localhost:8135/', + siteId: '1' +}; From 4c2e997aeb2a92535d81f31ae776e16660d3993c Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Tue, 3 Dec 2024 13:50:31 +0100 Subject: [PATCH 31/33] UFAL/Load the matomo configuration from the environment (#755) * Added volume into docker-compose * Take a matomo configuration from the environment --- config/config.example.yml | 4 ++++ src/config/app-config.interface.ts | 2 ++ src/config/default-app-config.ts | 7 +++++++ src/config/matomo-config.ts | 11 +++++++++++ src/environments/environment.production.ts | 5 +++++ src/environments/environment.test.ts | 7 ++++++- src/environments/environment.ts | 7 ++++++- src/main.browser.ts | 9 ++++----- src/matomo/matomo-settings.ts | 7 ------- 9 files changed, 45 insertions(+), 14 deletions(-) create mode 100644 src/config/matomo-config.ts delete mode 100644 src/matomo/matomo-settings.ts diff --git a/config/config.example.yml b/config/config.example.yml index 9aae1fc79b4..8e23e60a8da 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -393,3 +393,7 @@ vocabularies: comcolSelectionSort: sortField: 'dc.title' sortDirection: 'ASC' + +matomo: + hostUrl: http://localhost:8135/ + siteId: 1 diff --git a/src/config/app-config.interface.ts b/src/config/app-config.interface.ts index 0254b42df50..f4c2242c060 100644 --- a/src/config/app-config.interface.ts +++ b/src/config/app-config.interface.ts @@ -22,6 +22,7 @@ import { HomeConfig } from './homepage-config.interface'; import { MarkdownConfig } from './markdown-config.interface'; import { FilterVocabularyConfig } from './filter-vocabulary-config'; import { DiscoverySortConfig } from './discovery-sort.config'; +import { MatomoConfig } from './matomo-config'; interface AppConfig extends Config { ui: UIServerConfig; @@ -49,6 +50,7 @@ interface AppConfig extends Config { vocabularies: FilterVocabularyConfig[]; comcolSelectionSort: DiscoverySortConfig; signpostingEnabled: boolean; + matomo: MatomoConfig; } /** diff --git a/src/config/default-app-config.ts b/src/config/default-app-config.ts index 6f05dedb112..b396f233c6e 100644 --- a/src/config/default-app-config.ts +++ b/src/config/default-app-config.ts @@ -22,6 +22,7 @@ import { HomeConfig } from './homepage-config.interface'; import { MarkdownConfig } from './markdown-config.interface'; import { FilterVocabularyConfig } from './filter-vocabulary-config'; import { DiscoverySortConfig } from './discovery-sort.config'; +import { MatomoConfig } from './matomo-config'; export class DefaultAppConfig implements AppConfig { production = false; @@ -428,4 +429,10 @@ export class DefaultAppConfig implements AppConfig { // NOTE: you must disable/enable in the backend the signposting feature to make it work `signposting.enabled` signpostingEnabled = false; + + // Matomo configuration + matomo: MatomoConfig = { + hostUrl: 'http://localhost:8135/', + siteId: '1' + }; } diff --git a/src/config/matomo-config.ts b/src/config/matomo-config.ts new file mode 100644 index 00000000000..dbd61a9f4c9 --- /dev/null +++ b/src/config/matomo-config.ts @@ -0,0 +1,11 @@ +import { Config } from './config.interface'; + +/** + * Configuration for Matomo statistics. + */ +export class MatomoConfig implements Config { + + public hostUrl: string; + + public siteId: string; +} diff --git a/src/environments/environment.production.ts b/src/environments/environment.production.ts index 931dd422e3e..c09d6dfb9bc 100644 --- a/src/environments/environment.production.ts +++ b/src/environments/environment.production.ts @@ -9,5 +9,10 @@ export const environment: Partial = { async: true, time: false, inlineCriticalCss: false, + }, + + matomo: { + hostUrl: 'http://localhost:8135/', + siteId: '1', } }; diff --git a/src/environments/environment.test.ts b/src/environments/environment.test.ts index 8a6a5d1fccb..0178fe83a0e 100644 --- a/src/environments/environment.test.ts +++ b/src/environments/environment.test.ts @@ -315,5 +315,10 @@ export const environment: BuildConfig = { } ], - signpostingEnabled: true + signpostingEnabled: true, + + matomo: { + hostUrl: 'http://localhost:8135/', + siteId: '1', + } }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index a3a8e9249a6..94277b694ed 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -25,7 +25,12 @@ export const environment: Partial = { nameSpace: '/server', }, - signpostingEnabled: false + signpostingEnabled: false, + + matomo: { + hostUrl: 'http://localhost:8135/', + siteId: '1', + } }; /* diff --git a/src/main.browser.ts b/src/main.browser.ts index 03e39a7c739..a14d420974b 100644 --- a/src/main.browser.ts +++ b/src/main.browser.ts @@ -10,7 +10,6 @@ import { environment } from './environments/environment'; import { AppConfig } from './config/app-config.interface'; import { extendEnvironmentWithAppConfig } from './config/config.util'; import { enableProdMode } from '@angular/core'; -import { matomoSettings } from './matomo/matomo-settings'; const bootstrap = () => platformBrowserDynamic() .bootstrapModule(BrowserAppModule, {}); @@ -27,8 +26,8 @@ const main = () => { if (environment.production) { enableProdMode(); } - addMatomoStatistics(); + addMatomoStatistics(); if (hasTransferState) { // Configuration will be taken from transfer state during initialization return bootstrap(); @@ -48,15 +47,15 @@ function addMatomoStatistics() { (window as any)._paq = (window as any)._paq || []; // Push all configuration commands first - (window as any)._paq.push(['setTrackerUrl', matomoSettings.hostUrl + 'matomo.php']); - (window as any)._paq.push(['setSiteId', matomoSettings.siteId]); + (window as any)._paq.push(['setTrackerUrl', environment.matomo.hostUrl + 'matomo.php']); + (window as any)._paq.push(['setSiteId', environment.matomo.siteId]); (window as any)._paq.push(['enableLinkTracking']); const g = document.createElement('script'); g.type = 'text/javascript'; g.async = true; g.defer = true; - g.src = matomoSettings.hostUrl + 'matomo.js'; + g.src = environment.matomo.hostUrl + 'matomo.js'; document.getElementsByTagName('head')[0].appendChild(g); } diff --git a/src/matomo/matomo-settings.ts b/src/matomo/matomo-settings.ts deleted file mode 100644 index e0217cfb66b..00000000000 --- a/src/matomo/matomo-settings.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Matomo settings for tracking statistics. This file could be mounted in the docker container. - */ -export const matomoSettings = { - hostUrl: 'http://localhost:8135/', - siteId: '1' -}; From e4dcb89e19840839ceed115992e8222527fbb6d6 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Tue, 3 Dec 2024 20:27:51 +0100 Subject: [PATCH 32/33] Fetch the matomo properties from the config, not from the environment (#756) --- docker/docker-compose.yml | 1 - src/environments/environment.production.ts | 5 ----- src/environments/environment.ts | 5 ----- src/main.browser.ts | 26 +++++++++++++--------- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 68e48ba1775..c6cc475a30c 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -29,7 +29,6 @@ services: - ./config.prod.yml:/app/config/config.prod.yml # - ./aai.js:/app/dist/browser/aai.js # - ./dspace-ui.json:/app/docker/dspace-ui.json:rw - - ./matomo-settings.ts:/src/matomo/matomo-settings.ts build: context: .. dockerfile: Dockerfile diff --git a/src/environments/environment.production.ts b/src/environments/environment.production.ts index c09d6dfb9bc..36c62dfe58e 100644 --- a/src/environments/environment.production.ts +++ b/src/environments/environment.production.ts @@ -10,9 +10,4 @@ export const environment: Partial = { time: false, inlineCriticalCss: false, }, - - matomo: { - hostUrl: 'http://localhost:8135/', - siteId: '1', - } }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 94277b694ed..7b4848bbc79 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -26,11 +26,6 @@ export const environment: Partial = { }, signpostingEnabled: false, - - matomo: { - hostUrl: 'http://localhost:8135/', - siteId: '1', - } }; /* diff --git a/src/main.browser.ts b/src/main.browser.ts index a14d420974b..d17101d07a6 100644 --- a/src/main.browser.ts +++ b/src/main.browser.ts @@ -46,17 +46,23 @@ const main = () => { function addMatomoStatistics() { (window as any)._paq = (window as any)._paq || []; - // Push all configuration commands first - (window as any)._paq.push(['setTrackerUrl', environment.matomo.hostUrl + 'matomo.php']); - (window as any)._paq.push(['setSiteId', environment.matomo.siteId]); - (window as any)._paq.push(['enableLinkTracking']); + void fetch('assets/config.json') + .then((response) => response.json()) + .then((config) => { + const matomoConfig = config.matomo; - const g = document.createElement('script'); - g.type = 'text/javascript'; - g.async = true; - g.defer = true; - g.src = environment.matomo.hostUrl + 'matomo.js'; - document.getElementsByTagName('head')[0].appendChild(g); + // Push all configuration commands first + (window as any)._paq.push(['setTrackerUrl', matomoConfig.hostUrl + 'matomo.php']); + (window as any)._paq.push(['setSiteId', matomoConfig.siteId]); + (window as any)._paq.push(['enableLinkTracking']); + + const g = document.createElement('script'); + g.type = 'text/javascript'; + g.async = true; + g.defer = true; + g.src = matomoConfig.hostUrl + 'matomo.js'; + document.getElementsByTagName('head')[0].appendChild(g); + }); } // support async tag or hmr From 1cc31c67ef7f106f01ac7393913b3f86c63f5827 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:14:56 +0100 Subject: [PATCH 33/33] Load the szn license in oninit method (#757) --- .../clarin-license-agreement-page.component.html | 2 +- .../clarin-license-agreement-page.component.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/app/bitstream-page/clarin-license-agreement-page/clarin-license-agreement-page.component.html b/src/app/bitstream-page/clarin-license-agreement-page/clarin-license-agreement-page.component.html index 99d77f87780..86ee4eb1a14 100644 --- a/src/app/bitstream-page/clarin-license-agreement-page/clarin-license-agreement-page.component.html +++ b/src/app/bitstream-page/clarin-license-agreement-page/clarin-license-agreement-page.component.html @@ -14,7 +14,7 @@