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
References: in INFOR 15(3) October 1977 view details in INFOR 15(3) October 1977 view details in INFOR 15(3) October 1977 view details in INFOR 15(3) October 1977 view details in ACM Trans Database Sys 5(2) June 1980 view details 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 in ACM Trans Database Sys 5(2) June 1980 view details 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 Taxis exception handling mechanism is a modified version of Wasserman's procedure-oriented exception handling 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 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 in ACM Trans Database Sys 5(2) June 1980 view details 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 in Proceedings of the 1987 ACM SIGMOD international conference on Management of Data ACM SIGMOD Record , 16(3) December 1987 view details 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 in Proceedings of the 14th VLDB Conference Los Angeles, California 1988 view details |