Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multilingual support #1410

Open
1 of 7 tasks
ddeboer opened this issue Aug 19, 2024 · 4 comments
Open
1 of 7 tasks

Multilingual support #1410

ddeboer opened this issue Aug 19, 2024 · 4 comments
Assignees

Comments

@ddeboer
Copy link
Member

ddeboer commented Aug 19, 2024

Features

  • For now, support only NL and EN.
  • Offer terminology source metadata in both languages.
  • Filter by language dynamically (instead of hardcoded NL, as it is now).

Overview of sources

Which sources support multiple languages?

  • AAT: NL, EN, ES, FR, ZH
  • Eurovoc: many languages
  • RKD: NL, EN
  • Uitvoeringsmedium: DE, EN, ES, FR, IT, NL
  • Wikidata: many languages

All other sources are NL only, except Iconclass, which is EN only.

Tasks

  • Extend the catalog with EN metadata.
  • For the sources GraphQL endpoint, return both NL and EN; clients can then filter by language. Do we want name_nl, name_en or rather name as an object with language and value properties for more flexibility? Clients can then filter. Try to keep BC here.
  • If the demonstrator’s language is EN, show catalog in EN.
  • chore: Declare multiple dataset languages #1476
  • On https://termennetwerk.netwerkdigitaalerfgoed.nl/sources, show the supported languages for each source.
  • Parameterise the GraphQL terms query with a property languages which takes an array of preferred search/result languages: e.g. [nl], [nl, en].
  • Return the language of each result in the terms query endpoint. Clients can then either show all results, hide non-preferred languages or optionally show them.
@ddeboer
Copy link
Member Author

ddeboer commented Dec 5, 2024

We could add prefLabels, altLabels, ... alongside prefLabel, altLabel, .... The new plurals would then contain a list of objects: [{language: 'en', value: 'Some literal value'}, {language ...}].

Do we like this approach?
Upside: full backwards compatibility.
Downside: looks less like SKOS, which uses singular prefLabel etc.

A remaining question is how in our SPARQL queries we can translate language-tagged literals to this object structure. Can we even access a literal’s language in SPARQL (other than filtering on it)?

@coret
Copy link
Contributor

coret commented Dec 5, 2024

We could add prefLabels, altLabels, ... alongside prefLabel, altLabel, ....

This seem to be a solution outside of SKOS (purals not defined in https://www.w3.org/2009/08/skos-reference/skos.html)? It would be something like nde:PrefLabels and nde:altLabels?

@ddeboer
Copy link
Member Author

ddeboer commented Dec 5, 2024

Hence:

Downside: looks less like SKOS, which uses singular prefLabel etc.

We could prefix nde: but prefixes are not used in GraphQL APIs, so that would look weird to our API consumers.

@EnnoMeijers
Copy link
Contributor

Could the SKOS-XL approach be helpful to model the GraphQL output? This seems to be relevant for multi lingual support, B&G uses SKOS-XL for GTAA source. If not, I am ok with the proposed approach, no need for prefixes indeed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants