PROF-AP-CIM

Application Profile

Application profile of “The Profiles Vocabulary” (PROF) for describing CIM profiles.


1. Introduction

This is an application profile of PROF for defining CIM profiles.

2. Conformance

The following sections are normative with regards to complying to this specification:

The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in [RFC2119].

3. Terminology

application profile

A specification that constrains, extends, combines, or provides guidance or explanation about the usage of other specifications.

4. Schema

Schema
Figure 1. Schema

4.2. Class: prof:Profile

A specification that constrains, extends, combines, or provides guidance or explanation about the usage of other specifications. This definition includes what are sometimes called “application profiles”, “metadata application profiles”, or “metadata profiles”.

Table 2. Properties
Property Type Description

dcat:version

  • string

  • (1)

The version indicator (name or identifier) of a resource.

dcterms:title

  • string

  • (1)

A name given to the resource.

dcat:isVersionOf

  • uriorcurie

  • (1)

A related resource of which the described resource is a version, edition, or adaptation.

dcat:previousVersion

  • uriorcurie

  • (0..*)

The previous version of a resource in a lineage.

dcterms:issued

  • datetime

  • (1)

Date of formal issuance of the resource.

dcterms:conformsTo

  • uriorcurie

  • (1..*)

An established standard to which the described resource conforms.

dcterms:source

  • string

  • (0..*)

A related resource from which the described resource is derived.

dcterms:contributor

  • uriorcurie

  • (1..*)

An entity responsible for making contributions to the resource.

dcterms:contributor

  • uriorcurie

  • (1..*)

An entity primarily responsible for making the resource.

dcterms:contributor

  • string

  • (1)

An account of the resource.

rdfs:comment

  • string

  • (0..*)

A description of the subject resource.

rdfs:label

  • string

  • (1)

A human-readable name for the subject.

dcterms:language

  • string

  • (0..1)

A language of the resource.

dcterms:license

  • string

  • (0..1)

A legal document giving official permission to do something with the resource.

dcterms:publisher

  • string

  • (1)

An entity responsible for making the resource available.

dcterms:rightsHolder

  • string

  • (0..1)

A person or organization owning or managing rights over the resource.

dcterms:rights

  • string

  • (0..1)

Information about rights held in and over the resource.

prof:hasResource

  • ProfileResource

  • (0..*)

A resource which describes the nature of an artifact and the role it plays in relation to the profile.

4.3. Class: prof:ResourceDescriptor

Table 3. Properties
Property Type Description

rdfs:label

  • string

  • (1)

A human-readable name for the subject.

dcterms:title

  • string

  • (1)

A name given to the resource.

dcterms:conformsTo

  • uriorcurie

  • (1..*)

An established standard to which the described resource conforms.

dcterms:source

  • string

  • (0..*)

A related resource from which the described resource is derived.

dcterms:contributor

  • string

  • (1)

An account of the resource.

adms:representationTechnique

  • RepresentationTechnique

  • (0..1)

More information about the format in which an asset distribution is released. This is different from the file format as, for example, a ZIP file (file format) could contain an XML schema (representation technique).

dcterms:format

  • RepresentationFormat

  • (1)

The file format, physical medium, or dimensions of the resource.

prof:hasArtifact

  • uriorcurie

  • (1)

The URL of a downloadable file with particulars such as its format and role indicated by the resource descriptor.

prof:hasRole

  • ProfileResourceRole

  • (1)

A description of a resource that defines an aspect - a particular part, feature or role - of a profile.

Appendix A: Diagram Layout profile example

Any RDF serialization will do for profile instances, but it is recommended to make us of the JSON-LD context and write using YAML.

