Representation of time-sensitive and space-sensitive profile information

A method and associated systems for a multidimensional information repository for managing dynamic time-sensitive and space-sensitive user profiles. A profile-management system receives an incoming event that identifies a user profile and is associated with a location, a time period, and a subject. The system searches the repository for records that identify the profile, location, time period, and subject and creates any such records that do not already exist. The system then creates time-sensitive and space-sensitive linkages that link the user profile record to the location, time-period, and subject records. The system dynamically updates these linkages in response to changes to the user profile and uses the linkages to assign context to queries submitted to a main database. In another embodiment, the system recommends additional linkages based on patterns identified in the newly created linkages.

TECHNICAL FIELD

The present invention relates to creating and maintaining user profiles.

BACKGROUND

A business-automation system may store data related to a customer in a user profile. Data in such a profile may be organized as a simple flat table, as a hierarchical data structure, or distributed among multiple, linked, data structures that may themselves be distributed among multiple systems. In some cases, a user profile may span one or more complex objects, at least one of which may comprise both data and logic.

Information represented by a user profile may be time-sensitive or space-sensitive. A profile might, for example, identify a seasonal client's account that is more active during certain times of the year. Marketing to such an account might thus be more efficient and effective when taking into account this time-sensitive characteristic of the client.

Similarly, some user profiles may be associated with specific geographical or geospatial locations. A social-network user who resides in a coastal city, for example, would be a better candidate for a line of surfer's accessories than she would have been when previously living in a mountainous, landlocked region.

Present solutions do not provide a standard framework that allows a business to model, instantiate, store, manage, and retrieve such user profiles as functions of time- and space-sensitive parameters. Such limitations are particularly troublesome in modern multi-tenant virtual environments, distributed and enterprise networks, cellular networks, and cloud-computing platforms. Such environments serve enormous numbers of users that may be located anywhere in the world and that may each be associated with time-sensitive or space-sensitive characteristics.

Existing solutions excel at storing, analyzing, and retrieving huge volumes of user data in a single dimension, as a single-parameter function of a particular type of subject matter, such as an interest in a particular product line. Some methods may even aggregate data from multiple sources in order to present multiple views of a user.

But even these approaches are generally constrained by resource limitations that prevent them from accounting for ad hoc effects of dynamic time-sensitive or location-sensitive factors. Within such a relatively static framework, a profile may, for example, associate a user with a particular subject, but would incur an impractical degree of overhead if it attempted to derive insight from such an association as a function of ad hoc or evolving time- and space-sensitive context. Traditional methods thus cannot efficiently provide such multi-dimensional solutions that provide accurate results with a high level of confidence.

BRIEF SUMMARY

A first embodiment of the present invention provides a profile-management system comprising a computer processor, a memory coupled to the processor, a computer-readable hardware storage device coupled to the processor, and a multidimensional information repository that comprises a profile set of user-profile records that each identifies a user profile of a plurality of user profiles, a geospatial-map set of location records that each identifies a location of a plurality of locations, a time-graph set of time-period records that each identifies a time period of a plurality of time periods, and a subject-dictionary set of subject-matter records that each identifies a subject of a plurality of subjects, wherein the storage device stores program code configured to be run by said processor via the memory to implement a method for managing dynamic time-sensitive and space-sensitive user characteristics, the method comprising:

the system receiving an inbound event that is associated with a first user profile, a first location, a first time period, and a first subject;

the system searching the profile set for a user-profile record associated with the first user profile and adding such a record to the profile set if none already exists;

the system searching the geospatial map for a location record associated with the first location and adding such a record to the geospatial map if none already exists;

the system searching the time graph for a time-period record associated with the first time period and adding such a record to the time graph if none already exists;

the system searching the subject dictionary for a subject-matter record associated with the first subject and adding such a record to the subject dictionary if none already exists; and

the system creating a set of space-sensitive and time-sensitive linkages, wherein the linkages link the record associated with the first user profile to the record associated with the first location, the record associated with the first time period, and the record associated with the first subject.

A second embodiment of the present invention provides a method for maintaining a multidimensional information repository for managing dynamic time-sensitive and space-sensitive user characteristics, wherein the multidimensional information repository comprises a profile set of user-profile records that each identifies a user profile of a plurality of user profiles, a geospatial-map set of location records that each identifies a location of a plurality of locations, a time-graph set of time-period records that each identifies a time period of a plurality of time periods, and a subject-dictionary set of subject-matter records that each identifies a subject of a plurality of subjects, the method comprising:

a profile-management system receiving an inbound event that is associated with a first user profile, a first location, a first time period, and a first subject;

the system searching the profile set for a user-profile record associated with the first user profile and adding such a record to the profile set if none already exists;

the system searching the geospatial map for a location record associated with the first location and adding such a record to the geospatial map if none already exists;

the system searching the time graph for a time-period record associated with the first time period and adding such a record to the time graph if none already exists;

the system searching the subject dictionary for a subject-matter record associated with the first subject and adding such a record to the subject dictionary if none already exists; and

the system creating a set of space-sensitive and time-sensitive linkages, wherein the linkages link the record associated with the first user profile to the record associated with the first location, the record associated with the first time period, and the record associated with the first subject.

A third embodiment of the present invention provides a computer program product, comprising a computer-readable hardware storage device of a profile-management system, wherein the storage device stores a computer-readable program code configured to be executed by a processor of the profile-management system to implement a

method for maintaining a multidimensional information repository for managing dynamic time-sensitive and space-sensitive user characteristics, wherein the multidimensional information repository comprises a profile set of user-profile records that each identifies a user profile of a plurality of user profiles, a geospatial-map set of location records that each identifies a location of a plurality of locations, a time-graph set of time-period records that each identifies a time period of a plurality of time periods, and a subject-dictionary set of subject-matter records that each identifies a subject of a plurality of subjects, the method comprising:

the profile-management system receiving an inbound event that is associated with a first user profile, a first location, a first time period, and a first subject;

the system searching the profile set for a user-profile record associated with the first user profile and adding such a record to the profile set if none already exists;

the system searching the geospatial map for a location record associated with the first location and adding such a record to the geospatial map if none already exists;

the system searching the time graph for a time-period record associated with the first time period and adding such a record to the time graph if none already exists;

the system searching the subject dictionary for a subject-matter record associated with the first subject and adding such a record to the subject dictionary if none already exists; and

the system creating a set of space-sensitive and time-sensitive linkages, wherein the linkages link the record associated with the first user profile to the record associated with the first location, the record associated with the first time period, and the record associated with the first subject.

DETAILED DESCRIPTION

The methods, systems, and apparatus of the present invention provide a technical advantage over the approaches described above by defining a standard way to represent time- and space-sensitive linkages and data elements in a user profile. This is accomplished by means of an object-oriented modelling framework that represents space- and time-sensitive parameters as objects and uses inter-object linkages to represent associations between a user, related subjects, and space- and time-sensitive contextual elements.

A model represented by such a framework may map a geospatial location (such as a city, physical address, zip code, or coordinates of latitude and longitude) and a time range or duration (such as might be identified by a start time and an end time) onto a user profile. Embodiments may also offer an ability to create linkages between a profile and one or more subject areas, such that the linkages provide time- and space-related context to a relationship between a user and a subject of interest. The result in a multidimensional object graph that, in some embodiments, may be represented as a sparse, distributed multi-dimensional sorted map. Other graphical or mathematical methods of representation, as are known to those skilled in the art, may also fall within the scope of embodiments of the present invention.

Embodiments may further associate each object instance in such a graph with multiple dimensional elements. An instance of a profile object that represents a user account may, for example, be associated by linkage to an instance of a subject-area object, where that linkage identifies a context of a particular geospatial location and time range.

Embodiments of the present invention thus solve problems described above and offer the following technical advantages over existing solutions:An ability to represent characteristics of a real-world user profile as a function of time-sensitive and space-sensitive parameters;A dynamic run-time framework that organizes data elements and identifies and analyzes actual usage of that data across multiple dimensions;An ability to accommodate multiple transformations, such as aggregation and data-filtering, as function of multi-dimension associations with time and location;An ability to organize, query, and update data as functions of a combination of dynamic and static dimensions (such as combinations of conventional query parameters with parameters that are sensitive to time or location) in order to generate dynamic, reusable result sets;A flexible platform that allows IaaS/PaaS cloud-service providers to deliver services that provide more personalized, user-centric, and accurate outcomes;Sufficient scalability to handle very large real-world data sets, such as those generated by social-media applications, global customer bases, and machine-generated events;An ability to dynamically enhance or update stored records by instantiating new, ad hoc time- and space-sensitive objects and linkages whenever needed;An ability to continuously self-learn, by recognizing time- and space-sensitive patterns in user behaviors represented by objects and linkages, and to use self-learned observations to infer further patterns in user records; andAn ability to reallocate time-sensitive or space-sensitive characteristics of a user profile in multiple dimensions, as a function of user behavioral patterns.

FIG. 1Ashows a structure of a profile-management system that includes a computer system, one or more data warehouses that store a dynamic multidimensional information repository for managing dynamic time-sensitive and space-sensitive user characteristics, and computer program code that may be used to implement a method for creating and maintaining the multidimensional information repository in accordance with embodiments of the present invention.FIG. 1Arefers to objects101-119.

InFIG. 1A, computer system101comprises a processor103coupled through one or more I/O Interfaces109to one or more hardware data-storage devices111and117and to one or more I/O devices113and115.

Hardware data-storage devices111may include, but are not limited to, magnetic tape drives, fixed or removable hard disks, optical discs, storage-equipped mobile devices, and solid-state random-access or read-only storage devices. I/O devices may comprise, but are not limited to: input devices113, such as keyboards, scanners, handheld telecommunications devices, touch-sensitive displays, tablets, biometric readers, joysticks, trackballs, or computer mice; and output devices115, which may comprise, but are not limited to printers, plotters, tablets, mobile telephones, displays, or sound-producing devices. Data-storage devices111, input devices113, and output devices115may be located either locally or at remote sites from which they are connected to I/O Interface109through a network interface.

Data warehouses117may comprise any combination of devices similar to those described above as data-storage devices111. These warehouses may be distributed across multiple storage devices, sites, business units, systems, or computing platforms or cloud-computing environments. In embodiments, these data warehouses may each store all or part of an implementation of a multidimensional information repository119in accordance with embodiments of the present invention.

