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
  • Some examples of information systems built in Ampersand
  • Benefits
  • Why rule-based?
  • How does it work?
  • Foundations
  • Licenses
Export as PDF

Why Ampersand?

PreviousIntroductionNextThe Business Rules Manifesto and Ampersand

Last updated 2 years ago

The purpose of Ampersand is to help business engineers deliver . Correct means that the system complies demonstrably to the rules of the business. How cool is that!

Some examples of information systems built in Ampersand

  • Medications, a demonstrator built by TNO in Ampersand to showcase attestation on the internet. This example is undocumented.

  • , a site to disclose standards for electronic messaging in the sector of flexible labour. This example is undocumented.

  • , a tool for students to learn how to work with Ampersand. This project is documented in .

Benefits

  1. Make a conceptual analysis of your business problems to create a shared understanding. Then use the resulting data model to kick-start your application(s).

  2. Use Ampersand as a platform for reactive programming, to deliver you from workflows and workflow models.

  3. Be baffled by the precision with which you can formalize legal rules, and enjoy the benefits of compliance-by-design.

  4. Experiment with rules to and cut back on red tape.

  5. Make enterprise software adaptable by using Ampersand's software generator and reducing your programming effort to a minimum. Even complex changes, such as changes in your conceptual model (viz. data model) are brought into production quickly.

  6. Support your own business, rather than someone else's view on your business. Designing with lets your business associates convince themselves that the system supports exactly the right rules.

  7. Decrease maintenance cost and increase understanding, by describing goals instead of steps. Ampersand is a language, which yields simplicity without sacrificing precision.

  8. Develop more efficiently by preventing errors instead of correcting them. Enjoy the benefits of strong and static typing. Several scientific studies show significant effects of strong and static typing on the total cost of ownership of your design. Besides, it enables Ampersand to generate efficient code.

  9. Gain mathematical certainty of compliance. Ampersand uses relation algebra to align the IT system to the business, by exploiting its natural language interpretation alongside its technical interpretation as working software. Your claim that business stakeholders understand (solely in natural language) what the computer does (in software) can't be made more convincingly.

  10. True low-code platforms, such as Ampersand, give you full functionality with little code. Do the and experience a full non-trivial example of an information system specified in 61 lines of code only.

  11. Reduce risk by developing in small increments. Add constraints, user interfaces, relations, and other design elements one at a time. Generate a prototype at any intermediate stage, to try out your system long before it is finished.

  12. Reduce risk by dividing the work into small subsystems. To isolate subsystems is easy, due to . Ampersand lets you combine subsystems into larger systems, automating the burden of combining them. Reuse design patterns to assemble systems, rather than re-invent from scratch.

  13. Deploy quickly by building, configuring, and taking it to production automatically.

Why rule-based?

To design and build a good information system is a difficult task. Ampersand makes this easier by automating tedious coding tasks and preventing scores of errors you might make. Use it to create a wonderful festival organisation platform, your very own web shop for pedigree poodles, or the trip organiser for hiking expeditions in the Andes. It's all up to you.

Not many people can design and build good information systems. It is a difficult task. Ampersand makes your life easier by automating tedious coding tasks and preventing scores of errors you might make. Use it to create this wonderful festival organization platform, your very own webshop for pedigree poodles, or the trip organizer for hiking expeditions in the Andes. It's all up to you.

A characteristic of Ampersand is its focus on business rules. Business rules embody the agreements of people who pursue a common goal. Naturally, such rules are to be respected by every information system that supports their business. The value of Ampersand is this: once you have a precise set of rules, you have your information system. The coding of software is automated by Ampersand. So if a rule changes, you have altered it in your code in a breeze. That is why Ampersand focuses on rules.

How does it work?

Ampersand is a way of designing information systems for enterprises, supported by a method, a tool, and a course. These are the things you do (click on the hyperlinks to watch video clips):

  1. Define a domain language (in Ampersand) to consolidate agreement of terms among stakeholders, using it solely for technical purposes.

  2. Use the documented ontology that Ampersand generates to validate the agreed rules.

Foundations

Licenses

Communicate with the business solely , which is a natural language.

into rules that are relevant for the information system using Ampersand-script.

Generate a of your information system for verification purposes.

to walk through user stories, test user acceptance, elicit requirements, or otherwise gain more assurance that your design is what your audience wants.

Ampersand is grounded in Relation Algebra. Scientific foundations of Ampersand have been published in the International Conference on Relation Algebraic Methods in Computer Science () from 2011 onwards.

Ampersand is a tool for rule-based design. It adheres closely to the concept of business rule as defined by the Business Rules Group. The explains the correspondence between the Business Rules Manifesto and Ampersand.

The Open University of the Netherlands has a , in which students use Ampersand for this purpose.

Ampersand is freely available as an .

correct information systems
SETU standards
RAP4
https://github.com/AmpersandTarski/RAP
simplify business processes
business rules
declarative
tutorial
conceptual independence
in their own language
Formalize the agreements
working prototype
Use this prototype
RAMiCS
following section
course in Rule Based Design
open source project in GitHub