EMA SPOR: SMS, OMS, RMS
General Alignment Structure
Create different modules for:
- SMS
- OMS
- RMS: one graph per list
URI Pattern for SPOR Data
We use recently published URLs. Motivation: EMA authority, RDF Compliant
Examples:
- https://spor.ema.europa.eu/v1/lists/200000000004
- https://spor.ema.europa.eu/v1/lists/200000000004/terms/100000173972
- https://spor.ema.europa.eu/v1/lists/SubstanceDefinition/terms/100000085259
- https://spor.ema.europa.eu/v1/locations/LOC-100000551
- https://spor.ema.europa.eu/v1/organisations/ORG-100013412
- ...
There is a version v2 for substance, but this works with UUIDs as identifier. We will not use this for the moment.
Substances (SMS)
URI Patterns:
Substance Entity URI: https://spor.ema.europa.eu/v1/lists/SubstanceDefinition/terms/100000085259
SPOR SMS Column | Example Row | Alignment to IDMP-O |
---|---|---|
#SMS_ID | 100000085259 |
|
Substance_Name | Amlodipine | skos:prefLabelnMap to skos:prefLabel or skos:altLabel (subproperties of rdfs:label) depending on next column value |
Is_Preferred_Name | TRUE | TRUE=prefLabel, FALSE=altLabel |
Language | English | Add language tag, e.g., "@en" for English |
Name_Source | INN | If not empty, add (contextualized) substance name with corresponding name sources <S> cmns-dsg:hasName [ hasTextValue "Amlodipine" ; rdf:type idmp-sub:SubstanceName ; dct:source <Authority/RegistryURI> . # use of String reference for authorities that need to be added |
Substance_Domain | Human use | Reference to SPOR RMS code list object URI. Preliminary with SKOS property <https://www.omg.org/spec/Commons/Classifiers/isClassifiedBy> <https://spor.ema.europa.eu/v1/lists/100000000004/terms/100000000012> |
Status | Current | (ignore for now) |
Substance_Type | Chemical | rdf:type idmp-sub:ChemicalSubstance (see mapping table below on "Substance Type") |
Created_Date | 25.07.2019 11:55 | dct:created |
Last_Updated_Date | 21.06.2021 07:58 | dct:modified |
External_Code_XEVMPD | SUB05467MIG | <S> cmns-id:isIdentifiedBy <https://data.pistoiaalliance.org/id/EVMPD/SUB14568MIG> (preliminary URI) which is an instance of idmp:EudraVigilanceCode & cmns-ra:RegisteredIdentifier |
External_Code_SVG | (ignore for now) | |
External_Code_UNII | 1J444QC288 | <S> skos:exactMatch <https://gsrs.ncats.nih.gov/api/v1/substances/82Y7NT6DFT> (match to GSRS substance) <S> cmns-id:isIdentifiedBy <https://data.pistoiaalliance.org/id/FDA_UNII/1J444QC288> (preliminary URI) |
Coverage to IDMP
Substance Type Alignment: SPOR → IDMP-O
prefix spor-st: <https://spor.ema.europa.eu/v1/lists/100000075826/terms/>
SPOR SMS used Substance Type | Target IDMP Ontology Class | SPOR RMS Substance Type (list 100000075826) |
---|---|---|
Chemical | idmp-sub:ChemicalSubstance | spor-st:100000075670 |
Mixture | idmp-sub:Mixture | spor-st:200000005023 |
Nucleic acid | idmp-sub:NucleicAcidSubstance | spor-st:200000005035 |
Polymer | idmp-sub:PolymerSubstance | spor-st:200000005022 |
Protein | idmp-sub:ProteinSubstance | spor-st:200000005020 |
Specified Substance Group 1 | idmp-sub:SpecifiedSubstanceGroup1 | spor-st:200000005031 |
Specified Substance Group 2 | not found in data. Mapped to idmp-sub:SpecifiedSubstanceGroup2 | spor-st:200000005032 |
Specified Substance Group 3 | idmp-sub:SpecifiedSubstanceGroup3 | spor-st:200000005033 |
Specified Substance Group 4 | not found in data. Mapped to idmp-sub:SpecifiedSubstanceGroup4 | spor-st:200000005034 |
Structurally Diverse - Allergen | not covered so far. Fallback to idmp-sub:StructurallyDiverseSubstance | spor-st:200000005026 |
Structurally Diverse - Cell therapy | not covered so far. Fallback to idmp-sub:StructurallyDiverseSubstance | spor-st:200000005029 |
Structurally Diverse - Herbal | not covered so far. Fallback to idmp-sub:StructurallyDiverseSubstance | spor-st:200000005025 |
Structurally Diverse - Other | not covered so far. Fallback to idmp-sub:StructurallyDiverseSubstance | spor-st:200000005030 |
Structurally Diverse - Plasma derived | not covered so far. Fallback to idmp-sub:StructurallyDiverseSubstance | spor-st:200000005024 |
Structurally Diverse - Vaccine | not covered so far. Fallback to idmp-sub:StructurallyDiverseSubstance | spor-st:200000005027 |
Name Source
There 50 sources/authorities/companies name. And below is the list the name that IDMP already covered.
Full list used in SPOR SMS:
JAN
ADISINSIGHT
BAN
BRITISH HERBAL PHARMACOPOEIA
BRITISH PHARMACOPOEIA
CHEBI
CHEMICAL ABSTRACT SERVICE
CHEMICALBOOK
CHEMIDPLUS
CHINESE PHARMACOPOEIA
COLORCON
COMMUNITY HERBAL MONOGRAPHS
COMMUNITY REGISTER OF THE EUROPEAN COMMISSION
COMPANY SPECIFICATION
COSING
CZECH PHARMACOPOEIA
DEUTSCHES ARZNEIBUCH
ENCYCLOPEDIA OF LIFE (EOL)
EUROPEAN CHEMICALS AGENCY (ECHA)
EUROPEAN FOOD SAFETY AUTHORITY (EFSA)
EUROPEAN PHARMACOPOEIA
FDA INACTIVE INGREDIENTS DATABASE
FDA SUBSTANCE REGISTRATION SYSTEM
FRENCH PHARMACOPOEIA
GLOBAL DIVERSITY INFORMATION FACILITY
GREEK PHARMACOPOEIA
HAB
HANDBOOK OF PHARMACEUTICAL EXCIPIENT (2ND EDITION)
HOMEOPATHIC PHARMACOPOEIA OF THE UNITED STATES
INDEX FUNGORUM
INFLUENZA RECOMMENDATIONS
INN
INTERNATIONAL CODE OF NOMENCLATURE OF BACTERIA (ICNB)
INTERNATIONAL NUMBERING SYSTEM (INS) FOR FOOD ADDITIVES
INVESTIGATOR'S BROCHURE
ITALIAN PHARMACOPOEIA
ITIS (INTEGRATED TAXONOMIC INFORMATION SYSTEM)
JAPANESE PHARMACOPOEIA
KEW GARDEN- IPLANTS DATABASE
MARTINDALE
POLISH PHARMACOPOEIA
PROTEIN DATA BANK (PDB)
PUBCHEM
SPC
Substance Validation Group
THE MERCK INDEX 20TH EDITION
THE PLANT LIST
USAN
USP
WHO
SPOR Name Source / Authority | IDMP Mapping |
---|---|
CHEBI | idmp-eura:ChemicalEntitiesOfBiologicalInterest |
CHEMICAL ABSTRACT SERVICE | idmp-nara:ChemicalAbstractsService |
EUROPEAN CHEMICALS AGENCY (ECHA) | idmp-eurga:EuropeanChemicalsAgency |
FDA SUBSTANCE REGISTRATION SYSTEM | idmp-nara:FoodAndDrugAdministrationRegistrationAuthority |
INN | idmp-ra:InternationalNonproprietaryName |
ITIS (INTEGRATED TAXONOMIC INFORMATION SYSTEM) | idmp-nara:IntegratedTaxonomicInformationSystem |
PUBCHEM | idmp-nara:PubChem |
THE MERCK INDEX 20TH EDITION | idmp-ra:MerckIndexOnline |
USP | idmp-nara:USPharmacopeiaMedicinesCompendium |
WHO | idmp-ra:WorldHealthOrganization |
Organizations (OMS)
https://spor.ema.europa.eu/v1/searchOrganisations
Note: For now the target model uses IDMP-O and https://schema.org/
SPOR OMS Column | Example Row | IDMP-O Mapping |
---|---|---|
Organisation ID | ORG-100003912 | <https://spor.ema.europa.eu/v1/organisations/{ ?Organisation_ID }> a cmns-org:LegalEntity. |
Identifier Code | ORG-100011062¦ORG-100012803¦ORG-100003912 | https://www.omg.org/spec/Commons/Identifiers/isIdentifiedBy <https://data.pistoiaalliance.org/id/OMS/{ ?Organisation_ID }> |
Mapping Code System | 100000167429¦100000167429¦200000005700 | skipped for now |
Mapping Code System Name | European Inspections Database¦European Inspections Database¦EudraVigilance Veterinary Dynamics | skipped for now |
Mapping Code | 19301¦22802¦ | skipped for now |
Mapping Valid From | ¦¦ | skipped |
Mapping Valid To | ¦¦ | skipped |
Category Classification Category Code System Name | Type¦Type | skipped |
Category Classification Category Code | 200000000084¦200000000088 | Map to RMS-OMS-Party-Category skos:broader <https://spor.ema.europa.eu/v1/lists/200000000015/terms/200000000084> skos:broader <https://spor.ema.europa.eu/v1/lists/200000000015/terms/200000000088> Split in case of multiple values. NB: Need to confirm the skos:broader usage |
Category Classification Category Display Name | Regulatory Authority¦EEA National Competent authority | skipped as it comes with reference to the RMS-OMS-Party-Category list (row above) |
Status | ACTIVE | Map to RMS-Organisation-Role-Status skos:note <?URI> ?URI as: PROVISIONAL → https://spor.ema.europa.eu/v1/lists/220000000026/terms/220000000027 ACTIVE → https://spor.ema.europa.eu/v1/lists/220000000026/terms/220000000028 INACTIVE → https://spor.ema.europa.eu/v1/lists/220000000026/terms/220000000029 DELETED → https://spor.ema.europa.eu/v1/lists/220000000026/terms/220000000030 |
Name | Austrian Agency For Health And Food Safety | skos:prefLabel "Austrian Agency For Health And Food Safety" |
Acronym | AGES | skos:altLabel "AGES" |
Alternative Name | Österreichische Agentur Für Gesundheit Und Ernährungssicherheit GmbH | skos:altLabel "Österreichische Agentur Für Gesundheit Und Ernährungssicherheit GmbH"@DE Use together with Alternative Name Language Split in case of multiple values |
Alternative Name Language | DE | used for skos:altLabel see above |
Version Timestamp | 2022-07-15T16:38:31.896+02:00 | skipped / another version timestamp below |
Location ID | LOC-100000000 | Use to create a URI and Label <https://spor.ema.europa.eu/v1/locations/{ ?Location_ID }> a schema:PostalAddress ; skos:prefLabel ?Location_ID ; |
Location Link Href | https://spor.ema.europa.eu/v1/locations/LOC-100000000 | rdfs:seeAlso <https://spor.ema.europa.eu/v1/locations/LOC-100000000> |
Current Version | Y | skipped |
Mapping Code System | 100000172923 | skipped |
Mapping Code System Name | European Inspections Database organisation system key | skipped |
Mapping Code | 22802 | skipped |
Status | ACTIVE | skos:note "ACTIVE" |
Address PO Box | schema:postOfficeBoxNumber ?Address_PO_Box | |
Address Postal Code | 1220 | schema:postalCode "1220" Only use the first one in case of multiple values |
Address Country Code | AT | skipped for now (will be used when we have decided on the Country reference list) |
Address Country Display Name | Austria | schema:addressCountry "Austria" Only use the first one in case of multiple values (see the comment from the above row) |
Address GPS Location | skipped for now | |
Address Language | EN¦DE | skipped for now |
Address Line 1 | Spargelfeldstrasse 191¦Spargelfeldstraße 191 | schema:streetAddress "Spargelfeldstrasse 191\n<Address Line 2 (if exists)>\n<Address Line 3 (if exists)>\n<Address Line 4 (if exists)>" Only use the first one in case of multiple values |
Address Line 2 | Donaustadt¦Donaustadt | If it exists, concatenate (with line break separator \n) with the other Address Line. Only use the first one in case of multiple values |
Address Line 3 | ¦ | If it exists, concatenate (with line break separator \n) with the other Address Line. Only use the first one in case of multiple values |
Address Line 4 | ¦ | If it exists, concatenate (with line break separator \n) with the other Address Line. Only use the first one in case of multiple values |
Address City | Vienna¦Wien | schema:addressLocality "Vienna" Only use the first one in case of multiple values |
Address State | ¦ | schema:addressRegion "" Only use the first one in case of multiple values |
Address Region | ¦ | skipped |
Address County | ¦ | skipped |
Communication Details Email Address | skipped | |
Communication Details Phone Number Country Prefix | skipped | |
Communication Details Phone Number | skipped | |
Communication Details Phone Number Extension | skipped | |
Communication Details Address PO Box | skipped | |
Communication Details Address Postal Code | skipped | |
Communication Details Address Country Code | skipped | |
Communication Details Address Country Display Name | skipped | |
Communication Details Address GPS Location | skipped | |
Communication Details Address Language | skipped | |
Communication Details Address Line 1 | skipped | |
Communication Details Address Line 2 | skipped | |
Communication Details Address Line 3 | skipped | |
Communication Details Address Line 4 | skipped | |
Communication Details Address City | skipped | |
Communication Details Address State | skipped | |
Communication Details Address Region | skipped | |
Communication Details Address County | skipped | |
Version Timestamp | 2021-09-24T17:48:42.721+02:00 | skipped |
Referentials (RMS)
https://spor.ema.europa.eu/v1/lists
Please note, there is an ongoing discussion on updating the pattern of RMS lists! Pattern: Representing Controlled Vocabularies for EMA SPOR Referentials - REVIEW
URI Patterns (DRAFT tbd with EMA):
Should be like: https://spor.ema.europa.eu/rms/...
For now: https://spor.ema.europa.eu/v1/lists/...
RMS List
<https://spor.ema.europa.eu/v1/lists/100000000004/terms> a owl:Ontology ;
rdfs:label "SPOR RMS - Domain" ; # where "Domain" is the list name from EMA SPOR RMS
skos:scopeNote <https://spor.ema.europa.eu/v1/lists/100000000004/terms/100000000014> # Where ...14 stands for 'Human and Veterinary use'
skos:note <https://spor.ema.europa.eu/v1/lists/200000005003/terms/200000005004> # where ...200000005004 stands for "CURRENT" (see status field mapping below)
dct:modified "2022-12-12T14:55:17" ;
dct:created "2007-09-12T00:00:00" ;
owl:versionInfo "25" ;
rdfs:comment "Created as part of the IDMP Ontology project using Accurids" ;
.
Equivalence relationship if possible. E.g., for country:
<https://spor.ema.europa.eu/v1/lists/100000000002> owl:equivalent <>
<Germany> owl:sameAs <lcc:Germany>
RMS Class:
<https://spor.ema.europa.eu/v1/lists/100000000004> a owl:Class ;
rdfs:seeAlso <https://spor.ema.europa.eu/rmswi/#/lists/100000000004/terms> ;
rdfs:label "Domain" ;
<https://www.omg.org/spec/Commons/Designators/isDefinedIn> <https://spec.pistoiaalliance.org/idmp/ontology/ISO/EuropeanJurisdiction/SubstancesProductsOrganisationsReferentials/ReferentialsManagementServicesClassificationScheme>
.
RMS Reference Entity
<https://spor.ema.europa.eu/v1/lists/100000000004/terms/100000000012> abbreviated as <RE> below to make spec more compact.
Status Mapping:
- CURRENT: https://spor.ema.europa.eu/v1/lists/200000005003/terms/200000005004
- PROVISIONAL: https://spor.ema.europa.eu/v1/lists/200000005003/terms/200000005005
- NON-CURRENT: https://spor.ema.europa.eu/v1/lists/200000005003/terms/200000005006
- NULLIFIED: https://spor.ema.europa.eu/v1/lists/200000005003/terms/200000005007
Using SKOS-XL for the labels: https://www.w3.org/TR/skos-reference/skos-xl.html
SPOR RMS List Column | Example Row | IDMP-O Alignment |
---|---|---|
List ID | 100000000004 | Create URIs for |
Term ID | 100000000012 | Create Term URI (preliminary): https://spor.ema.europa.eu/v1/lists/100000000004/terms/100000000012 <https://spor.ema.europa.eu/v1/lists/100000000004/terms/100000000012> a <https://spor.ema.europa.eu/v1/lists/100000000004> . |
Term Rowid | 20251 | not used for now |
Language | it | language tag as "..."@it |
Term Name | uso umano | rdfs:Label "...."@en (only if it is English language) additionally: <RE> skos-xl:prefLabel <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/label/{ ?Term_Name_Rowid }> <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/label/{ ?Term_Name_Rowid }> a skos-xl:Label ; skos-xl:literalForm "uso umano"@it ; dct:modified "2021-03-03T14:07:00" ; dct:contributor ... cmns-cls:isClassifiedBy << status mapping>> ; rdfs:comment ... ;
|
Term Name Modified On | 03.03.2021 14:07 | <Label> dct:modified "2021-03-03T14:07:00" Use ISO 8601 |
Term Name Modified By | <Label> dct:contributor ... | |
Term Name Translation Status | CURRENT | <Label> cmns-cls:isClassifiedBy << status mapping>> |
Term Name Comments | <Label> rdfs:comment ... | |
Term Name Rowid | 10390002 | Use for building the label URI <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/label/{ ?Term_Name_Rowid }> |
Short Name | H | <RE> skos-xl:altLabel <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/label/{ ?Short_Name_Rowid }> <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/label/{ ?Short_Name_Rowid }> a skos-xl:Label ; skos-xl:literalForm "H"@it ; dct:modified "2021-03-03T14:07:00" ; dct:contributor ... cmns-cls:isClassifiedBy << status mapping>> ; rdfs:comment ... ;
|
Short Name Modified On | 03.03.2021 14:07 | <Label> dct:modified "2021-03-03T14:07:00" Use ISO 8601 |
Short Name Modified By | <Label> dct:contributor ... | |
Short Name Translation Status | CURRENT | <Label> cmns-cls:isClassifiedBy << status mapping>> |
Short Name Comments | <Label> rdfs:comment ... | |
Short Name Rowid | 10390003 | Use for building the label URI <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/label/{ ?Short_Name_Rowid }> |
Other Name | AltLabel with same language tag (if applicable) Splitted in case of multiple value <RE> skos-xl:altLabel <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/label/{ ?Other_Name_Rowid }> <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/label/{ ?Other_Name_Rowid }> a skos-xl:Label ; skos-xl:literalForm ....@it ; dct:modified "2021-03-03T14:07:00" ; dct:contributor ... cmns-cls:isClassifiedBy << status mapping>> ; rdfs:comment ... ; | |
Other Name Modified On | <Label> dct:modified "2021-03-03T14:07:00" Use ISO 8601 | |
Other Name Modified By | <Label> dct:contributor ... | |
Other Name Translation Status | <Label> cmns-cls:isClassifiedBy << status mapping>> | |
Other Name Comments | <Label> rdfs:comment ... | |
Other Name Rowid | Use for building the label URI <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/label/{ ?Other_Name_Rowid }> | |
Term Description | with same language tag (if applicable) <RE> skos:definition "..."@it | |
Term Description Modified On | skip for now | |
Term Description Modified By | skip for now | |
Term Description Translation Status | skip for now | |
Term Description Rowid | skip for now | |
Term Symbol | <RE> skos:notation .... | |
Term Symbol Modified On | skip | |
Term Symbol Modified By | skip | |
Term Symbol Comments | skip | |
Term Symbol Rowid | skip | |
Domain ID | 100000000014 | The domain uses the Domain RMS list <RE> cmns-cls:isClassifiedBy <https://spor.ema.europa.eu/v1/lists/100000000004/terms/100000000014> |
Term Domain Rowid | 20308 | skip |
List Hierarchical Level Short Name | skip | |
List Hierarchical Level Name | skip | |
Parent ID | Hierarchy within the same list: <RE> skos:broader <https://spor.ema.europa.eu/v1/lists/[listID]/terms/[Parent ID]> | |
Parent Term Rowid | skip for now, can be used for label node later | |
Term Status | CURRENT | Use the RMS status list Elisa Kendall to add the class for "term status", <RE> cmns-cls:isClassifiedBy <https://spor.ema.europa.eu/v1/lists/200000005003/terms/200000005004> with << status mapping>> |
Term Status Modified On | 2007-08-16T10:22:30Z | use reification statement rdf:Statement <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/termStatus/{ ?Term_Status_Rowid }> a rdf:Statement ; rdf:subject <RE> rdf:predicate cmns-cls:isClassifiedBy rdf:object <<the term status>> dct:modified "2007-08-16T10:22:30Z" (with proper ISO conversion) dct:contributor "ema" |
Term Status Modified By | ema | <reif> dct:contributor "ema" for now (better property needed and reference list for values |
Term Status Rowid | 20501 | Use as ID to avoid duplicate in reification statement <https://spor.ema.europa.eu/v1/lists/{ ?List_ID }/terms/{ ?Term_ID }/termStatus/{ ?Term_Status_Rowid }> |
Current Term ID | skip | |
Current Term Rowid | skip | |
Mapping Source ID | skip | |
Mapping Source Term ID | skip | |
Source Provided Name | skip | |
Is Main Term Source | skip | |
Mapping Source Version | skip | |
Mapping Source Term Status | skip | |
Term Source Mapping Rowid | skip | |
Term Comments | skip | |
Applicable to Country ID | skip | |
Country Applicability Rowid | skip | |
Applicable to IT application ID | skip | |
IT Application Applicability Rowid | skip | |
Term Created On | 27.07.2007 09:04 | <RE> dct:created "2007-07-27T09:04:00" Use ISO 8601 |
Term Created By | skip | |
Term Modified On | 12.12.2022 14:55 | <RE> dct:modified "2022-12-12T14:55:00" Use ISO 8601 |
Term Modified By | skip | |
Version Number | 11 | skip for now |
Version Date | skip | |
Is Major Version | N | skip for now |
Term Visibility | PUBLIC | skip for now |
UoM Conversion Target Term ID | Example value: 100000110853 It can link to Units of Measurement RMS list | |
UoM Conversion Function ID | Example value: MU/ml | |
UoM Conversion Function Formula | no value found | |
UoM Conversion Function Value | no value found | |
Term UoM Conversion Rowid | skip | |
User Defined Tags | skip | |
User Preferred Name | skip | |
Attribute 1 | skip | |
Attribute Value 1 | skip | |
Term Attribute 1 Rowid | skip | |
Attribute 2 | skip | |
Attribute Value 2 | skip | |
Term Attribute 2 Rowid | skip | |
Attribute 3 | skip | |
Attribute Value 3 | skip | |
Term Attribute 3 Rowid | skip | |
Attribute 4 | skip | |
Attribute Value 4 | skip | |
Term Attribute 4 Rowid | skip | |
Attribute 5 | skip | |
Attribute Value 5 | skip | |
Term Attribute 5 Rowid | skip | |
Attribute 6 | skip | |
Attribute Value 6 | skip | |
Term Attribute 6 Rowid | skip | |
Attribute 7 | skip | |
Attribute Value 7 | skip | |
Term Attribute 7 Rowid | skip | |
Attribute 8 | skip | |
Attribute Value 8 | skip | |
Term Attribute 8 Rowid | skip | |
Attribute 9 | skip | |
Attribute Value 9 | skip | |
Term Attribute 9 Rowid | skip | |
Attribute 10 | skip | |
Attribute Value 10 | skip | |
Term Attribute 10 Rowid | skip |