diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 19246bfad..98b99f385 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,6 +1,9 @@ # Release notes of Ampersand -## Unreleased changes +## v5.0.1 (5 february 2024) +- Some adaptions to w.r.t. the namespaces, in the generated funcional specification. + +## v5.0.0 (4 february 2024) - [Issue #1307](https://github.com/AmpersandTarski/Ampersand/issues/1307) First phase of introducing namespaces in Ampersand. - [Issue #1315](https://github.com/AmpersandTarski/Ampersand/issues/1315) Documentation update: landing pages for target audience, governance info for the Ampersand project added. diff --git a/ampersand.cabal b/ampersand.cabal index 7b5030cb4..c11512ad6 100644 --- a/ampersand.cabal +++ b/ampersand.cabal @@ -5,7 +5,7 @@ cabal-version: 2.0 -- see: https://github.com/sol/hpack name: ampersand -version: 5.0.0 +version: 5.0.1 synopsis: Toolsuite for automated design of enterprise information systems. description: You can define your business processes by means of rules, written in Relation Algebra. category: Database Design diff --git a/docs/Examples.md b/docs/Examples.md index 5816a4c5c..3336e9c8f 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -1,5 +1,5 @@ --- -title: Examples +title: examples id: examples description: Examples of Ampersand programs and fragments --- @@ -9,6 +9,27 @@ description: Examples of Ampersand programs and fragments This page is a collection of examples, meant for learning and explaining the language Ampersand. TODO: refactor this documentation to match the latest syntax. +## Example: Multiple files +This example illustrates how an Ampersand specification can consist of multiple files. + +In this example, we have two files. File `foo.adl` contains the following text: +```Ampersand +CONTEXT MultifileDemo +INCLUDE "bar.adl" +RELATION r[A*B] +RULE r |- s +ENDCONTEXT +``` +and file `bar.adl` contains: +```Ampersand +CONTEXT MultifileDemo +INCLUDE "bar.adl" +RELATION s[A*B] +ENDCONTEXT +``` +Without the `INCLUDE` statement, file `foo.adl` does not compile because relation `s` is undefined. +The `INCLUDE` statement causes all definitions of `bar.adl` to be included in the context of `foo.adl`, so this example compiles without errors. + ## Example: Client {#interfaces-example-client} This example illustrates the structure of [interfaces in Ampersand](reference-material/syntax-of-ampersand#the-interface-statement) diff --git a/docs/guides/onboarding.md b/docs/guides/onboarding.md index 2196a728d..48363697e 100644 --- a/docs/guides/onboarding.md +++ b/docs/guides/onboarding.md @@ -20,6 +20,8 @@ Request membership to - [AmpersandTarski](https://github.com/orgs/AmpersandTarski/people) organization and - [Ordina A-team](https://github.com/orgs/AmpersandTarski/teams/ordina-a-team/members). +Above links only work for members of AmpersandTarski + :::tip Make sure when you contact Han about this that you provide him with your Github account name (or URL to your GitHub profile page). ::: diff --git a/docs/landingpage/2-student.md b/docs/landingpage/2-student.md index e3b95fc6b..8f07ad32a 100644 --- a/docs/landingpage/2-student.md +++ b/docs/landingpage/2-student.md @@ -12,4 +12,5 @@ You can learn about the language Ampersand, and learn how to make a prototype of - Do the [tutorial](../tutorial-rap4), to get an idea of an Ampersand application - Learn about the [syntax of Ampersand](../reference-material/syntax-of-ampersand), to write correct Ampersand code. - Learn about [relation algebra](https://en.wikipedia.org/wiki/Relational_algebra) on Wikipedia, to understand more about this fascinating field of mathematics. +- Find [examples](../examples) of Ampersand specifications, to get started making your own. - Find [exercises](../exercises.md) that help you improve your skills in specifying information systems. diff --git a/docs/landingpage/3-ampersand-user.md b/docs/landingpage/3-ampersand-user.md index f7aa2ff6d..df7305887 100644 --- a/docs/landingpage/3-ampersand-user.md +++ b/docs/landingpage/3-ampersand-user.md @@ -11,6 +11,7 @@ This page will help you build a working prototype of your information system and ## Get started - Do the [tutorial](../tutorial-rap4), to get an idea of an Ampersand application +- Find [examples](../examples) of Ampersand specifications, to get started making your own. - Understand the [architecture of an Ampersand application](../reference-material/architecture-of-an-ampersand-application), so you can build, deploy, and maintain your Ampersand application better. - Learn about the [syntax of Ampersand](../reference-material/syntax-of-ampersand), to write correct Ampersand code. - Learn about [relation algebra](https://en.wikipedia.org/wiki/Relational_algebra) on Wikipedia, to understand more about this fascinating field of mathematics. diff --git a/docs/reference-material/interfaces.md b/docs/reference-material/interfaces.md index c7c40ca4b..6ad9b93ef 100644 --- a/docs/reference-material/interfaces.md +++ b/docs/reference-material/interfaces.md @@ -276,5 +276,5 @@ When running an application in your browser, you are watching one user interface The next sections contain two examples: -- a [client interface](../Examples.md#interfaces-example-client) to allow clients of a web shop to change their name and address and show them status information of their orders; -- a [login interface](../Examples.md#interfaces-example-login) to demonstrate how to get different interface structures under varying conditions. +- a [client interface](../examples#interfaces-example-client) to allow clients of a web shop to change their name and address and show them status information of their orders; +- a [login interface](../examples#interfaces-example-login) to demonstrate how to get different interface structures under varying conditions. diff --git a/docs/reference-material/syntax-of-ampersand.md b/docs/reference-material/syntax-of-ampersand.md index 911765c30..6c1c3bd2a 100644 --- a/docs/reference-material/syntax-of-ampersand.md +++ b/docs/reference-material/syntax-of-ampersand.md @@ -795,7 +795,7 @@ Interfaces are meant to expose functionality and data from a [context](#the-cont #### Description -An interface is a component of an information system that exposes functionality and data from a [context](#the-context-statement), to let users or information systems interact by creating, reading, updating, and deleting data. The first [example](../Examples.md#example-interface-structure) introduces a simple interface informally. Another [example](../Examples.md#interface-introductory-example) introduces the main features of an interface with nested interfaces. +An interface is a component of an information system that exposes functionality and data from a [context](#the-context-statement), to let users or information systems interact by creating, reading, updating, and deleting data. The first [example](../examples#example-interface-structure) introduces a simple interface informally. Another [example](../examples#interface-introductory-example) introduces the main features of an interface with nested interfaces. A _interface_ is a component of an information system. During the time that this interface can actually be used, we say it is _deployed_. We also call this the _lifetime_ of a interface. A typical instance of a interface is a user interface based on HTML-CSS that runs in a browser. But an application program interface \(API\) that serves other computers with web services is a perfectly valid instance as well. @@ -859,8 +859,8 @@ When running an application in your browser, you are watching one user interface Further examples: -- a [client interface](../Examples.md#interfaces-example-client) to allow clients of a web shop to change their name and address and show them status information of their orders; -- a [login interface](../Examples.md#interfaces-example-login) to demonstrate how to get different interface structures under varying conditions. +- a [client interface](../examples#interfaces-example-client) to allow clients of a web shop to change their name and address and show them status information of their orders; +- a [login interface](../examples#interfaces-example-login) to demonstrate how to get different interface structures under varying conditions. ### CRUD annotations @@ -1498,7 +1498,7 @@ RULE