Overslaan naar hoofdinhoud
Cloud Information Model Een open, applicatie-agnostisch datamodel voor het verbinden van enterprise cloud- en on-prem applicaties.

Sommige links op deze site zijn affiliate-links: als u via deze links koopt, kunnen wij een commissie verdienen zonder dat dit extra kosten voor u met zich meebrengt. Dit heeft nooit invloed op onze aanbevelingen. Zie onze affiliate-verklaring voor meer details. Affiliate-verklaring.

CIM-indelingen

Het Cloud Information Model (CIM) is vanaf het begin ontworpen als een op standaarden gebaseerd, applicatie-agnostisch model van bedrijfsconcepten — klanten, bestellingen, producten, accounts en de relaties daartussen. Maar een conceptueel model is alleen nuttig als de systemen die het nodig hebben het ook daadwerkelijk kunnen consumeren. Dat is de reden waarom CIM niet als een enkel bedrijfseigen artefact wordt gepubliceerd, maar als een familie van serialisaties, die elk gericht zijn op een andere klasse van tooling, runtime en doelgroep.

Op deze pagina wordt uitgelegd wat elk CIM-formaat is, waarvoor het dient en hoe u ertussen kunt kiezen. Als u een enterprise data-architect, een integratie- of ETL-engineer, een applicatie- of platformleverancier of een open-source contributor bent, hangt het formaat dat u als eerste kiest af van waar u zich in de pijplijn bevindt.

Belangrijkste inzichten

  • CIM wordt gedistribueerd in twee families: semantic-web formaten (JSON-LD, RDF Schema, SHACL, R2RML) en mensleesbare/relationele formaten (AML-vocabulaire, AML-dialect, RAML-typen, JSON Schema, SQL DDL).
  • Het conceptuele model (concepts.*) beschrijft entiteiten en relaties; het canonieke schema (schema.*) beschrijft datavormen en beperkingen. Het zijn afzonderlijke artefacten met verschillende doeleinden.
  • JSON-LD is de canonieke, machinaal leesbare vorm; AML is de mensleesbare vorm van dezelfde inhoud; SQL DDL en JSON Schema zijn de vormen die de meeste applicatie- en ETL-teams rechtstreeks consumeren.
  • R2RML is de brug: het mapt een relationeel schema naar een RDF-graaf, wat de manier is waarop u bestaande SQL-databases verbindt met de semantische laag.
  • Het kiezen van een formaat is een kwestie van consument, niet van voorkeur — kies het formaat dat uw doel-toolchain native ingeleest, en gebruik de andere als kruiscontroles.

Waarom CIM in meerdere formaten wordt geleverd

De meeste datamodellen worden in precies één vorm gepubliceerd — meestal een ER-diagram, een spreadsheet of een leverancierspecifiek metadatabestand. Dat werkt totdat u het model moet delen over organisaties die verschillende stacks gebruiken.

Een retailplatform kan PostgreSQL en dbt draaien; een partner kan een graafdatabase en een triple store beheren; een SaaS-leverancier kan JSON-API’s ontsluiten en payloads valideren met JSON Schema. Als het gedeelde model alleen in één van die dialecten bestaat, moet iedereen anders het vertalen — en vertalingen wijken af.

De multiformat-strategie van CIM is een bewust antwoord op dat probleem. Het model wordt één keer geauteur en vervolgens vertaald naar formaten die zuiver mappen op erkende standaarden, zodat elke consument CIM adopteert met tools die hij al heeft.

Dit is dezelfde filosofie achter standaardisatie-instellingen zoals het World Wide Web Consortium (W3C), dat specificaties publiceert zoals RDF, SHACL en R2RML die CIM hergebruikt in plaats van opnieuw uitvindt. Het sluit ook aan bij de bredere interoperabiliteitsmissie van de Linux Foundation, waaronder het CIM-project opereert.

Gerelateerd: — De volledig -pijplijn die gewoon blijft draaien.

Het praktische voordeel is tweeledig: bedrijven met verschillende technologieën kunnen CIM adopteren zonder een rip-and-replace, en contributors kunnen het model uitbreiden in elk formaat dat past bij hun expertise, wetende dat de andere serialisaties opnieuw kunnen worden gegenereerd.