Source code (YAML-LD)
"@context": # https://cim.ucaiug.io/prof-ap-cim/2.0/context.jsonld
  "@base": https://cim.ucaiug.io/grid/DiagramLayout/2.1#
  id: "@id"
  type: "@type"
  adms: http://www.w3.org/ns/adms#
  rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
  rdfs: http://www.w3.org/2000/01/rdf-schema#
  xsd: http://www.w3.org/2001/XMLSchema#
  dc: http://purl.org/dc/elements/1.1/
  dcterms: http://purl.org/dc/terms/
  dcat: http://www.w3.org/ns/dcat#
  owl: http://www.w3.org/2002/07/owl#
  skos: http://www.w3.org/2004/02/skos/core#
  cim: https://cim.ucaiug.io/ns#
  cims: https://cim.ucaiug.io/schema-extensions#
  prof: http://www.w3.org/ns/dx/prof/
  role: http://www.w3.org/ns/dx/prof/role/
  "@vocab": http://cim.ucaiug.io/grid/DiagramLayout
  version:
    "@id": dcat:version
    "@type": xsd:string
  isVersionOf:
    "@id": dcat:isVersionOf
    "@type": "@id"
  previousVersion:
    "@id": dcat:previousVersion
    "@type": "@id"
  issued:
    "@id": dcterms:issued
    "@type": xsd:dateTime
  conformsTo:
    "@id": dcterms:conformsTo
    "@type": "@id"
  source:
    "@id": dcterms:source
  contributor:
    "@id": dcterms:contributor
    "@type": "@id"
  creator:
    "@id": dcterms:creator
    "@type": "@id"
  description:
    "@id": dcterms:description
  title:
    "@id": dcterms:title
  comment:
    "@id": rdfs:comment
  label:
    "@id": rdfs:label
  language:
    "@id": dcterms:language
    "@type": xsd:language
  license:
    "@id": dcterms:license
    "@type": "@id"
  publisher:
    "@id": dcterms:publisher
  rightsHolder:
    "@id": dcterms:rightsHolder
  rights:
    "@id": dcterms:rights
  hasResource:
    "@id": prof:hasResource
  representationTechnique:
    "@id": adms:representationTechnique
    "@type": "@id"
  format:
    "@id": dcterms:format
    "@type": "@id"
  hasArtifact:
    "@id": prof:hasArtifact
    "@type": "@id"
  hasRole:
    "@id": prof:hasRole
    "@type": "@id"
  orcid:
    "@id": https://orcid.org/
    "@type": "@id"

id: https://cim.ucaiug.io/grid/DiagramLayout/2.1
type: prof:Profile
version: "2.1"
title: DiagramLayout-AP-v2-1
isVersionOf: https://cim.ucaiug.io/grid/DiagramLayout
previousVersion: https://cim.ucaiug.io/grid/DiagramLayout/2.0
issued: '2025-03-06T17:59:40+01:00'
conformsTo: https://cim.ucaiug.io/dxprof-ap-cim/1.0
source: iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap
contributor:
  - cims:0000-0002-7167-7321
  - cims:0000-0001-7508-7428
creator: cims:0009-0009-8211-926X
description: Diagram Layout application profile specific the expected data to be exchanges to describe a Common Information Model (CIM) Diagram Layout.
comment: Diagram Layout application profile defined by DX-PROF
label: Diagram Layout Application Profile 2.1
language: en-GB
license: http://www.apache.org/licenses/LICENSE-2.0
publisher: https://www.ucaiug.org/
rightsHolder: UCA International User Group
rights: Copyright

hasResource:
  - id: https://cim.ucaiug.io/dcatcim/1.0#Vocabulary
    type: prof:ResourceDescriptor
    label: DCAT-CIM Constraints
    title: DCAT-CIM-Cons-v1-0-0
    contributor: mailto:bartkl@gmail.com
    description: Constraints for the Data Catalog Vocabulary (DCAT) with CIM extension profile described in SHACL.
    representationTechnique: cims:rdfs
    conformsTo: https://cim.ucaiug.io/prof/Constraints/1.0
    format: cims:turtle
    hasArtifact: https://cim.ucaiug.io/dcatcim/DCAT-CIM-Cons-v1-0-0.ttl
    hasRole: role:constraints

  - id: https://cim.ucaiug.io/grid/DiagramLayout/2.1#Vocabulary
    label: Diagram Layout Vocabulary
    title: DiagramLayout-Voc-v2-1-0
    contributor: mailto:bartkl@gmail.com
    description: Vocabulary for the Diagram Layout profile described in RDFS-Plus.
    conformsTo: https://cim.ucaiug.io/prof/Vocabulary/1.0
    representationTechnique: cims:rdfs
    format: cims:turtle
    source: iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap
    hasArtifact: https://cim.ucaiug.io/grid/DiagramLayout-Voc-v2-1-0.ttl
    hasRole: role:vocabulary

  - id: https://cim.ucaiug.io/grid/DiagramLayout/2.1#Constraints
    label: Diagram Layout Constraints
    title: DiagramLayout-Cons-v2-1-0
    contributor: mailto:bartkl@gmail.com
    description: Constraints for the Diagram Layout profile described in SHACL.
    conformsTo: https://cim.ucaiug.io/prof/Constraints/1.0
    representationTechnique: cims:rdfs
    format: cims:turtle
    source: iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap
    hasArtifact: https://cim.ucaiug.io/grid/DiagramLayout-Voc-v2-1-0.ttl
    hasRole: role:constraints

  - id: https://cim.ucaiug.io/grid/DiagramLayout/2.1#Specification
    title: DiagramLayout-Spec-v2-1-0
    label: Diagram Layout Specification
    contributor: mailto:bartkl@gmail.com
    description: Document describing the human readable specification of the Diagram Layout application profile.
    format: cims:pdf
    hasArtifact: https://cim.ucaiug.io/grid/DiagramLayout_Profile_Specification_v2-1-0.pdf
    hasRole: role:specification

