Claims
- 1. In a distributed computing environment, a method comprising:
receiving data from a data store, the data corresponding to a plurality of objects; and responsive to receiving the data, dynamically generating multiple hierarchies of inter-object relationships based on values of attributes of the objects, the multiple hierarchies of inter-object relationships being a data polyarchy.
- 2. A method as recited in claim 1, wherein the data store comprises a directory or a database.
- 3. A method as recited in claim 1, wherein the data polyarchy comprises intersecting hierarchies of inter-object relationships.
- 4. A method as recited in claim 1, wherein the data polyarchy comprises an elastic inter-object relationship.
- 5. A method as recited in claim 1, wherein dynamically generating multiple hierarchies of inter-object relationships further comprises:
identifying a dimensional relationship of one or more dimensional relationships between a first and second object of the objects; and inserting the first object into the second object such that the first object is represented in the second object with respect to the dimensional relationship.
- 6. A method as recited in claim 1, wherein first and second objects of the objects are respectively represented in the data polyarchy as separate entities, and wherein dynamically generating multiple hierarchies of inter-object relationships further comprises:
identifying a dimensional relationship of one or more dimensional relationships between the first object and the second object; and inserting a link to the first object in the second object with respect to the dimensional relationship.
- 7. A method as recited in claim 6, wherein the link is a jump gate.
- 8. A method as recited in claim 1, wherein the multiple hierarchies of inter-object relationships are represented independent of object naming and independent of a predetermined hierarchical data structure.
- 9. A method as recited in claim 1, wherein the inter-object relationships represent mono-directional object relationships and bi-directional object relationships.
- 10. A method as recited in claim 1, wherein is the data polyarchy comprises a membership hierarchy that provides for de-referenced dimensional navigation of a many-to-many object relationship.
- 11. A method as recited in claim 1, wherein generating the data polyarchy further comprises:
relating a first and a second object of the objects to a third object of the objects to facilitate de-referenced dimensional navigation of a many-to-many object relationship between the first, second, and third objects.
- 12. A method as recited in claim 1, further comprising naming an inter-object relationship in the data polyarchy with a natural language.
- 13. A method as recited in claim 1, wherein generating the data polyarchy further comprises establishing, for individual ones of the objects, a plurality of predicates to indicate how to access the individual ones of the objects.
- 14. A method as recited in claim 1, wherein generating the data polyarchy further comprises establishing for individual ones of the objects a plurality of domain properties to index the individual ones of the objects.
- 15. A method as recited in claim 14, wherein the domain properties comprise a data type, a data precision indication, a scale indication, and a nullability indication.
- 16. A method as recited in claim 1, wherein generating the data polyarchy further comprises determining the relative distribution of attributes of the objects to establish a strategy to present or search for objects that comprise the attributes.
- 17. A method as recited in claim 1, wherein generating the data polyarchy further comprises:
determining the relative distribution of attributes of the objects to establish a strategy to present or search for objects that comprise the attributes, and wherein the strategy comprises one or more of the following operations: a first operation to find a default search object of the objects; a second operation to locate a particular object of the objects; a third operation to obtain a default hierarchy of data relationships that correspond to a particular object of the objects; a fourth operation to obtain a particular hierarchy of data relationships that correspond to a particular object of the objects; a fifth operation to identify at least one subset of a plurality of hierarchies of data relationships that correspond to a particular object of the objects; and a sixth operation to obtain multiple hierarchies of data relationships that correspond to a particular object of the objects.
- 18. A method as recited in claim 17, wherein the strategy comprises a recursive access strategy or a linear scan access strategy.
- 19. A method as recited in claim 17, wherein the domain properties comprise a logical domain property comprising a distinguishing domain, a locating domain, or a classifying domain.
- 20. A method as recited in claim 1, wherein each object further comprises one or more respective attributes, and wherein generating the data polyarchy further comprises:
identifying a plurality of distinguishing attributes, each distinguishing attribute representing a respective object of the objects that is a root of a hierarchy, each distinguishing attribute being from a substantially unique distribution of similar attributes across the objects; identifying one or more locating attributes for narrowing a search for an object of the objects; each locating attribute being from a relatively large distribution of similar attributes across the objects; and identifying one or more classifying attributes for filtering out objects from a search for an object, each classifying attribute being from a relatively small distribution of similar attributes across the objects.
- 21. A computer for representing directory-based object inter-object relationships, the computer comprising:
a processor; and a memory coupled to the processor, the memory comprising computer-executable instructions and data, the processor for fetching and executing the computer-executable instructions, the computer-executable instructions comprising instructions for:
receiving data from a data store, the data corresponding to a plurality of objects; and responsive to receiving the data, dynamically generating multiple hierarchies of inter-object relationships based on values of attributes of the objects, the multiple hierarchies of inter-object relationships being a data polyarchy.
- 22. A computer as recited in claim 21, wherein the data store comprises a directory or a database.
- 23. A computer as recited in claim 21, wherein the data polyarchy comprises intersecting hierarchies of inter-object relationships.
- 24. A computer as recited in claim 21, wherein the data polyarchy comprises an elastic inter-object relationship.
- 25. A computer as recited in claim 21, wherein the computer-executable instructions for dynamically generating multiple hierarchies of inter-object relationships further comprise instructions for:
identifying a dimensional relationship of one or more dimensional relationships between a first and second object of the objects; and inserting the first object into the second object such that the first object is represented in the second object with respect to the dimensional relationship.
- 26. A computer as recited in claim 21, wherein first and second objects of the objects are respectively represented in the data polyarchy as separate entities, and wherein the computer-executable instructions for dynamically generating multiple hierarchies of inter-object relationships further comprise instructions for:
identifying a dimensional relationship of one or more dimensional relationships between the first object and the second object; and inserting a link to the first object in the second object with respect to the dimensional relationship.
- 27. A computer as recited in claim 26, wherein the link is a jump gate.
- 28. A computer as recited in claim 21, wherein the multiple hierarchies of inter-object relationships are represented independent of object naming and independent of a predetermined hierarchical data structure.
- 29. A computer as recited in claim 21, wherein the inter-object relationships represent mono-directional object relationships and bi-directional object relationships.
- 30. A computer as recited in claim 21, wherein is the data polyarchy comprises a membership hierarchy that provides for de-referenced dimensional navigation of a many-to-many object relationship.
- 31. A computer as recited in claim 21, wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for:
relating a first and a second object of the objects to a third object of the objects to facilitate de-referenced dimensional navigation of a many-to-many object relationship between the first, second, and third objects.
- 32. A computer as recited in claim 21, wherein the computer-executable instructions for generating the data polyarchy further comprises instructions for establishing, for individual ones of the objects, a plurality of predicates to indicate how to access the individual ones of the objects.
- 33. A computer as recited in claim 21, wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for establishing for individual ones of the objects a plurality of domain properties identify to index the individual ones of the objects.
- 34. A computer as recited in claim 33, wherein the domain properties comprise a data type, a data precision indication, a scale indication, and a nullability indication.
- 35. A computer as recited in claim 21, wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for determining the relative distribution of attributes of the objects to establish a strategy to present or search for objects that comprise the attributes.
- 36. A computer as recited in claim 21, wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for:
determining the relative distribution of attributes of the objects to establish a strategy to present or search for objects that comprise the attributes, and wherein the strategy comprises one or more of the following operations:
a first operation to find a default search object of the objects; a second operation to locate a particular object of the objects; a third operation to obtain a default hierarchy of data relationships that correspond to a particular object of the objects; a fourth operation to obtain a particular hierarchy of data relationships that correspond to a particular object of the objects; a fifth operation to identify at least one subset of a plurality of hierarchies of data relationships that correspond to a particular object of the objects; and a sixth operation to obtain multiple hierarchies of data relationships that correspond to a particular object of the objects.
- 37. A computer as recited in claim 36, wherein the strategy comprises a recursive access strategy or a linear scan access strategy.
- 38. A computer as recited in claim 36, wherein the domain properties comprise a logical domain property comprising a distinguishing domain, a locating domain, or a classifying domain.
- 39. A computer as recited in claim 21, wherein each object further comprises one or more respective attributes, and wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for:
identifying a plurality of distinguishing attributes, each distinguishing attribute representing a respective object of the objects that is a root of a hierarchy, each distinguishing attribute being from a substantially unique distribution of similar attributes across the objects; identifying one or more locating attributes for narrowing a search for an object of the objects; each locating attribute being from a relatively large distribution of similar attributes across the objects; and identifying one or more classifying attributes for filtering out objects from a search for an object, each classifying attribute being from a relatively small distribution of similar attributes across the objects.
- 40. A data structure comprising:
a plurality of virtual object data fields, each virtual object data field corresponding to a respective object of a plurality of objects in a data store, the virtual object data fields indicating multiple hierarchies of inter-object relationships based on attributes of the objects.
- 41. A data structure as recited in claim 40, wherein the data store is a directory or a database.
- 42. A data structure as recited in claim 40, wherein each virtual object data field further comprises:
a first globally unique identifier (GUID) data field to uniquely identify a corresponding object in the data store.
- 43. A data structure as recited in claim 40, wherein a virtual object data field corresponds to a first object of the objects, and wherein the virtual object data field further comprises an entity reference data field to uniquely identify a second object of the objects as a sub-element of the first object, the entity reference data field uniquely identifying the second object in the data store.
- 44. A data structure as recited in claim 43, wherein the entity reference is a GUID.
- 45. A data structure as recited in claim 40, wherein each virtual data object data field further comprises one or more predicate data fields, each predicate data field indicating a respective operation to present a particular object with respect to one or more hierarchies of inter-object relationships.
- 46. A data structure as recited in claim 40, wherein each virtual data object data field further comprises:
a domain property data field to index a corresponding object of the objects with respect to one or more hierarchies of inter-object relationships.
- 47. A data structure as recited in claim 46, wherein the domain property data field further comprises:
a physical domain comprising a data type, a data precision indication, a scale indication, or a nullability indication; and a logical domain comprising a unique domain, a locating domain, or a classifying domain.
- 48. A computer-readable medium having stored thereon a data structure as recited in claim 40.
- 49. A computer-readable medium comprising computer-executable instructions for:
receiving data from a data store, the data corresponding to a plurality of objects; and responsive to receiving the data, dynamically generating multiple hierarchies of inter-object relationships based on values of attributes of the objects, the multiple hierarchies of inter-object relationships being a data polyarchy.
- 50. A computer-readable medium as recited in claim 49, wherein the data store comprises a directory or a database.
- 51. A computer-readable medium as recited in claim 49, wherein the data polyarchy comprises intersecting hierarchies of inter-object relationships.
- 52. A computer-readable medium as recited in claim 49, wherein the data polyarchy comprises an elastic inter-object relationship.
- 53. A computer-readable medium as recited in claim 49, wherein the data polyarchy comprises a complex object that is related to one or more sub-objects in the data polyarchy, and wherein the computer-executable instructions for determining inter-object relationships further comprise instructions for:
representing the complex object as an independent surface entity; and referencing the one or more sub-objects in the independent surface entity as separate entities, the one or more sub-objects being referenced independent of object naming and independent of a hierarchical data relationship between the surface entity and the one or more sub-objects.
- 54. A computer-readable medium as recited in claim 49, wherein the data polyarchy comprises a first object that is related to one or more sub-objects in the data polyarchy, and wherein the computer-executable instructions for determining the inter-object relationships further comprise instructions for:
representing the first object as a surface entity; representing each of the one or more sub-objects as respective separate entities that are independent of the surface entity; and referencing the surface object in each of the one or more sub-objects independent of any object naming or hierarchical relationship.
- 55. A computer-readable medium as recited in claim 49, wherein the multiple hierarchies of inter-object relationships are represented independent of object naming and independent of a predetermined hierarchical data structure.
- 56. A computer-readable medium as recited in claim 49, wherein the inter-object relationships represent mono-directional object relationships and bi-directional object relationships.
- 57. A computer-readable medium as recited in claim 49, wherein is the data polyarchy comprises a membership hierarchy that provides for de-referenced dimensional navigation of a many-to-many object relationship.
- 58. A computer-readable medium as recited in claim 49, wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for:
relating a first and a second object of the objects to a third object of the objects to facilitate de-referenced dimensional navigation of a many-to-many object relationship between the first, second, and third objects.
- 59. A computer-readable medium as recited in claim 49, wherein the computer-executable instructions for generating the data polyarchy further comprises instructions for establishing, for individual ones of the objects, a plurality of predicates to indicate how to access the individual ones of the objects.
- 60. A computer-readable medium as recited in claim 49, wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for determining the relative distribution of attributes of the objects to establish a strategy to present or search for objects that comprise the attributes.
- 61. A computer-readable medium as recited in claim 49, wherein each object further comprises one or more respective attributes, and wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for:
identifying a plurality of distinguishing attributes, each distinguishing attribute representing a respective object of the objects that is a root of a hierarchy, each distinguishing attribute being from a substantially unique distribution of similar attributes across the objects; identifying one or more locating attributes for narrowing a search for an object of the objects; each locating attribute being from a relatively large distribution of similar attributes across the objects; and identifying one or more classifying attributes for filtering out objects from a search for an object, each classifying attribute being from a relatively small distribution of similar attributes across the objects.
- 62. A computer-readable medium as recited in claim 49, wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for establishing for individual ones of the objects a plurality of domain properties identify to index the individual ones of the objects.
- 63. A computer-readable medium as recited in claim 62, wherein the domain properties comprise a data type, a data precision indication, a scale indication, and a nullability indication.
- 64. A computer-readable medium as recited in claim 49, wherein the computer-executable instructions for generating the data polyarchy further comprise instructions for:
determining the relative distribution of attributes of the objects to establish a strategy to present or search for objects that comprise the attributes, and wherein the strategy comprises one or more of the following operations: a first operation to find a default search object of the objects; a second operation to locate a particular object of the objects; a third operation to obtain a default hierarchy of data relationships that correspond to a particular object of the objects; a fourth operation to obtain a particular hierarchy of data relationships that correspond to a particular object of the objects; a fifth operation to identify at least one subset of a plurality of hierarchies of data relationships that correspond to a particular object of the objects; and a sixth operation to obtain multiple hierarchies of data relationships that correspond to a particular object of the objects.
- 65. A computer-readable medium as recited in claim 64, wherein the strategy comprises a recursive access strategy or a linear scan access strategy.
- 66. A computer-readable medium as recited in claim 64, wherein the domain properties comprise a logical domain property comprising a distinguishing domain, a locating domain, or a classifying domain.
- 67. A computer for representing directory-based object inter-object relationships, the computer comprising processing means for:
receiving data from a data store, the data corresponding to a plurality of objects; and responsive to receiving the data, dynamically generating multiple hierarchies of inter-object relationships based on values of attributes of the objects, the multiple hierarchies of inter-object relationships being a data polyarchy.
- 68. A computer as recited in claim 67, wherein the data polyarchy comprises intersecting hierarchies of inter-object relationships.
- 69. A computer as recited in claim 67, wherein the data polyarchy comprises an elastic inter-object relationship.
- 70. A computer as recited in claim 67, wherein the means for dynamically generating multiple hierarchies of inter-object relationships further comprise means for:
identifying a dimensional relationship of one or more dimensional relationships between a first and second object of the objects; and inserting the first object into the second object such that the first object is represented in the second object with respect to the dimensional relationship.
- 71. A computer as recited in claim 67, wherein first and second objects of the objects are respectively represented in the data polyarchy as separate entities, and wherein the means for dynamically generating multiple hierarchies of inter-object relationships further comprise means for:
identifying a dimensional relationship of one or more dimensional relationships between the first object and the second object; and inserting a link to the first object in the second object with respect to the dimensional relationship.
- 72. A computer as recited in claim 68, wherein the link is a jump gate.
- 73. A computer as recited in claim 67, wherein the multiple hierarchies of inter-object relationships are represented independent of object naming and independent of a predetermined hierarchical data structure.
- 74. A computer as recited in claim 67, wherein is the data polyarchy comprises a membership hierarchy that provides for de-referenced dimensional navigation of a many-to-many object relationship.
- 75. A computer as recited in claim 67, wherein the means for generating the data polyarchy further comprise means for:
relating a first and a second object of the objects to a third object of the objects to facilitate de-referenced dimensional navigation of a many-to-many object relationship between the first, second, and third objects.
- 76. A computer as recited in claim 67, wherein the means for generating the data polyarchy further comprises means for establishing, for individual ones of the objects, a plurality of predicates to indicate how to access the individual ones of the objects.
- 77. A computer as recited in claim 67, wherein the means for generating the data polyarchy further comprise means for establishing for individual ones of the objects a plurality of domain properties identify to index the individual ones of the objects.
- 78. A computer as recited in claim 77, wherein the domain properties comprise a data type, a data precision indication, a scale indication, and a nullability indication.
- 79. A computer as recited in claim 67, wherein the means for generating the data polyarchy further comprise means for determining the relative distribution of attributes of the objects to establish a strategy to present or search for objects that comprise the attributes.
- 80. A computer as recited in claim 67, wherein the means for generating the data polyarchy further comprise means for:
determining the relative distribution of values assumed by attributes of the objects to establish a strategy to present or search for objects that comprise the attributes, and wherein the strategy comprises one or more of the following operations: a first operation to find a default search object of the objects; a second operation to locate a particular object of the objects; a third operation to obtain a default hierarchy of data relationships that correspond to a particular object of the objects; a fourth operation to obtain a particular hierarchy of data relationships that correspond to a particular object of the objects; a fifth operation to identify at least one subset of a plurality of hierarchies of data relationships that correspond to a particular object of the objects; and a sixth operation to obtain multiple hierarchies of data relationships that correspond to a particular object of the objects.
- 81. A computer as recited in claim 80, wherein the strategy comprises a recursive access strategy or a linear scan access strategy.
- 82. A computer as recited in claim 80, wherein the domain properties comprise a logical domain property comprising a distinguishing domain, a locating domain, or a classifying domain.
- 83. A computer as recited in claim 67, wherein each object further comprises one or more respective attributes, and wherein the means for generating the data polyarchy further comprise means for:
identifying a plurality of distinguishing attributes, each distinguishing attribute representing a respective object of the objects that is a root of a hierarchy, each distinguishing attribute being from a substantially unique distribution of similar attributes across the objects; identifying one or more locating attributes for narrowing a search for an object of the objects; each locating attribute being from a relatively large distribution of similar attributes across the objects; and identifying one or more classifying attributes for filtering out objects from a search for an object, each classifying attribute being from a relatively small distribution of similar attributes across the objects.
RELATED APPLICATIONS
[0001] This application claims benefit of U.S. Provisional Application serial No. 60/250,344 filed on Nov. 30, 2000, which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60250344 |
Nov 2000 |
US |