Het conceptuele model versus het canonieke schema

Voordat we bestandsformaten gaan vergelijken, helpt het om twee lagen te scheiden die CIM strikt gescheiden houdt — en die nieuwkomers vaak door elkaar halen.

  • Het conceptuele model beantwoordt de vraag wat er bestaat en hoe het zich verhoudt. Het definieert entiteiten (Customer, Order, Product), hun attributen en de relaties daartussen. Het ligt opzettelijk dicht bij de zakelijke woordenschat en is bewust summier wat betreft fysieke details.
  • Het canonieke schema beantwoordt de vraag hoe een geldige instantie eruitziet. Het voegt datavormen en beperkingen toe — kardinaliteit, typen, verplichte velden, waardebereiken — waartegen een systeem kan valideren.

In de CIM-distributie mappen deze naar twee bestandsnaamstammen: concepts.* voor de conceptuele laag en schema.* voor de canonieke laag. Door ze gescheiden te houden, kan een businessanalist het conceptuele model lezen zonder door syntaxis van beperkingen te hoeven waden, terwijl een engineer payloads kan valideren aan de hand van het schema zonder het volledige conceptuele narratief nodig te hebben.

Als u aan het winkelen bent: — voor hybride cloud-naar-on-prem-integratie.

De semantic-web formaten

Deze formaten drukken CIM uit als een op RDF gebaseerde graaf. Ze zijn de juiste keuze wanneer uw consumenten triple stores, kennisgrafen, ontologie-tooling of elk ander systeem zijn dat redeneert over linked data.

JSON-LD — concepts.json en schema.json

JSON-LD is JSON met een linked-data context, wat het de pragmatische brug maakt tussen gewone web-API’s en het semantische web. CIM publiceert twee JSON-LD-artefacten:

  • concepts.json — de conceptuele beschrijving van entiteiten en relaties, uitgedrukt als RDF Schema.
  • schema.json — de canonieke datavormen en aanvullende beperkingen, uitgedrukt in SHACL.

Omdat het geldige JSON is, kunnen concepts.json en schema.json worden geladen door gewone JSON-tooling, maar omdat ze een @context bevatten, expanderen ze ook naar volledige RDF-triples. Dat dubbele karakter is de reden waarom JSON-LD vaak de beste standaardkeuze is voor teams die semantische getrouwheid willen zonder vanaf dag één een gespecialiseerde RDF-stack te adopteren.

RDF Schema — schema.json

RDF Schema (RDFS) biedt de woordenschat voor het beschrijven van klassen en eigenschappen — de rdfs:Class, rdfs:subClassOf en rdfs:domain/rdfs:range constructies die een machine laten begrijpen dat een Order een bedrijfsdocument is en dat de customer-eigenschap verwijst naar een Customer. CIM gebruikt RDFS om het conceptuele model formele semantiek te geven, zodat subklassehiërarchieën en eigendomsdomeinen machinaal interpreteerbaar zijn in plaats van enkel gedocumenteerd.

SHACL — schema.json

De Shapes Constraint Language (SHACL) is een W3C-standaard voor het valideren van RDF-grafieken aan de hand van een reeks voorwaarden die ‘shapes’ (vormen) worden genoemd. Waar RDFS zegt wat een klasse is, zegt SHACL waaraan een geldige instantie moet voldoen — vereiste eigenschappen, toegestane waardetypen, kardinaliteitslimieten. De canonieke gegevensvormen van CIM worden uitgedrukt in SHACL, wat betekent dat elke SHACL-processor CIM-conforme gegevens kan valideren zonder aangepaste code.

R2RML — schema.rdml

R2RML is de W3C-standaard voor het mappen van een relationeel databaseschema naar een RDF-grafiek. Dit is het formaat dat het belangrijkst is voor integratie- en ETL-engineers, omdat het het mechanisme is waarmee een bestaande SQL-database — met zijn tabellen, kolommen en foreign keys — wordt gepresenteerd als CIM-conforme linked data.

Gerelateerd: — Push-down ELT gebouwd voor clouddatawarehouses.

In plaats van uw operationele database handmatig opnieuw te modelleren, schrijft (of genereert) u een R2RML-mapping die declareert hoe elke tabel en kolom overeenkomt met CIM-entiteiten en -eigenschappen. Het resultaat is een virtuele RDF-grafiek over uw bestaande relationele gegevens.

