Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Precise Infix Notation for Complex Relations

IP.com Disclosure Number: IPCOM000106463D
Original Publication Date: 1993-Nov-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 2 page(s) / 45K

Publishing Venue

IBM

Related People

French, SW: AUTHOR [+3]

Abstract

Significantly greater readability of complex relational expressions can be obtained by using an infix notation. But traditional infix notations are either ambiguous and are not machine processable or are difficult to read (e.g., require nesting parentheses). A simple unambiguous machine processable infix notation can be achieved by using an incomplete expression that includes a pointer to other relations and concepts to complete the expression.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 76% of the total text.

Precise Infix Notation for Complex Relations

      Significantly greater readability of complex relational
expressions can be obtained by using an infix notation.  But
traditional infix notations are either ambiguous and are not machine
processable or are difficult to read (e.g., require nesting
parentheses).  A simple unambiguous machine processable infix
notation can be achieved by using an incomplete expression that
includes a pointer to other relations and concepts to complete the
expression.

      In the specific notation, a pointer can be an underscore, a
list of dots (period) or a name (though other characters could be
used).  An underscore refers back to an atom while dots refer back to
other relations.  Also, a name can be attached to a previous relation
for referencing.  Each set of relations has some "base atom" and
several things can be related to this base atom.  All underscores
used in the set of relations will refer back to the base atom.  Each
relation in the set begins with a series of dots.  The number of dots
refers to the "nesting level".  "Named pointers" are used in
situations when "dot pointers" would be ambiguous.

      Expressions in this notation are easily and naturally read by
ignoring the pointer information.  The same expression can be
unambiguously interpreted and machine processed by following pointer
information.

     For example:

          Joe.wants_to_unlock(, safe) named unlock_safe
          ...