Skip to content

clearly define the namespaces defined in LinkML schemas #18

@VladimirAlexiev

Description

@VladimirAlexiev

https://github.com/3lbits/NoCIMExtensions/tree/main/schemas/yaml: these schemas don't clearly define the namespaces of terms that they use.

Consider https://github.com/3lbits/NoCIMExtensions/blob/main/schemas/yaml/aviation_obstacle.linkml.yaml:
It defines this

prefixes:
  this: https://ap-no.cim4.eu/AviationObstacle/1.0#
default_prefix: this

So terms without explicit URL (class_uri, slot_uri, enum_uri) will get a URL using this prefix.
As far as I see, this option is not used in the file: then remove this for the avoidance of doubt.

Now look at

AviationObstacleMarkingKind:
description: "The kind of aviation obstacle marking."
enum_uri: https://ap-no.cim4.eu/AviationObstacle/1.0#AviationObstacleMarkingKind
permissible_values:
colourMarking:
meaning: nc-no:AviationObstacleMarkingKind.colourMarking
description: "The aviation obstacle marking is colourMarking."

So you'll get different namespaces for the enum vs its values, which is an inconsistency:

  • enum: https://ap-no.cim4.eu/AviationObstacle/1.0#AviationObstacleMarkingKind
  • value: http://cim4.eu/ns/nc-no#AviationObstacleMarkingKind.colourMarking

Two more problems:

  • Some of the namespaces are versioned. This is a bad practice that leads to URL instability, don't use it
  • Some schemas introduce too many namespaces (eg AviationObstacle, WattApp).
    As you have no conflicts on local names of classes/props, please use only one namespace nc-no

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions