All UML element names should be fit for URI generation with clear namespace organisation.
I've seen two approaches in SEMIC:
The styleguide suggests tagging elements with URI information. E.g. data property addressArea has tag uri with value http://w3.org/ns/locn#AddressArea.
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
the UML model is a single source of truth where I would expect to find everything needed to transform the UML into RDF.
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 ?
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
Rule CMC-R3 states that
I've seen two approaches in SEMIC:
addressArea
has taguri
with valuehttp://w3.org/ns/locn#AddressArea
.namespaces.xml
that maps prefixes to URI's.This model2owl approach seems to contradict some design premises
DCAT::dcat::Catalog
is confusing: which is a package and which is namespace ?I suggest that the rule become binding, e.g.
Replace
by
With additional hints for developers such as
Alternative model2owl-style (which has drawbacks described above):