Relationship modeling
AssigneeMicrosoft Corporation
InventorsBenjamin Albahari, Michael E. Deem, Henricus Johannes Maria Meijer
Life of this patent
Estimating the term…
Abstract
The subject disclosure pertains to relationships between items. Relationships between items can be defined external to the items themselves thereby providing a modular, flexible and extensible system. For instance, relationships between items can be defined in a class that includes methods for returning particular elements or values in accordance with a specified relationship. Moreover, a compiler or like system can be extended to accept relationship expressions in a simple property format and direct such calls to specific methods.
Claims18
A computer-implemented relationship system comprising the following computer-executable components:
- a processor;
- system memory;
- an item receiver component that obtains two or more programmatic items, wherein the programmatic items are of two different formats, wherein at least one of the programmatic items is of a newer format that includes data not permitted by the data items of a different, older format;
- a relationship generation component that receives items from the receiver component and generates a construct external to the items that defines one or more relationships between the items, wherein the relationships are represented by a static class that provides one or more static methods that allow for navigation between items using the relationship represented by the static class and wherein the relationship generation component generates the relationships between the items without modifying the items, the relationships comprising at least two of the following associations:
- a reference association which comprises a primary-key or foreign-key relationship, a common value association in which a common value is shared across two or more of the items, a condition association in which the relationship is expressed by query criteria and an entity association which comprises n-end points around at least one of the items such that the item acts as a hub to one or more other items via one or more other associations, wherein the relationship generated between the newer format item and the older format item allows data previously not permitted to be stored with the older format data item to be stored by the older format data item;
- a navigation component that navigates the items using the relationship represented by the static class from a collection of class instances, wherein the relationships are accessed using a simplified expression and a mapping stored in metadata, wherein the mapping links to a corresponding verbose expression;
- and
- an influence component to generate item specific names for relationships, the influence component includes an artificial intelligence component to infer relationship names based on names of related elements, and aids the relationship generation component by receiving and providing a naming scheme driven by external metadata information.
A computer-readable storage medium having stored thereon a data structure comprising:
- a first data type;
- a second data type, wherein the data types are of two different formats, wherein at least one of the data types is of a newer format that includes data not permitted by the data types of a different, older format;
- a class that defines relationships between the first data type and the second data type independent of the types using an external construct external to the first and second data types, wherein the relationships are represented by a static class that provides one or more static methods that allow for navigation between data types using the relationship represented by the static class and wherein the relationships are defined without modifying the first and second data types, the relationships comprising at least two of the following associations:
- a reference association which comprises a primary-key or foreign-key relationship, a common value association in which a common value is shared across the first and second data types, a condition association in which the relationship is expressed by query criteria and an entity association which comprises n-end points around at least one of the data types such that the data type acts as a hub to one or more other data types via one or more other associations, wherein the relationship generated between the newer format data type and the older format data type allows data previously not permitted to be stored with the older format data type to be stored by the older format data type;
- a navigation component that navigates the data types using the relationship represented by the static class from a collection of class instances, wherein the relationships are accessed using a simplified expression and a mapping stored in metadata, wherein the mapping links to a corresponding verbose expression;
- and
- an influence component that generates item specific names for relationships, the influence component includes an artificial intelligence component to infer relationship names based on names of related elements.
At a computer system including a processor and system memory, a computer-implemented method that facilitates data interaction comprising the following computer executable acts:
- receiving a relationship expression between two or more programmatic items, wherein the programmatic items are of two different formats, wherein at least one of the programmatic items is of a newer format that includes data not permitted by the data items of a different, older format, the relationship being represented in a corresponding programming language with a static class, wherein the static class provides one or more static methods that allow for navigation between items using the relationship represented by the static class;
- locating a method external to the items associated with the expression;
- executing the method using the processor to compute the relationship between the items using an external construct external to the items such that the relationship between the items is defined without modifying the items, the relationship comprising at least two of the following associations:
- a reference association which comprises a primary-key or foreign-key relationship, a common value association in which a common value is shared across two or more of the items, a condition association in which the relationship is expressed by query criteria and an entity association which comprises n-end points around at least one of the items such that the item acts as a hub to one or more other items via one or more other associations, wherein the relationship generated between the newer format item and the older format item allows data previously not permitted to be stored with the older format data item to be stored by the older format data item;
- navigating the items using the relationship represented by the static class from a collection of class instances, wherein the relationship is accessed using a simplified expression and a mapping stored in metadata, wherein the mapping links to a corresponding verbose expression;
- generating item specific names for the relationship, wherein an artificial intelligence component infers relationship names based on names of related elements;
- and
- receiving and providing a naming scheme driven by external metadata information.
Dependencies are inferred from the claim text.