CONTEXT RAP IN ENGLISH LATEX {- This file contains documentation of the information iystems pattern (IS) in LaTeX format. Each concept has its own section, where sections are separated by comments -} PURPOSE PATTERN "Information Systems" {+The purpose of an information system is to support people (called {\em users}) in a specific domain (called a {\em context}) by disclosing and maintaining factual information (represented by {\em data}). For example, a customer relationship management (CRM) system for ECME Inc.\ should contain factual information, in order to be a reliable tool for people working for ECME. Its context is ECME Inc., in particular its customer base. Users are undoubtedly employees of ECME Inc., but each customer with access to this information is considered a user just as well. People use language in order to ask, to command, to state facts and in general to communicate things verbally. Since an information system is supposed to contain facts, we take a special interest in affirmative sentences. Affirmative sentences are characterized by being either true or false, e.g. ``Last Tuesday, Peter was in Amsterdam.'' We call this a {\em statement}, and we call a true statement a {\em fact}. Thus, we can think of an information system as a device that contains and maintains facts about a particular domain. The set of facts that is contained in an information system is called the {\em contents} or {\em population} of that system. In designing an information system, some definitions are needed to explain how and why users can trust the system. For we must keep in mind at all times that ECME Inc.\ (for example) wishes to rely on its CRM-system. So to what extent can we be sure that the system tells the truth about ECME's customers? -} PURPOSE CONCEPT Context {+The word context is used to delimit scope and provide a single truth within that scope. The truth consists of a (possibly infinite) number of true statements about the real world. To be precise: in order to provide a single truth, a context must contain only statements, which are true in the ``world out there''. If a context contains a mechanism to construct new facts from available facts, it is possible that it actually contains an infinite number of them. Consistency is required throughout the context, because an inconsistent system cannot hold any true facts. So what does it mean to a user, to have a system that contains true statements only? Most likely, users will learn to rely on information from that system, because it never lies to them. For example, bank customers will rarely doubt the balance shown by their electronic banking system, because they experience it to be correct all the time and they know that their bank goes to great lengths to keep it correct. Just for the record: there are enough unreliable information systems today. Information systems that users have leart to distrust, because it sometimes gives information that is not true in the real world. Just like in the real world, truth is confined to a context. That allows us, for example, to say ``Peter has scored ten hits'', and know that it is true in the context of his sports club, but that it is false in the context of his work as a professional musician. Every fact has a scope, e.g. the customer base of ECME Inc. In practice, a context can be associated with a single application, a group of applications, a company, or anything in which a single truth is required. -} CONCEPT Context "A context is a scope in which a single truth is defined." PURPOSE CONCEPT Statement {+An information system is limited to uttering affirmative sentences. For that purpose we define the word statement: -} CONCEPT Statement "A statement is an affirmative sentence." PURPOSE CONCEPT Concept {+In a world full of things, we use the word ``concept'' to name and characterize a set of things that are similar. We use the concept ``Table'' to denote the set of tables in a context. When asked: which tables are there, we can point at all available tables and conclude that each one is an instance of ``Table''. Similarly, we may use the concept ``Number'' to denote things such as 1, 2 or 101. Words such as ``Joy'' or ``Peace'' will not be used as a concept, as long as they do not represent a set of things. (Ask: Which joys are there? Which peaces are there?). -} CONCEPT Concept "A concept is a name to characterize a set of similar things." PURPOSE CONCEPT Rule {+Agreements made by people can be represented by a statement, which must be kept true. For example, if we agree to keep the desks in our office clean, the statement ``All desks are clean'' should be true all the time. Such agreements are known under many different names, such as ``rule'', ``commitment'', ``contract'', etcetera. -} CONCEPT Rule "A rule is a statement that must be kept true." PURPOSE CONCEPT State {+If an information system is to tell the truth, it must cope with truth that changes over time. For example, suppose that ECME's customer John Brown moves to another home. The system has to be told that John Brown has a new address, in order to remain a reliable truth-teller. So the set of facts contained by an information system must change over time, to keep up with the continuously changing truth\footnote{There is much more to be said about truth, for which we refer to the literature on language philosophy. For our purposes, we work with the idea that truth requires a context.} in the real world. -} CONCEPT State "A state is the set of facts that populates an information system at a particular moment in time. The current state is the state of the system at the current moment in time." PURPOSE CONCEPT Expression {+If we want to talk to people, we use statements in natural language. If we want a computer to understand us, we use statements in a formal language. The latter type of statement is called {\em expression}. -} CONCEPT Expression "An expression is a statement in a formal language." PURPOSE CONCEPT Query {+Note that the word {\em statement} is used both in natural language and in formal language. That makes sense, because a statement can be true or false in natural language as well as formal language. If it is relevant to say that a statement is made in natural language, we will say so explicitly. Statements can be obtained from an information system by executing a query. Queries are meant to produce statements from the current state of an information system. -} CONCEPT Query "A query is a computation that yields a set of statements from a state." PURPOSE RELATION characteristic[Rule*Expression] {+In order to maintain rules, each rule is associated with one expression. That expression is called the {\em characteristic} expression of the rule. -} PURPOSE RELATION exp[Query*Expression] {+Queries exist for the purpose of evaluating an expression in a given context. -} PURPOSE RELATION signature[Expression*Expression] {+For the purpose of defining truth, every expression has a signature. That signature itself is an expression too. -} PURPOSE RELATION state[Query*State] {+When talking about the state on which the query has been executed, we mean the state that was current on the moment of execution. -} PURPOSE RELATION true[Query*Query] {+In order to define how to compute the truth (by executing queries), we define `true' as a property of queries. -} PURPOSE RELATION sat[State*Rule] {+In order to say that a set of facts is consistent with a rule, we introduce the notion of satisfaction. We will say that a state satisfies a rule, to indicate that it is true. -} PURPOSE RELATION pred[State*State] {+If we perceive an information system as a set of states, that changes over time, then it makes sense to talk about the predecessor of a state. As time passes by an ever growing sequence of states emerges. In order to obtain a linear (acyclic) notion of time, we must define that two states are the same if their predecessors are the same, and a state cannot be its own predecessor. -} PURPOSE RELATION result[Query*Statement] {+Every query results in a number of facts. -} PURPOSE RELATION equivalued[Query*Query] {+It makes sense to say that two queries are called equivalued. -} PURPOSE RULE "def equivalued" {+In order to define true queries, we must introduce the word equivalued. -} PURPOSE RULE "def sat" {+The meaning of the word satisfy is given by: -} PURPOSE RULE "def true" {+In order to define the notion of truth formally, we must introduce a technical definition. As the signature of an expression defines the truth, we call that expression true if its evaluation produces the identical result as the evaluation of its signature\footnote{This rule is explained further in the literature (add citation)}. -} --PURPOSE PATTERN "Documentation" --{+Documentation is required for human understanding of rules. --It explains why things exist and how things are expressed in natural language. ---} PURPOSE RELATION meaning[Concept*NatLang] {+The meaning of a concept is described in natural language, because it must be discussed with business stakeholders. In the end, they must vouch for the correct wording of that concept. -} PURPOSE RELATION purpose[Concept*NatLang] {+The purpose of a concept is described to document why it exists. -} PURPOSE RELATION reference[Concept*Reference] {+The reference of a concept is required in order to know where that concept comes from. That helps to judge the relevance of that particular concept. -} PURPOSE RELATION meaning[Relation*NatLang] {+The meaning of a relation is described in natural language, because it must be discussed with business stakeholders. In the end, they must vouch for the correct wording of that relation. -} PURPOSE RELATION purpose[Relation*NatLang] {+The purpose of a relation is described to document why it exists. -} PURPOSE RELATION reference[Relation*Reference] {+The reference of a relation is required in order to know where that relation comes from. That helps to get consensus about the correct wording of statements made from this relation. -} PURPOSE RELATION meaning[Rule*NatLang] {+The meaning of a rule is described in natural language for two reasons. The first is to discuss the rule with its owner and stakeholders, because they must vouch for the correct wording of that rule. The second is to verify the meaning with the expression of that rule, which is part of the formal review. -} PURPOSE RELATION purpose[Rule*NatLang] {+The purpose of a rule is described to document why it exists. -} PURPOSE RELATION reference[Rule*Reference] {+The reference of a rule is required in order to know where that rule comes from. That helps to judge the importance of following that particular rule. -} PURPOSE CONCEPT RuleEnforcement {+A rule enforcement is defined for the purpose of describing when a rule takes effect and in which context it does so. Only rules that are enforced have a noticeable effect in the context in which it is enforced. A rule that is enforced by a computer is enforced immediately. Immediate enforcement means that the computer ensures that the rule remains satisfied all the time, no matter what happens. Attempts to violate the rule will lead to appropriate error messages, but will not have any effect on the state of the system. A rule that is enforced by man may be violated temporarily, as long as needed for a person to bring the system in a state that satisfies the rule. That is called deferred enforcement, which means that people must ensure that the rule is satisfied. To help those people, the computer will signal them to let them know there is work to be done. Without enforcement, a rule stays without consequence for the business process at hand. That can be useful when a rule must become effective at a particular moment in time. It is also useful to describe laws of nature, for purposes of automated reasoning. -} PURPOSE CONCEPT EnforcementType {+We distinguish two types of enforcement: human and machine. Enforcement by machine is immediate; human enforcement is deferred and accompanied by appropriate signalling. -} PURPOSE RELATION enforcement[RuleEnforcement*EnforcementType] {+The enforcement of a rule is done either by human interaction or fully automated by a machine. In order to make this distinction, we must be able to tell the type of enforcement for each rule enforcement. -} PURPOSE RELATION rule[RuleEnforcement*Rule] {+To discuss the enforcement of a rule implies that for every rule enforcement, we know which rule we are talking about. -} ENDCONTEXT