An example of a multidimensional information repository119is shown in greater detail inFIG. 1B.

Processor103may also be connected to one or more memory devices105, which may include, but are not limited to, Dynamic RAM (DRAM), Static RAM (SRAM), Programmable Read-Only Memory (PROM), Field-Programmable Gate Arrays (FPGA), Secure Digital memory cards, SIM cards, or other types of memory devices.

At least one memory device105contains stored computer program code107, which is a computer program that comprises computer-executable instructions. The stored computer program code includes a program that implements a method for a multidimensional information repository for managing dynamic time-sensitive and space-sensitive user characteristics in accordance with embodiments of the present invention, and may implement other embodiments described in this specification, including the methods illustrated inFIGS. 1-3. The data-storage devices111may store the computer program code107. Computer program code107stored in the storage devices111is configured to be executed by processor103via the memory devices105. Processor103executes the stored computer program code107.

In some embodiments, rather than being stored and accessed from a hard drive, optical disc or other writeable, rewriteable, or removable hardware data-storage device111, stored computer program code107may be stored on a static, nonremovable, read-only storage medium such as a Read-Only Memory (ROM) device105, or may be accessed by processor103directly from such a static, nonremovable, read-only medium105. Similarly, in some embodiments, stored computer program code107may be stored as computer-readable firmware105, or may be accessed by processor103directly from such firmware105, rather than from a more dynamic or removable hardware data-storage device111, such as a hard drive or optical disc.

Thus the present invention discloses a process for supporting computer infrastructure, integrating, hosting, maintaining, and deploying computer-readable code into the computer system101, wherein the code in combination with the computer system101is capable of performing a method for a multidimensional information repository for managing dynamic time-sensitive and space-sensitive user characteristics.

Any of the components of the present invention could be created, integrated, hosted, maintained, deployed, managed, serviced, supported, etc. by a service provider who offers to facilitate a method for a multidimensional information repository for managing dynamic time-sensitive and space-sensitive user characteristics. Thus the present invention discloses a process for deploying or integrating computing infrastructure, comprising integrating computer-readable code into the computer system101, wherein the code in combination with the computer system101is capable of performing a method for a multidimensional information repository for managing dynamic time-sensitive and space-sensitive user characteristics.

One or more data storage units111(or one or more additional memory devices not shown inFIG. 1A) may be used as a computer-readable hardware storage device having a computer-readable program embodied therein and/or having other data stored therein, wherein the computer-readable program comprises stored computer program code107. Generally, a computer program product (or, alternatively, an article of manufacture) of computer system101may comprise said computer-readable hardware storage device.

While it is understood that program code107for cross-retail marketing based on analytics of multichannel clickstream data may be deployed by manually loading the program code107directly into client, server, and proxy computers (not shown) by loading the program code107into a computer-readable storage medium (e.g., computer data-storage device111), program code107may also be automatically or semi-automatically deployed into computer system101by sending program code107to a central server (e.g., computer system101) or to a group of central servers. Program code107may then be downloaded into client computers (not shown) that will execute program code107.

Alternatively, program code107may be sent directly to the client computer via e-mail. Program code107may then either be detached to a directory on the client computer or loaded into a directory on the client computer by an e-mail option that selects a program that detaches program code107into the directory.

Another alternative is to send program code107directly to a directory on the client computer hard drive. If proxy servers are configured, the process selects the proxy server code, determines on which computers to place the proxy servers' code, transmits the proxy server code, and then installs the proxy server code on the proxy computer. Program code107is then transmitted to the proxy server and stored on the proxy server.

In one embodiment, program code107for cross-retail marketing based on analytics of multichannel clickstream data is integrated into a client, server and network environment by providing for program code107to coexist with software applications (not shown), operating systems (not shown) and network operating systems software (not shown) and then installing program code107on the clients and servers in the environment where program code107will function.

The first step of the aforementioned integration of code included in program code107is to identify any software on the clients and servers, including the network operating system (not shown), where program code107will be deployed that are required by program code107or that work in conjunction with program code107. This identified software includes the network operating system, where the network operating system comprises software that enhances a basic operating system by adding networking features. Next, the software applications and version numbers are identified and compared to a list of software applications and correct version numbers that have been tested to work with program code107. A software application that is missing or that does not match a correct version number is upgraded to the correct version.

A program instruction that passes parameters from program code107to a software application is checked to ensure that the instruction's parameter list matches a parameter list required by the program code107. Conversely, a parameter passed by the software application to program code107is checked to ensure that the parameter matches a parameter required by program code107. The client and server operating systems, including the network operating systems, are identified and compared to a list of operating systems, version numbers, and network software programs that have been tested to work with program code107. An operating system, version number, or network software program that does not match an entry of the list of tested operating systems and version numbers is upgraded to the listed level on the client computers and upgraded to the listed level on the server computers.

After ensuring that the software, where program code107is to be deployed, is at a correct version level that has been tested to work with program code107, the integration is completed by installing program code107on the clients and servers.

Embodiments of the present invention may be implemented as a method performed by a processor of a computer system, as a computer program product, as a computer system, or as a processor-performed process or service for supporting computer infrastructure.

FIG. 1Bshows an example of the multidimensional information repository119in greater detail.FIG. 1Brefers to objects119-133.

In this example, the information repository comprises four linked areas121-129of data storage. The internal structure shown here may vary considerably, based on considerations that may include, but are not limited to: characteristics of the stored date or of entities represented by the stored data; goals of the system designer or of the owner of the stored data; technical or resource constraints. In some embodiments, for example, the stored data may be further organized into subschema other than the subschema121-129shown here. In other cases, there may be additional or different linkages among the subschema, or the subschema may organize tables or records in a manner different than the hierarchical treelike structures shown here.

The examples ofFIG. 1Bshow the information repository119implemented as a relational database but the repository119and any of its components121-133may be implemented by any mechanism known to those skilled in the art capable of supporting features of the present invention described herein. Such a mechanism might comprise, but is not limited to, combinations of a knowledgebase, other types of databases, a flat-file system, a directed graph, or free-form text from which relationships among text objects may be inferred.

Regardless of the implementation details, a repository119must at least organize data in a way that allows a profile record to be linked to records that identify space, time, and subject context for that record.

InFIG. 1B, Profile sub-schema125represents an example of an organization of profile records. Each record may, for example, represent an account or an individual user. Here, for example, the profile set125contains a set of user records, each of which identifies a distinct account.

Each user record is further associated with other records that each identify a characteristic of the user record. User #1, for example, is associated with a group, a business unit, and an individual person. Here, User #1 is associated with a group of frequent fliers, a Sales Department business unit, and an individual named John Smith. Other profile records, such as those shown for User #2 and User #3

This example should not be construed to limit the organization structure of a profile set125. Additional levels of records might, for example, identify an airline associated with User #1's frequent-flier group or a subdivision of the Sales Department that is associated with User #1.

Sub-schema121shows an example of a Geospatial Map stored in repository119. In this example, each record of the Geospatial Map121is associated with a geographical location, a physical site, a node of a network, or an other entity that may be associated with a virtual or physical position in space.

In the example ofFIG. 1B, two records of Geospatial Map121identify geophysical locations “United States” and “Italy.” A location identified by each of these records may, in this hierarchical example, be associated with, or linked to, other records that identify a second, broader or narrower, geospatial entity. The “United States” record, for example, may be linked to fifty records each identify one state of the United States, such as the “New York” record shown inFIG. 1B.

Similarly, a Time Graph sub-schema127may organize time-related data elements into a data structure. In this example, a top level of records each identifies a month of a year or a season and lower levels of records may narrow or broaden a period of time identified by a top level record.

Top-level record “Fall 2014,” for example, identifies a period of time that comprises “Holiday Season 2014” (identified by a record at the next-lower second level), which in turn identifies a period of time that comprises both “Christmas 2014” and “Hannukah 2014” (each identified by records at a third level). Many other structures and organizations are possible, which may or may not be hierarchical.

A Subject Dictionary sub-schema129similarly organizes types of subject matter that may be associated with one or more profiles. Many types of organization and data structures are possible, depending on implementation details, and in this example, the Subject Dictionary129contains two classes of subjects “Interests” and “Personal.” Here, the “Interests” record may in turn identify many types of personal interests that may be linked to an individual identified by a record of the Profile Set125.

Each profile identified by a record of the Profile Set125may be linked to one or more records of the Geospatial Map121, to one or more records of the Time Graph127, or to one or more records of the Subject Dictionary129. These linkages131establish time-sensitive or space-sensitive context to the Profile record's relationship with a subject identified by a Subject Dictionary129record that is further linked to the Profile record.

Embodiments of the present invention automatically establish, update, and maintain these “SPATAL” space and time sensitive linkages131while dynamically updating the four databases121-129. In some embodiments, SPATAL linkages may be stored and dynamically updated in a distinct storage area133called the SPATAL Repository. In other embodiments, some or all of the SPATAL linkages may reside in an other data repository or may be maintained automatically by a database-management system or other data-management platform that is associated with maintaining repository119.

FIG. 2is a flow chart that illustrates a method of a profile-management system for aggregating and storing time- and space-sensitive profiles in accordance with embodiments of the present invention.FIG. 2identifies steps201-225.

The method ofFIG. 2presumes that the profile-management system accesses and maintains data and logic stored in a multidimensional information repository119, like the one shown inFIG. 1B, and is implemented on a specialized computer/infrastructure/storage platform, similar to the exemplary system101-115ofFIG. 1A.

The profile-management system intercepts a user request to access data stored in a main storage platform (such as a combination of one or more database or one or more other types of information repositories known to those skilled in the art), and in response returns a modified query that accounts for time-sensitive and space-sensitive characteristics of the requested data. This main storage platform is not shown in the figures and may comprise any combination of information-storage mechanisms known to those skilled in the art.

The requested data may be a set of user profile records that are each associated with one or more time- or space-sensitive characteristics that may in turn vary as a function of a relationship between a profile record and a type of subject matter. An example of this retrieval mechanism is described inFIG. 3.

