Manifest
The Global Risks Index (GRIx) is an integrated framework designed to assess and manage risks across the water-health-food-energy nexus. It encompasses a wide array of risk categories, including financial, political, systemic, health, and climate risks. GRIx utilizes the Microsoft Common Data Model (CDM) to ensure seamless data integration, interoperability, and scalability. A pivotal component of CDM, the Manifest object, serves as the organizational backbone, enabling GRIx to manage complex datasets and their interrelationships effectively.
Understanding the Manifest Object
Definition and Purpose
In GRIx, a Manifest object represents a comprehensive directory that organizes and manages related data files and schema descriptions within a data lake. It acts as an entry point, delineating the structure and interconnections of various entities essential for risk assessment and management. Each Manifest document (*.manifest.cdm.json
) encapsulates a collection of entities, their schemas, data partitions, relationships, and submanifests, thereby forming a cohesive solution tailored to specific risk domains or analytical purposes.
Structure of a Manifest Document
A typical Manifest document in GRIx encompasses the following key components:
Version Information
Imports
Manifest Definition
Entity Lists
Relationship Lists
Submanifest Lists
Each component plays a crucial role in defining how data is organized, accessed, and interrelated within the GRIx ecosystem.
Imports in a Manifest
Imports in a Manifest allow GRIx to reference and utilize definitions from other CDM documents, promoting reusability and modularity. By importing foundational and common definitions, the Manifest ensures consistency and adherence to standardized schemas across various risk domains.
Example Import Statement:
In this example, the Manifest imports common definitions, foundational schemas, and GRIx-specific risk entities, establishing a robust base for subsequent data definitions and relationships.
Shared Concepts Inside the Manifest
The Manifest object and the entities it contains share several properties and functionalities that ensure uniformity and interoperability within GRIx:
Entity Names and Paths: Standardized naming conventions and corpus paths facilitate easy reference and management of entities.
Data Partitions: Organized collections of data files associated with each entity, enabling efficient data retrieval and analysis.
Traits and Annotations: Metadata annotations that define behaviors, formats, and relationships, enhancing the semantic richness of the data.
Version Control: Embedded version information ensures backward compatibility and smooth schema evolution.
Entity Lists in a Manifest
Entity lists within a Manifest represent collections of related entities, organized to serve specific analytical or operational purposes within GRIx. These entities can either be owned by the Manifest or referenced from external Manifests.
Local Entity Declaration
Entities that are owned by the Manifest are fully managed within its scope. The Manifest specifies the location of the entity's schema document, the data partitions containing the entity's records, and any partition patterns used to discover new data files.
Properties of Local Entity Declaration:
Property / Method
Description
SDK Version
entityName
The name of the owned entity (e.g., RiskEntity
).
1.0
entityPath
A corpus path to the entity definition within its containing document (e.g., local:/RiskData/RiskEntity.cdm.json/RiskEntity
). This should be the resolved form of the entity definition.
1.0
dataPartitions
Collection of dataPartition objects, each describing the location, format, and details of a data file for the entity.
1.0
dataPartitionPatterns
Collection of dataPartitionPatterns objects used to discover and describe new partition files based on defined patterns.
1.0
incrementalPartitions
Collection of incremental dataPartition objects for entities that receive periodic updates.
1.6
incrementalPartitionPatterns
Collection of incremental dataPartitionPatterns objects for discovering and managing incremental data files.
1.6
Example Local Entity Declaration:
Referenced Entity Declaration
Entities that the Manifest references are managed externally. The Manifest lists these entities without owning their data partitions, allowing GRIx to borrow entities from other solutions or Manifests.
Properties of Referenced Entity Declaration:
Property / Method
Description
entityName
The name of the referenced entity (e.g., Person
).
entityPath
A corpus path to the entity declaration within the referenced Manifest document (e.g., remote:/OtherSolution/default.manifest.cdm.json/Person
).
Example Referenced Entity Declaration:
In this example, the Person
entity is borrowed from an external Manifest, allowing GRIx to utilize its schema and data without direct ownership.
The SubManifest Object
SubManifests allow GRIx to create hierarchical and modular structures within its data lake. By nesting SubManifests within a primary Manifest, GRIx can organize related solutions or extensions, facilitating scalability and manageability.
Properties of SubManifest:
Property / Method
Description
definition
The corpus path to the SubManifest's *.manifest.cdm.json
document (e.g., waterProject/WaterManifest.cdm.json
).
Example SubManifest Declaration:
In this example, the WaterHealthFoodEnergyNexus
SubManifest encapsulates entities and data pertinent to the interconnected domains of water, health, food, and energy, maintaining a logical separation within the broader GRIx framework.
Entity Relationships
Understanding and managing entity-to-entity relationships is crucial for comprehensive risk analysis in GRIx. These relationships define how different entities interact and influence each other, enabling holistic risk assessments across multiple domains.
Relationship Properties:
Property
Description
fromEntity
A corpus path to the referencing entity (e.g., RiskData/RiskEntity.cdm.json/RiskEntity
).
fromEntityAttribute
The attribute in the referencing entity that acts as a foreign key (e.g., personId
).
toEntity
A corpus path to the referenced entity (e.g., PersonData/Person.cdm.json/Person
).
toEntityAttribute
The attribute in the referenced entity that acts as a primary key (e.g., id
).
name
The name of the relationship (e.g., RiskEntity_PersonRelationship
).
exhibitsTraits
Collection of traits that define additional semantics or behaviors for the relationship.
Example Relationship Declaration:
In this example, the RiskEntity
references the Person
entity through the personId
attribute, establishing a relationship that identifies the owner of a specific risk.
File Status Check and Modification Times
The Manifest object in GRIx maintains metadata about file statuses and modification times to ensure data integrity and facilitate efficient data management.
Key Properties:
Property / Method
Description
SDK Version
LastFileStatusCheckTime
The last time the Manifest checked the status of its files and child objects.
1.0
LastFileModifiedTime
The last time any file within the Manifest was modified.
1.0
LastChildFileModifiedTime
The latest modification time reported by any child object within the Manifest.
1.0
File Status Check Methods:
Object
Method
Description
SDK Version
Manifest
fileStatusCheck
Checks the Manifest, all entity declarations, and all SubManifests.
1.0
Local entity
fileStatusCheck
Checks the schema documents and all data partitions and patterns for the entity.
1.0
Referenced entity
fileStatusCheck
Checks the status of the remote Manifest document.
1.0
dataPartition
fileStatusCheck
Checks the file indicated by the data partition.
1.0
dataPartitionPattern
fileStatusCheck
Evaluates the data partition pattern search and creates new data partitions if applicable.
1.0
incrementalPartition
fileStatusCheck
Checks the file indicated by the incremental partition.
1.6
incrementalPartitionPattern
fileStatusCheck
Evaluates the incremental data partition pattern search and creates new incremental partitions if applicable.
1.6
SubManifest
fileStatusCheck
Checks the files of SubManifests.
1.0
Example Usage:
In this example, the Manifest records the last status check and modification times, aiding in monitoring data freshness and integrity.
Manifest Example Document
The following example demonstrates a comprehensive Manifest document tailored for GRIx, encompassing various entities across the water-health-food-energy nexus and multiple risk categories.
Example Manifest Document:
Explanation of the Example:
Imports: The Manifest imports common definitions, foundational schemas, GRIx-specific risk entities, and definitions for hazards, vulnerabilities, exposure, and risks.
Entities: Defines various risk entities across the water-health-food-energy nexus and financial risks, each with their respective data partitions and partition patterns.
Relationships: Establishes connections between risk entities and other entities like Geography, HealthFacility, and Sector.
SubManifests: Incorporates SubManifests for modular solutions, allowing for scalable and organized data management within GRIx.
The Manifest object is a cornerstone of the GRIx framework, enabling structured and efficient management of complex risk data across multiple domains. By leveraging CDM's Manifest capabilities, GRIx ensures that data related to hazards, vulnerabilities, exposure, and risks is systematically organized, easily accessible, and interconnected. This structured approach facilitates comprehensive risk assessments, advanced modeling, and informed decision-making within the intricate water-health-food-energy nexus and beyond.
By adhering to the principles and best practices outlined in this document, organizations can effectively implement the Manifest object within GRIx, ensuring robust data governance, scalability, and interoperability in their global risk management endeavors.
Further Reading and Resources
Last updated
Was this helpful?