Skip to content

Inconsistent JSON Schema artifact specification generation issues by Template Designer #969

@martinjoconnor

Description

@martinjoconnor

This issue will serve as an initial placeholder for describing situations where the Template Designer generates incorrect or inconsistent JSON Schema specifications for schema artifacts.

We eventually will extract individual items into separate GitHub issues.

(1) When adding a child to a template or field the context entry for the IRI mapping of the child is not always added to the required specification for the instance @context.

For example, if I add a field called F1 to a template the @context specification should look as follows:

        "pav:createdOn": { ... },
        "pav:createdBy": { ... },
        "pav:lastUpdatedOn": { ... },
        "oslc:modifiedBy": { ... },
        "skos:notation": { ... },
        "F1": { "enum": [ "https://schema.metadatacenter.org/properties/96257594-c02d-44b2-a542-e2b522a4b357"] }
      },
      "required": [
        "xsd",
        "pav",
        "schema",
        "oslc",
        "schema:isBasedOn",
        "schema:name",
        "schema:description",
        "pav:createdOn",
        "pav:createdBy",
        "pav:lastUpdatedOn",
        "oslc:modifiedBy",
        "F1"
      ],
      "additionalProperties": false
    },

However, the field is not always included in the required array. Which means that the instance is not forced to contain the entry in its context, leading to no RDF arc being generated for that child.

(2) Template Designer does not add skos:notation to IRI field JSON Schema properties when generating schema specifications. The properties specification should look as follows:

"properties": {
    "skos:notation": {
      "type": [
        "string",
        "null"
      ]
    },
    "@id": { ...  },
    "rdfs:label": { ...   },
    "@type": { ...   }
  },

It is not a required field.

However, skos:notation is not present.

It is generated only by the CDE generation process and the model does not enforce its presence.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions