{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Building Profiles with CIMTool" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CIMTool is an open source tool maintained by the UCAiug CIM User Group community for working with the CIM canonical model to produce design artifacts such as database schemas, message exchange syntax, source code classes, and reference documentation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CIMTool allows users to:\n", "\n", "* Create Contextual Profiles from the CIM Unified Model Language (UML)\n", "\n", "* Generate schemas such as Resource Description Framework Schema (RDF Schema) from a Contextual Profile\n", "\n", "* Create their own custom builders and import them into CIMTool to generate alternate types of target output (e.g. Word docs, SQL DB scripts, and CIM-Graph data profiles)\n", "\n", "* Validate Contextual Profile schemas\n", "\n", "* Validate data instances against a Contextual Profile schema\n", "\n", "* Validate incremental data instances against an instance and a Contextual Profile schema\n", "\n", "* Import Contextual Profiles from a spreadsheet" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CIMTool is an open source tool for working with the Common Information Model to produce design artifacts such as database schemas, message exchange syntax, source code classes, and reference documentation. \n", "\n", "CIMantic Graphs " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## CIMTool Builder\n", "\n", "The CIMantic Graphs CIMTool builder produces a specialized python dataclass schema to be used as the CIM-Graph Data Profile.\n", "\n", "The builder creates a hierarchical tree of CIM classes starting with top-level classes (such as `IdentifiedObject`) and then listing all classes inheriting from each level of dataclass. The dataclasses are used as the \"single-source-of-truth\" for auto-generated database queries and graph traversal using CIMantic Graphs.\n", "\n", "The builder is intended to be used in conjunction the [cimantic-graphs-init.xsl](cimantic-graphs-init.xsl) builder, which generates the python `__init__.py` file required for library imports to work correctly. The files generated by both builders should be placed in a new folder within the CIMantic Graphs library `./cimgraph/data_profile` subdirectory.\n", "\n", "Below is an example of a specialized python dataclass schema generated by this builder." ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "name": "python", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 2 }