De mensleesbare en relationele formaten

Niet elke consument wil RDF. Applicatieontwikkelaars, datamodelleurs en DBA’s willen vaak iets dat ze in een teksteditor kunnen lezen of rechtstreeks in een database kunnen laden. CIM bedient hen met de AML-, RAML-, JSON Schema- en SQL DDL-serialisaties.

AML — concepts.yaml, schema.yaml, schema.raml

AML, de AnyLogic Modeling Language-lijn die hier als modelleringsdialect wordt gebruikt, is de mensleesbare uitdrukking van CIM. CIM publiceert drie AML-artefacten:

Lezersfavoriet: — Open-source ELT met een beheerde cloudoptie.

  • concepts.yaml — de AML vocabulaire, een mensleesbare versie van het conceptuele model.
  • schema.yaml — het AML dialect, een mensleesbare versie van de canonieke gegevensvormen.
  • schema.raml — de weergave van de canonieke vormen in RAML-gegevenstypen.

Het onderscheid tussen vocabulaire en dialect is belangrijk om te internaliseren: de vocabulaire definieert de termen (de zelfstandige naamwoorden en werkwoorden van het model), terwijl het dialect definieert hoe die termen worden gecombineerd tot geldige structuren. Als u CIM voor de eerste keer bekijkt, is concepts.yaml meestal het meest toegankelijke instappunt.

JSON Schema — schema.json

JSON Schema is de de facto standaard voor het valideren van JSON-documenten, native of via bibliotheken ondersteund in vrijwel elke moderne taal. Het JSON Schema-artefact van CIM drukt de canonieke gegevensvormen uit als JSON Schema, waardoor het direct bruikbaar is in API-gateways, message brokers en CI-pipelines die JSON-payloads al valideren. Als uw integratieoppervlak REST of event-driven JSON is, is dit vaak het gewenste formaat.

SQL DDL — schema.sql

SQL DDL is de set van CREATE TABLE, CREATE VIEW en constraint-statements die de canonieke vormen materialiseren in een relationele database. CIM richt zich op de SQL 2008-syntaxis, waardoor de DDL draagbaar blijft over de belangrijkste relationele engines. Dit is het formaat waar DBA’s en ETL-engineers naar grijpen als ze een fysiek schema willen opzetten dat voldoet aan CIM — bijvoorbeeld een staging- of integratiedatabase die het canonieke model weerspiegelt.

Een formaat kiezen: een praktische gids

Er bestaat niet één “juist” formaat. De juiste keuze wordt bepaald door wie of wat het model vervolgens consumeert. Gebruik onderstaande tabel als beslissingshulp.

Als uw consument…Begin met…Omdat…
Een businessanalist of datamodelleur die het model beoordeeltAML-vocabulaire (concepts.yaml)Mensleesbaar, business-vocabulaire staat centraal
Een triple store, knowledge graph of ontologie-toolJSON-LD (concepts.json, schema.json)Native RDF met een JSON-oprit
Een SHACL-validator of semantische data-quality pipelineSHACL (schema.json)Standaard constraint-validatie over RDF
Een bestaande relationele database die u als linked data wilt presenterenR2RML (schema.rdml)Mapt tabellen/kolommen naar CIM-entiteiten zonder opnieuw te modelleren
Een REST- of event-driven JSON APIJSON Schema (schema.json)Valideert JSON-payloads rechtstreeks
Een relationele database die u conform CIM wilt makenSQL DDL (schema.sql)Draagbare SQL 2008 DDL
Een RAML-beschreven APIRAML-typen (schema.raml)Native voor RAML-toolchains

