The following types are currently mapped from IGC to OMRS. Note that there are currently no mappings from OMRS types to IGC types as this connector is entirely read-only (capable of propagating or retrieving metadata from IGC, but not adding metadata to IGC).
Hoping for a mapping that isn't there?
- Submit an issue, or
- Check out any of the linked code below for examples of what's needed to create a mapping, and create your own (and feel free to submit a PR with the result!)
| IGC type(s) | OMRS type(s) | Notes |
|---|---|---|
category |
Glossary**, GlossaryCategory | All top-level categories in IGC that are not named Classifications are considered a Glossary, all categories whose parent_category is not null and not Classifications are considered a GlossaryCategory |
connector |
ConnectorType | |
data_class |
DataClass | |
data_connection |
Connection | |
data_file |
DataFile | |
data_file_field |
TabularColumn | |
data_file_folder |
FileFolder | |
data_file_record |
TabularSchemaType | |
database |
Database | |
database_column |
RelationalColumn | |
database_schema |
DeployedDatabaseSchema, RelationalDBSchemaType | |
database_table |
RelationalTable | |
host, host_(engine) |
Endpoint | |
information_asset |
NoteLog | This is a generated entity, present only for those IGC objects that support notes, and it cannot be searched |
information_governance_policy |
GovernancePolicy | |
label |
InformalTag | |
note |
NoteEntry | These cannot be searched, only retrieved from the NoteLog to which they are related |
term |
GlossaryTerm | |
user, group |
ContactDetails, Team | |
user, steward_user, non_steward_user |
Person |
| IGC types and properties | OMRS type | Notes |
|---|---|---|
database_schema - database_schema |
AssetSchemaType | This is a generated relationship (all properties for both endpoints are on a single entity instance in IGC) |
data_file.data_file_records - data_file_record.data_file |
AssetSchemaType | |
information_asset - information_asset |
AttachedNoteLog | This is a generated relationship (all properties for both endpoints are on a single entity instance in IGC), and is only present on those IGC objects that support notes |
information_asset.notes - note.belonging_to |
AttachedNoteLogEntry | This relationship cannot be searched |
information_asset.labels - label.labeled_assets |
AttachedTag | |
data_file_record.data_file_fields - data_file_field.data_file_record |
AttributeForSchema | |
database_table.database_columns - database_column.database_table_or_view |
NestedSchemaAttribute | |
database_schema.database_tables - database_table.database_schema |
AttributeForSchema | |
category.subcategories - category.parent_category |
CategoryAnchor | Creates a relationship between the ultimate parent IGC category (Glossary) and any offspring |
category.subcategories - category.parent_category |
CategoryHierarchyLink | |
data_connection.data_connectors - connector.data_connections |
ConnectionConnectorType | |
host.data_connections - connector.data_connections - data_connection.data_connectors |
ConnectionEndpoint | Linked through IGC's connector object in the middle |
data_connection.imports_database - database.data_connections |
ConnectionToAsset | |
data_connection - data_file_folder.data_connection |
ConnectionToAsset | |
user - user |
ContactThrough | This is a generated relationship (all properties for both endpoints are on a single entity instance in IGC) |
group - group |
ContactThrough | This is a generated relationship (all properties for both endpoints are on a single entity instance in IGC) |
information_asset.detected_classifications / information_asset.selected_classification - classification - data_class.classified_assets_detected / data_class.classifications_selected |
DataClassAssignment | Linked through IGC's classification object in the middle, which has some relationship-specific properties |
data_class.contains_data_classes - data_class.parent_data_class |
DataClassHierarchy | |
database.database_schemas - database_schema.database |
DataContentForDataSet | |
data_file_folder.data_file_folders - data_file_folder.parent_folder |
FolderHierarchy | |
database_column.defined_foreign_key_referenced / database_column.selected_foreign_key_referenced - database_column.defined_foreign_key_references / database_column.selected_foreign_key_references |
ForeignKey | |
information_governance_policy.subpolicies - information_governance_policy.parent_policy |
GovernancePolicyLink | |
data_file_folder.data_files - data_file.parent_folder |
NestedFile | |
term.related_terms - term.related_terms |
RelatedTerm | |
term.replaced_by - term.replaces |
ReplacementTerm | |
information_asset.assigned_to_terms - term.assigned_assets |
SemanticAssignment | |
term.synonyms - term.synonyms |
Synonym | |
category.terms - term.parent_category |
TermAnchor | Creates a relationship between the ultimate parent IGC category (Glossary) and an IGC term |
category.terms - term.parent_category |
TermCategorization | |
term.has_a_term - term.is_of |
TermHASARelationship | |
term.has_types - term.is_a_type_of |
TermISATypeOFRelationship | |
term.translations - term.translations |
Translation |
Because IGC has no "Classification" concept, the following are suggested implementations of Classifications within IGC by overloading the use of other concepts. These can be changed to alternative implementations simply by updating the linked mapping code to match your desired implementation of the concept.
The provided implementation simply assigns the list of default zones that have been specified as default.zones in the configuration of
the connector to each Database, DataFile, DeployedDatabaseSchema and FileFolder in the IGC repository
anytime these assets are retrieved.
The provided implementation assigns a Confidentiality classification to a GlossaryTerm (only) using the
assigned_to_term relationship from one term to any term within the Classifications/Confidentiality parent
category. The terms contained within this Confidentiality category in essence represent the ConfidentialityLevel
enumeration in OMRS. With this implementation, any assigned_to_term relationship on a term, where the assigned
term is within this Confidentiality category in IGC, will be mapped to a Confidentiality classification in OMRS.
The provided implementation looks for the presence of either the defined_primary_key or selected_primary_key
properties on a database_column, and if present add a PrimaryKey classification to that RelationalColumn.
The provided implementation assigns a SpineObject classification to a GlossaryTerm based on the
referencing_categories of the term in IGC. Specifically, when the term has a referencing_categories named
link to Classifications/SpineObject, the GlossaryTerm to which that term maps will be assigned the SpineObject
classification.
The provided implementation assigns a SubjectArea classification to a GlossaryCategory based on the
assigned_to_term relationship of the category in IGC. Specifically, when the category has an assigned_to_term
relationship to the IGC term Classifications/SubjectArea, the GlossaryCategory will be assigned a SubjectArea
classification whose name will match the name of the IGC category.
The provided implementation adds this classification to all RelationTable, RelationalColumn and TabularColumn
instances to simplify the management of type information without requiring additional SchemaType subclasses (like
RelationalTableType, RelationalColumnType and TabularColumnType) and their additional relationships.
License: CC BY 4.0, Copyright Contributors to the ODPi Egeria project.