In some embodiments, the main storage platform may be integrated with multidimensional repository119, or both a main storage platform and a multidimensional repository119may be implemented on a common platform.

In step201, the profile-management system receives an inbound event. In some embodiments, this event may be a result of a user's transaction request, query, record-addition, record-deletion, key or linkage modification, or other instruction that requires accessing, adding, modifying, or deleting a profile or other record in Profile Set125.

In some cases, as in the example ofFIG. 2, an inbound event may, instead of expressly requesting a data retrieval, describe characteristics of an event from which may be inferred one or more linkages between one or more profile records, stored in Profile Set125, and one or more classes of subject matter, time periods, and geospatial locations. These linkages may create time-sensitive and space-sensitive context for relationships between linked profile records and certain types of subject matter.

For example, if a hurricane strikes a major city during a particular time period, an inbound event that describes an effect of that storm, may, by means of the method ofFIG. 2, result in the creation or revision of records stored in subsets121-129of information repository119, and of the creation or revision of linkages stored in SPATAL Repository133. A goal of this creation or revision would be to associate certain user profiles with a subject of storm-related insurance claims, when those profiles are accessed within the time- and space-sensitive context of the date and location of the hurricane.

In step203, the profile-management system determines, by means known to those skilled in the art, whether the profile referenced by the inbound event in step201already exists in the multidimensional information repository119. If the record does exist, the method ofFIG. 2continues with step207. If the record does not exist, the method ofFIG. 2performs step205before continuing to step207.

In step205, the profile-management creates and adds to Profile Set205the record referenced by the inbound event in step201. In some embodiments, linkages (or space- and time-sensitive SPATAL linkages) to other records in the repository119may be created and associated with this new record based on other information available to the profile-management system.

In some embodiments, the inbound event may reference more than one user, user profile, or other record associated with the Profile Set205. In such cases, the profile-management system might repeat the remainder of the method ofFIG. 2for each such record.

In step207, the profile-management system identifies a geospatial location associated with the profile record identified by the inbound event. This association may be known to the system as a function of an express or implicit reference embodied in the inbound event, by an existing SPATAL linkage131, which in some embodiments may be stored in a SPATAL repository133, by a linkage known to be associated with a record identified by the profile-management system as existing the Profile Set205in step203or created in step205, or by other means known to those skilled in the art.

In step209, the profile-management system determines whether the geospatial location referenced by the inbound event is already identified in the multidimensional information repository119by searching Geospatial Map121for a record that identifies the referenced geospatial location. If the record does exist, the method ofFIG. 2continues with step213. If no such record exists, the method ofFIG. 2performs step211before continuing to step213.

In step211, the profile-management creates and adds to Profile Set205a record that identifies the time period referenced by the inbound event in step201. In some embodiments, linkages (or space- and time-sensitive SPATAL linkages) to other records in the repository119may be created and associated with this new record based on other information available to the profile-management system.

In some embodiments, the inbound event or the user profile record associated with the inbound event, may reference more than one time period, each of which may in turn be associated with a distinct record in the Geospatial Map121.

In step213, the profile-management system identifies a time period associated with the profile record identified by the inbound event. This association may be known to the system as a function of an express or implicit reference embodied in the inbound event, by an existing SPATAL linkage131, which in some embodiments may be stored in a SPATAL repository133, by a linkage known to be associated with a record identified by the profile-management system as existing the Profile Set205in step203or created in step205, or by other means known to those skilled in the art.

In step215, the profile-management system determines whether the time period referenced by the inbound event is already identified in the multidimensional information repository119by searching Time Graph127for a record that identifies the referenced time period. If the record does exist, the method ofFIG. 2continues with step219. If no such record exists, the method ofFIG. 2performs step217before proceeding to step219.

In one example, a business might perform an SQL query on a relational database in order to retrieve a set of user profiles that identify users to whom will be mailed marketing literature. A traditional database is able to retrieve such user profiles, but cannot interpret inferred or implied time-sensitive and location-sensitive nuances of such a query in order to return more narrowly targeted results.

In this example, the query would be intercepted by an embodiment of the present invention implemented as a function of a special-purpose “multidimensional” information repository, wherein the “multidimensional” aspect of the repository derives from the fact that the repository dynamically links elements based on an inferred or express time and location of an inbound event or query.

Here, the repository may use a time and location at which the query was created and use this information to traverse time-sensitive and location-sensitive linkages that are specific to the combination of query time and location. These linkages may in turn affect the embodiment's identification of a subject matter of the query or of user profiles to be retrieved by the query.

For example, if the query originated in mid-December from a region of the world where a Christmas holiday is generally celebrated on December 25, the embodiment might identify a linkage to a “Christmas gift marketing literature” subject and would return either a subset of user profiles that are linked to this subject, or return a modified query to the main database, where that modified query contains an additional search term that identifies the Christmas season.

On the other hand, if the query originates during the summer months or from a country in which Christmas is not generally celebrated, a different set of linkages might, as a function of the time and location of the query, identify a different subject, such as “summer-vacation marketing literature” or a different set of user profiles that have linkages to summer-oriented subject matter. Many other such variations are possible.