Een paar praktische kanttekeningen:

  • Behandel de formaten niet als onafhankelijke modellen. Het zijn serialisaties van dezelfde onderliggende CIM. Als u een discrepantie vindt tussen bijvoorbeeld schema.json (JSON Schema) en schema.json (SHACL), dan is dat een bug of een versieverschil, geen ontwerpkeuze — meld dit.
  • Let op botsingen in bestandsnamen. Verschillende formaten delen de stam schema met verschillende extensies (schema.json, schema.yaml, schema.raml, schema.sql, schema.rdml). Houd bij het downloaden van de volledige distributie de formaatmappen gescheiden, zodat u de ene serialisatie niet door de andere overschrijft.
  • Stem het formaat af op de validatiefase. Gebruik de conceptuele formaten voor beoordeling tijdens het ontwerp en de canonieke formaten voor runtime-validatie. Valideren aan de hand van het conceptuele model is niet zinvol — het mist de constraints.
  • Verkies gegenereerd boven handmatig bewerkt. Als u CIM uitbreidt, breid dan de bron uit en genereer de andere serialisaties opnieuw in plaats van elk formaat handmatig te bewerken, anders raakt de familie uit sync.

De volledige CIM-distributie downloaden

CIM wordt gedistribueerd als een volledige definitie in elk beschikbaar formaat, zodat u het hele model in de gewenste serialisatie kunt downloaden in plaats van het stuk voor stuk samen te stellen. De gepubliceerde downloadopties zijn:

  • AML (vocabulaire) — het voor mensen leesbare conceptuele model.
  • AML (dialect) — de voor mensen leesbare canonieke vormen.
  • JSON-LD (vocabulaire & schema) — het machinaal leesbare semantische model.
  • R2RML — de relationele-naar-RDF-mapping.
  • RAML Types — de canonieke vormen als RAML-gegevenstypen.
  • SQL DDL — de canonieke vormen als portable SQL.

Elke download bevat de volledige CIM-definitie in dat formaat, wat betekent dat u CIM stapsgewijs kunt adopteren: begin met het formaat dat uw huidige toolchain ondersteunt en voeg andere toe naarmate uw interoperabiliteitsbehoeften groeien.

Bijdragen in verschillende formaten

Omdat CIM een open project is, zijn bijdragen welkom — en de multi-formaatstructuur bepaalt hoe bijdragen werken. Bijdragers vallen doorgaans in twee groepen:

  • Modelbijdragers stellen nieuwe entiteiten, relaties of beperkingen voor. Deze wijzigingen worden één keer geauteurd en vervolgens doorgegeven aan de andere serialisaties.
  • Formatbijdragers verbeteren de getrouwheid of tooling van een specifieke serialisatie — bijvoorbeeld door het verfijnen van de R2RML-mappings of de SQL DDL-portabiliteit.

Als u een bijdrage levert, is de praktische regel dat u begrijpt welke laag u wijzigt (conceptueel versus canoniek) en welke formaten als gevolg daarvan opnieuw moeten worden gegenereerd. De GitHub-repositories en het webformulier voor bijdragers van het project zijn de toegangspunten om betrokken te raken.

Veelgestelde vragen

Wat is het verschil tussen concepts.json en schema.json in CIM?

concepts.json is het conceptuele model — de entiteiten en relaties in CIM, uitgedrukt als JSON-LD met RDF Schema-semantiek. schema.json is het canonieke schema — de datavormen en aanvullende beperkingen, uitgedrukt als JSON-LD met SHACL-semantiek. Kortom, concepts beschrijft wat bestaat; schema beschrijft hoe een geldig exemplaar eruit moet zien.

Waarom publiceert CIM hetzelfde model in zoveel formaten?

Omdat verschillende consumenten verschillende technologieën gebruiken. Een triple store heeft RDF nodig; een JSON API heeft JSON Schema nodig; een DBA heeft SQL DDL nodig; een businessanalist heeft iets nodig dat voor mensen leesbaar is. Door CIM in meerdere standaardformaten te publiceren, kan elk van deze doelgroepen het model adopteren met tools die ze al hebben, in plaats van iedereen één enkele stack op te dringen.

Waar wordt R2RML voor gebruikt in CIM?

R2RML is de W3C-standaard voor het mappen van een relationeel databaseschema naar een RDF-graaf. In CIM is het de brug die bestaande SQL-databases blootstelt als CIM-conforme linked data, zodat u operationele relationele systemen met de semantische laag kunt verbinden zonder ze handmatig opnieuw te modelleren.

Is AML hetzelfde als de JSON-LD-formaten?

