Noodle(ID:5786/noo001)


for Nonprocedural Object­Oriented Database LanguagE

led to the Sword system


Related languages
Noodle => SWORD   Based on

References:
  • Mumick, I.S. and Ross, K.A. "Noodle: A Language for Declarative Querying in an Object-Oriented Database" view details Abstract: We present a language Noodle in which to specify declarative queries
    in an object-oriented database system. The language models object-identity, classes, relations, views, inheritance, complex objects, and methods, in addition to logical rules, and permits powerful schema querying.

    Noodle is intended to be used as a query language in an object-oriented database system, with the benefits of declarativeness, namely increased efficiency and reduced programming time.

    Our work bridges the gap between relational, deductive and
    object-oriented databases. Noodle is being implemented in the SWORD database system: a declarative object-oriented database being built at
    AT&T Bell Laboratories.
    External link: Online copy
          in [DOOD] Proc. DOOD Conf., 1993 view details
  • Mumick, Inderpal Singh; Ross, Kenneth A.; Sudarshan, S. "Design and Implementation of the SWORD Declarative Object­-Oriented Database System" view details Extract: Outline
    The SWORD declarative language borrows from deductive and object-oriented technology. Our language has recursion and is rule based. Relations are supported as objects with object identifiers, but individual tuples of a relation do not have object identifiers. Complex objects (functional and set valued) are supported using HiLog-like constructs [CKW92]. Attributes of objects are referenced by name rather than position.

    There are several novel features in our system:
    (1) Variables can range over all classes, relations, attributes, and objects, in a manner similar to Hilog [CKW92]. This permits queries that are not possible in SQL extensions and other object-oriented proposals.
    (2) Classes, relations, methods, and objects are referenced in a uniform manner.
    (3) The declarative language is integrated into O++. For example, some of the methods of an O++ class can be defined declaratively, others can be defined procedurally using O++.
    (4) Queries can do implicit schema querying. Queries such as find all classes (or find all subclasses of vehicle class) whose objects have an attribute engine capacity can be expressed without reference to the catalog. Queries to find objects for which some attribute is equal to the string "Stanford University'' can also be expressed.

    We discuss the implementation of SWORD. We describe how SWORD addresses issues of integration with the O++ data model, and issues related to compilation into O++, especially with respect to types. The paper is organized as follows. In Section 3 we give a detailed description of the SWORD declarative language. In Section 6 we present an example application using SWORD. Section 7 describes the implementation. Finally, Section 9 describes future work, and compares our work with related proposals.
          in [DOOD] Proc. DOOD Conf., 1993 view details