Unlike conventional database solutions, the time- and location-sensitive linkages (or “SPATALs”) that enable this functionality are maintained automatically or dynamically by the embodiment. In other words, a multidimensional repository119may automatically and dynamically revise its own schema (or other type of data organization) in response to identification of external conditions or occurrences.

If any inbound event implies a condition or occurrence that modifies such a linkage (such as a user moving from a region where Christmas is generally observed to a region where it is not generally observed), the linkages131stored in SPATAL repository133are automatically updated by a method similar to that ofFIG. 2.

Furthermore, unlike conventional databases solutions, an implied or inferred time-sensitive or location-sensitive context of a query or other database operation may be automatically incorporated into a requested database operation, even if the query or other operation does not contain any time-sensitive or location-sensitive content. In other words, two instances of an identical query, if processed by an embodiment of this invention, may produce different results if they are received at different times or from different locations—even if a schema and stored data of the multidimensional repository119do not change between receipts of the two queries.

In some embodiments, a map-like or other visual type of graphical user interface may be imposed upon the multidimensional repository119that allows a user to further update or fine-tune data or linkages comprised by the repository119. This feature may provide a technical advantage when an extrinsic event that may affect time- or location-sensitivity of stored data items is not inferred from an automatically received inbound event or condition. This feature may, in some embodiments, also allow users to manually retrieve data (or modify an existing query or other database operation) as a function of user-supplied boundary conditions, time-sensitive or location-sensitive context, or express search criteria.

In some embodiments, linkages or other relationships, or other characteristics of a user profile may also vary as a function of time or location. A user's age, for example, may over time dynamically or automatically alter linkages associated with that user's profile. In one example, if a query attempts to identify users likely to respond to a restaurant-marketing campaign, a teenaged user may initially be more closely linked to fast-food restaurant chains, but that same user may, over the years, become associated with linkages that more closely relate that user's profile to more upscale restaurants.

As shown inFIGS. 2 and 3, embodiments of the present invention may associate a confidence level with the results that the embodiment produces by choosing “next best” linkages when the embodiment cannot find an exact match among existing linkages of the repository119. In such cases, the embodiment might move up a time or location hierarchy of the repository119, starting from a location in the hierarchy where an exact match had been expected. In one example, consider a query that requests profiles of users who regularly order pizza during the winter months in the New York City borough of Brooklyn. If no such location-sensitive linkages are found, the embodiment might zoom out one level in the location hierarchy (or “geospatial map”)125of repository119and return profiles of users who regularly order pizza during the winter months in any borough of New York City. Such a retrieval could then be automatically associated by the embodiment with a lower confidence level than would an exact match for Brooklyn users.

In step217, the profile-management creates and adds to Time Graph127a record that identifies the time period referenced by the inbound event in step201. In some embodiments, linkages (or space- and time-sensitive SPATAL linkages) to other records in the repository119may be created and associated with this new record based on other information available to the profile-management system.

In some embodiments, the inbound event or the user profile record associated with the inbound event, may reference more than one time period, each of which may in turn be associated with a distinct record stored in the Time Graph127.

In step219, the profile-management system identifies a subject matter associated with the profile record identified by the inbound event. This association may be known to the system as a function of an express or implicit reference embodied in the inbound event, by an existing SPATAL linkage131, which in some embodiments may be stored in a SPATAL repository133, by a linkage known to be associated with a record identified by the profile-management system as existing the Profile Set205in step203or created in step205, or by other means known to those skilled in the art.

In step221, the profile-management system determines whether the subject matter referenced by the inbound event is already identified in the multidimensional information repository119by searching Subject Dictionary129for a record that identifies the referenced subject matter. If the record does exist, the method ofFIG. 2continues with step225. If no such record exists, the method ofFIG. 2performs step223before proceeding to step225.

In step223, the profile-management creates and adds to Subject Dictionary129a record that identifies the subject matter referenced by the inbound event in step201. In some embodiments, linkages (or space- and time-sensitive SPATAL linkages) to other records in the repository119may be created and associated with this new record based on other information available to the profile-management system.

In some embodiments, the inbound event or the user profile record associated with the inbound event, may reference more than one subject matter, each of which may in turn be associated with a distinct record stored in the Subject Dictionary129.

The steps of the method ofFIG. 2may in some embodiments be performed in different order. For example, the profile-management system may search the Geospatial Map121for a referenced location record only after first searching the Time Graph127for a referenced time-period record or searching the Subject Dictionary129for a subject-matter record.

During the course of the method ofFIG. 2, the profile-management system may automatically create linkages between profile records found in or added to Profile Set125in step203or205and records found in or added to the Geospatial Map121in step209or211, the Time Graph127in step215or217, or the Subject Dictionary129in step221or223.

FIG. 3is a flow chart that illustrates a method of a profile-management system for retrieving time-sensitive and space-sensitive data from a multidimensional information repository in accordance with embodiments of the present invention.FIG. 3identifies steps301-333.

The method ofFIG. 3presumes that a multidimensional information repository119has been populated and is being maintained by a profile-management system that accesses and updates data and logic stored in the repository by means of a method similar to that ofFIG. 2.

In step301, the profile-management system receives a profile request. This request may be any transaction, query, record-addition, record-deletion, key or linkage modification, or other instruction that requires accessing, adding, modifying, or deleting a profile or other record of the main database.

