Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Namespace organisation #93

Open
sixdiamants opened this issue Feb 22, 2024 · 0 comments
Open

Namespace organisation #93

sixdiamants opened this issue Feb 22, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@sixdiamants
Copy link

Rule CMC-R3 states that

All UML element names should be fit for URI generation with clear namespace organisation.

I've seen two approaches in SEMIC:

  1. The styleguide suggests tagging elements with URI information. E.g. data property addressArea has tag uri with value http://w3.org/ns/locn#AddressArea.
  2. Model2owl uses no tags but needs an external configuration file namespaces.xml that maps prefixes to URI's.

This model2owl approach seems to contradict some design premises

  1. the UML model is a single source of truth where I would expect to find everything needed to transform the UML into RDF.
  2. encoding prefixes into package names implies that packages are namespaces. Does this match the idea that packages merely organise concepts but don't carry meaning ?
  3. a notation such as DCAT::dcat::Catalog is confusing: which is a package and which is namespace ?

I suggest that the rule become binding, e.g.

Replace

All UML Element names should be fit for URI generation with clear namespace organisation.

by

All UML Element names must be fit for URI generation with clear namespace organisation.

With additional hints for developers such as

  • An entity can have a uri tag.
  • A package can define a base-uri that trickles down to entitities inside
  • Entities use the base uri from the containing package. Entities can override the uri
  • Entity uri is a concatenation of base-uri and element name
  • Connectors that have no uri tag use the base uri from the source-class.

Alternative model2owl-style (which has drawbacks described above):

  • The namespace map can be stored as a note in the model (clunky but it works)
  • If a package name matches a known prefix then everything inside the packages is allocated to that namespace
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants