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.
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 recordhttps://server_name.cern.ch/literature/1482866
, number1482866
is thepid_value
stored inPidstore Pid
table. - Pidstore Redirect: is the table of pidstore that keeps the mapping of a record that is redirected to another record.
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
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)
Invenio-Search¶
(under construction)