{
  "@context": {
    "schema": "http://schema.org/",
    "cdi": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/",
    "cdif": "https://cdif.org/0.1/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "ex": "https://example.org/",
    "skos": "http://www.w3.org/2004/02/skos/core#"
  },
  "@type": [
    "cdi:DimensionalDataStructure"
  ],
  "@id": "ex:struct/salesCube",
  "cdi:has_DataStructureComponent": [
    {
      "@type": [
        "cdi:DimensionComponent"
      ],
      "@id": "ex:struct/salesCube/comp/country",
      "cdif:isDefinedBy_RepresentedVariable": {
        "@type": [
          "cdi:RepresentedVariable"
        ],
        "@id": "ex:struct/salesCube/rv/country",
        "cdif:name": [
          "country"
        ],
        "cdi:hasIntendedDataType": {
          "@type": [
            "cdi:ControlledVocabularyEntry"
          ],
          "cdi:entryValue": [
            "xsd:string"
          ]
        }
      }
    },
    {
      "@type": [
        "cdi:DimensionComponent"
      ],
      "@id": "ex:struct/salesCube/comp/quarter",
      "cdif:isDefinedBy_RepresentedVariable": {
        "@type": [
          "cdi:RepresentedVariable"
        ],
        "@id": "ex:struct/salesCube/rv/quarter",
        "cdif:name": [
          "quarter"
        ],
        "cdi:hasIntendedDataType": {
          "@type": [
            "cdi:ControlledVocabularyEntry"
          ],
          "cdi:entryValue": [
            "xsd:gYearMonth"
          ]
        }
      }
    },
    {
      "@type": [
        "cdi:DimensionComponent"
      ],
      "@id": "ex:struct/salesCube/comp/productCategory",
      "cdif:isDefinedBy_RepresentedVariable": {
        "@type": [
          "cdi:RepresentedVariable"
        ],
        "@id": "ex:struct/salesCube/rv/productCategory",
        "cdif:name": [
          "product_category"
        ],
        "cdi:hasIntendedDataType": {
          "@type": [
            "cdi:ControlledVocabularyEntry"
          ],
          "cdi:entryValue": [
            "xsd:string"
          ]
        }
      }
    },
    {
      "@type": [
        "cdi:MeasureComponent"
      ],
      "@id": "ex:struct/salesCube/comp/salesAmount",
      "cdif:isDefinedBy_RepresentedVariable": {
        "@type": [
          "cdi:RepresentedVariable"
        ],
        "@id": "ex:struct/salesCube/rv/salesAmount",
        "cdif:name": [
          "sales_amount"
        ],
        "cdi:simpleUnitOfMeasure": "USD",
        "cdi:hasIntendedDataType": {
          "@type": [
            "cdi:ControlledVocabularyEntry"
          ],
          "cdi:entryValue": [
            "xsd:decimal"
          ]
        }
      },
      "cdi:semantic": [
        {
          "@type": [
            "skos:Concept"
          ],
          "skos:prefLabel": "Monetary Total",
          "skos:definition": "Total monetary value of sales.",
          "skos:notation": [
            "monetary-total"
          ],
          "skos:inScheme": {
            "@id": "https://example.org/vocab/measure"
          }
        }
      ]
    },
    {
      "@type": [
        "cdi:AttributeComponent"
      ],
      "@id": "ex:struct/salesCube/comp/currency",
      "cdi:qualifies": [
        {
          "@id": "ex:struct/salesCube/comp/salesAmount"
        }
      ],
      "cdif:isDefinedBy_RepresentedVariable": {
        "@type": [
          "cdi:RepresentedVariable"
        ],
        "@id": "ex:struct/salesCube/rv/currency",
        "cdif:name": [
          "currency"
        ],
        "cdi:hasIntendedDataType": {
          "@type": [
            "cdi:ControlledVocabularyEntry"
          ],
          "cdi:entryValue": [
            "xsd:string"
          ]
        }
      }
    }
  ],
  "cdi:has_PrimaryKey": {
    "@type": [
      "cdif:PrimaryKey"
    ],
    "@id": "ex:struct/salesCube/pk",
    "cdif:isComposedOf": [
      {
        "@id": "ex:var/country"
      },
      {
        "@id": "ex:var/quarter"
      },
      {
        "@id": "ex:var/productCategory"
      }
    ]
  }
}