Documentation
  • Introduction
  • Why Ampersand?
    • The Business Rules Manifesto and Ampersand
  • Tutorial
    • Example system: Enrollment
    • Conceptual Model: Enrollment
    • Your tool: RAP4
    • Making your first Ampersand script
  • Reactive programming
  • The language Ampersand
    • How to read syntax statements
    • Truth
    • Atoms
    • The CONCEPT statement
    • The RELATION statement
    • The MEANING statement
    • The PURPOSE statement
    • The CLASSIFY statement
    • The RULE statement
    • Terms
      • Semantics
      • Semantics in logic
        • Primitive terms
        • Boolean operators
        • Relational operators
        • Residual operators
      • Semantics in natural language
        • Primitive terms in natural language
        • Boolean operators in natural language
        • Relational operators in natural language
        • Residual operators in natural language
      • Semantics in sets
        • Primitive terms in set theory
        • Boolean operators in set theory
        • Relational operators in set theory
      • Semantics of terms, defined algebraically
        • Boolean operators in algebra
        • Relational operators in algebra
      • Semantics visualized
        • Semantics of boolean operators visualized
        • Semantics of relational operators visualized
        • Semantics of residuals visualized
    • Context
    • Module
    • Best Practices
    • Syntactical Conventions
      • The CONCEPT statement
      • The RELATION statement
      • The RULE statement
      • The CONTEXT statement
      • The INCLUDE statement
      • Explanation
      • Patterns
      • Population
        • Population in spreadsheets
      • The PURPOSE statement
      • The IDENT statement
      • The TABLE statement
      • Language support
    • The INCLUDE statement
    • Patterns
    • Services
      • Example: Client
      • Example: Login
      • Syntax and meaning
      • Explanation
      • Layout of user interfaces
        • Your own widgets (HTML and CSS)
      • CRUD
    • Population
      • Population in spreadsheets
    • The ENFORCE statement
    • The IDENT statement
    • The TABLE statement
    • Language support
    • Current date
    • The Preprocessor
    • Design considerations
  • Running the Ampersand compiler
    • Configuration
    • Commands (vs. 4.0.0 and later)
    • Options (up to vs. 3.17.4)
  • Architecture of an Ampersand Application
    • Backend framework
    • Hooks
    • Extensions
      • The ExecEngine
  • Deploying your Ampersand script
    • Compiler
    • Deploy your own web application on your laptop
    • Prototype multi-stage build
    • Prototype database
  • Reusing Available Modules
    • Modules
    • Security
    • SIAM (Sessions, Identity and Access Management) Module
  • Exercises
    • Delivery
    • VOG (in Dutch)
  • Installing Ampersand
    • Deploying your Prototype
    • Installing the tools manually
  • Modeling
    • Domain Driven Design
    • Data modeling
    • Legal modeling
    • Architecture modeling
    • Metamodeling
    • Limitations of Ampersand
  • Configuring your application
  • The Excel Importer
  • Plans
    • Current State
    • NoSQL storage
    • API documentation
    • OWL and RDFS input
    • Refactor the front-end
  • Research
Powered by GitBook
On this page
  • Installing an Ampersand compiler
  • The easy way: Use a prebuilt executable file
  • Additional software for generating functional SPECIFICATIONS:
  • Additional software for generating functional PROTOTYPES
  • The less easy way: Installing from Source
  • Test to see if you can build your first prototype
Export as PDF
  1. Installing Ampersand

Installing the tools manually

Please make sure you have a good reason to do this manually. Using the automated procedures is much easier...

PreviousDeploying your PrototypeNextModeling

Last updated 6 years ago

  1. All graphical output is created using . You need to install it. Make sure dot and neato are in your path (set the $PATH environment variable if necessary). Also, if you compile it from source, make sure you install it with gts support.

  2. There are several formats that you can generate a functional specification document in. Currently, the best results can be obtained in or . Depending on your taste, you need appropriate software:

    1. For docx, you could of course use Microsoft Word, but there are as well.

    2. If you want to generate PDF files, using LaTeX, you need a LaTeX compiler. On Windows, we recommend . On Linux and MacOS, we recommend .

Ampersand models are written as source code files. Hence, you need a text editor in which you can do so. We recomend , which has . You could however use any text editor that you are familiar with, as long as you make sure it saves files as format.

Installing an Ampersand compiler

The following instructions presume that you are familiar with the basics of your own computer.

The easy way: Use a prebuilt executable file

The easiest way is by use of available executables. We release frequently. Have a look at . For Windows users, there is a file called ampersand.exe in the release. Put it on your disk on a location of your choice, for example /Ampersand/bin/. Make sure , so the command "ampersand" is known on the command line. That's all. Note that double-clickingampersand.exewill not work, because it is a command line tool.

Here is a way to test whether or not you have succeeded: open a command line tool (e.g. CMD on Windows), and type ampersand -v. If all is well, the version number of the Ampersand tool is output.

Now you can compile and check your Ampersand scripts. However, you are likely to want to do more with such scripts. Currently it is possible to generate functional specifications and/or functional prototypes from such scrips. You will need to install some additional software in order to do that.

Additional software for generating functional SPECIFICATIONS:

If you want to generate functional specifications from ampersand scripts, you need the following additional software (if you don't, don't bother installing them):

  1. In order to generate PDF files that contain your functional specification, you need a LaTeX compiler. On Windows, we recommend . On Linux and MacOS, we recommend .

  2. All graphical output is created using . You need to install it. Make sure dot and neato are in your path (set the $PATH environment variable if necessary). Also, if you compile it from source, make sure you install it with gts support.

