Taxis(ID:935/tax001)


for Taxis Greek noun meaning order as in "law and order" or class as in "social class", "university
class", etc

Interactive database programming language


Structures:
Related languages
Taxis => Galileo   Influence
Taxis => OOPS+   Influence

References:
  • Roussopoulos, N. A semantic network model of databases. Ph.D. dissertation (Tech. Rep. 104), Dep. Computer Sci., Univ. Toronto, Toronto, Canada, 1976 view details
  • Wong, H.K.T., and Mylopoulos, J. "Two views of data semantics: Data models in artificial intelligence and database management" pp344-382 view details
          in INFOR 15(3) October 1977 view details
  • Mylopoulos, J., Bernstein, P., Wong, H.K.T. "A preliminary specification of TAXIS: A language for interactive systems design" Tech. Rep. CCA-78-02, Computer Corp. of America, 1978 view details
          in INFOR 15(3) October 1977 view details
  • Barron, J.L., "Dialogue Organization and Structure for interactive Information Systems", Technical Report CSRG-108, Dept. of Computer Science, University of Toronto, Feb., 1980 view details
          in INFOR 15(3) October 1977 view details
  • Barron, J.L., Dialogue organization and structure for interactive information systems. MSc. thesis, Dept. of Computer Science, Univ. of Toronto, 1980. view details
          in INFOR 15(3) October 1977 view details
  • Mylopoulos, J. et al "A Language Facility for Designing Database-Intensive Applications" view details
          in ACM Trans Database Sys 5(2) June 1980 view details
  • Mylopoulos, John; Bernstein , Philip A.; Wong, Harry K. T. "A language facility for designing database-intensive applications" ACM Transactions on Database Systems (TODS) 5(2) June 1980 pp185-207 view details Abstract: TAXIS, a language for the design of interactive information systems (e.g., credit card verification, student-course registration, and airline reservations) is described. TAXIS offers (relational) database management facilities, a means of specifying semantic integrity constraints, and an exception-handling mechanism, integrated into a single language through the concepts of class, property, and the IS-A (generalization) relationship. A description of the main constructs of TAXIS is included and their usefulness illustrated with examples. DOI Extract: Language design
    A more recent trend is to design the programming language with database facilities as a single unit [16, 221. This paper takes a step along this path by presenting an applications programming language that tightly integrates data with the procedures that use it (in the style, say, of SIMULA [4]). Our language, called TAXIS,? is designed primarily for applications systems that are highly interactive and make substantial use of a database. These applications, which we call interactive information systems (IIS), are characterized by their handling of large volumes of transactions that are short, of predictable structure, and update intensive. Examples include credit card verification, student-course registration, and airline reservations. By applying our tools to a more limited domain, we can customize them to the domain. Also, by defining our problem more narrowly than that of ?applications systems,? it will be easier to evaluate the efficacy of our approach.
    In the future, we see TAXIS at the center of a programming system that would permit a designer to interactively build an IIS with the help of specialized textediting and graphics facilities. The system would include a relational database management system (DBMS). The DBMS provides an interface into which the database operations of the IIS can be compiled. Extract: Taxis design principles
    Design Principles
    TAXIS is eclectic, combining concepts from three areas of computer science research: artificial intelligence (AI), programming languages, and database management. From AI we have used the concept of semantic network for data and procedure modeling [2,11]. From programming languages we have borrowed the concept of abstract data type [12, 181 and exception handling [21]. Finally, from database management we have built on the concept of a relational database [8].
    These ideas are married to form a concise language framework, yielding a novel and powerful collection of facilities. First, the semantic network modeling constructs represent a qualitative improvement in abstraction mechanisms over conventional programming languages. Database operations can work on hierarchies of objects, instead of independent tuples and relations (similar to [20]). Data can thereby be manipulated at varying levels of abstraction. We extend our semantic structures beyond relations and apply them equally to procedures, integrity constraints, and exception handling.
    Second, by associating operations with the data they use, the semantics of the database can be represented in the applications program. This is in contrast to the sharp distinction between DDL and DML in most database languages. The semantic information can be used by the compiler to solve many integrity, security, and concurrency problems at compile time.
    Finally, since the application is described in a formal semantic model, ?metalevel? commands allow the application description itself to be manipulated by programming language commands. This permits database administrator functions to peruse the logical design on-line.
    Four principles guided much of the TAXIS design:
    (1) The language must offer relations and associated operations for database management, transactions for the specification of application programs, and exception-handling facilities to enhance the development of interactive systems.
    (2) Each conceptual object represented in the language must have associated semantics that involve both a behavioral and a structural component. These semantics are expessed in terms of the notions of class, property, and the IS-A hierarchy (cf. ?generalization? in [20]).
    (3) As much of the language as possible should be placed into the framework of classes, properties, and the IS-A hierarchy.
    (4) The schema (i.e., the collection of classes, along with their properties and the associated IS-A hierarchy) should be compilable into a language such as Pascal, enriched with a relation data type and associated operations (as proposed, for instance, in [17]).
    The first principle is a consequence of the intended scope of the language. The second reflects our belief that much of the difficulty of designing and implementing IISs (usually translated into high costs of initial implementation and maintenance) is due to the lack of appropriate programming constructs in ?conventional? languages (e.g., Cobol and PL/I) for handling the semantics of any one application. The third and fourth principles are the results of our concern for linguistic uniformity and efficiency. We consider both of them quite important given the multiplicity of sources of ideas and the complexity of the problem at hand.
    Section 2 of the paper discusses the basic entities that constitute a TAXIS program. Section 3 describes the IS-A hierarchy as an organizational principle (abstraction mechanism) for the classes constituting a program. In Section 4 we present more details about the different categories of classes. Concluding remarks and directions for further research appear in Section 5.
    The presentation of the language is rather informal and necessarily sketchy due to space limitations. The interested reader is referred to [14, 251 for more details.
          in ACM Trans Database Sys 5(2) June 1980 view details
  • Barron, J.L., "Dialogue and Process Design for Interactive Information Systems Using Taxis", Technical Report CSRG-128, Dept. of Computer Science, university of Toronto, April, 1981 view details
          in ACM Trans Database Sys 5(2) June 1980 view details
  • Barron, John "Dialogue and process design for interactive information systems using Taxis" ACM SIGOA Newsletter , Proceedings of the SIGOA conference on Office information systems, Volume 3 Issue 1-2 June 1982 view details Abstract: This paper deals with dialogue and process management for interactive information systems [abbrev. IISs) within the framework of Taxis Mylopoulos et al 80, a language for IIS design. Dialogues between a user and the system are represented through a small set of primitives incorporated into Taxis while process control is accomplished by incorporating Hoare's I/O commands for communicating sequential processes {Hoare 78}. The overall organization and structure of dialogue and process control for a particular IIS is achieved using scripts, a modified version of augmented Petri nets {Zisman 77}, and the Taxis conceptual framework which stresses generalization abstraction. A journal editing procedure is used to illustrate the proposed extension.
    Extract: The pragmatic component of Taxis
    The pragmatic component of Taxis
    serves as the control mecnanism for
    initiating, conducting, and terminating
    dialogues between an IIS and its users.
    Tnat is, it restricts the possible long
    term sequences, or actions tne system can
    perform. Which particular actions are
    actually performed depends on the user's
    input and the current scat@ of the system.
    The pragmatic component also prpviues the
    context unuer which dialogues take place.
    This means that the dialogue netween a user
    and an IIS can only proceed in expected
    ways. For example, the editor of a
    Journal cannot, accept a paper for
    publication before tnat paper has been
    refereed. Thus the pragmatic component or
    Taxis provides the organization anq
    structure for user/IIS dialogues and
    serves as the interface between the
    syntactic and semantic components of
    Taxls. Extract: Taxis: Background
    Taxis: Background
    2.1 Taxis Concepts
    It is not the purpose of this paper to describe the tools offered ny Taxis for the design of the semantic component of an IIS: In this section we review some of the basic concepts necessary for understanding the remainder of the paper.
    The basic types of objects in Taxis are tokens, classes, and metaclasses. Tokens are the constants of a program and represent particular entities in the enterprlse being modelled. A class is a collection of tokens sharing common properties. Thus EDITOR is a class representing the concept of an editor and can have in its extension tokens, such as joe-editor, representing particular editors. Metaclasses are similar to classes in every respect except that their instances are classes rather than tokens.
    Thus predefined metaclass VARIABLE-CLASS can have in its extension classes such as EDITOR, AUTHOR, and REFEREE that serve as database relations. Similarly, TRANSACTION-CLASS is a metaclass that has transactions, i.e. procedures, in its extension. For example, a transaction ADD-REFEREE might insert referee tokens into a list represented by class REFLIST provided certain prereguisite conditions are satisfied.
    Classes and tokens have properties through which they are related to other classes and tokens. Properties are represented as triples, consisting of one or more selects, an attribute or property name and a property value (abbrev. p-value), factual properties represent specific facts about tokens. For example, "joe-editor.address" returns 38 EDITORS LANE for the property (joe-editor, address, 38 EDITORS LANE). Definitional properties provide structural information about classes. Thus "EDITOR..address"  returns as its p-value the class ADDRESS or the property . The definitional properties of a c1ass induce factual properties for their instances. Thus if joe-editor is an instance of EDITOR and is a definitional property of EDITOR, then joe-editor must nave a corresponding factual property (joe-editor, address, x) where x is an instance of ADDRESS. Propert x categories are used to express what aspects of the structure and behaviour of a metaclass each of its properties convey. For example, a transaction class has parameter, local, prerequisite, action, and return properties convey. For example, a transaction class has  parameter, local, prerequisite, action, and return properties which are used to describe tne parameter and local variables or a transaction, a set of prerequisite conditions that must be true, a list of actions to De carried out, and a value to be returned upon completion of the transaction.
    The Taxis exception handling mechanism is a modified version of Wasserman's procedure-oriented exception handling . Exceptions are instances of exception classes. When a prerequisite property in a transaction evaluates to false, an instance of a specified exception class is raised, i.e. created, and passed as the only argument to an exception handler which is either another transaction or a script. For example, if during the execution of the ADD-REFEREE transaction, an ILLEGAL-REFEREE exception is raised, then ADD-REFEREE is terminated and the newly created excepting instance ls passed to an exception handler script FIND-NEW-REF which examines the circumstances causinq the exception and conducts a dialogue with the editor to resolve it. Further details of the Taxis exception handling mechanism can be found in .

    2.2 The Generalization Hierarchy of Classes
    As have already mentioned, generalizatlon anstraction is particularly relevant for IIS design and facilitates a new design methodology for IISs which we call stepwise refinement through specializatlon . We see this as being uses in conjunction wltn stepwise refinement through decomposition . A Taxis program is viewed as a collection of classes organized into a generalization hierarchy. This rule applies for data, transaction, and exception classes.
    Thus SCIENCE-EDITOR is a specialization of EDITOR and therefore every instance of SCIENCE-EDITOR is also an instance of EDITOR (abbrev. SCIENCE-EDITOR IS-A EDITOR). Clearly, every definitional property of EDITOR is also a definitional property or SCIENCE-EDITOR. Moreover, SCIENCE-EDITOR can have additional properties that EDITOR does not have at all or it can redefine some of the properties of EDITORs , For example, SCIENCE-EDITOR could inherit "name", "address", and "phone#" properties of EDITOR but redefine a "profession" property to De instances of class SCIENTIST rather than just PROFESSION. {Note that SCIENTIST IS-A PROFESSION must hold for the specialization to De valid.)
          in ACM Trans Database Sys 5(2) June 1980 view details
  • Wong, H.K.T. Design and verification of interactive information systems. Ph.D. dissertation, Dep. Computer. Sci., Univ. Toronto, Toronto, Canada. 1982 view details
          in ACM Trans Database Sys 5(2) June 1980 view details
  • Albano, Antonio; Cardelli, Luca and Orsini, Renzo "Galileo: A Strongly Typed Interactive Conceptual Language" view details Abstract: Galileo, a programming language for database applications, is presented. Galileo is a strongly-typed, interactive programming language designed specifically to support semantic data model features (classification, aggregation, and specialization), as well as the abstraction mechanisms of modern programming languages (types, abstract types, and modularization). The main contributions of Galileo are (a) a flexible type system to model database structure and semantic integrity constraints; (b) the inclusion of type hierarchies to support the specialization abstraction mechanisms of semantic data models; (c) a modularization mechanism to structure data and operations into interrelated units (d) the integration of abstraction mechanisms into an expression-based language that allows interactive use of the database without resorting to a new stand-alone query language. Galileo will be used in the immediate future as a tool for database design and, in the long term, as a high-level interface for DBMSs. Extract: Galileo: relation to previous work
    The design of Galileo has been influenced by two areas of research: conceptual modeling and programming languages. Although these areas have a number of overlapping issues, there are problems to be solved if the results from both areas are to be successfully integrated. Galileo applies results from the conceptual modeling sector for features related to object-oriented databases, declarative definitions of constraints, multiple descriptions of objects, and view modeling.
    Galileo borrows features such as data types, abstract types, and modularization from the programming language area. Although the utility of such features is recognized both pragmatically and theoretically, they have mainly been studied for applications to temporary data (i.e., not involving databases).
    The database proposals that have most influenced the design of Galileo are TAXIS, DIAL, and ADAPLEX. TAXIS is notable for introducing the basic knowledge representation mechanisms of semantic networks on data, transactions, and exceptions and for its approach to user dialogue modeling. DIAL, which has evolved from SDM, uses data types, classes, derived classes, the ?port? mechanism to deal with user interaction, and features to control concurrency at the conceptual level. Finally, ADAPLEX uses semantic data model features in a strongly-typed programming language, namely, Ada.
    The main contributions of Galileo are
    (1) the integration of features to support semantic data model abstraction mechanisms within an expression-based, strongly-typed programming language;
    (2) a systematic use of both concrete and abstract types to model structural and behavioral aspects of a database;
    (3) the inclusion of type hierarchies to support the specialization abstraction mechanism of semantic data models as well as a software development methodology by data specialization
    (4) the proposal of another abstraction mechanism, modularization, to organize a conceptual scheme in meaningful and manageable units, so as to deal with data persistence without resorting to specific data types such as files of programming languages, and to deal with application-oriented views of data in a similar way to the view mechanism of DBMSs;
    (5) a small number of independent primitive features that can be applied orthogonally, that is, in any combination.
    The basic ideas of Galileo have been investigated in ELLE, a programming language designed to deal uniformly with temporary and persistent complex data, that is, without resorting to special data type constructors to deal with permanent data. Both ELLE and Galileo borrow many of their features from the functional programming language ML. Extract: Galileo TYPE HIERARCHIES
    TYPE HIERARCHIES
    An important property of the Galileo type system is the notion of subtype: if a type u is a subtype of a type v (u C v), then a value of type u can be used in any context where a value of type v is expected, but not vice versa. The subtype relation is a partial order. For instance, if a function f has a formal parameter of type v, then an application of f to a value of type u is correctly typechecked because no run-time errors can occur. It is important to stress the point that since Galileo has a secure type system, the notion of type hierarchies is related to that of well-typed expressions [24, 281: expressions that are syntactically well typed are always semantically well typed (i.e., such expressions do not cause runtime type errors, and give a value of the correct type). In Milner?s words, ?welltyped expressions do not go wrong? also [36] apply to hierarchies among types.
    This notion of type hierarchies is different from the subtype concept of Ada, but is similar to the subclass mechanisms of Simula 67 and Smalltalk. In Galileo, this notion is extended to all the types, in the sense explained in the sequel to this paper, while preserving two important properties: the language is still strongly-typed and the functions need not be recompiled in order to be used on parameters of any subtype.
    With this mechanism Galileo supports the notion of programming by data specialization, originally introduced in Simula 67 and generalized in TAXIS to all the constituents of a database application: data, transactions, assertions, and scripts. Complex software applications, especially those related to databases, can be designed and implemented incrementally. Once a set of functions has been designed and tested for the most general data, it can be used with data of any subtype introduced later on in the software development process. Moreover, new functions on the subtypes can be defined in terms of the old functions.
          in ACM Trans Database Sys 10(2) June 1985 view details
  • Nixon, Brian et al "Implementation of a compiler for a semantic data model: Experiences with taxis" view details Abstract: The features of a compiler for the Taxis design language are described and discussed. Taxis offers an entity-based framework for designing interactive information systems and supports generalisation, classification and aggregation as abstraction mechanisms. Its features include multiple inheritance of attributes, isA hierarchies of transactions, metaclasses, typed attributes, a procedural exception-handling mechanism and an iteration construct based on the abstraction mechanisms supported
          in Proceedings of the 1987 ACM SIGMOD international conference on Management of Data ACM SIGMOD Record , 16(3) December 1987 view details
  • Linnemann, V. et al "Design and Implementation of an Extensible Database Management System Supporting User Defined Data Types and Functions" view details Extract: Intro
    TAXIS is a language for the design of interactive information systems. It offers, among others, database management facilities which are integrated into a single language through the concepts of class, property, and the IS-A relationship.

          in Proceedings of the 14th VLDB Conference Los Angeles, California 1988 view details
  • Albano, Antonio "Conceptual languages: a comparison of ADAPLEX, Galileo, and Taxis" Foundations of knowledge base management November 1989 view details
          in Proceedings of the 14th VLDB Conference Los Angeles, California 1988 view details