Note how the user does not need to write any URIs or CURIEs by hand. Moreover, all the @ characters which indicate special JSON-LD syntax have been aliased such that the user won’t be confused by them.

This YAML can trivially be converted to JSON, rendering a valid JSON-LD serialization of the profile instance:

Source code (JSON-LD)
{
  "@context": {
    "@base": "https://cim.ucaiug.io/grid/DiagramLayout/2.1#",
    "id": "@id",
    "adms": "http://www.w3.org/ns/adms#",
    "type": "@type",
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dc": "http://purl.org/dc/elements/1.1/",
    "dcterms": "http://purl.org/dc/terms/",
    "dcat": "http://www.w3.org/ns/dcat#",
    "owl": "http://www.w3.org/2002/07/owl#",
    "skos": "http://www.w3.org/2004/02/skos/core#",
    "cim": "https://cim.ucaiug.io/ns#",
    "cims": "https://cim.ucaiug.io/schema-extensions#",
    "prof": "http://www.w3.org/ns/dx/prof/",
    "role": "http://www.w3.org/ns/dx/prof/role/",
    "@vocab": "http://cim.ucaiug.io/grid/DiagramLayout",
    "version": {
      "@id": "dcat:version",
      "@type": "xsd:string"
    },
    "isVersionOf": {
      "@id": "dcat:isVersionOf",
      "@type": "@id"
    },
    "priorVersion": {
      "@id": "dcat:priorVersion",
      "@type": "@id"
    },
    "issued": {
      "@id": "dcterms:issued",
      "@type": "xsd:dateTime"
    },
    "conformsTo": {
      "@id": "dcterms:conformsTo",
      "@type": "@id"
    },
    "source": {
      "@id": "dcterms:source"
    },
    "contributor": {
      "@id": "dcterms:contributor",
      "@type": "@id"
    },
    "creator": {
      "@id": "dcterms:creator",
      "@type": "@id"
    },
    "description": {
      "@id": "dcterms:description"
    },
    "title": {
      "@id": "dcterms:title"
    },
    "comment": {
      "@id": "rdfs:comment"
    },
    "label": {
      "@id": "rdfs:label"
    },
    "language": {
      "@id": "dcterms:language"
    },
    "license": {
      "@id": "dcterms:license",
      "@type": "@id"
    },
    "publisher": {
      "@id": "dcterms:publisher",
      "@type": "@id"
    },
    "rightsHolder": {
      "@id": "dcterms:rightsHolder"
    },
    "rights": {
      "@id": "dcterms:rights"
    },
    "resource": {
      "@id": "prof:hasResource"
    },
    "representationTechnique": {
      "@id": "adms:representationTechnique",
      "@type": "@id"
    },
    "format": {
      "@id": "dcterms:format",
      "@type": "@id"
    },
    "hasArtifact": {
      "@id": "prof:hasArtifact",
      "@type": "@id"
    },
    "hasRole": {
      "@id": "prof:hasRole",
      "@type": "@id"
    },
    "orcid": {
      "@id": "https://orcid.org/",
      "@type": "@id"
    }
  },
  "id": "https://cim.ucaiug.io/grid/DiagramLayout/2.1",
  "type": "prof:Profile",
  "version": "2.1",
  "title": "DiagramLayout-AP-v2-1",
  "isVersionOf": "https://cim.ucaiug.io/grid/DiagramLayout",
  "priorVersion": "https://cim.ucaiug.io/grid/DiagramLayout/2.0",
  "issued": "2025-03-06T17:59:40+01:00",
  "conformsTo": "https://cim.ucaiug.io/dxprof-ap-cim/1.0",
  "source": "iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap",
  "contributor": [
    "orcid:0000-0002-7167-7321",
    "orcid:0000-0001-7508-7428"
  ],
  "creator": "orcid:0009-0009-8211-926X",
  "description": "Diagram Layout application profile specific the expected data to be exchanges to describe a Common Information Model (CIM) Diagram Layout.",
  "comment": "Diagram Layout application profile defined by DX-PROF",
  "label": "Diagram Layout Application Profile 2.1",
  "language": "en-GB",
  "license": "http://www.apache.org/licenses/LICENSE-2.0",
  "publisher": "https://www.ucaiug.org/",
  "rightsHolder": "UCA International User Group",
  "rights": "Copyright",
  "resource": [
    {
      "id": "https://cim.ucaiug.io/dcatcim/1.0#Vocabulary",
      "type": "prof:ResourceDescriptor",
      "label": "DCAT-CIM Constraints",
      "title": "DCAT-CIM-Cons-v1-0-0",
      "description": "Constraints for the Data Catalog Vocabulary (DCAT) with CIM extension profile described in SHACL.",
      "representationTechnique": "https://cim.ucaiug.io/codelist/representation-technique#rdfs",
      "conformsTo": "https://cim.ucaiug.io/prof/Constraints/1.0",
      "format": "https://www.iana.org/assignments/media-types/text/turtle",
      "hasArtifact": "https://cim.ucaiug.io/dcatcim/DCAT-CIM-Cons-v1-0-0.ttl",
      "hasRole": "role:constraints"
    },
    {
      "id": "https://cim.ucaiug.io/grid/DiagramLayout/2.1#Vocabulary",
      "label": "Diagram Layout Vocabulary",
      "title": "DiagramLayout-Voc-v2-1-0",
      "description": "Vocabulary for the Diagram Layout profile described in RDFS-Plus.",
      "conformsTo": "https://cim.ucaiug.io/prof/Vocabulary/1.0",
      "representationTechnique": "https://cim.ucaiug.io/codelist/representation-technique#rdfs",
      "format": "https://www.iana.org/assignments/media-types/text/turtle",
      "source": "iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap",
      "hasArtifact": "https://cim.ucaiug.io/grid/DiagramLayout-Voc-v2-1-0.ttl",
      "hasRole": "role:vocabulary"
    },
    {
      "id": "https://cim.ucaiug.io/grid/DiagramLayout/2.1#Constraints",
      "label": "Diagram Layout Constraints",
      "title": "DiagramLayout-Cons-v2-1-0",
      "description": "Constraints for the Diagram Layout profile described in SHACL.",
      "conformsTo": "https://cim.ucaiug.io/prof/Constraints/1.0",
      "representationTechnique": "https://cim.ucaiug.io/codelist/representation-technique#shacl",
      "format": "https://www.iana.org/assignments/media-types/text/turtle",
      "source": "iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap",
      "hasArtifact": "https://cim.ucaiug.io/grid/DiagramLayout-Voc-v2-1-0.ttl",
      "hasRole": "role:constraints"
    },
    {
      "id": "https://cim.ucaiug.io/grid/DiagramLayout/2.1#Specification",
      "label": "Diagram-Layout-Specification-v2-1-0",
      "description": "Document describing the human readable specification of the Diagram Layout application profile.",
      "format": "https://www.iana.org/assignments/media-types/application/pdf",
      "hasArtifact": "https://cim.ucaiug.io/grid/DiagramLayout_Profile_Specification_v2-1-0.pdf",
      "hasRole": "role:specification"
    }
  ]
}

Appendix B: Validating profiles

TODO.

References