Data Structures   3.  Sorts of Domain Definitions 4.  Manipulations of Domain Definitions 5.  Translating Domain Definitions 6.  Dialogue Sessions 7.  Example of Concentric Circles 8.  Example of Domain Substitution applied to Concentric Circles 9.  Example of an Order Processing Application 10.Example of an Airport Information System 11.Example of a Rental Boat Business 12.Benefits of Domain Definitions

##### 2.  What are Domain Definitions?

We will define a domain as the representation of a concept in the computer. Concepts are abstract notions of things in the real world or in a problem area. Because we want to model concepts in such a way that a computer can understand them, we need a method to represent those concepts in a program. For that purpose we will use domain definitions.

Before domain definitions can be defined, first the key concepts in the problem domain should be identified. To illustrate the steps one has to make in domain orientation we will develop a set of domain definitions for families. We know from daily experience that a family may consist of a father, a mother, and possibly a number of children. So, the key concepts of our family are: father, mother, and children.

After the key concepts have been identified the corresponding domain definition can be specified. In our example, this is very simple:

Family = Father + Mother + Children;

This is an example of one of the different forms a domain definition may take. In this domain definition, the domain of Family is defined by using three other domains that should also be defined:

Father = Person;

Mother = Person;

Children = collection ( Person ) ;

These domain definitions are based on a common domain, called Person. In daily life, persons are characterized by name, address, birth date, and so on.  However, to keep our example simple we will define:

Person = text;

It says that a Person domain is characterized by a piece of text. Finally we need to define the domain of text by:

text = predefined;

This defines text as a predefined domain. Predefined domains cannot further be redefined. They are known to the system. The result of this exercise is a set of related domain definitions describing a family:

Family = Father + Mother + Children;

Father = Person;

Mother = Person;

Children = collection ( Person ) ;

Person = text;

text = predefined;

This set of domain definitions is sufficient to generate a skeleton source program, as will be demonstrated later on.

 Part 6: Metaprogramming What are Domain Definitions?

 Introduction: Home | Highlights of Elisa | Integrating Different Paradigms | Getting Started with Elisa | Demo's  | What is Domain Orientation | Bibliography | Copyright | News | Contact Language Description: Lexical Elements | Basic Data Types and Expressions | Definitions | Streams | Backtracking | Statements and Special Expressions | Arrays | Lists | Descriptors | Components | Collections | Generic Components | Terms | Categories | Types | Built-in Definitions | Higher-order Definitions | External Interfaces | Index Data Structures: Sequences | Examples involving Lists | Trees | Graphs | Searching State Spaces | Language Processing | Knowledge Representations Domain Modeling: Design Patterns: Introduction | Abstract Factory | Builder | Factory Method | Prototype | Singleton | Adapter | Bridge | Composite | Decorator | Facade | Flyweight | Proxy | Chain of Responsibility | Command | Interpreter | Iterator | Mediator | Memento | Observer | State | Strategy | Template Method | Visitor