Nee. AML is de voor mensen leesbare uitdrukking van CIM — de vocabulaire (concepts.yaml) en het dialect (schema.yaml, schema.raml). JSON-LD is de machinaal leesbare, op RDF gebaseerde uitdrukking. Ze beschrijven hetzelfde model, maar richten zich op verschillende doelgroepen en toolchains.

Met welk CIM-formaat moet ik beginnen?

Het hangt af van uw consument. Als u het model beoordeelt, begin dan met de AML-vocabulaire. Als u een JSON API bouwt, begin dan met JSON Schema. Als u een relationele database aansluit, begin dan met R2RML of SQL DDL. Als u met een kennisgraaf werkt, begin dan met JSON-LD en SHACL.

Kan ik één CIM-formaat bewerken zonder de andere bij te werken?

Dat kan, maar dat zou u niet moeten doen. De formaten zijn serialisaties van één onderliggend model, dus het handmatig bewerken van één enkel formaat zorgt ervoor dat de familie uit sync raakt. Breid in plaats daarvan het bronmodel uit en genereer de andere serialisaties opnieuw.

Verder lezen

Veelgestelde vragen

Wat is het verschil tussen `concepts.json` en `schema.json` in CIM?

concepten.json is het conceptuele model: de entiteiten en relaties in CIM, uitgedrukt als JSON-LD met RDF Schema-semantiek. schema.json is het canonieke schema: de gegevensvormen en aanvullende beperkingen, uitgedrukt als JSON-LD met SHACL-semantiek. Kortom, concepten beschrijven wat bestaat; schema beschrijft hoe een geldig exemplaar eruit moet zien.

Waarom publiceert CIM hetzelfde model in zoveel formaten?

Omdat verschillende consumenten verschillende technologieën gebruiken. Een triple store heeft RDF nodig; een JSON API heeft een JSON Schema nodig; een DBA heeft SQL DDL nodig; een bedrijfsanalist heeft iets nodig dat voor mensen leesbaar is. Door CIM in meerdere standaardformaten te publiceren, kan elk van deze doelgroepen het model overnemen met de tools die ze al hebben, in plaats van iedereen één enkele stapel op te leggen.

Waar wordt R2RML voor gebruikt in CIM?

R2RML is de W3C-standaard voor het toewijzen van een relationeel databaseschema aan een RDF-grafiek. In CIM is het de brug die bestaande SQL-databases blootstelt als CIM-conforme gekoppelde gegevens, zodat u operationele relationele systemen met de semantische laag kunt verbinden zonder ze met de hand opnieuw te modelleren.

Is AML hetzelfde als de JSON-LD-formaten?

Nee. AML is de voor mensen leesbare uitdrukking van CIM: de woordenschat (concepts.yaml) en het dialect (schema.yaml, schema.raml). JSON-LD is de machinaal leesbare, op RDF gebaseerde expressie. Ze beschrijven hetzelfde model, maar richten zich op verschillende doelgroepen en toolketens.

Met welk CIM-formaat moet ik beginnen?

Het hangt af van uw consument. Als u het model beoordeelt, begin dan met de AML-vocabulaire. Als u een JSON API bouwt, begin dan met JSON Schema. Als u een relationele database aansluit, begin dan met R2RML of SQL DDL. Als je met een kennisgrafiek werkt, begin dan met JSON-LD en SHACL.

Kan ik één CIM-formaat bewerken zonder de andere bij te werken?

Dat kan, maar dat mag niet. De formaten zijn serialisaties van één onderliggend model, dus het handmatig bewerken van één enkel format zorgt ervoor dat de familie niet meer synchroon loopt. Breid het bronmodel uit en genereer in plaats daarvan de andere serialisaties opnieuw. Verder lezen - [World Wide Web Consortium (W3C)](https://www.w3.org/) — de standaardorganisatie achter RDF, RDF Schema, SHACL en R2RML, de specificaties waarop CIM voortbouwt. - [Shapes Constraint Language (SHACL)](https://en.wikipedia.org/wiki/SHACL) — achtergrondinformatie over de constrainttaal die wordt gebruikt voor de canonieke gegevensvormen van CIM. - [Linux Foundation](https://en.wikipedia.o


Host gratis zelf of start Airbyte Cloud binnen enkele minuten

Open-source ELT met een beheerde cloudoptie