Invenio modules

Invenio-PIDStore

Pidstore in Inspire-next

Pidstore is based on on the Invenio pidstore module that mints, stores, registers and resolves persistent identifiers. Pidstore has several uses in Inspire-next:

  • Map record ids (UUIDs) between ElasticSearch and DataBase. In that way every record, that is stored in the Database, can be fetched and imported by ElasticSearch. Also, it’s important to notice that the records for the front-end are inherited by ES Record, so they are coming from ElasticSearch.
  • Pidstore also provide a unique identifier for every record that is the known id for the outer world.

In the following you can find how pidstore is connected with Inspire-next.


_images/pidstore_inspire_connection.png

Pidstore and Database

There are three basic tables:

  • Record Metadata: is the table of the actual record stored in the database. The primary key (id) is foreign key (object_uuid) for the table Pidstore Pid. In that way record is mapped to the pidstore.
  • Pidstore Pid: is the main table of pidstore in which are stored all the known ids called pid_value for the outer world. For example given url of a specific record https://server_name.cern.ch/literature/1482866 , number 1482866 is the pid_value stored in Pidstore Pid table.
  • Pidstore Redirect: is the table of pidstore that keeps the mapping of a record that is redirected to another record.

_images/Pidstore_DB.png

Invenio-Records

Inspire Record Class

  • A record is the unit of information that we manage in inspire, from a literature record to a job record.
  • This data is stored as a json object that must be compliant on a specific jsonschema.

The Inpire record is derived by the base class of Invenio record. Inspire record is used mainly for the back-end processes and for the outer world is used the inherited classes of Inspire record. According to the bellow diagram, Inspire record is the base class and ES record (ElasticSearch) is the derived class. The data that are given to the front-end are inherited classes from ES record:

  • AuthorsRecord
  • LiteratureRecord
  • JobsRecord
  • ConferencesRecord
  • InstitutionsRecord
  • ExperimentsRecord
  • JournalsRecord

_images/inspire_record.png

Note

the above classes are written in the following files.

  • inspirehep/modules/records/wrappers.py
  • inspirehep/modules/records/api.py

Invenio-Query-Parser

(under construction)