Browse Prior Art Database

Storage and Retrieval of Arbitrary Relationships Disclosure Number: IPCOM000081442D
Original Publication Date: 1974-Jun-01
Included in the Prior Art Database: 2005-Feb-28
Document File: 3 page(s) / 16K

Publishing Venue


Related People



Described is an easy-to-use means for maintaining relationships in a computing system. (Image Omitted)

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 3

Storage and Retrieval of Arbitrary Relationships

Described is an easy-to-use means for maintaining relationships in a computing system.

(Image Omitted)

Unidirectional relationships imply reverse or dual relationships. For example, if "owns" is a relationship, "is owned by" is its dual. The dual of > is <. ("A owns B" implies "B is owned by A"; "A>B" implies "B<A".)

1. m x n relationship matrix M where m relationships of length n

are stored.
2. Symmetric internal format for storing dyadic relationships.
3. Dual relationship pairs stored as a single relationship.
4. Option of implicit or explicit relationship codes (Implicit

codes are implied by having a different matrix for each

relationship type; multiple relationship types may be stored

in the same matrix if explicit codes are used.)
5. Items of optional fixed length for a given M.
6. A set of functions (attached) for maintaining relationship

matrices, as follows:

a) General (both monadic and dyadic)

CREATE (Input:N; Output: M).

M is a null matrix designed to hold relationships of

length N; i.e., items satisfying a monadic relationship

are vectors of length N or N-1, depending upon

whether or not the single-valued relationship code

is stored with the item, and items satisfying a

dyadic relationship each have a length equal to the

greatest integer which is less than or equal to half

of N.

M is set equal to a matrix having zero rows and N


b) Utility (called by other functions)

INDEX (Input: M,R; Output: IV).

This function returns IV, the vector of indices of

those rows of relationship matrix M which are equal

to relationship vector R.

(1) The AND/EQUALS inner product is used to

determine which rows of M are equal to R.

(2) The result of step 1 is used to compress the

index vector of the rows of M.

(3) The result of step 2 is returned, as output.

FORMAT (Input: R; Output: FR).

This function gives the internal form of the

mathematically dyadic relationship f(x,y),

where f is a single, optional numeric code

specifying the relationship, and x and y are

numeric vectors of equal length specifying


Page 2 of 3

the two related items. (Usually x and y each

consist of an item identifier and zero or more


The external form R is given by concatenating

f, x, and y, in that order. The internal form

FR consists of the rotation of x, concatenated

with f and y.

The input vector R is split into two parts

between x and y. The first part is rotated

and then reconcatenated with the second part.

The new vector is the result.

The rest of the functions add to, delete from, and

query relationship matrices. The monadic (suffix=1)

and dyadic (suffix=2) ADD/DELETE functions are the

same, except that the dyadic forms convert relationships

specified as input to internal syntax before processing


c) Update

ADD1 (Input: M, R; Output: EM).

This function adds a row R to matrix M if not

already there.

If relationship R already exists as a row of M

(as determined by utility functio...