In step303, the profile-management system determines, by means known to those skilled in the art, whether the user record (or records) requested by the profile request in step301already exists in Profile Set125of multidimensional information repository119.

If the record does exist, the method ofFIG. 3continues with step305. Otherwise, the method ofFIG. 3instead performs step327.

In step305, performed if the requested records do exist, the profile-management system retrieves time-sensitive and space-sensitive linkages (or SPATALs) associated with each requested record. These linkages provide time-sensitive and space-sensitive context to the profile request as a function of subject matter related to the request.

In step327, the profile-management system identifies existing records stored in Profile Set125that are similar to each nonexistent record referenced by the profile request. It then retrieves SPATALs of these similar records.

Some embodiments further assign a confidence level to results produced by the method ofFIG. 3. These confidence levels may provide a measure of how well a retrieved set of records satisfies express or implied conditions or search terms comprised by the profile request. A higher confidence level might, for example, indicate that a greater number of the retrieved records are associated with an exact match of one or more search terms of the profile request.

In step305, for example, the profile-management system's ability to locate and retrieve one or more requested records might result in an increase in a value of a confidence level associated with the retrieved records. But if those records cannot be identified, forcing step327to be performed instead of step305, the retrieval of records that are not exact matches for criteria expressly or implicitly associated with the request would cause the embodiment to decrease the confidence level of the retrieved result.

As will be described below, in such embodiments, a successful identification of a record that is associated with a value that exactly matches a desired value of a parameter of the request may increase a value of a confidence level associated with the retrieved result set. Furthermore, if such an embodiment is forced to retrieve a record that is merely similar to a nonexistent record that would have been an exact match may cause the embodiment to decrease the confidence level of the retrieved result set.

In some embodiments, a retrieved result set may be associated with several distinct confidence levels, each of which identifies a quality, accuracy, reliability, timeliness, or reliability of one characteristic of the result set. Here, a characteristic might be a combination of a time context, a location context, a specific subject or class of subject matter, or an other attribute of one or more records of the retrieved results.

This dynamic computation of confidence levels may provide technical advantages that include: better identifying a need to fine-tune or update elements of the information repository119; allowing users or system administrators to more precisely determine whether the result set is appropriate for specific types of applications; and earmarking records that should be more closely examined or that should be considered for deletion or updating.

This identification of similar records may be performed by any means known to those skilled in the art. For example, if Profile Set125is organized hierarchically, the system may identify a position in the hierarchy that would be occupied by the referenced record, if it had existed, and may identify a record that would be its parent as being “similar.” In some embodiments, the system might further identify any sibling records of that parent record as being “similar” to the referenced record. The exact method of identifying similar records may be a function of implementation-specific details, such as resource or platform constraints, a financial or business goal of the implementation, or a characteristic of the entities described by the Profile Set125.

In step307, the profile-management system searches Geospatial Map121for records that identify one or more geospatial locations identified by the profile request in step301. Each of these records, as described inFIG. 2, may be associated with certain profiles stored in Profile Set125, and each is associated with “SPATAL” time-sensitive and space-sensitive linkages. If, for example, the profile request results in the selection of ten user-profile records and is implicitly associated with New York State, the profile-management system may n step307search for a record of the Geospatial Map121that identifies a location of “New York State” or may determine whether any of those ten records are linked by a SPATAL to a record of the Geospatial Map121that identifies a location of “New York State.”

In step309, the profile-management system determines whether a record of the Geospatial Map121provides an exact match for a geospatial location specified by the profile request in step301. If so, the method ofFIG. 3continues with step311, and if not, the method continues instead with step329.

As in steps303,305, and327above, embodiments of the profile-management system that characterize a quality of a result set by associating one or more retrieved records of the result set with one or more confidence levels, may adjust one or more of these confidence levels as a function of a determination of step309.

In particular, the profile-management system may increase a value of a confidence level if it determines in step309that a record of the Geospatial Map121provides an exact match for a geospatial location specified by the profile request in step301. And the profile-management system may decrease a value of a confidence level if it determines in step309that no record of the Geospatial Map121provides an exact match for the geospatial location specified by the profile request.

In step311, the profile-management system uses SPATALs associated with the Geospatial Map record found in step307to filter the set of profile records requested by the profile request in step301. If, for example, the profile request searches for users whose billing method specifies lire as a primary currency, the profile-management system might, in this step, identify an “Italy” record of the Geospatial Map121and then filter the set of requested references such that the resulting subset contains only profile records that have a linkage to the “Italy” record.

In step329, the profile-management system identifies records of the Geospatial Map121that identify locations similar to the location identified by the profile request. As in step327, which identified profile records similar to profile records identified by the profile request, identification of similar records may be performed by methods known to those skilled in the art. As before, such a known method might comprise selecting location records stored at one level higher in a Geospatial Map hierarchy than the level at which one would have expected to find the nonexistent requested location record.

Regardless of whether location records are selected by means of step311or step329, the profile-management system at the conclusion of the conditional operation of steps309,311will have identified a set of space-sensitive linkages associated with the selected location records. These linkages, as described above, are then used to filter the set of selected user profiles.

