You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The goal of the sprint is to add vocabularies support in InvenioRDM as a small layer on top of a reusable vocabularies support in Invenio.
Subgoals
Add the following vocabularies to InvenioRDM:
License (SPDX vocabulary)
Subjects (mixed free text + others)
Affiliations (ROR.org source)
Languages (ISO-639-3 source)
For each vocabulary that includes:
UI: The user interface widget and it's integration in the RDM deposit form.
API: The REST API for the vocabulary itself, as well as it's integration in the InvenioRDM record.
Display: The proper display of localized values from the vocabulary in search results and landing pages.
Import: The import from the vocabulary data source.
How does a successful outcome look like?
End-user
For an end-user, a successful sprint outcome is visible in the deposit form and search results/landing pages (e.g aggregations, labels etc).
Deposit form
Affiliation:
As an uploader, I want organisations names auto-completed in the affiliation field, so that I can save time.
As an uploader, I want to be able to specify organisations names not yet in the database, so that I'm not constrained on the input.
License:
As an uploader, I want help to select the license for my upload, so that I know what it means.
As an uploader, I want to be presented with the best license choice for my upload, so that I don't have to think.
As an uploader, I want to be able to specify a custom license text not known to the system, so that I can provide the correct license.
Subjects:
As an uploader, I want subjects to be auto-completed, so that I can use similar subjects as other
As an uploader, I want to limit auto-completion to specific vocabularies, so that I don't get irrelevant suggestions.
As an uploader, I want to provide free text keywords, so that I can include keywords exactly as they are on my journal article.
Languages:
As an uploader, I want to quickly specify multiple languages for my upload, so that I save time.
As an uploader, I want to see both the full name and the language code.
Mockup
Search results/landing page
In search results, vocabularies are often used in facets or for showing classification labels and similar (see below):
As a visitor, I want to see human-readable titles in facets in my own language, so that the site looks professional and is understandable.
As a visitor, I want to see human-readable subjects on both landing pages and search result items, , so that the site looks professional and is understandable.
Plan
The work is divided into two parallel tracks:
Front-end track: Building the necessary UI widgets.
Backend track: Building the REST APIs to support the UI widgets and rendering of search results.
Frontend track
Analyse, mockup and plan generic reusable widgets and it's integration with formik in the deposit form.
The UI widget itself.
The state management and data management.
Affiliation widget: auto-complete a single value, but allow non-vocabulary items as well.
License widget: auto-complete a single value using a modal select box (to be designed)
Subjects: auto-complete multiple values, with a possibility to limit to a specific subject scheme, and a possibility to specify subject terms not in the vocabulary.
Languages: auto-complete multiple values, restricted to only allowing vocabulary items.
Build the widgets with mock data.
Integrate them in the deposit form state and
Integrate the widgets with the REST API.
If blocked by others:
Improve deposit form UX.
Backend track
Design: See RFC 40 and 41.
Parallel track 1: Build the first REST API vocabularies endpoint into InvenioRDM (/api/vocabularies/languages).
Build basic record type factory into Invenio-Records-Resources
Build Invenio-Vocabularies module with a generic vocabulary (data, service, presentation layer) using common definitions.
Integrate the Invenio-Vocabularies generic module into InvenioRDM.
Build a way to import vocabularies into the generic vocabulary.
Import licenses and languages vocabulary into the generic model
CHECKPOINT: /api/vocabularies/languages/ and /api/vocabularies/licenses working and delivering data. This allows the frontend track to integrate it into the widgets.
Parallel track 2: Build the machinery for linking records
Build basic relations support into Invenio-Records (integrity checking, dereferencing, indexing)
Note: Invenio v3.4 sprint team depends on getting a final Invenio-Records release as early as possible.
Build basic scan() and reindex() support into Invenio-Records-Resources
CHECKPOINT: ability of data layer to check integrity, dereference a record, and index (allows integrating vocabulary into bibliographic record).
Integrate languages vocabulary into the RDM bibliographic record in Invenio-RDM-Records
Data layer: integrity checking, dereferencing and indexing
Service layer: a marshmallow schema
Presentation layer: show in
CHECKPOINT: REST API is now fully supporting the linking of languages
Build a facet over languages
Build programmatic vocabulary API
CHECKPOINT: Search results facet over languages is working.
CHECKPOINT: One full vocabulary working all the way through the backend.
The goal of the sprint is to add vocabularies support in InvenioRDM as a small layer on top of a reusable vocabularies support in Invenio.
Subgoals
Add the following vocabularies to InvenioRDM:
For each vocabulary that includes:
How does a successful outcome look like?
End-user
For an end-user, a successful sprint outcome is visible in the deposit form and search results/landing pages (e.g aggregations, labels etc).
Deposit form
Affiliation:
License:
Subjects:
Languages:
Mockup
Search results/landing page
In search results, vocabularies are often used in facets or for showing classification labels and similar (see below):
Plan
The work is divided into two parallel tracks:
Frontend track
If blocked by others:
Backend track
Design: See RFC 40 and 41.
Parallel track 1: Build the first REST API vocabularies endpoint into InvenioRDM (
/api/vocabularies/languages
)./api/vocabularies/languages/
and/api/vocabularies/licenses
working and delivering data. This allows the frontend track to integrate it into the widgets.Parallel track 2: Build the machinery for linking records
Integrate languages vocabulary into the RDM bibliographic record in Invenio-RDM-Records
Build a facet over languages
CHECKPOINT: One full vocabulary working all the way through the backend.
Training/Context
The text was updated successfully, but these errors were encountered: