{"objectType":"GraphSpec","id":"ODPG-1.0","name":"Open Data Product Graphs","version":"1.0","purpose":"Graph reasoning, traversal, governance propagation, strategic intelligence, and AI-agent interaction across Open Data Product ecosystems.","schema":{"yaml":"/schema/odpg.yaml","json":"/schema/odpg.json"}}
{"objectType":"GraphField","id":"schema","required":true,"type":"uri","description":"URL of the ODPG schema used for validation."}
{"objectType":"GraphField","id":"version","required":true,"type":"string or number","description":"Version of the ODPG specification."}
{"objectType":"GraphField","id":"kind","required":true,"type":"string","description":"Type of graph specification document. Use Graph."}
{"objectType":"GraphField","id":"graph","required":true,"type":"object","description":"Container for graph metadata, nodes, and edges."}
{"objectType":"GraphMetadataField","id":"graph.metadata.id","required":true,"type":"string","description":"Unique identifier of the graph."}
{"objectType":"GraphMetadataField","id":"graph.metadata.name","required":true,"type":"localized object","description":"Human-readable graph name using language-specific values."}
{"objectType":"GraphMetadataField","id":"graph.metadata.description","required":true,"type":"localized object","description":"Human-readable graph description using language-specific values."}
{"objectType":"GraphField","id":"graph.nodes","required":true,"type":"array of node objects","description":"Collection of graph node objects."}
{"objectType":"GraphField","id":"graph.edges","required":true,"type":"array of edge objects","description":"Collection of directed graph edge objects."}
{"objectType":"NodeField","id":"node.id","required":true,"type":"string","description":"Unique identifier of the node."}
{"objectType":"NodeField","id":"node.type","required":true,"type":"string","description":"Type of graph entity represented by the node."}
{"objectType":"NodeField","id":"node.$ref","required":true,"type":"string","description":"Path or URI to the referenced specification or resource."}
{"objectType":"EdgeField","id":"edge.from","required":true,"type":"string","description":"Source node identifier."}
{"objectType":"EdgeField","id":"edge.to","required":true,"type":"string","description":"Target node identifier."}
{"objectType":"EdgeField","id":"edge.type","required":true,"type":"string","description":"Relationship type connecting two nodes."}
{"objectType":"EdgeField","id":"edge.confidence","required":true,"type":"string","description":"Confidence level of the relationship. Use high, medium, or low."}
{"objectType":"NodeType","id":"DataProduct","description":"A data product defined using ODPS or compatible structures.","retrievalUse":"Select when the graph references a data product without embedding full product metadata."}
{"objectType":"NodeType","id":"UseCase","description":"A business, analytical, operational, or AI-related use case.","retrievalUse":"Select when modeling a demand, scenario, workflow need, or business application."}
{"objectType":"NodeType","id":"BusinessObjective","description":"A strategic business objective or organizational goal.","retrievalUse":"Select when modeling desired business outcomes or strategic goals."}
{"objectType":"NodeType","id":"KPI","description":"A measurable business or operational indicator.","retrievalUse":"Select when modeling a metric that measures outcomes, objectives, or product contribution."}
{"objectType":"NodeType","id":"Domain","description":"A business, organizational, technical, or data domain.","retrievalUse":"Select when grouping ownership, capability, or subject-area context."}
{"objectType":"NodeType","id":"Dataset","description":"A structured or unstructured dataset.","retrievalUse":"Select when a dataset needs to be represented separately from a data product."}
{"objectType":"NodeType","id":"API","description":"A service interface exposed or consumed by a data product, agent, system, or workflow.","retrievalUse":"Select when modeling technical access, interface exposure, or service consumption."}
{"objectType":"NodeType","id":"Policy","description":"A governance, compliance, security, or quality policy.","retrievalUse":"Select when modeling governance requirements or controls."}
{"objectType":"NodeType","id":"Workflow","description":"A business or technical workflow.","retrievalUse":"Select when modeling process execution, orchestration, or operational flows."}
{"objectType":"NodeType","id":"Agent","description":"An AI agent or automation actor.","retrievalUse":"Select when modeling AI-agent interaction, automation, or graph-native reasoning."}
{"objectType":"NodeType","id":"Capability","description":"A business or technical capability.","retrievalUse":"Select when modeling reusable organizational or technical capabilities."}
{"objectType":"NodeType","id":"StrategicOpportunity","description":"An inferred or declared strategic opportunity.","retrievalUse":"Select when graph relationships indicate unmet needs, optimizations, gaps, or emerging value."}
{"objectType":"EdgeType","id":"uses","description":"A node uses another node as part of execution or operation.","sourceExamples":["UseCase","Agent","Workflow"],"targetExamples":["DataProduct","API","Dataset"]}
{"objectType":"EdgeType","id":"supports","description":"A node supports a business objective.","sourceExamples":["UseCase","Capability","DataProduct"],"targetExamples":["BusinessObjective"]}
{"objectType":"EdgeType","id":"contributesTo","description":"A node contributes toward an outcome or objective.","sourceExamples":["DataProduct","UseCase","Capability"],"targetExamples":["BusinessObjective","KPI"]}
{"objectType":"EdgeType","id":"measures","description":"A KPI measures an objective or outcome.","sourceExamples":["KPI"],"targetExamples":["BusinessObjective","StrategicOpportunity"]}
{"objectType":"EdgeType","id":"tracks","description":"A node tracks or provides KPI-related information.","sourceExamples":["DataProduct","Dataset","API"],"targetExamples":["KPI"]}
{"objectType":"EdgeType","id":"dependsOn","description":"A node depends on another node.","sourceExamples":["DataProduct","Workflow","Agent","API"],"targetExamples":["DataProduct","API","Dataset","Policy"]}
{"objectType":"EdgeType","id":"produces","description":"A node produces data, outputs, or services.","sourceExamples":["Workflow","DataProduct","Agent"],"targetExamples":["Dataset","API","DataProduct"]}
{"objectType":"EdgeType","id":"consumes","description":"A node consumes data, APIs, or outputs.","sourceExamples":["DataProduct","Agent","Workflow"],"targetExamples":["Dataset","API","DataProduct"]}
{"objectType":"EdgeType","id":"governedBy","description":"A node is governed by a policy or control.","sourceExamples":["DataProduct","API","Workflow","Agent"],"targetExamples":["Policy"]}
{"objectType":"EdgeType","id":"ownedBy","description":"A node is owned by a person, team, organization, or domain.","sourceExamples":["DataProduct","API","Dataset"],"targetExamples":["Domain","Capability"]}
{"objectType":"EdgeType","id":"alignsWith","description":"A node aligns strategically or semantically with another node.","sourceExamples":["StrategicOpportunity","Capability","UseCase"],"targetExamples":["BusinessObjective","Domain","Capability"]}
{"objectType":"EdgeType","id":"relatedTo","description":"A generic semantic relationship.","sourceExamples":["DataProduct","UseCase","Capability"],"targetExamples":["DataProduct","UseCase","Capability"]}
{"objectType":"EdgeType","id":"impacts","description":"A node impacts another node.","sourceExamples":["Policy","DataProduct","Workflow"],"targetExamples":["UseCase","KPI","BusinessObjective"]}
{"objectType":"EdgeType","id":"derivedFrom","description":"A node originates from another node.","sourceExamples":["Dataset","DataProduct","KPI"],"targetExamples":["Dataset","DataProduct","API"]}
{"objectType":"EdgeType","id":"exposes","description":"A node exposes an API or interface.","sourceExamples":["DataProduct","Workflow"],"targetExamples":["API"]}
{"objectType":"EdgeType","id":"monitors","description":"A node monitors another node.","sourceExamples":["Agent","Workflow","Policy"],"targetExamples":["DataProduct","API","KPI"]}
{"objectType":"EdgeType","id":"identifies","description":"A node identifies an opportunity or condition.","sourceExamples":["UseCase","Agent","KPI"],"targetExamples":["StrategicOpportunity"]}
{"objectType":"ConfidenceValue","id":"high","description":"Relationship is explicitly declared or confirmed.","agentUse":"Prefer for source-backed or owner-confirmed relationships."}
{"objectType":"ConfidenceValue","id":"medium","description":"Relationship is partially validated or inferred with moderate certainty.","agentUse":"Use for plausible inferred relationships with some evidence."}
{"objectType":"ConfidenceValue","id":"low","description":"Relationship is inferred and requires additional validation.","agentUse":"Use when suggesting relationships that need review."}
{"objectType":"ToolkitComponent","id":"GraphValidationToolkit","description":"Validates ODPG documents against the official schema and verifies structural consistency, node integrity, edge validity, confidence values, and interoperability requirements.","capabilities":["schema validation","node validation","edge validation","reference validation","semantic consistency checks","confidence validation"]}
{"objectType":"ToolkitComponent","id":"GraphTraversalToolkit","description":"Enables traversal across interconnected graph entities using semantic, strategic, operational, and governance relationships.","capabilities":["path discovery","dependency traversal","governance propagation","impact analysis","semantic navigation","strategic alignment analysis"]}
{"objectType":"ToolkitComponent","id":"StrategicIntelligenceToolkit","description":"Analyzes graph relationships to identify organizational gaps, overlapping initiatives, unsupported objectives, and emerging strategic opportunities.","capabilities":["orphan KPI detection","strategic gap analysis","thematic clustering","opportunity inference","duplicate use case detection","capability alignment analysis"]}
{"objectType":"ToolkitComponent","id":"AIAgentToolkit","description":"Enables AI agents and automation systems to interact with ODPG ecosystems through graph-native semantic interfaces and governance-aware traversal mechanisms.","capabilities":["graph retrieval APIs","semantic context injection","governance-aware graph traversal","trusted relationship discovery","explainable reasoning paths","graph-based memory systems","objective-aware planning","policy-aware execution","dependency reasoning","graph-native orchestration"]}
{"objectType":"ToolkitComponent","id":"FederationToolkit","description":"Enables organizations to connect multiple ODPG ecosystems into federated graph environments for cross-domain interoperability, distributed governance, and enterprise-scale graph reasoning.","capabilities":["federated graph discovery","cross-domain traversal","graph synchronization","semantic mapping","distributed governance","multi-organization graph interoperability"]}
{"objectType":"GraphPattern","id":"agent-uses-data-product-and-api","description":"An AI agent uses a data product and an API to retrieve trusted graph context or perform governed analysis.","nodes":[{"id":"AGENT-001","type":"Agent","$ref":"../agents/enterprise-analytics-agent.yaml"},{"id":"DP-001","type":"DataProduct","$ref":"../products/customer-360.yaml"},{"id":"API-001","type":"API","$ref":"../apis/customer-insights-api.yaml"}],"edges":[{"from":"AGENT-001","to":"DP-001","type":"uses","confidence":"high"},{"from":"AGENT-001","to":"API-001","type":"uses","confidence":"high"}]}
{"objectType":"GraphPattern","id":"data-product-contributes-to-objective","description":"A data product contributes to a measurable business objective and tracks a KPI.","nodes":[{"id":"DP-001","type":"DataProduct","$ref":"../products/customer-360.yaml"},{"id":"OBJ-001","type":"BusinessObjective","$ref":"../objectives/improve-customer-retention.yaml"},{"id":"KPI-001","type":"KPI","$ref":"../kpis/customer-retention-rate.yaml"}],"edges":[{"from":"DP-001","to":"OBJ-001","type":"contributesTo","confidence":"medium"},{"from":"KPI-001","to":"OBJ-001","type":"measures","confidence":"high"},{"from":"DP-001","to":"KPI-001","type":"tracks","confidence":"medium"}]}
{"objectType":"GraphPattern","id":"governance-propagation","description":"A data product or API is governed by a policy, enabling governance-aware traversal and impact analysis.","nodes":[{"id":"DP-001","type":"DataProduct","$ref":"../products/customer-360.yaml"},{"id":"API-001","type":"API","$ref":"../apis/customer-insights-api.yaml"},{"id":"POL-001","type":"Policy","$ref":"../policies/customer-data-access-policy.yaml"}],"edges":[{"from":"DP-001","to":"POL-001","type":"governedBy","confidence":"high"},{"from":"API-001","to":"POL-001","type":"governedBy","confidence":"high"},{"from":"DP-001","to":"API-001","type":"exposes","confidence":"high"}]}