Procedures analogous to the method of steps307,309,311, and329are performed first for space-sensitive linkages in steps313,315,317, and331, and again for subject-matter linkages in steps319,321,323, and333.

In step313, for example, the profile-management system searches for a record of the Time Graph127that provides an exact match for a time duration specified by the profile request in step301.

In step315, if the system has successfully located one or more such records, the method ofFIG. 3continues with step317. If not, the method continues instead with step331.

As in steps303and309above, embodiments of the profile-management system that characterize a quality of a result set by associating one or more retrieved records of the result set with one or more confidence levels, may adjust one or more of these confidence levels as a function of a determination of step315.

In particular, the profile-management system may increase a value of a confidence level if it determines in step315that a record of the Time Graph127provides an exact match for a time period specified by the profile request in step301. And the profile-management system may decrease a value of a confidence level if it determines in step315that no record of the Time Graph127provides an exact match for the time period specified by the profile request.

In step317, the profile-management system uses SPATALs associated with the Time Graph record found in step315to filter the set of profile records requested by the profile request in step301. If, for example, the profile request searches for users who made purchases during January 2015, the profile-management system might, in this step, identify a “January 2015” record of the Time Graph127and then filter the set of requested references (already filtered in step311or329to account for space-sensitive context) such that the resulting subset contains only records of the Profile Set125that have a SPATAL linkage to the “January 2015” record of the Time Graph127.

In step331, the profile-management system identifies records of the Time Graph127that identify time periods similar to the time period identified by the profile request. Here, identification of similar time-period records may be performed by methods known to those skilled in the art and analogous to those performed by steps327and329.

Regardless of whether time-period records are selected by means of step317or step331, the profile-management system at the conclusion of the conditional operation of steps311,317, and331will have identified a set of time-sensitive linkages associated with the selected location records. These linkages, as described above, are then used to further filter the set of selected user profiles, such that the resulting subset comprises only profile records associated with specific time-sensitive and space-sensitive characteristics associated with or inferred from the profile request and identified by SPATALs of the multidimensional database119.

Finally, in steps321,323, and333, the profile-management system performs a similar procedure for subject-matter linkages that it stores and maintains in the SPATAL repository133.

In step321, the profile-management system searches for a record of the Subject Dictionary129that exactly matches a subject identified by or inferred from the profile request received in step301. If the system locates one or more such records, the method ofFIG. 3continues with step323, and if not, the method continues instead with step333.

As in steps303,309, and315above, embodiments of the profile-management system that characterize a quality of a result set by associating one or more retrieved records of the result set with one or more confidence levels, may adjust one or more of these confidence levels as a function of a determination of step321.

In particular, the profile-management system may increase a value of a confidence level if it determines in step321that a record of the Subject Dictionary129provides an exact match for a subject matter specified by the profile request in step301. And the profile-management system may decrease a value of a confidence level if it determines in step321that no record of the Subject Dictionary129provides an exact match for the subject matter specified by the profile request.

In step323, the profile-management system uses SPATALs associated with the subject-matter record identified in step321to filter the set of profile records requested by the profile request in step301. If, for example, the profile requests users who frequently dine at French restaurants, the profile-management system might, in this step, identify a “Culinary/French” record of the Subject Dictionary129and then filter the current subset of requested references to retain only records of the Profile Set125that comprise a SPATAL linkage to the “Culinary/French” record of the Subject Dictionary129.

In step333, the profile-management system instead identify records of the Subject Dictionary129that identify subject matter similar to the subject of the profile request. Here, identification of similar subject-matter records may be performed by methods known to those skilled in the art and analogous to those performed by steps327,329, and331.

At the outset of step325, the profile-management system will have identified a set of time-sensitive and space-sensitive linkages in response to the profile request received in step301. In some embodiments, the system will augment the original profile request with these linkages when forwarding the request to the main database system. This procedure will, in effect, automatically narrow the resulting query by adding time-sensitive, space-sensitive, and subject-matter terms to the query.

In other embodiments, the profile-management system may perform a preliminary portion of the final query by using SPATAL linkages stored in the multidimensional repository to filter out a subset of possible query results before the query is received by the main database. In some embodiments, these two operations may be equivalent, but in all cases, the operation of this intermediate profile-management system will reduce the demands on the main database by preprocessing the profile request.

The system will also increase the confidence factor of query results by adding time-sensitive and space-sensitive context to a query, even if the main database is not organized to take such factors into account.

In one example, a user of an insurance company's main database may request a list of policyholders who listed a primary residence in northwest Florida during January, 2015, when a hurricane hit the Gulf Coast of Florida. This query may further request dollar amounts of insurance claims made by such residents during that time.

A traditional database application might, in response, search millions of records in the main database in order to identify a few hundred qualifying policyholders. But here, the method ofFIG. 2would intercept the search request before it resulted in a query to the main database and would identify only current policyholder records in Profile Set125that comprise SPATAL linkages to: a “United States/Florida/Gulf Coast” record of Geospatial Map121; the “January 2015” record of Time Graph127, and an “Insurance Claim” record of Subject Dictionary129.

The profile-management system would then either return the records that conform to those linkages or, if the main database supported such an operation, narrow the query to search only for entities identified by the three linked records.