Additional software for generating functional PROTOTYPES

If you want to generate functional prototypes from ampersand scripts, you need the following additional software (if you don't, don't bother installing them):

    • You must create an account in SQL for

      localhost

      , that has a user called

      ampersand

      with a password

      ampersand

      , with rights to create/read/update/delete databases as well as their contents. If you use phpmyadmin this could look like:

    • The webserver must run on localhost . By default you will use port 80, but you could change that if required. See the documentation of you webserver.

The less easy way: Installing from Source

If there is no executable for your operating system, or if you prefer to build an Ampersand compiler yourself, follow these steps:

  1. Open a command line terminal, and go to the directory that contains the file named ampersand.cabal

  2. Then, close your command line terminal and reopen another one (this helps to reload the environment variables that the stack installation may have added or modified),

  3. Let stack install everything you need to compile (see the Notes below!) by executing:

    $ stack setup

  4. Build the Ampersand.exe file (see the Notes below!) by executing: $ stack install

This will build an Ampersand-compiler named "ampersand.exe" and install it into your path.

Testing your installation

  • Type "Ampersand --version". The expected behaviour is that Ampersand replies with the version of Ampersand. It will look something like:

    C:> ampersand.exe --version
    Ampersand v3.1.0[master:2fa348f*], build time: 08-Sep-15 14:04:58 West-Europa (z
    omertijd)

    The version number is important to specify, whenever you have a question of like to report an issue. It really helps us when you add the version number, including everything between the brackets when you contact us.

Test to see if you can build your first prototype

Ampersand allows you to generate a working prototype of your ampersand model. An Ampersand prototype is a website that requires a webserver to run on and a (My)SQL database server. This chapter describes the prerequisites for getting such prototypes up, and running.

First, you should get a working script. Let's assume it is called myModel.adl and it contains valid content such as is shown here below:

CONTEXT HelloWorld IN ENGLISH
PURPOSE CONTEXT HelloWorld
{+This script allows you to check whether or not you can actually use Ampersand.+}

REPRESENT MyName TYPE ALPHANUMERIC
sessionMyName :: SESSION * MyName [UNI]
MEANING "My name can be known in the current session."

ROLE User MAINTAINS "Please click on 'Registration' to specify your name"
RULE "Please click on 'Registration' to specify your name": "_SESSION"[SESSION] |- sessionMyName;sessionMyName~
VIOLATION (TXT "You can find the 'Registration' item in the navigationbar (top of the screen).")

INTERFACE Registration: "_SESSION"[SESSION] cRud ROWS
   [ "My name is" : sessionMyName cRUd 
   ]

sayHelloReq :: SESSION * SESSION [PROP]
ROLE ExecEngine MAINTAINS "Say hello when name is specified"
RULE "Say hello when name is specified": "_SESSION"[SESSION] /\ sessionMyName;sessionMyName~ |- sayHelloReq
VIOLATION (TXT "{EX} SetNavToOnCommit;/Hello_44__32_World"
          ,TXT "{EX} InsPair;sayHelloReq;SESSION;", SRC I, TXT ";SESSION;", TGT I
          )

INTERFACE "Hello, World": "_SESSION"[SESSION] cRud ROWS
   [ "Hello, world. My name is" : sessionMyName cRud
   ]

ENDCONTEXT

Don't worry if you do not understand what everything in this script means. That isn't important for now.

If you do not have such a script, you can copy the above text, paste it in a text editor and save it. Different novice users have shown that this may present some problems. One is that in some browsers (e.g. IE), copying the text will include the line numbers. If you see your file has line numbers embedded in the text, you should get rid of them before saving it. Another one is that it may contain characters that are not displayable in the editor - some editors will turn such characters into printable ones, e.g. a question mark. If that's the case with you, you should also get rid of them. You should end up with text in a file that is as is shown above.

Then, you can generate the prototype website for the script in file myModel.adl by typing the command:

 ampersand --proto myModel.adl

Footnotes

In order to run the generated prototype, you need Apache (or another web server) with SQL and PHP v 7.1 or higher. In Windows, a practical way is to install

You will also need to install , because at runtime, the prototype has dependencies of libraries . Composer will take care of that.

Install stack, the haskell tool stack.

use to clone the latest version of Ampersand. The code can be found at . (the master branch is our stable branch)

Open a .

This creates a directory myModel.proto (in the current directory), that contains the prototype website. Obviously, you will need a web server and a database server to run the prototype. This is discussed at .

Usually, you would have some demands regarding particulars of the generation. For example, you may want to generate the website in a specific directory, specify a particular CSS file for this website, etc. For the complete syntax of the Ampersand executable, see the chapter about the ****

Notes: 1. Do not use Hackage to get ampersand. It does not contain all non-haskell files. (See ) 2. stack memory usage may require other applications to be terminated (e.g. on 8GB Windows systems). If stack terminates prematurely, re-invoking the command will pick-up where it stopped. 3. stack may terminate on various errors , e.g. that it doesn't have permission to access or rename files. Again, if stack terminates prematurely, re-invoking the command will pick-up where it stopped. Users have mentioned having to restart stack several times before it would finally complete building Ampersand.exe.

GraphViz
docx
LaTeX (PDF)
other options
MiKTeX
texlive
Visual Studio Code
a nice extention for Ampersand scripts
UTF8
our latest release
your $PATH(or: PATH) environment variable contains this location
MiKTeX
texlive
GraphViz
XAMPP
Composer
instructions are here
git
github
command prompt
Installing Ampersand
command line interface
issue #213
(See this issue)