Ampersand icon indicating copy to clipboard operation
Ampersand copied to clipboard

feature: Name spaces

Open stefjoosten opened this issue 6 years ago • 12 comments

@Michiel-s, @stefjoosten , and @hanjoosten have discussed an implementation of the multi-context functionality. We have agreed on the following:

  1. A pattern is a namespace, so we'll drop the keyword PATTERN in favor of NAMESPACE.
  2. Every namespace is defined in one file.
  3. The filepath from the root including filename (without extension) is the name of the namespace.
  4. Syntax conventions similar to Haskell except for a good reason.
  5. Importing yields a disjoint union of namespaces. The imported names are prefixed with the name of the namespace and a dot. (like the qualified import mechanism in Haskell). Syntactical details are yet to be determined.
  6. The word namespace is synonymous to the Haskell word 'module'. We prefer 'namespace' to remain close to the modelling world (as opposed to the programming world).
  7. The universe is populated with namespaces
  8. A namespace may contain contexts, relations, concepts, rules, and services and other statements.
  9. The INCLUDE statement becomes obsolete. The IMPORT statement enhances the namespace with the disjoint union of both namespaces.
  10. The EQUALS statement allows the user to equate named objects.

We'll implement this in a feature branch. This will lead to a release that is NOT backwards compatible.

stefjoosten avatar Nov 23 '18 13:11 stefjoosten