Data village system
First Claim
1. A database management system comprising computer system hardware and database management software, the database management software causing the computer system hardware to perform specified functions and any other functions necessitated by the performance of the specified functions when commanded by a user either directly or through other software, the database management system comprising:
- a means for adding, changing, deleting, and organizing meta-data and user-data according to predetermined static data organization rules, the data category called user-data comprising datums and compartments, a datum being a single item of information, a compartment being a place for receiving a plurality of associated datums, the data category called meta-data comprising tables, cables, and dynamic data organization rules, a table being a place for receiving a plurality of compartments, the datums in each of the compartments of a table being values of a set of a plurality of attributes, each cable connecting a first table to a second table, a cable being a representation of connections between the compartments in the first table and the compartments in the second table, the datums in connected compartments being called connected datums, a dynamic data organization rule being a user-defined constraint on user-data, a permissible dynamic data organization rule being a formula-defined dynamic data organization rule wherein the values of one or more formula-input datums in one or more tables are required to collectively satisfy a specified formula the formula-input datums having the same or different values, no datum having its value automatically determined on the basis of the formula, the static data organization rules including all constraints imposed on meta-data and meta-data relationships, the static data organization rules and the meta-data collectively including all constraints imposed on user-data and user-data relationships, inconsistent meta-data and user-data being prohibited by the static data organization rules, inconsistent meta-data being meta-data that do not conform with the static data organization rules, inconsistent user-data being user-data that do not conform with the static data organization rules and the meta-data, any attempt to add, change, or delete meta-data or user-data wherein the addition, change, or deletion will result in a violation of any of the static data organization rules or meta-data being automatically rejected bv the database management system;
a means for retrieving and viewing one or more selected datums together with one or more connected datums, the retrieving-and-viewing means automatically identifying the connected datums by tracing the cables connecting the tables, the retrieving-and-viewing means being activated by an external input, an external input being an input originating from without the database management system.
0 Assignments
0 Petitions
Accused Products
Abstract
The data village system (DVS) comprises an interactive computer system and software that enables a user to establish a data model that defines an organizational structure for an organization'"'"'s data and that enforces the user'"'"'s rules as to how the organization'"'"'s data is manipulated and viewed. The data model for any organization, in its simplest form, consists of tables for receiving related datums, compartments of tables for receiving associated datums, and cables which connect tables thereby indicating linkages between datums in different tables. This basic conceptual underpinning can be expanded to groupings of linked tables into rooms, groupings of linked rooms into houses, and groupings of linked houses into data villages, a data village corresponding to the organization to which the data model pertains. The DVS provides the means for a user to define a data model for an organization in terms of compartments, tables, rooms, houses, and the interconnecting cables. The DVS functions in accordance with data organization rules which require that any user-data entered into a compartment be linked to other user-data in accordance with the data model. As a result of this organizational scheme, a user may request the display of the datums in a specified compartment and be alerted to and have available for display all other datums in the organization that pertain to the datums in the specified compartment.
133 Citations
160 Claims
-
1. A database management system comprising computer system hardware and database management software, the database management software causing the computer system hardware to perform specified functions and any other functions necessitated by the performance of the specified functions when commanded by a user either directly or through other software, the database management system comprising:
-
a means for adding, changing, deleting, and organizing meta-data and user-data according to predetermined static data organization rules, the data category called user-data comprising datums and compartments, a datum being a single item of information, a compartment being a place for receiving a plurality of associated datums, the data category called meta-data comprising tables, cables, and dynamic data organization rules, a table being a place for receiving a plurality of compartments, the datums in each of the compartments of a table being values of a set of a plurality of attributes, each cable connecting a first table to a second table, a cable being a representation of connections between the compartments in the first table and the compartments in the second table, the datums in connected compartments being called connected datums, a dynamic data organization rule being a user-defined constraint on user-data, a permissible dynamic data organization rule being a formula-defined dynamic data organization rule wherein the values of one or more formula-input datums in one or more tables are required to collectively satisfy a specified formula the formula-input datums having the same or different values, no datum having its value automatically determined on the basis of the formula, the static data organization rules including all constraints imposed on meta-data and meta-data relationships, the static data organization rules and the meta-data collectively including all constraints imposed on user-data and user-data relationships, inconsistent meta-data and user-data being prohibited by the static data organization rules, inconsistent meta-data being meta-data that do not conform with the static data organization rules, inconsistent user-data being user-data that do not conform with the static data organization rules and the meta-data, any attempt to add, change, or delete meta-data or user-data wherein the addition, change, or deletion will result in a violation of any of the static data organization rules or meta-data being automatically rejected bv the database management system; a means for retrieving and viewing one or more selected datums together with one or more connected datums, the retrieving-and-viewing means automatically identifying the connected datums by tracing the cables connecting the tables, the retrieving-and-viewing means being activated by an external input, an external input being an input originating from without the database management system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112)
-
2. The database management system of claim 1 wherein a static data organization rule requires that one of the two tables connected by a cable functions as a parent table and the other functions as a child table with respect to the cable, the direction of a cable being from the parent table to the child table, the cable being referred to as the incoming cable at the child table, a static data organization rule requiring that a compartment in a child table be connected to one compartment in the parent table, the connection of each compartment in a child table to a compartment in the parent table being included in the user data, a static data organization rule permitting a compartment in a parent table to be connected to zero or more compartments in a child table, a static data organization rule prohibiting a directed cable loop, a directed cable loop consisting of N cables interconnecting N tables, N being an integer, the child table of the n'"'"'th cable being the parent table of the {(n+1) modulo N}'"'"'th cable, the cables being numbered from 0 to N-1.
-
3. The database management system of claim 1 wherein the retrieving-and-viewing means, upon request by an external input, displays a graphical depiction of the tables and interconnecting cables using the meta-data.
-
4. The database management system of claim 3 wherein the retrieving-and-viewing means, upon request by an external input and after selection of a table from the graphical depiction, displays one or more compartments in the table and the datums contained therein.
-
5. The database management system of claim 1 further comprising:
a means for changing the meta-data including inserting and deleting tables, inserting and deleting cables, and inserting, deleting, or changing dynamic data organization rules, the meta-data-changing means being activated by an external input.
-
6. The database management system of claim 5 wherein a static data organization rule requires that one of the two tables connected by a cable functions as a parent table and the other functions as a child table with respect to the cable, the direction of a cable being from the parent table to the child table, the cable being referred to as the incoming cable at the child table, a static data organization rule requiring that a compartment in a child table be connected to one compartment in the parent table, the connection of each compartment in a child table to a compartment in the parent table being included in the user data, the static data organization rules permitting a compartment in a parent table to be connected to zero or more compartments in a child table.
-
7. The database management system of claim 6 further comprising:
a means for changing the user data, including (1) inserting a compartment and its datums into a table, and if the table is a child table, inserting a connection from the newly-inserted compartment to a compartment in the parent table, (2) changing datums in an existing compartment, (3) changing the compartment in a parent table to which a compartment in a child table is connected, and (4) deleting a compartment and its datums from a table and deleting the connection from the compartment to a compartment in the parent table, a static data organization rule prohibiting the deletion of a compartment in a parent table which is connected to a compartment in a child table unless the child table compartment is also deleted, the user-data-changing means being activated by either an internal or external input, an internal input being an input originating from within the database management system.
-
8. The database management system of claim 7 wherein the system can be placed in an initial state, a permissible initial state being one wherein the meta-data and user-data are absent.
-
9. The database management system of claim 7 wherein the meta-data is subdivided into N classes numbered from 1 to N, N being an integer, a user of the database management system being assigned a user authorization number M, M being an integer between 1 and N, the static data organization rules prohibiting the user from making changes in meta-data in classes with numbers greater than M, the specification of the meta-data classes being included in the meta-data.
-
10. The database management system of claim 7 further comprising:
a means for producing an automatic response to an occurrence of an internal condition in the user-data which requires a change in the user-data or to an external input requesting a change in meta-data or user-data, the response being either (1) to request and wait for additional data if such data is necessary to perform the requested change and other changes necessitated by the requested change, necessitated changes being those changes that must be made to comply with the meta-data and the static data organization rules, (2) to cause the meta-data-changing means and/or the user-data-hanging means to make the requested change together with any changes in other meta-data and user-data necessitated by the requested change, or (3) to reject the requested change if the requested change and the changes necessitated by the requested change cannot be accomplished without violation of the static and/or dynamic data organization rules and to inform the requestor of the reasons therefor if the response is to a request by an external input.
-
11. The database management system of claim 10 wherein a trigger specification and a response specification are included in the meta-data, the trigger specification defining a condition for producing a trigger, the condition being either an internal condition in the user-data or a condition external to the database management system identified to the database management system by an external input, the response specification defining a change in the user-data to be made upon the occurrence of a trigger, the automatic-response-producing means executing the change in the user-data when a trigger occurs.
-
12. The database management system of claim 10 wherein the automatic-response-producing means, in response to an external input requesting a plurality of changes in meta-data and/or user-data, (1) causes the meta-data-changing means and/or the user-data-changing means to make all of the requested changes together with any changes in other meta-data and user-data necessitated by the requested changes, or (2) rejects the requested changes if the requested changes and the changes necessitated by the requested changes cannot be accomplished as a whole without violation of the data organization rules.
-
13. The database management system of claim 10 wherein a request by an external input to change displayed data is equivalent to a request by an external input to change the corresponding user-data, the automatic-response-producing means reacting to an external request to change displayed data by either (1) causing the retrieving-and-viewing means to make the requested change in the displayed data and then causing the user-data-changing means to make the requested change in the user-data together with any other changes in the user-data necessitated by the requested change or (2) rejecting the requested change if the requested change and the other changes necessitated by the requested change cannot be accomplished without violation of the data organization rules.
-
14. The database management system of claim 10 wherein the meta-data and user-data organizing means provides the means for defining one or more doorways, a doorway being a specification of a display format for one or more retrieved datums, one or more doorways being included in the meta-data, the retrieving-and-viewing means, upon request and the specification of a doorway, causing one or more datums to be displayed in accordance with the doorway.
-
15. The database management system of claim 14 wherein one or more doorways includes a compartment-ordering specification for one or more tables, the datums for a doorway being displayed in the order of their compartments as specified by the compartment-ordering specification.
-
16. The database management system of claim 14 wherein one or more doorways includes a compartment-subset specification for one or more tables, the compartment-subset specification being a listing of the compartments in a subset of the set of compartments in a table, the display of datums in a compartment subset being visually distinct from the other datums in the table.
-
17. The database management system of claim 14 wherein one or more doorways includes a plurality of slots, a slot being a region for displaying one or more datums, the doorway specification including any restrictions on the datum combinations that may be displayed in the plurality of slots.
-
18. The database management system of claim 14 wherein the meta-data-changing means includes a means for automatic doorway generation, the automatic-doorway-generation means, upon specification of a table, creating a doorway called a default doorway for the table, the default doorway specifying a display format for a plurality of the datums in the table and all datums in parent tables of the table that are connected to the datums in the table.
-
19. The database management system of claim 10 wherein each table contains one or more fields and each compartment in a table is a partial record, a static organization rule requiring that each datum in a partial record of a table be in a field of the table and that there be a datum in each partial record of a table in each field of the table, the datums in a particular field sharing an attribute, the fields for each table being included in the meta-data.
-
20. The database management system of claim 19 wherein the retrieving-and-viewing means, upon request by an external input, displays a graphical depiction of the tables interconnected with cables based on the meta-data.
-
21. The database management system of claim 20 wherein the retrieving-and-viewing means, upon request and after selection of a table from the graphical depiction, displays the field names, the partial records, and the datums in one or more partial records of the selected table, the field of each datum being indicated.
-
22. The database management system of claim 21 wherein a request by an external input to change the displayed data is equivalent to a request by an external input to change the corresponding meta-data or user-data, the automatic-response-producing means reacting to an external request to change displayed data by either (1) causing the retrieving-and-viewing means to make the requested change in the displayed data and then causing the meta-data-changing means or the user-data-changing means to make the requested change in the meta-data or user-data together with any other changes in the meta-data or the user-data necessitated by the requested change or (2) rejecting the requested change if the requested change and the other changes necessitated by the requested change cannot be accomplished without violation of the static and/or dynamic data organization rules.
-
23. The database management system of claim 21 wherein (1) the meta-data includes a textual description of each field and (2) the retrieving-and-viewing means, upon request and after selection of a field from the display of fields, partial records, and datums, displays the textual description associated with the selected field.
-
24. The database management system of claim 20 wherein (1) the meta-data includes a textual description of each table and cable and (2) the retrieving-and-viewing means, upon request and after selection of a table or cable from the graphical depiction, displays the textual description associated with the selected table or cable.
-
25. The database management system of claim 19 wherein a field and the field datums are any one of a plurality of types, the meta-data including the type of each field in each table, a static data organization rule requiring that the datums in a field be of the same type as the field, the automatic-response-producing means reacting to an external input requesting the insertion of a datum in a table or the substitution of a new datum for an old datum in a table by either (1) causing the user-data-changing means to make the requested insertion or substitution, or (2) rejecting the request as being incompatible with the data organization rules.
-
26. The database management system of claim 25 wherein the automatic-response-producing means reacts to an external input requesting a change in the type of a field from a first type to a second type by either (1) causing the meta-data-changing means to change the field type from the first type to the second type and causing the user-data-changing means to convert the datums in the field from the first type to the second type, or (2) rejecting the request as being incompatible with the static and/or dynamic data organization rules.
-
27. The database management system of claim 19 wherein each field and each datum is any one of a plurality of field types, a field type being an instance of a field-type family, a field-type family being characterized by one or more parameters and zero or more lists, a field type being defined by assigning values to the one or more parameters and defining the zero or more lists that characterize a field-type family, an ordinal type being a field type wherein the datums constitute an ordered domain, field-type-family instances being included in the meta-data, a static data organization rule requiring that the datums in a field be of the same field type as the field.
-
28. The database management system of claim 27 wherein the datums in a field are integers, the field being an integer type, the family of integer-type fields being characterized by two parameters, the first parameter specifying the number of bits required to represent a datum, the second parameter indicating whether the datums as a whole are signed or unsigned, the meta-datarganizing means, upon request and specification of an integer-type family and the values for the two parameters that characterize the family by an external input, creating an integer-type family instance.
-
29. The database management system of claim 27 wherein the datums in a field are real numbers, a real number being represented by the product of a real number called the mantissa and a real number raised to the power of an exponent, the exponent being a real number, the field being a real type, the family of real-type fields being characterized by four parameters, the first parameter specifying the number of bits required to represent a mantissa, the second parameter specifying the number of bits required to represent an exponent, the third parameter indicating whether the mantissas as a whole are signed or unsigned, the fourth parameter indicating whether the exponents as a whole are signed or unsigned, the meta-data-organizing means, upon request and specification of a real-type family and the values for the four parameters that characterize the family by an external input, creating a real-type family instance.
-
30. The database management system of claim 29 wherein the datums in a field are complex numbers, a complex number being represented by a real part and an imaginary part, the field being a complex type, the family of complex-type fields being characterized by two parameters, the first parameter specifying a real-type family instance to be associated with the real parts of complex numbers, the second parameter specifying a real-type family instance to be associated with the imaginary parts of complex numbers, the meta-data-organizing means, upon request and specification of a complex-type family and the values for the two parameters that characterize the family by an external input, creating a complex-type family instance.
-
31. The database management system of claim 27 wherein the datums in a field are numerical representatives of alphanumeric characters, the field being a character type, the family of character-type fields being characterized by one parameter and a list of characters, the parameter specifying the number of bits required to represent a numerical representative, the list specifying the characters into which the numerical representatives are mapped, the meta-data-organizing means, upon request and specification of a character-type family, a value for the parameter, and a list of characters that characterize the family by an external input, creating a character-type family instance.
-
32. The database management system of claim 31 wherein the datums in a field are strings of alphanumeric characters of a character type, the field being a string type, the family of string-type fields being characterized by two parameters, the first parameter specifying a character-type family instance corresponding to the alphanumeric characters, the second parameter specifying the maximum number of characters in a string, the meta-data-organizing means, upon request and specification of a string-type family and values for the two parameters that characterize the family by an external input, creating a string-type family instance.
-
33. The database management system of claim 31 wherein the datums in a field are texts, a text consisting of a sequence of one or more words, each word being a string of alphanumeric characters of a character type, a word being represented in a text by a numerical representative, the field being a text type, the family of text-type fields being characterized by two parameters and a list of words, the first parameter specifying a character-type family instance corresponding to the characters in the text, the second parameter specifying the number of bits required to represent a numerical representative, the list specifying the words into which the nunerical representatives are mapped, the meta-data-organizing means, upon request and specification of a text-type family, values for the two parameters, and a word list that characterize the family by an external input, creating a text-type family instance.
-
34. The database management system of claim 27 wherein the datums in a field are numerical representatives of phrases, a phrase consisting of a sequence of one or more words, the field being an enumeration type, the family of enumeration-type fields being characterized by one parameter and a list of phrases, the first parameter specifying the number of bits required to represent a numerical representative, the list specifying the phrases into which the numerical representatives are mapped, the data-organizing means, upon request and specification of an enumeration-type family, a value for the parameter, and a list of phrases that characterize the family by an external input, creating an enumeration-type family instance.
-
35. The database management system of claim 27 wherein the datums in a field are of a specified ordinal type and within a bounded range, the field being a subtype type, the family of subtype-type fields being characterized by three parameters, the first parameter specifying an ordinal-type family instance, the second parameter specifying the low end of the bounded range, the third parameter specifying the high end of the bounded range, the meta-data-organizing means, upon request and specification of a subtype-type family and values for the three parameters that characterize the family by an external input, creating a subtype-type family instance.
-
36. The database management system of claim 35 wherein the datums in a field are subdivided into element datums of a specified type, each element datum being associated with an index datum of a specified type, the element datums being sequentially ordered according to their associated indices, the field being an array type, the family of array-type fields being characterized by two parameters, the first parameter specifying a subtype-type family instance corresponding to the index datums, the second parameter specifying a field-type family instance corresponding to the element datums, the meta-data-organizing means, upon request and specification of an array-type family and the values for the two parameters that characterize the family by an external input, creating an array-type family instance.
-
37. The database management system of claim 35 wherein the datums in a field are numerical representatives of sets of values of a specified ordinal-type, the field being a set type, the family of set-type fields being characterized by one parameter, the parameter specifying a subtype-type family instance corresponding to the values in a set, the meta-data-organizing means, upon request and specification of a set-type family and the value for the one parameter that characterizes the family by an external input, creating a set-type family instance.
-
38. The database management system of claim 27 wherein the datums in a field are numerical representatives of contiguous bands of values of a specified ordinal-type, the ordinal-type being called the underlying type, the field being a band type, the family of band-type fields being characterized by two parameters and a list of bands, the first parameter specifying an ordinal-type family instance, the second parameter specifying the number of bits required to represent a numerical representative, the list specifying the bands into which the numerical representatives are mapped, a datum of the specified ordinal type falling into exactly one band, the meta-data-organizing means, upon request and specification of a band-type family, values for the two parameters, and a list of bands that characterize the family by an external input, creating a band-type family instance.
-
39. The database management system of claim 38 wherein the automatic-response-producing means, upon request and specification of a first datum in a field whose type is the underlying type of a band-type, creates a second datum in a field whose type is the band-type, the second datum representing the band corresponding to the first datum.
-
40. The database management system of claim 27 wherein the datums in a field are dates and/or times expressed in date units, the field being a date type, the family of date-type fields being characterized by four parameters, the first parameter specifying a standard unit of time, the second parameter defining the date unit by specifying the number of standard units of time in a date unit, the third parameter specifying the earliest date, the fourth parameter specifying the latest date, the meta-data-organizing means, upon request and specification of a date-type family and values for the four parameters that characterize the family by an external input, creating a date-type family instance.
-
41. The database management system of claim 19 wherein a field is either a basal field or a calculated field, a basal field being a field whose datums are included in the meta-data or are obtained from an external source, a calculated field being a field whose datums are calculated by means of a formula supplied by an external source, the formula expressing a functional relationship between a datum in a calculated field and one or more other datums.
-
42. The database management system of claim 41 wherein the meta-data includes a basal/calculated indicator for each field in each table, a default value for each basal field in each table, and the formula for each calculated field in each table, the basal/calculated indicator indicating whether the associated field is a basal field or a calculated field, the basal-field default value being the value of a basal-field datum whenever the basal-field datum has not been supplied by an external source, the automatic-response-producing means reacting to an external input requesting that a basal field be changed to a calculated field, the request being accompanied by the formula defining the calculated field datums, by (1) causing the meta-data-changing means to change the basal/calculated indicator to indicate a calculated field and adding the formula to the meta-data and (2) causing the user-data-changing means to calculate the datums in the calculated field, the automatic-response-producing means reacting to an external input requesting a change in the formula for a calculated field, the request being accompanied by a new formula, by (1) causing the meta-data-changing means to substitute the new formula for the old formula in the meta-data and (2) causing the user-data-changing means to recalculate the datums in the calculated field, the automatic-response-producing means reacting to an external input requesting a calculated field be changed to a basal field, the request being accompanied by a default value, by (1) causing the meta-data-changing means to change the basal/calculated indicator to indicate a basal field and inserting the default value into the meta-data and (2) causing the user-data-changing means to substitute default values for the calculated datums if new values were not supplied by the external source.
-
43. The database management system of claim 41 wherein the automatic-response-producing means causes the user-data-changing means to recalculate a calculated datum after a datum to which the calculated datum is functionally related by its associated formula changes.
-
44. The database management system of claim 19 wherein the retrieving-and-viewing means, upon request and identification of a specification for a datum matrix, displays a plurality of datums for a plurality of fields in a plurality of partial records in a matrix format of rows and columns in accordance with the datum matrix specification, each row being a partial record or a portion thereof and each column being the partial-record datums for a field or a portion thereof, one or more datum matrix specifications being included in the meta-data.
-
45. The database management system of claim 44 wherein a datum matrix specification specifies a slot size for each field of a table, a slot being a rectangular area reserved for the display of a datum for a field in a partial record of the table.
-
48. The database management system of claim 19 wherein the retrieving-and-viewing means, upon request and identification of a table, a designated partial record in the table, and a specification for a partial record format, displays in accordance with the partial record format specification a view of the datums in the designated partial record from the table, the specification of the partial record format being included in the meta-data.
-
49. The database management system of claim 48 wherein the retrieving-and-viewing means, upon request and identification of a table, a designated partial record, a specification for a partial record format, and a specification for a graph format, displays in accordance with the specifications a view of the designated partial record from the table and a graph, the graph being a representation of a plurality of points in a two-coordinate system, each point being associated with a partial record in the table, a datum from a first field in the table being one coordinate of a point, a datum from a second field in the table being the other coordinate of the point, the specification for the graph format being included in the meta-data.
-
50. The database management system of claim 49 wherein the point corresponding to the designated partial record is highlighted in the graph, the automatic-response-producing means reacting to a request from an external input to change the designated partial record by unhighlighting any existing highlighted point and highlighting the point corresponding to the new designated partial record.
-
51. The database management system of claim 48 wherein the view of the datums includes the field identifiers associated with the datums, a static data organization rule prohibiting the display of datums without the associated field identifiers.
-
52. The database management system of claim 19 wherein a table includes at least one filter field, a filter field representing a filter, a datum in a filter field being either a "0" or "0", the retrieving-and-viewing means, upon request, identification of the table and a filter, and specification of a display format, displays in the specified display format the datums in the plurality of partial records after filtering by the filter, the display formats comprising a masked format and a colored format, a masked format being a display format where only the partial records for which the filter-field datums are "1'"'"'s" are displayed, a colored format being a format where the partial records for which the filter-field datums are "1'"'"'s" are visually distinguishable from the partial records for which the filter-field datums are "0'"'"'s".
-
53. The database management system of claim 52 wherein at least one filter field is a basal field, a basal field being a field whose datums are obtained from an external source.
-
54. The database management system of claim 52 wherein at least one filter field is a calculated field, a calculated field being a field whose datums are calculated by means of a formula supplied by an external source, the formula expressing a functional relationship between the calculated-field datum and one or more basal-field datums and other calculated-field datums, a basal field being a field whose datums are included in the meta-data or are obtained from an external source, the meta-data including the formula for calculating the datums in each calculated field.
-
55. The database management system of claim 19 wherein each cable contains one or more wires, each of the one or more wires in a cable connecting a partial record in a child table to a partial record in a parent table, the partial record in the child table being called the child partial record, the partial record in the parent table being called the parent partial record, a wire being a representation of a relationship between the datums in the child partial record and the datums in the parent partial record, each wire having the name of the partial-record to which it connects in the parent table, the user-data including the names of the wires connecting to the partial records in each child table, a sequence of N cables wherein the child table of the n'"'"'th cable is the parent table of the (n+1)'"'"'th cable being a downward path from an ancestral table to a descendent table, N being an integer and n being any integer between 1 and N-1, the ancestral table being the parent table of the first cable in the sequence, the descendent table being the child table of the N'"'"'th cable in the sequence, an ancestral-table partial record being wired to a descendent-table partial record via a downward path and a descendent-table partial record being wired to an ancestral-table partial record via a downward path if the ancestral-table partial record is connected via the downward path to the descendent-table partial record by a sequence of wires in the downward path wherein the child partial record of the n'"'"'th wire is the parent partial record of the (n+1)'"'"'th wire, n being any integer between 1 and N-1.
-
56. The database management system of claim 10 wherein each dynamic data organization rule has an associated user-defined error message, the error messages being included in the meta-data, the automatic-response-producing means, upon rejecting a request to change user data because of a violation of a dynamic data organization rule, giving its associated error message as the reason therefor.
-
57. The database management system of claim 55 wherein each field and each cable is either key or non-key, a key meta-vector is associated with each table, and a key vector is associated with each partial record in each table, a plurality of partial records in a table having the same key vector being prohibited by a static data organization rule, a key meta-vector being a list of the key fields and the key incoming cables of a table taken in a predetermined order, a key vector being obtained by substituting datums and wire names associated with a partial record for the key fields and key incoming cables of the key meta-vector.
-
58. The database management system of claim 57 wherein the meta-data includes a key/non-key indicator for each field in each table and for each cable, the automatic-response-producing means reacting to an external input requesting a change in the value of the key/non-key indicator for a field or cable by either (1) causing the meta-data-changing means to change the value of the key/non-key indicator for the field or cable, or (2) rejecting the requested change as being incompatible with the static data organization rules in that the requested change would result in a plurality of partial records having the same key vector.
-
59. The database management system of claim 57 wherein the retrieving-and-viewing means causes all of the partial records in the key context of a marked partial record in a table to have their key fields either on display or readily accessible for display, the marked partial record being a partial record selected for marking by external input, the marked partial record being visually distinguishable from the other partial records, the key context of a partial record being the set of partial records comprising the partial record and the key context of all parent partial records to which the partial record is wired through key incoming cables.
-
60. The database management system of claim 55 wherein each cable is either optional or required, the meta-data including an optional/required indicator for each cable, the parent table of an optional cable having one phantom partial record, each phantom partial record being given a name, the static data organization rules permitting one or more wires of an incoming optional cable and not permitting any wires of an incoming required cable to be connected to the phantom partial record in the parent table, a phantom partial record having no datums and having no function other than to serve as a terminus at a parent table for one or more wires of an optional cable, the automatic-response-producing means reacting to an external input requesting a change in the value of the optional/required indicator for an incoming cable by (1) if the incoming cable is to be optional or if there are no wires connected to the phantom record in the parent table or the request includes a specification for changing phantom-partial-record-connected wires to non-phantom partial records in the parent table, then commanding the meta-data-changing means to change the value of the optional/required indicator for the incoming cable, and, if the incoming cable is to be a required cable, commanding the user-data-changing means to connect each phantom-partial-record-connected wire to a non-phantom partial record as specified by the request, otherwise (2) rejecting the request.
-
61. The database management system of claim 60 wherein an optionality function is associated with a child partial record, an optionality function being equal to either "0", "1", or "2", the static data organization rules prohibiting the connection of a child partial record to a non-phantom parent partial record when the optionality function equals "0", the static data organization rules requiring the connection of a child partial record to the parent phantom partial record when the optionality function equals "2", the static data organization rules neither prohibiting nor requiring the connection of a child partial record to a parent phantom partial record when the optionality function equals "1".
-
62. The database management system of claim 61 wherein an optionality function is a function of the datums in one or more fields in the context of the child partial record, the context of a partial record being the partial record and the context of each partial record that is a parent of the partial record.
-
63. The database management system of claim 55 wherein a cable range is associated with each partial record in the parent table of the cable, the lower bound of a cable range being an integer equal to or greater than zero, the upper bound of a cable range being an integer greater than zero, the upper bound being equal to or greater than the lower bound for every cable range, the static data organization rules requiring that the number of wires connected to a parent partial record be in the cable range of the parent partial record.
-
64. The database management system of claim 63 wherein the upper bound and the lower bound of the cable range for a parent partial record are functions of the datums in one or more fields in the context of the parent partial record, the context of a partial record being the partial record and the context of each partial record that is a parent of the partial record.
-
65. The database management system of claim 55 wherein a cable restriction is associated with a cable, a partial record in the parent table, and a partial record in the child table, a cable restriction being equal to either a "0" or a "1", a static data organization rule prohibiting the connection of a child partial record to a parent partial record when the associated cable restriction is a "0".
-
66. The database management system of claim 65 wherein a cable restriction is a function of the datums in one or more fields in the contexts of the associated parent and child partial records, the context of a partial record being the partial record and the context of each partial record that is a parent of the partial record.
-
67. The database management system of claim 55 wherein a field is either a basal field or a calculated field, a basal field being a field whose datums are included in the meta-data or are obtained from an external source, a calculated field being a field whose datums are calculated by means of a formula supplied by an external source, the formula expressing a functional relationship between a datum called a formula-output datum for a calculated field and one or more datums called formula-input datums, a formula-output datum being resident in a partial record called a formula-output partial record, a formnula-output partial record being located in a table called a formula-output table, a formula being independent of partial records, the automatic-response-producing means causing the user-data-changing means to recalculate a formula-output datum after an associated formula-input datum changes, the meta-data including a basal/calculated indicator for each field in each table, a default value for each basal field in each table, and the formula for each calculated field in each table, the basal/calculated indicator indicating whether the associated field is a basal field or a calculated field, the basal-field default value being the value of a basal-field datum whenever the basal-field datum has not been supplied by an external source, the automatic-response-producing means reacting to an external input requesting that a basal field be changed to a calculated field, the request being accompanied by the formula defining the calculated field datums, by (1) causing the meta-data-changing means to change the basal/calculated indicator to indicate a calculated field and adding the formula to the meta-data and (2) causing the user-data-changing means to calculate the datums in the calculated field, the automatic-response-producing means reacting to an external input requesting a change in the formula for a calculated field, the request being accompanied by a new formula, by (1) causing the meta-data-changing means to substitute the new formula for the old formula in the meta-data and (2) causing the user-data-changing means to recalculate the datums in the calculated field, the automatic-response-producing means reacting to an external input requesting a calculated field be changed to a basal field, the request being accompanied by a default value, by (1) causing the meta-data-changing means to change the basal/calculated indicator to indicate a basal field and inserting the default value into the meta-data and (2) causing the user-data-changing means to change the datums in the field to values supplied by the user or to the default value.
-
68. The database management system of claim 67 wherein a calculated-field formula includes a formula-input datum specification for determining a formula-input datum, a formula-input datum specification including the name of a field called the input field and a failure value, the user-data-changing means, in calculating a formula-output datum, either (1) determining a partial record called the formula-input partial record in accordance with the formula-input datum specification and utilizing the datum in the input field of the formula-input partial record as the formula-input datum or (2) utilizing the failure value as the formula-input datum.
-
69. The database management system of claim 68 wherein the formula-input datum specification includes a downward path to the formula-output table, the user-data-changing means determining the ancestral partial record of the formula-output partial record via the downward path as the formula-input partial record.
-
70. The database management system of claim 69 wherein each cable is either optional or required, the meta-data including an optional/required indicator for each cable, the parent table of an optional cable having one phantom partial record, the static data organization rules permitting one or more wires of an incoming optional cable and not permitting any wires of an incoming required cable to be connected to the phantom partial record in the parent table, a phantom partial record having no datums and having no function other than to serve as a terminus at a parent table for one or more wires of an optional cable, the user-data-changing means determining the ancestral partial record of a formula-output partial record via a downward path as a formula-input partial record only if no phantom partial record is an ancestral partial record to the formula-output partial record via the downward path.
-
71. The database management system of claim 68 wherein at least one sequential ordering of the partial records in a formula-output table is included in the meta-data, at least one formula-input datum specification having an input field in the formula-output table and including an offset specification, the user-data-changing means determining a formula-input partial record by its offset in the sequential ordering relative to the formula-output partial record.
-
72. The database management system of claim 67 wherein a calculated-field formula includes at least one formula-input datum summarizing specification for determining a formula-input datum, a formula-input datum summarizing specification including the name of a field called the input field, a summarizer, and a failure value, the user-data-changing means, in calculating a formula-output datum, either (1) determining one or more partial records called formula-input partial records, utilizing the summarizer to convert the datums in the input field of the formula-input partial records into a single value, and utilizing the single value as the formula-input datum or (2) utilizing the failure value as the formula-input datum.
-
73. The database management system of claim 72 wherein the formula-input datum. summarizing specification includes a downward path from the formula-output table, the user-data-changing means determining the set of descendent partial records of the formula-output partial record via the downward path as the formula-input partial records.
-
74. The database management system of claim 72 wherein the formula-input datum summarizing specification includes the name of a filter field in the same table as the input field, the user-data-changing means determining the formula-input partial records as being those partial records for which the datums in the specified filter field are "1'"'"'s", a filter field being a calculated field, a datum in a filter field being either a "0" or a "1".
-
75. The database management system of claim 72 wherein at least one pair of tables is a topology table pair consisting of a node table and a link table, the node table and the link table being connected by a first cable and a second cable, the node table being the parent table for both cables, a partial record in the node table representing a node of a topological graph, a partial record in the link table representing a link between two nodes, a link being directed from a first node to a second node, the first node being the node-table partial record connected to the link-table partial record by a wire in the first cable, the second node being the node-table partial record connected to the link-table partial record by a wire in the second cable, the formula-output partial record and the formula-input partial records being in the node table, the formula-input datum summarizing specification including a topological linkage specification, the user-data-changing means determining the fornula-input partial records on the basis of their linkage through the link table and through zero or more partial records in the node table to the formula-output partial record according to the topological linkage specification.
-
76. The database management system of claim 55 wherein the retrieving-and-viewing means displays an ordered sequence of partial records in a table, the ordered sequence of partial records being selected from a plurality of ordered sequences, each ordered sequence having a name, an ordered sequence being determined by a table sort sequence of one or more sort items, the name of each ordered sequence and its associated sort sequence being included in the meta-data, partial records being ordered by sort item in accordance with the sort sequence, partial records for which the order cannot be established by the (N-1)'"'"'th sort item being ordered by the values of the N'"'"'th sort item, N being any integer between two and the number of sort items in the sort sequence, a sort item being the name of either a field or an incoming cable, the order of partial records for a field sort item being in accordance with the datums in the named field, the order of partial records for an incoming-cable sort item being in accordance with a specified ordered sequence of the parent partial records in the parent table of the named incoming cable.
-
77. The database management system of claim 76 wherein the static data organization rules require that the table sort sequence for each ordered sequence of partial records include sufficient sort items for the complete ordering of the partial records in the table.
-
78. The database management system of claim 76 wherein the retrieving-and-viewing means displays an ordered sequence of partial records in a grouping table, a grouping table being linked to another table called the base table for the grouping table, the linkage between the grouping table and the base table being represented by a cable, the grouping table being the parent table and the base table being the child table, the grouping table being associated with a basis meta-vector in the base table, the basis meta-vector being a list of one or more fields of the base table taken in a predetermined order, the child partial records in the base table of a partial record in the grouping table all having the same basis vector, the basis vector of a partial record in the base table being the list obtained by substituting datums in the partial record for the fields of the basis meta-vector, at least one of the sort items being a basis-field sort item, a basis-field sort item being the name of a field in the basis meta-vector, the order of the partial records in the grouping table for a basis field sort item being in accordance with a specified ordered sequence of the child partial records in the base table, the specified ordered sequence of the child partial records only depending upon the fields in the basis meta-vector.
-
79. The database management system of claim 55 wherein one or more matrix-view specifications are included in the meta-data, the retrieving-and-viewing means, upon request and identification of a matrix-view specification, displaying a plurality of datums for a plurality of fields in a plurality of partial records from a table called a primary table in a matrix in accordance with the identified matrix-view specification, the matrix being called the primary matrix, each row of the primary matrix being a partial record or a portion thereof and each column of the primary matrix being the partial-record datums for a field or a portion thereof.
-
80. The database management system of claim 79 wherein the matrix-view specification provides for the display of at least one contextual datum in the proximity of the primary matrix, a contextual datum being a datum in a partial record called a contextual partial record that is in the context of a marked partial record, the marked partial record being a partial record having datums in the primary matrix that is visually distinguishable from the other partial records, the context of a partial record being the set of partial records consisting of the partial record and all parent partial records to which the partial record is connected by wires in incoming cables, the automatic-response-producing means, in response to a request to mark a partial record by an external input, causing (1) the partial record to be marked and causing any other marked partial records to be unmarked and (2) the at least one contextual datum to change in accordance with the change in marking.
-
81. The database management system of claim 80 wherein a plurality of contextual datums are arranged in one or more contextual columns that are appended to the primary matrix, each of the contextual columns corresponding to a field of an ancestral table, the contextual partial record of each datum in a contextual column and in a partial record row of the primary matrix being in the context of the partial record of the primary matrix.
-
82. The database management system of claim 80 wherein the matrix-view specification provides for the display of at least one isolated datum in the proximity of the primary matrix, an isolated datum being a datum in the marked partial record which is in a hidden field of the primary table, a hidden field being a field whose datums are not represented by a column in the primary matrix, the automatic-response-producing means, in response to a request to change the marked partial record, causing the at least one isolated datum to change in accordance with the change in the marked partial record.
-
83. The database management system of claim 79 wherein the matrix-view specification provides for the display of a plurality of datums for a plurality of fields in a plurality of partial records from a table called a secondary table in a matrix, the matrix being called the secondary matrix, the secondary matrix being displayed in the proximity of the primary matrix, the secondary table being a descendent table of the primary table via a downward path, each partial record in the secondary matrix being a descendent partial record of a marked partial record in the primary matrix via the downward path, the marked partial record being a partial record in the primary matrix that is visually distinguishable from the other partial records, the automatic-response-producing means, in response to a request to mark a partial record by an external input, causing (1) the partial record to be marked and causing any other marked partial records to be unmarked and (2) the datums in the secondary matrix to change in accordance with the change in marking.
-
84. The database management system of claim 55 wherein one or more spread-sheet specifications are included in the meta-data, the retrieving-and viewing means, upon request and identification of a spread-sheet specification, displaying a spread sheet associated with a row table, a column table, and a cell table in accordance with the identified spread-sheet specification, the row and column tables being ancestral tables of the cell table, the spread sheet comprising a matrix of datums at locations denoted by row and column coordinates (r,c), r taking on values between 1 and R, c taking on values between 1 and C, R and C being integers, the datum at coordinates (r'"'"',1) being a datum from a row-table partial record denoted by r'"'"', r'"'"' taking on values between 2 and R, the datum at coordinates (1,c'"'"') being a datum from a column-table partial record denoted by c'"'"', c'"'"' taking on values between 2 and C, the datum at coordinates (r'"'"',c'"'"') being a datum from the cell-table partial record which is the descendent of row-table partial record r'"'"' and column-table partial record c'"'"'.
-
85. The database management system of claim 55 wherein at least one of the plurality of tables is a grouping table, each grouping table being linked to another table called the base table for the grouping table, the linkage between the grouping table and the base table being represented by a cable, the grouping table being the parent table and the base table being the child table, the grouping table being associated with a basis meta-vector in the base table, the basis meta-vector being either an empty list or a list of at least one component of the base table taken in a predetermined order, a component of a table being a field or incoming cable of the table, the basis vector of a partial record in the base table being the list obtained by substituting datums and wire names associated with the partial record for the fields and incoming cables of the basis meta-vector, a partial record of a grouping table representig a particular basis vector and being a summary of information contained in one or more partial records having the same basis vector in the base table of the grouping table, the basis vectors of all partial records in the base table of a grouping table with an empty-list meta-vector being identical empty list basis vectors, the user-data-changing means, in response to the creation of a new partial record in the base table which has a basis vector that is not represented by any partial record in the grouping table, creating a new partial record in the grouping table that represents the new basis vector and creating a wire connecting the new base-table partial record to the new grouping-table partial record, the user-data-changing means, in response to the creation of a new partial record in the base table having a basis vector that is represented by a partial record in the grouping table, creating a wire connecting the new base-table partial record to the grouping-table partial record that represents the basis vector of the new base-table partial record, the user-data-changing means deleting a partial record in a grouping table and its connecting wire to the base table whenever the basis vector for the grouping-table partial record disappears from the base table, the user-data-changing means determining the datums in a grouping-table partial record from the base-table partial records having the basis vector that is represented by the grouping-table partial record whenever (1) a base-table partial record having the same basis vector is created or deleted or (2) whenever the datums in a base-table partial record having the same basis vector change, the automatic-response-producing means rejecting all requests by external inputs which seek to insert or delete partial records in grouping tables.
-
86. The database management system of claim 85 wherein a first grouping table is the base table of a second grouping table and at least one component of the basis meta-vector of the second grouping table is a component of the basis meta-vector of the first grouping table.
-
87. The database management system of claim 55 wherein at least one pair of tables is a topology table pair consisting of a node table and a link table, the node table and the link table being connected by a first cable and a second cable, the node table being the parent table for both cables, a partial record in the node table representing a node of a topological graph, a partial record in the link table representing either a link between a first node and a second node, a link being either directive or non-directive, a directive link being directed from the first node to the second node, the first node being the node-table partial record connected to the link-table partial record by a wire in the first cable, the second node being the node-table partial record connected to the link-table partial record by a wire in the second cable.
-
88. The database management system of claim 87 wherein there are a plurality of types of topological graphs, each topology type imposing one or more constraints on the linkage of nodes in a topological graph, the topological graph represented by each topology pair and its connecting cables having an associated dynamic data organization rule which specifies the applicable topology type.
-
89. The database management system of claim 87 wherein the retrieving-and-viewing means, upon request by an external input, displays the topological graph represented by a topology table pair and its connecting cables, the data relating to nodes and links in the partial records of the topology table pair being transformed into graphical symbols to form the topological graph.
-
90. The database management system of claim 89 wherein a request by an external input to change the display of a topological graph is equivalent to a request by an external input to change the data in the node and/or link tables, the automatic-response-producing means reacting to an external request to change the topological graph by either (1) causing the retrieving-and-viewing means to make the requested change in the display of the topological graph and then causing the user-data-changing means to make the requested change in the node and/or link tables together with any other changes in the user-data necessitated by the requested change or (2) rejecting the requested change if the requested change and the other changes necessitated by the requested change cannot be accomplished without violation of the data organization rules.
-
91. The database management system of claim 89 wherein the retrieving-and-viewing means, upon request by an external input and after selection of a node or link from the topological graph, displays the datums in the partial record representing the node or link respectively.
-
92. The database management system of claim 87 wherein one or more indentured-list specifications are included in the meta-data, the retrieving-and-viewing means, upon request and identification of an indentured-list specification, displaying an indentured list representation of the nodes and links of a topology table pair and its connecting cables in accordance with the identified indentured-list specification, an indentured list comprising a plurality of rows with various levels of indentation, a node-table partial record being represented by one or more rows in the indentured list, the links being represented by the indentation.
-
93. The database management system of claim 55 wherein at least three and no more than four of the plurality of tables are a topology table combination consisting of a node table, a link table, at least one but no more than two hitch-pin tables, a first link cable, a second link cable, and at least one but no more than two hitch-pin cables, the first and second link cables connecting the link table to either (1) the node table and a hitch-pin table, (2) a single hitch-pin table, or (3) two hitch-pin tables, a hitch-pin cable connecting each hitch-pin table to the node table, the node table being a parent table, the link table being a child table, a hitch-pin table being both a parent table for the link cable and a child table for a hitch-pin cable, a partial record in the node table containing data relating to a node of a topological graph, a partial record in the hitch-pin table containing data relating to a hitch pin for a node, hitch pins representing alternative connection points on nodes for the connection of links, a partial record in the link table specifying a link between a first node or a hitch pin of a first node and a second node or a hitch pin of a second node of the topological graph, the link being represented by the first link cable wire connecting the first-node partial record in the node table or a hitch-pin-table partial record associated with the first node to the link-table partial record and the second link cable wire connecting the second-node partial record in the node table or a hitch-pin-table partial record associated with the second node to the link-table partial record, a partial record in the link table representing either a directive or a non-directive link between the first and second nodes, a directive link being directed from the first node to the second node.
-
94. The database management system of claim 55 wherein a dynamic data organization rule is defined by a formula expressing a functional relationship between a formula-output value and one or more datums called formula-input datums, the formula being included in the meta-data, a formula-output value being either a first value or a second value, the automatic-response-producing means, in response to a request for a change in user-data which would affect one or more formula-input datums associated with one or more formula-defined dynamic data organization rules, calculating the formula-output values for the one or more formula-defmed dynamic organization rules using the affected formula-input datums that would exist if the requested changes in user data were made, the automatic-response-producing means rejecting any request that results in a formula-output value equal to the first value, the automatic-response-producing means in response to a request by an external input to add a new formula-defined dynamic data organization rule or to change an existing formula-defined dynamic data organization rule, the request being accompanied by the new or changed formula, by (1) calculating a formula-output value from the new or changed formula for each combination of one or more datums in the user-data which could serve as formula-input datums for the new or changed formula, (2) causing the meta-data changing means to add the new dynamic data organization rule or change the existing dynamic data organization rule as requested if all resulting formula-output values are equal to the second value, and (3) rejecting the request if any of the resulting formula-output values are equal to the first value.
-
95. The database management system of claim 94 wherein a formula includes at least one formula-input datum specification for determining a formula-input datum, a formula-input datum specification including an input field and a failure value, the automatic-response-producing means, in calculating a formula-output value, either (1) determining a partial record called the formula-input partial record and utilizing the datum in the input field of the formula-input partial record as the formula-input datum, or (2) utilizing the failure datum as the formula-input datum.
-
96. The database management system of claim 94 wherein a formula contains at least one fornula-input datum summarizing specification for determining a formula-input datum, a formula-input datum summarizing specification including an input field, a summarizer, and a failure value, the automatic-response-producing means, in calculating a formula-output value, either (1) determining one or more partial records called the formula-input partial records, utilizing the summarizer to convert the datums in the input field of the formula-input partial records into a single value, and utilizing the single value as the formula-input datum, or (2) utilizing the failure datum as the formula-input datum.
-
97. The database management system of claim 55 wherein the meta-data and user-data organizing means provide the means for placing a plurality of tables in one or more rooms, a room being a place for receiving a plurality of records, each room having a name, there being a plurality of tables in each room, the tables in a room being interconnected with at least one mini-cable, a mini-cable being a type of cable used exclusively to interconnect tables within a room, the names of the rooms and the names of the tables and mini-cables in each room being included in the meta-data, the tables in a room being interconnected by at least one format-field mini-cable, each table that is the parent table for a format-field mini-cable having at least one field called a format field, a format-field datum having any one of a plurality of values, the meta-data including a listing of the datum values for each format field, there being one format-field mini-cable connecting a parent table to a child table for each of the plurality of datum values for a format field in the parent table, the name of a format-field mini-cable identifying the value of the format field with which it is associated in its parent table, one table in a room being designated as the head table, the head table having no incoming format-field mini-cables, the head table having at least one format-field, every non-head table having an incoming mini-cable, a non-head table being a table in a room that is not a head table, a record being included in the user-data and comprising a set of partial records in a room that are interconnected by mini-cable wires, a datum in a partial record of a record being called a datum in the record, the fields in all the tables in a room being called the room field set, the fields in the one or more tables containing the partial records of a record being called the record field set, the static data organization rules requiring that every record include one partial record in the head table, that a partial record in a table be in exactly one record, and that a record contain no more than one partial record from a table, a room containing zero or more null tables, a null table having an incoming format-field mini-cable, a null table having no fields and no partial records and no other function than to serve as a terminus for a format-field mini-cable that contains no wires.
-
98. The database management system of claim 97 wherein the user-data-changing means, upon request and specification of the head-table format-field datums for a record, creates the record in a room by (1) creating a partial record in the head table and (2) creating partial records in other tables, the creation of a partial record in a parent table having one or more format fields causing the automatic-response-producing means to (1) create a partial record in the child table of the mini-cable associated with the datum value of each format field of the parent table and connect a wire in the mini-cable between the partial record in the parent table and the partial record in the child table unless the child table is a null table or unless the record already includes a partial record in the child table already exists and (2) request the datum for each format field in the child-table partial record that has not already been specified, the user-data-changing means, upon request by an external input, deleting a record in a room by (1) deleting all mini-cable wires interconnecting the partial records of the record, and (2) deleting all the partial records of the record, a request by an external input to change an old format-field datum in a partial record in a parent table to a new datum causing the automatic-response-producing means to (1) create a partial record in the child table of the mini-cable associated with the new datum and connect a wire in the mini-cable between the partial record in the parent table and the partial record in the child table, unless the child table is a null table or unless the record already includes a partial record in the child table, (2) request the datum for each format field in the child-table partial record that has not already been specified, and (3) first delete the wire in the mini-cable associated with the old datum and connecting to the parent partial record and then delete all dangling partial records, a dangling partial record being a partial record which was before the modification of the format-field datum and is not after the modification of the format-field datum connected to a partial record in the head table either directly or through a series of tables by mini-cable wires, the automatic-response-producing means rejecting requests by an external input to insert or delete a partial record in a non-head table.
-
99. The database management system of claim 98 wherein a plurality of non-head tables in a room are interconnected by one or more automatic mini-cables, an automatic-mini-cable connection to a head table or a null table being prohibited by the static data organization rules, each partial record in a parent table of an automatic mini-cable being connected by a wire in the automatic mini-cable to exactly one partial record in the child table, the user-data-changing means, in creating a record involving a parent partial record of an automatic mini-cable after creating all necessary format field mini-cable wires, (1) creating a partial record in a child table of the automatic mini-cable unless the child table already contains a partial record in the record, and (2) connecting a wire in the automatic mini-cable between the parent partial record and the child partial record.
-
100. The database management system of claim 97 wherein the retrieving-and-viewing means, upon request by an external input, displays a graphical depiction of the rooms and room-interconnecting cables, a room-interconnecting cable being a cable that connects a table in one room with a table in another room.
-
101. The database management system of claim 100 wherein the retrieving-and-viewing means, upon request by an external input and after selection of a room from the graphical depiction, displays a graphical depiction of the tables and the mini-cables interconnecting the tables inside the room using the meta-data.
-
102. The database management system of claim 100 wherein the retrieving-and-viewing means, upon request by an external input and after selection of a room from the graphical depiction, provides a view of one or more of the records contained in the selected room or portions thereof.
-
103. The database management system of claim 97 wherein each field and each cable is either key or non-key, a key meta-vector is associated with each table, and a key vector is associated with each partial record in each table, a key meta-vector being a list of the key fields and the key incoming cables of a table taken in a predetermined order, a key vector being obtained by substituting datums and wire names associated with a partial record for the key fields and key incoming cables of the key meta-vector, the meta-data including a key/non-key indicator for each field in each table and for each cable, the static data organization rules prohibiting any two records in a room from having the same key vector, the key vector of a record being a concatenation of the key vectors of its partial records, each format field of a parent table being a key field for the parent table whenever an associated format-field mini-cable wire connects to a child table having a key field or another key incoming cable.
-
104. The database management system of claim 97 wherein one or more variant-record-view specifications are included in the meta-data, the retrieving-and-viewing means, upon request and identification of a variant-record-view specification, providing a view of a plurality of datums in one or more records of a room in one or more variant-record-view fields in accordance with the identified variant-record-view specification, the one or more variant-record-view fields being fields in the room field set, the absence of a datum in a variant-record-view field that is not in the record field set of a record being denoted by a "no-datum" symbol, the automatic-response-producing means rejecting any attempt to replace a "no-datum" symbol by a datum.
-
105. The database management system of claim 104 wherein the view specified by at least one variant-record-view specification is a matrix, each row of the matrix being the datums in a record or portion thereof and each column being the datums in a field.
-
106. The database management system of claim 104 wherein the view specified by at least one variant-record-view specification displays one record in the room at a time, each datum being labeled with a field identifier, the displayed layout of the datums and field identifiers for a record in the room being dependent upon the field set of the record, a first record in the room having a different field set than a second record in the room, the retrieving-and-viewing means, upon request to switch the view from the first record to the second record, automatically changing the layout of the datums and field identifiers in accordance with the variant-record-view specification.
-
107. The database management system of claim 55 wherein the meta-data and user-data organizing means provide the means for defining one or more doorway networks, a doorway network being a specified display format for viewing a plurality of doorways interconnected by one or more context paths, a doorway being a specified display format for viewing a plurality of partial records from a table, the specifications for at least one doorway network and the doorways which make up each doorway network being included in the meta-data, the doorways connected by a context path being called parent and child doorways, a context path between a parent doorway and a child doorway being indicative of a downward path between an ancestral table associated with the parent doorway and a descendent table associated with the child doorway, one of the doorways in the doorway network being designated as the focused doorway, the focused doorway being visually distinguishable from the other doorways, the focused doorway being identified in the meta-data, one of the partial records in the table of the focused doorway being designated as the marked partial record, each partial record in the tables of the other doorways in the doorway network which is either an ancestral or descendent partial record of the marked partial record in the table of the focused doorway via one or more context paths being designated as a marked partial record, the displayed datums in a marked partial record being visually distinguishable from the datums in other partial records, the marked partial records being identified in the meta-data, the automatic-response-producing means, upon request and designation of a different focused doorway by an external input, causing the meta-data-changing means to change the meta-data identification of the focused doorway and to change the meta-data identification of the marked partial records in other tables to the appropriate ancestral and descendent partial records of the marked partial record in the newly-designated focused doorway, the automatic-response-producing means, upon request and designation of a different marked partial record in the focused doorway, causing the meta-data-changing means to change the meta-data identification of the marked partial record in the focused doorway and the meta-data identification of the marked partial records in other tables to the appropriate ancestral and descendent partial records of the newly-designated marked partial record in the focused doorway.
-
108. The database management system of claim 107 wherein, upon request by an external input, the retrieving-and-viewing means displays a graphical depiction of the doorway network or a portion thereof.
-
109. The database management system of claim 108 wherein the retrieving-and-viewing means, upon request and selection of a doorway from the graphical depiction by an external input, provides a view of the partial records in the associated table or a portion thereof in accordance with the doorway.
-
110. The database management system of claim 55 wherein the meta-data and user-data organizing means provides the means for placing a plurality of tables into a house, one table in the house called the main table being the primary repository of user-data, one or more tables in the house called link tables being the repositories of topological graph linkages, a topological graph being comprised of nodes which are partial records in the main table interconnected by links which are partial records in a link table, a first cable and a second cable connecting the main table to a link table, the link table being a child table of both cables, a partial record in the link table representing a link between the pair of partial records in the main table to which it is wired by the first and second cables, one or more tables in the house called grouping tables being the repositories of summary data which summarize the data in other tables, a grouping table being a parent table connected by a cable to another table in the house called a base table, a partial record in the grouping table being a summary of a plurality of partial records in the base table, the automatic-response-producing means causing partial records in a grouping table to be added, deleted, or changed whenever changes occur in the partial records of the base table to which the grouping table is wired, the specification for the house being included in the meta-data.
-
111. The database management system of claim 10 wherein a plurality of requests to change meta-data and/or user-data are pending, the automatic-response-producing means, in response to a new request received from an external input to change meta-data and/or user-data, either (1) requesting and waiting for additional data with respect to the new request if such data is necessary to resolve a conflict with one or more of the other pending requests or if such data is necessary to execute the request, (2) executing the new request if there is no conflict between the new request and the other pending requests or (3a) rejecting the new request if there is a conflict between the new request and the other pending requests or if it cannot be executed without violation of the data organization rules and (3b) informing the requestor of the reasons for the rejection, the automatic-response-producing means executing a request by causing the meta-data-changing means and/or user-data-changing means to make the requested change together with any changes necessitated by the requested change, a new pending request being in conflict with the other pending requests when the execution of one or a combination of the other pending requests would make it impossible to execute the new pending request without violation of the data organization rules.
-
112. The database management system of claim 111 wherein a first request from an external source is to change user-data and a second request from an external source is to change meta-data, the user-data affected by the first request being displayed in a display format, the specification for the display format being included in the meta-data and being affected by the second request, the requests not being in conflict, both requests being pending at time T1, the first request being executed at time T2, the second request being executed at time T3, T2 being either before or after T3, the retrieving-and-viewing means (1) displaying the user-data affected by the first request in its unchanged state during the time interval from T1 to T2, (2) displaying the user data affected by the first request in its changed state after T2, and (3) switching the display format at T3 in accordance with the second request.
-
2. The database management system of claim 1 wherein a static data organization rule requires that one of the two tables connected by a cable functions as a parent table and the other functions as a child table with respect to the cable, the direction of a cable being from the parent table to the child table, the cable being referred to as the incoming cable at the child table, a static data organization rule requiring that a compartment in a child table be connected to one compartment in the parent table, the connection of each compartment in a child table to a compartment in the parent table being included in the user data, a static data organization rule permitting a compartment in a parent table to be connected to zero or more compartments in a child table, a static data organization rule prohibiting a directed cable loop, a directed cable loop consisting of N cables interconnecting N tables, N being an integer, the child table of the n'"'"'th cable being the parent table of the {(n+1) modulo N}'"'"'th cable, the cables being numbered from 0 to N-1.
-
-
46. The database management system of 44 wherein the retrieving-and-viewing means, in response to a request and specification of a field composition change in a datum matrix, executes the change, a field composition change consisting of one or more of the group consisting of (1) a change in order of the fields, (2) the deletion of at least one field, or (3) the addition of at least one field.
-
47. The database management system of 44 wherein a field identifier appears above or below each field column of a datum matrix, the display of a datum matrix without an associated field identifier above or below each column being prohibited by a static data organization rule.
-
113. A method for managing user-data in accordance with a user'"'"'s requests, the method comprising the steps:
-
adding changing, deleting and organizing meta-data and user-data according to predetermined static data organization rules, the data category called user-data comprising datums and compartments, a datum being a single item of information, a compartment being a place for receiving a plurality of associated datums, the data category called meta-data comprising tables, cables, and dynamic data organization rules, a table being a place for receiving a plurality of compartments, the datums in each of the compartments of a table being values of a set of a plurality of attributes, each cable connecting a first table to a second table, a cable being a representation of connections between the compartments in the first table and the compartments in the second table, the datums in connected compartments being called connected datums, a dynamic data organization rule being a user-defined constraint on user-data, a permissible dynamic data organization rule being a formula-defined dynamic data organization rule wherein the values of one or more formula-input datums in one or more tables are required to collectively satisfy a specified formula the formula-input datums having the same or different values, no datum having its value automatically determined on the basis of the formula, the static data organization rules including all constraints imposed on meta-data and meta-data relationships, the static data organization rules and the meta-data collectively including all constraints imposed on user-data and user-data relationships, inconsistent meta-data and user-data being prohibited by the static data organization rules, inconsistent meta-data being meta-data that do not conform with the static data organization rules, inconsistent user-data being user-data that do not conform with the static data organization rules and the meta-data, any user request to add, change, or delete meta-data or user-data wherein the change will result in a violation of the static data organization rules or meta-data being automatically rejected; responding to a user'"'"'s request to view one or more datums and one or more connected datums by; identifying the connected datums in different tables by tracing the cables; retrieving and displaying a selected datum together with one or more connected datums linked to the selected datums by cables. - View Dependent Claims (114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160)
-
114. The method of claim 113 wherein a static data organization rule requires that one of the two tables connected by a cable functions as a parent table and the other functions as a child table with respect to the cable, the direction of a cable being from the parent table to the child table, the cable being referred to as the incoming cable at the child table, a static data organization rule requiring that a compartment in a child table be connected to one compartment in the parent table, the connection of each compartment in a child table to a compartment in the parent table being included in the user data, the static data organization rules permitting a compartment in a parent table to be connected to zero or more compartments in a child table.
-
115. The method of claim 114 further comprising the steps:
-
responding to a user'"'"'s request to change the meta-data by; changing the meta-data including inserting and deleting tables, inserting and deleting cables, and inserting, deleting, or changing dynamic data organization rules; responding either to a user'"'"'s request to change the user-data or to a condition resulting from the confluence of the static data organization rules, the meta-data, and the user-data which dictates a change in the user-data by; changing the user data, including (1) inserting a compartment and its datums into a table, and if the table is a child table, inserting a connection from the newly-inserted compartment to a compartment in the parent table, (2) changing datums in an existing compartment, (3) changing the compartment in a parent table to which a compartment in a child table is connected, and (4) deleting a compartment and its datums from a table and deleting the connection from the compartment to a compartment in the parent table, a static data organization rule prohibiting the deletion of a compartment in a parent table which is connected to a compartment in a child table unless the child table compartment is also deleted.
-
-
116. The method of claim 115 further comprising the steps:
responding to an occurrence of an internal condition in the user-data requiring a change in the user-data or to a user'"'"'s request to change the meta-data or the user-data by either; requesting and waiting for additional data from the user if such data is necessary to perform the requested change and other changes necessitated by the requested change, necessitated changes being those changes that must be made to comply with the static and dynamic data organization rules;
ormaking the requested change together with any changes in other meta-data and user-data necessitated by the requested change;
orrejecting the requested change if the requested change and the changes necessitated by the requested change cannot be accomplished without violation of the data organization rules and, if the response is to a request, informing the user of the reasons therefore.
-
117. The method of claim 116 wherein a plurality of requests to change meta-data and/or user-data are pending, a new pending request being in conflict with the other pending requests when the execution of one or a combination of the other pending requests would make it impossible to execute the new pending request without violation of the data organization rules, the method further comprising the steps:
responding to a new request to change meta-data and/or user-data by either; (1) requesting and waiting for additional data with respect to the new request if such data is necessary to resolve a conflict with one or more of the other pending requests or if such data is necessary to execute the request, or (2) executing the new request if there is no conflict between the new request and the other pending requests, or (3) rejecting the new request if there is a conflict between the new request and the other pending requests or if it cannot be executed without violation of the data organization rules and informing the requestor of the reasons for the rejection.
-
118. The method of claim 117 wherein a first request from an external source is to change user-data and a second request from an external source is to change meta-data, the user-data affected by the first request being displayed in a display format, the specification for the display format being included in the meta-data and being affected by the second request, the requests not being in conflict, both requests being pending at time T1, the first request being executed at time T2, the second request being executed at time T3, T2 being either before or after T3, the method further comprising the steps:
-
displaying the user-data affected by the first request in its unchanged state during the time interval from T1 to T2; displaying the user data affected by the first request in its changed state after T2; switching the display format at T3 in accordance with the second request.
-
-
119. The method of claim 116 wherein a trigger specification and a response specification are included in the meta-data, the trigger specification defining a condition for producing a trigger, the condition being either an internal condition in the user-data or an external condition identified by an external input, the response specification defining a change in the user-data to be made upon the occurrence of a trigger, the method further comprising the step:
executing the change in the user-data when a trigger occurs.
-
120. The method of claim 116 wherein the meta-data and user-data organizing step includes providing one or more doorways, a doorway being a specification of a display format for one or more retrieved datums, one or more doorways being included in the meta-data, the method further comprising the steps:
responding to a user'"'"'s request to view one or more datums in a specified doorway by; displaying the one or more datums in accordance with the specified doorway.
-
121. The method of claim 116 wherein each table contains one or more fields and each compartment in a table is a partial record, a static organization rule requiring that each datum in a partial record of a table be in a field of the table and that there be a datum in each partial record of a table in each field of the table, the datums in a particular field sharing an attribute, the fields for each table being included in the meta-data.
-
122. The method of claim 121 further comprising the step:
responding to a user request for a view of the tables and cables by; displaying a graphical depiction of the tables interconnected with cables based on the meta-data.
-
123. The method of claim 122 further comprising the step:
responding to a user request for a view of the fields, partial records and datums from a table and the designation by the user of the table in the graphical depiction of the tables interconnected with cables by; displaying the field names, partial records, and datums of the designated table, the field of each datum being identified.
-
124. The method of claim 121 wherein each field and each datum is any one of a plurality of types, the meta-data including the type of each field in each table, a static data organization rule requiring that the datums in a field be of the same type as the field, the method further comprising the steps:
responding to a user request to insert a datum in a table or to substitute a new datum for an old datum in a table by either; making the requested insertion or substitution;
orrejecting the request as being incompatible with the data organization rules.
-
125. The method of claim 124 further comprising the steps:
responding to a user request to change the type of a field from a first type to a second type by either; changing the field type from the first type to the second type and converting the datums in the field from the first type to the second type;
orrejecting the request as being incompatible with the static and/or dynamic data organization rules.
-
126. The method of claim 121 wherein each field and each datum is any one of a plurality of field types, a field type being an instance of a field-type family, a field-type family being characterized by one or more parameters and zero or more lists, a field type being defined by assigning values to the one or more parameters and defining the zero or more lists that characterize a field-type family, an ordinal type being a field type wherein the datums constitute an ordered domain, field-type-family instances being included in the meta-data, a static data organization rule requiring that the datums in a field be of the same field type as the field.
-
127. The method of claim 121 wherein a field is either a basal field or a calculated field, a basal field being a field whose datums are included in the meta-data or are supplied by an external input, a calculated field being a field whose datums are calculated by means of a formula supplied by an external input, the formula expressing a functional relationship between a datum for a calculated field and one or more other datums, the meta-data including a basal/calculated indicator for each field in each table, a default value for each basal field in each table, and the formula for each calculated field in each table, the basal/calculated indicator indicating whether the associated field is a basal field or a calculated field, the basal-field default value being the value of a basal-field datum whenever the basal-field datum has not been supplied by the external input, the method further comprising the steps:
-
responding to a request by an external input to change a basal field to a calculated field and the supplying by the external input of a formula defining the calculated-field datums by; changing the basal/calculated indicator to indicate a calculated field and adding the formula to the meta-data; and calculating the datums in the calculated field; responding to a request by an external input to change the formula for a calculated field and the supplying by the external input of a new formula defining the calculated-field datums by; substituting the new formula for the old formula in the meta-data; and recalculating the datums in the calculated field; responding to a request by an external input to change a calculated field to a basal field, the external input supplying a default value for the field, by; changing the basal/calculated indicator to indicate a basal field; inserting the default value into the meta-data; and substituting the default value for the calculated datums if new values were not supplied by the external input.
-
-
128. The method of claim 127 further comprising the step:
- recalculating a calculated datum whenever a datum to which the calculated datum is functionally related by its associated formula changes.
-
129. The method of claim 121 wherein a table includes at least one filter field, a filter field representing a filter, a datum in a filter field being either a "0" or "1", the method further comprising the steps:
responding to a user request to view datums in a plurality of partial records in a table after filtering by a filter, the table, filter, and display format specification being specified by the user, by; displaying the datums after filtering by the filter in accordance with the specified display format specification, the display formats comprising a masked format and a colored format, a masked format being a display format where only the partial records for which the filter-field datums are "1'"'"'s" are displayed, a colored format being a format where the partial records for which the filter-field datums are "1'"'"'s" are visually distinguishable from the partial records for which the filter-field datums are "0'"'"'s".
-
130. The method of claim 121 wherein each cable contains one or more wires, each of the one or more wires in a cable connecting a partial record in a child table to a partial record in a parent table, the partial record in the child table being called the child partial record, the partial record in the parent table being called the parent partial record, a wire being a representation of a relationship between the datums in the child partial record and the datums in the parent partial record, each wire having the name of the partial-record to which it connects in the parent table, the user-data including the names of the wires connecting to the partial records in each child table, a sequence of N cables wherein the child table of the n'"'"'th cable is the parent table of the (n+1)'"'"'th cable being a downward path from an ancestral table to a descendent table, N being an integer and n being any integer between 1 and N-1, the ancestral table being the parent table of the first cable in the sequence, the descendent table being the child table of the N'"'"'th cable in the sequence, an ancestral-table partial record being wired to a descendent-table partial record via a downward path and a descendent-table partial record being wired to an ancestral-table partial record via a downward path if the ancestral-table partial record is connected via the downward path to the descendent-table partial record by a sequence of wires in the downward path wherein the child partial record of the n'"'"'th wire is the parent partial record of the (n+1)'"'"'th wire, n being any integer between 1 and N-1.
-
131. The method of claim 130 wherein each field and each cable is either key or non-key, a key meta-vector is associated with each table, and a key vector is associated with each partial record in each table, a plurality of partial records in a table having the same key vector being prohibited by the static data organization rules, a key meta-vector being a list of the key fields and the key incoming cables of a table taken in a predetermined order, a key vector being obtained by substituting datums and wire names associated with a partial record for the key fields and key incoming cables of the key meta-vector.
-
132. The method of claim 131 wherein the meta-data includes a key/non-key indicator for each field in each table and for each cable, the method further comprising the steps:
responding to a user request to change the value of the key/non-key indicator for a field or cable by either; changing the value of the key/non-key indicator for the field or cable;
orrejecting the requested change as being incompatible with the data organization rules in that the requested change would result in a plurality of partial records having the same key vector.
-
133. The method of claim 131 further comprising the step:
causing all of the partial records in the key context of a marked partial record in a table to have their key fields either on display or readily accessible for display, the marked partial record being a partial record selected for marking by a user, the marked partial record being visually distinguishable from the other partial records, the key context of a partial record being the set of partial records comprising the partial record and the key context of all parent partial records to which the partial record is wired through key incoming cables.
-
134. The method of claim 130 wherein each cable is either optional or required, the meta-data including an optional/required indicator for each cable, the parent table of an optional cable having one phantom partial record, each phantom partial record being given a name, the static data organization rules permitting one or more wires of an incoming optional cable and not permitting any wires of an incoming required cable to be connected to the phantom partial record in the parent table, a phantom partial record having no datums and having no function other than to serve as a terminus at a parent table for one or more wires of an optional cable, the method further comprising the steps:
responding to a request for a change in the value of the optional/required indicator for an incoming cable by; if the incoming cable is to be optional or if there are no wires connected to the phantom record in the parent table or the request includes a specification for changing phantom-partial-record-connected wires to non-phantom partial records in the parent table, then commanding the meta-data-changing means to change the value of the optional/required indicator for the incoming cable, and, if the incoming cable is to be a required cable, commanding the user-data-changing means to connect each phantom-partial-record-connected wire to a non-phantom partial record as specified by the request; otherwise rejecting the request.
-
135. The method of claim 134 wherein an optionality function is associated with a child partial record, an optionality function being equal to either "0", "1", or "2", the static data organization rules prohibiting the connection of a child partial record to a non-phantom parent partial record when the optionality function equals "0", the static data organization rules requiring the connection of a child partial record to the parent phantom partial record when the optionality function equals "2", the static data organization rules neither prohibiting nor requiring the connection of a child partial record to a parent phantom partial record when the optionality function equals "1".
-
136. The method of claim 130 wherein an ordered sequence is determined by a table sort sequence of one or more sort items, the name of each ordered sequence and its associated sort sequence being included in the meta-data, partial records being ordered by sort item in accordance with the sort sequence, partial records for which the order cannot be established by the (N-1)'"'"'th sort item being ordered by the values of the N'"'"'th sort item, N being any integer between two and the number of sort items in the sort sequence, a sort item being the name of either a field or an incoming cable, the order of partial records for a field sort item being in accordance with the datums in the named field, the order of partial records for an incoming-cable sort item being in accordance with a specified ordered sequence of the parent partial records in the parent table of the named incoming cable, the method further comprising the step:
responding to a user request to view an ordered sequence of partial records in a table by; displaying the ordered sequence.
-
137. The method of claim 130 wherein one or more matrix-view specifications are included in the meta-data, the method further comprising the steps:
responding to a user request to display a plurality of datums for a plurality of fields in a plurality of partial records from a table called a primary table in a matrix in accordance with a specified matrix-view specification by; displaying the plurality of datums as requested, the matrix being called the primary matrix, each row of the primary matrix being a partial record or a portion thereof and each column of the primary matrix being the partial-record datums for a field or a portion thereof.
-
138. The method of claim 137 wherein the matrix-view specification provides for the display of at least one contextual datum in the proximity of the primary matrix, a contextual datum being a datum in a partial record called a contextual partial record that is in the context of a marked partial record, the marked partial record being a partial record having datums in the primary matrix that is visually distinguishable from the other partial records, the context of a partial record being the set of partial records consisting of the partial record and all parent partial records to which the partial record is connected by wires in incoming cables, the method further comprising the step:
responding to a user request to mark a partial record by; causing the partial record to be marked and causing any other marked partial records to be unmarked; causing the at least one contextual datum to change in accordance with the change in marking.
-
139. The method of claim 137 wherein the matrix-view specification provides for the display of a plurality of datums for a plurality of fields in a plurality of partial records from a table called a secondary table in a matrix, the matrix being called the secondary matrix, the secondary matrix being displayed in the proximity of the primary matrix, the secondary table being a descendent table of the primary table via a downward path, each partial record in the secondary matrix being a descendent partial record of a marked partial record in the primary matrix via the downward path, the marked partial record being a partial record in the primary matrix that is visually distinguishable from the other partial records, the method further comprising the steps:
responding to a user request to mark a partial record by; marking the partial record and unmarking any other marked partial records; changing the datums in the secondary matrix in accordance with the change in marking.
-
140. The method of claim 130 wherein one or more spread-sheet specifications are included in the meta-data, the method further comprising the step:
responding to a user request to view a spread sheet associated with a row table, a column table, and a cell table in accordance with a specified spread-sheet specification, the row and column tables being ancestral tables of the cell table, by; displaying the spread sheet, the spread sheet comprising a matrix of datums at locations denoted by row and column coordinates (r,c), r taking on values between 1 and R, c taking on values between 1 and C, R and C being integers, the datum at coordinates (r'"'"',1) being a datum from a row-table partial record denoted by r'"'"', r'"'"' taking on values between 2 and R, the datum at coordinates (1,c'"'"') being a datum from a column-table partial record denoted by c'"'"', c'"'"' taking on values between 2 and C, the datum at coordinates (r'"'"',c'"'"') being a datum from the cell-table partial record which is the descendent of row-table partial record r'"'"' and column-table partial record c'"'"'.
-
141. The method of claim 130 wherein at least one of the plurality of tables is a grouping table, each grouping table being linked to another table called the base table for the grouping table, the linkage between the grouping table and the base table being represented by a cable, the grouping table being the parent table and the base table being the child table, the grouping table being associated with a basis meta-vector in the base table, the basis meta-vector being either an empty list or a list of at least one component of the base table taken in a predetermined order, a component of a table being a field or incoming cable of the table, the basis vector of a partial record in the base table being the list obtained by substituting datums and wire names associated with the partial record for the fields and incoming cables of the basis meta-vector, a partial record of a grouping table representing a particular basis vector and being a summary of information contained in one or more partial records having the same basis vector in the base table of the grouping table, the basis vectors of all partial records in the base table of a grouping table with an empty-list meta-vector being identical empty list basis vectors, the method further comprising the steps:
-
responding to the creation of a new partial record in the base table which has a basis vector that is not represented by any partial record in the grouping table by; creating a new partial record in the grouping table that represents the new basis vector and creating a wire connecting the new base-table partial record to the new grouping-table partial record; responding to the creation of a new partial record in the base table having a basis vector that is represented by a partial record in the grouping table by; creating a wire connecting the new base-table partial record to the grouping-table partial record that represents the basis vector of the new base-table partial record, responding to the disappearance from the base table of the basis vector for a grouping-table partial record by; deleting the grouping-table partial record and its connecting wire to the base table; responding to (1) the creation or deletion of a base-table partial record having the same basis vector that is represented by a grouping-table partial record or (2) changes in the datums in a base-table partial record having the same basis vector that is prepresented by a grouping-table partial record by; determining the datums in the grouping-table partial record from the base-table partial records having the basis vector that is represented by the grouping-table partial record; responding to a request to change user-data in a grouping table by; rejecting the request.
-
-
142. The method of claim 130 wherein at least one pair of tables is a topology table pair consisting of a node table and a link table, the node table and the link table being connected by a first cable and a second cable, the node table being the parent table for both cables, a partial record in the node table representing a node of a topological graph, a partial record in the link table representing a link between a first node and a second node, a link being either directive or non-directive, a directive link being directed from the first node to the second node, the first node being the node-table partial record connected to the link-table partial record by a wire in the first cable, the second node being the node-table partial record connected to the link-table partial record by a wire in the second cable.
-
143. The method of claim 142 further comprising the step:
responding to a user request to view a topological graph represented by a topology table pair and its connecting cables by; displaying the topological graph, the data relating to nodes and links in the partial records of the topology table pair being transformed into graphical symbols to form the topological graph.
-
144. The method of claim 143 further comprising the step:
responding to a user request to change a topological graph by either; changing the display of the topological graph and then changing the datums in the node and/or link tables to make the data in the tables consistent with the changes in the topological graph together with making any other changes in the user-data necessitated by the requested change;
orrejecting the requested change if the requested change and the other changes necessitated by the requested change cannot be accomplished without violation of the data organization rules.
-
145. The method of claim 130 wherein at least three and no more than four of the plurality of tables are a topology table combination consisting of a node table, a link table, at least one but no more than two hitch-pin tables, a first link cable, a second link cable, and at least one but no more than two hitch-pin cables, the first and second link cables connecting the link table to either (1) the node table and a hitch-pin table, (2) a single hitch-pin table, or (3) two hitch-pin tables, a hitch-pin cable connecting each hitch-pin table to the node table, the node table being a parent table, the link table being a child table, a hitch-pin table being both a parent table for the link cable and a child table for the hitch-pin cable, a partial record in the node table containing data relating to a node of a topological graph, a partial record in the hitch-pin table containing data relating to a hitch pin for a node, hitch pins representing alternative connection points on nodes for the connection of links, a partial record in the link table specifying a link between a first node or a hitch pin of a first node and a second node or a hitch pin of a second node of the topological graph, the link being represented by the first link cable wire connecting the first-node partial record in the node table or a hitch-pin-table partial record associated with the first node to the link-table partial record and the second link cable wire connecting the second-node partial record in the node table or a hitch-pin-table partial record associated with the second node to the link-table partial record, a partial record in the link table representing either a directive or a non-directive link between the first and second nodes, a directive link being directed from the first node to the second node.
-
146. The method of claim 130 wherein a dynamic data organization rule is defined by a formula expressing a functional relationship between a formula-output value and one or more datums called formula-input datums, the formula being included in the meta-data, a formula-output value being either a first value or a second value, the method further comprising the steps:
-
responding to a request for a change in user-data which would affect one or more formula-input datums associated with one or more formula-defined dynamic data organization rules by; calculating the formula-output values for the one or more formula-defined dynamic organization rules using the affected formula-input datums that would exist if the requested changes in user data were made; rejecting any request that results in a formula-output value equal to the first value; responding to a request to add a new formula-defined dynamic data organization rule or to change an existing formula-defined dynamic data organization rule, the request being accompanied by the new or changed formula, by; calculating a formula-output value from the new or changed formula for each combination of one or more datums in the user-data which could serve as formula-input datums for the new or changed formula; adding the new dynamic data organization rule or changing the existing dynamic data organization rule if all resulting formula-output values are equal to the second value; rejecting the request if any of the resulting formula-output values are equal to the first value.
-
-
147. The method of claim 130 wherein the meta-data and user-data organizing step includes placing the plurality of tables in one or more rooms, a room being a place for receiving a plurality of records, each room having a name, there being a plurality of tables in each room, the tables in a room being interconnected with at least one mini-cable, a mini-cable being a type of cable used exclusively to interconnect tables within a room, the names of the rooms and the names of the tables and mini-cables in each room being included in the meta-data, the tables in a room being interconnected by at least one format-field mini-cable, each table that is the parent table for a format-field mini-cable having at least one field called a format field, a format-field datum having any one of a plurality of values, the meta-data including a listing of the datum values for each format field, there being one format-field mini-cable connecting a parent table to a child table for each of the plurality of datum values for a format field in the parent table, the name of a format-field mini-cable identifying the value of the format field with which it is associated in its parent table, one table in a room being designated as the head table, the head table having no incoming format-field mini-cables, the head table having at least one format-field, every non-head table having an incoming mini-cable, a non-head table being a table in a room that is not a head table, a record being included in the user-data and comprising a set of partial records in a room that are interconnected by mini-cable wires, a datum in a partial record of a record being called a datum in the record, the fields in all the tables in a room being called the room field set, the fields in the one or more tables containing the partial records of a record being called the record field set, the static data organization rules requiring that every record include one partial record in the head table, that a partial record in a table be in exactly one record, and that a record contain no more than one partial record from a table, a room containing zero or more null tables, a null table having an incoming format-field mini-cable, a null table having no fields and no partial records and no other function than to serve as a terminus for a format-field mini-cable that contains no wires.
-
148. The method of claim 147 further comprising the steps:
-
responding to a request to create a record in a room and specification of the head-table format-field datums for the record by; creating a partial record in the head table; creating partial records in other tables; the creation of a partial record in a parent table having one or more format fields resulting in the further steps; creating a partial record in the child table of the mini-cable associated with the datum value of each format field of the parent table; connecting a wire in the mini-cable between the partial record in the parent table and the partial record in the child table unless the child table is a null table or unless the record already includes a partial record in the child table; requesting the datum for each format field in the child-table partial record that has not already been specified; responding to a request to delete a record in a room by; deleting all mini-cable wires interconnecting the partial records of the record; deleting all the partial records of the record; responding to a request to change an old format-field datum in a partial record in a parent table to a new datum by; creating a partial record in the child table of the mini-cable associated with the new datum and connecting a wire in the mini-cable between the partial record in the parent table and the partial record in the child table, unless the child table is a null table or unless the record already includes a partial record in the child table; requesting the datum for each format field in the child-table partial record that has not already been specified; first deleting the wire in the mini-cable associated with the old datum and connecting to the parent partial record and then deleting all dangling partial records, a dangling partial record being a partial record which was before the modification of the format-field datum and is not after the modification of the format-field datum connected to a partial record in the head table either directly or through a series of tables by mini-cable wires; responding to a request to insert or delete a partial record in a non-head table by; rejecting the request.
-
-
149. The method of claim 148 wherein a plurality of non-head tables in a room are interconnected by one or more automatic mini-cables, an automatic-mini-cable connection to a head table or a null table being prohibited by the static data organization rules, each partial record in a parent table of an automatic mini-cable being connected by a wire in the automatic mini-cable to exactly one partial record in the child table, the method further comprising the steps:
responding to a request to create a record involving a parent partial record of an automatic mini-cable after creating all necessary format field mini-cable wires by; creating a partial record in a child table of the automatic mini-cable unless the child table already contains a partial record in the record; connecting a wire in the automatic mini-cable between the parent partial record and the child partial record.
-
150. The method of claim 147 further comprising the step:
responding to a user request to view a graphical depiction of the rooms and room interconnecting cables by; displaying a graphical depiction of the rooms and room-interconnecting cables, a room-interconnecting cable being a cable that connects a table in one room with a table in another room.
-
151. The method of claim 150 further comprising the step:
responding to a user request to view a graphical depiction of a room selected by the user from the graphical depiction of the one or more rooms by; displaying a graphical depiction of the tables and the mini-cables interconnecting the tables inside the room selected by the user using the meta-data.
-
152. The method of claim 150 further comprising the steps:
responding to a request for a view of one or more of the records contained in the selected room by; displaying one or more of the records contained in the selected room or portions thereof.
-
153. The method of claim 147 wherein each field and each cable is either key or non-key, the meta-data and user-data organizing step including associating a key meta-vector with each table and a key vector with each partial record in each table, a key meta-vector being a list of the key fields and the key incoming cables of a table taken in a predetermined order, a key vector being obtained by substituting datums and wire names associated with a partial record for the key fields and key incoming cables of the key meta-vector, the meta-data including a key/non-key indicator for each field in each table and for each cable, the static data organization rules prohibiting any two records in a room from having the same key vector, the key vector of a record being a concatenation of the key vectors of its partial records, each format field of a parent table being a key field for the parent table whenever an associated format-field mini-cable wire connects to a child table having a key field or another key incoming cable.
-
154. The method of claim 147 wherein one or more variant-record-view specifications are included in the meta-data, the method further comprising the steps:
-
responding to a request to view datums in accordance with a variant-record-view specification by; displaying a plurality of datums in one or more records of a room in one or more variant-record-view fields in accordance with the identified variant-record-view specification, the one or more variant-record-view fields being fields in the room field set, the absence of a datum in a variant-record-view field that is not in the record field set of a record being denoted by a "no-datum" symbol; responding to a request to replace a "no-datum" symbol by a datum by; rejecting the request.
-
-
155. The method of claim 130 wherein the meta-data and user-data organizing step includes defining one or more doorway networks, a doorway network being a specified display format for viewing a plurality of doorways interconnected by one or more context paths, a doorway being a specified display format for viewing a plurality of partial records from a table, the specifications for at least one doorway network and the doorways which make up each doorway network being included in the meta-data, the doorways connected by a context path being called parent and child doorways, a context path between a parent doorway and a child doorway being indicative of a downward path between an ancestral table associated with the parent doorway and a descendent table associated with the child doorway, one of the doorways in the doorway network being designated as the focused doorway, the focused doorway being visually distinguishable from the other doorways, the focused doorway being identified in the meta-data, one of the partial records in the table of the focused doorway being designated as the marked partial record, each partial record in the tables of the other doorways in the doorway network which is either an ancestral or descendent partial record of the marked partial record in the table of the focused doorway via one or more context paths being designated as a marked partial record, the displayed datums in a marked partial record being visually distinguishable from the datums in other partial records, the marked partial records being identified in the meta-data, the method further comprising the steps:
-
responding to the designation by a user of a different focused doorway by; changing the meta-data identification of the focused doorway; changing the meta-data identification of the marked partial records in other tables to the appropriate ancestral and descendent partial records of the marked partial record in the newly-designated focused doorway; responding to the designation by a user of a different marked partial record in the focused doorway by; changing the meta-data identification of the marked partial record in the focused doorway and the meta-data identification of the marked partial records in other tables to the appropriate ancestral and descendent partial records of the newly-designated marked partial record in the focused doorway.
-
-
156. The method of claim 130 wherein the meta-data and user-data organizing step includes the placing of a plurality of tables into a house, the specification for the house being included in the meta-data, one table in the house called the main table being the primary repository of user-data, one or more tables in the house called link tables being the repositories of topological graph linkages, a topological graph being comprised of nodes which are partial records in the main table interconnected by links which are partial records in a link table, a first cable and a second cable connecting the main table to a link table, the link table being a child table of both cables, a partial record in the link table representing a link between the pair of partial records in the main table to which it is wired by the first and second cables, one or more tables in the house called grouping tables being the repositories of summary data which summarize the data in other tables, a grouping table being a parent table connected by a cable to another table in the house called a base table, a partial record in the grouping table being a summary of a plurality of partial records in the base table, the method further comprising the step:
causing partial records in a grouping table to be added, deleted, or changed whenever changes occur in the partial records of the base table to which the grouping table is wired.
-
157. Apparatus for practicing the method of claim 113.
-
158. Apparatus for practicing the method of claim 116.
-
159. Apparatus for practicing the method of claim 121.
-
160. Apparatus for practicing the method of claim 130.
-
114. The method of claim 113 wherein a static data organization rule requires that one of the two tables connected by a cable functions as a parent table and the other functions as a child table with respect to the cable, the direction of a cable being from the parent table to the child table, the cable being referred to as the incoming cable at the child table, a static data organization rule requiring that a compartment in a child table be connected to one compartment in the parent table, the connection of each compartment in a child table to a compartment in the parent table being included in the user data, the static data organization rules permitting a compartment in a parent table to be connected to zero or more compartments in a child table.
-
Specification
- Resources
-
Current AssigneeMark L. Emerson
-
Original AssigneeMark L. Emerson
-
InventorsEmerson, Mark L.
-
Primary Examiner(s)Black, Thomas G.
-
Assistant Examiner(s)Von Buhr, Maria N.
-
Application NumberUS08/519,347Time in Patent Office1,047 DaysField of Search395/611, 395/612, 395/613, 395/614, 707/100-104, 707/201US Class Current1/1CPC Class CodesG06F 16/21 Design, administration or m...Y10S 707/99952 Coherency, e.g. same view t...