Source: https://patents.google.com/patent/US20140358744A1/en
Timestamp: 2020-05-26 13:46:55
Document Index: 340971707

Matched Legal Cases: ['arty 3', 'arty 4', 'arty 5', 'arty 6', 'arty 7', 'arty 8', 'arty 9']

US20140358744A1 - Bitemporal milestoning of model free data - Google Patents
Bitemporal milestoning of model free data Download PDF
US20140358744A1
US20140358744A1 US13/912,469 US201313912469A US2014358744A1 US 20140358744 A1 US20140358744 A1 US 20140358744A1 US 201313912469 A US201313912469 A US 201313912469A US 2014358744 A1 US2014358744 A1 US 2014358744A1
US13/912,469
Michael P. Hickin
Edwin S. Choi
2013-05-31 Priority to US201361829345P priority Critical
2013-06-07 Application filed by Bank of America Corp filed Critical Bank of America Corp
2013-06-07 Priority to US13/912,469 priority patent/US20140358744A1/en
2013-06-07 Assigned to BANK OF AMERICA CORPORATION reassignment BANK OF AMERICA CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BERA, SUNANDA, CHOI, EDWIN S., DEB NATH, RITURAJ, HICKIN, MICHAEL P., LAI, NICK, SMITH, TERENCE R.
2014-12-04 Publication of US20140358744A1 publication Critical patent/US20140358744A1/en
Embodiments of the invention are directed to systems, methods and computer program products for bitemporal milestoning. An exemplary apparatus is configured to: receive a fact; store the fact in a database, wherein the storing of the fact is associated with a first system starting time, a first system ending time, a first business starting time, and a first business ending time; create a second version of the fact at a second system starting time, wherein the second version of the fact is associated with a second business starting time and a second business ending time; and query the database to obtain information associated with the fact at a specified business time and a specified system time, wherein the fact is stored and queried without modeling the fact based on a database schema.
This application claims priority to U.S. Provisional Patent Application Ser. No. 61/829,345, filed May 31, 2013, entitled “Bitemporal Milestoning of Model Free Data,” the entirety which is incorporated herein by reference.
There is a need for recapture of information “as it actually was” along with “as it was recorded” at a moment in time.
In some embodiments, an apparatus is provided for bitemporal milestoning. The apparatus comprises a memory; a processor; and a module stored in the memory, executable by the processor, and configured to: receive a fact; store the fact in a database, wherein the storing of the fact is associated with a first system starting time, a first system ending time, a first business starting time, and a first business ending time; create a second version of the fact at a second system starting time, wherein the second version of the fact is associated with a second business starting time and a second business ending time; and query the database to obtain information associated with the fact at a specified business time and a specified system time, wherein the fact is stored and queried without modeling the fact based on a database schema.
In some embodiments, the database comprises a relational database.
In some embodiments, the database comprises a Resource Description Framework (RDF) store.
In some embodiments, the fact comprises information associated with an account.
In some embodiments, the specified business time and the specified system time are specified by a user.
In some embodiments, the database schema comprises a blueprint for constructing the database.
In some embodiments, the fact is stored as part of a collection of related facts.
In some embodiments, the first business starting time and the first business ending time comprise a business time period, and wherein the first system starting time and the first system ending time comprise a system time period.
In some embodiments, the second business starting time is after the first business starting time and the second business ending time is after the first business ending time.
In some embodiments, the second business starting time is before the first business starting time and the second business ending time is before the first business ending time.
In some embodiments, the second business starting time is before the first business starting time and the second business ending time is after the first business ending time.
In some embodiments, the second business starting time is after the first business starting time and the second business ending time is before the first business ending time.
In some embodiments, the fact is plotted on a dual-axis map, wherein a first axis of the map comprises a system time axis, and wherein a second axis of the map comprises a business time axis.
In some embodiments, the stored fact was valid at the first system starting time, and the second version of the fact is created because the stored fact was determined to not be valid at the second system starting time.
In some embodiments, the second version of the fact is different from the fact and is not valid at the first system starting time.
In some embodiments, the query is submitted via a user interface.
In some embodiments, a method is provided for bitemporal milestoning. The method comprises: receiving a fact; storing the fact in a database, wherein the storing of the fact is associated with a first system starting time, a first system ending time, a first business starting time, and a first business ending time; creating a second version of the fact at a second system starting time, wherein the second version of the fact is associated with a second business starting time and a second business ending time; and querying the database to obtain information associated with the fact at a specified business time and a specified system time, wherein the fact is stored and queried without modeling the fact based on a database schema.
In some embodiments, a computer program product is provided for bitemporal milestoning. The computer program product comprises a non-transitory computer-readable medium comprising a set of codes for causing a computer to: receive a fact; store the fact in a database, wherein the storing of the fact is associated with a first system starting time, a first system ending time, a first business starting time, and a first business ending time; create a second version of the fact at a second system starting time, wherein the second version of the fact is associated with a second business starting time and a second business ending time; and query the database to obtain information associated with the fact at a specified business time and a specified system time, wherein the fact is stored and queried without modeling the fact based on a database schema.
FIG. 1 is an exemplary dual-axis map for bitemporal milestoning, in accordance with embodiments of the present invention;
FIG. 3 is an exemplary process flow for bitemporal milestoning, in accordance with embodiments of the present invention.
Embodiments of the invention are directed to systems, methods and computer program products for bitemporal milestoning. The present invention enables grouping of facts into logical collections, and asserting the facts without a model. By removing the need for a model to assert the facts, the present invention enables more accurate assertion of the facts because models, by definition, are not accurate enough.
Bitemporal milestoning enables recapture of information “as it actually was” along with “as it was recorded” at a past moment in time. Specifically, bitemporal milestoning enables representation of facts, querying of facts, and reconstruction of facts at any historical moment in time and without the existence of a model. As used herein, a model may comprise a database schema that comprises a blueprint for constructing a database. The processes of representing facts, querying facts, and reconstructing facts may comprise the assertion of facts as described herein.
A temporal database is a database that handles data (e.g., facts) involving time periods, where each time period includes a starting time and an ending time. In embodiments where a temporal database is associated with a financial institution, a fact may be associated with an account (e.g., a balance of an account). A fact recorded in a bitemporal database is associated with both a system time period and a business time period. A system time period is the period during which a fact stored in the database is considered to be true. A business time (“biz time”) period is the period during which a fact is considered to be true with respect to the real world.
As indicated previously, each time period includes a starting time and an ending time. The system time period is associated with a starting system time and an ending system time. The starting system time includes a timestamp value (e.g., date and time) when a fact was recorded in a database. The ending system time includes a timestamp value when a fact was updated or deleted from the database. The business time period is also associated with a starting business time and an ending business time. The starting business time includes a timestamp value when a fact starts being valid in the real world. The ending business time includes a timestamp value when a fact stops being valid in the real world.
When new facts are received into the database, they may result in multiple temporal facts being created based on the business and system start times as described herein. Old facts are not mutated and a single published fact may result in multiple stored temporal facts as described herein.
Referring now to FIG. 1, FIG. 1 presents facts that are asserted on a dual axis map. The y-axis represents business time and the x-axis represents system time. “Bs” stands for business start time and “Be” stands for business end time. “ST” stands for system time (or system start time). “A” and “B” represents facts that may be assigned values (e.g., 1, 2, 3, x, k, y, or the like). At ST=0, A=1 for the business time period from Bs=0 to Be=infinity. At ST=1, for the business time period from Bs=0 to Be=1, B=x is appended to A=1. At ST=2, for the business time period from Bs=0 to Be=2, the value of A is changed to 2 (i.e., A=2). At ST=3, for the business time period from Bs=3 to Be=infinity, the value of A is changed to 3 (i.e., A=3). At ST=4, for the business time period from Bs=1 to Be=4, C=k is appended. At ST=5, for the business time period from Bs=4 to Be=infinity, the value of B is set to y (i.e., B=y). At ST=6, for the business time period from Bs=0 to Be=infinity, the value of A is changed to 6 (i.e., A=6). Note that the facts, which may or may not be related to each other, may or may not change independently of each other.
TABLE 1 Exemplary Fact Scenario Business Business System System Serial Starting Ending Starting Ending No. Time Time Time Time Fact 1 T0 9999 T0 9999 Receiving information associated with an account 2 T0 9999 T0 9999 Receiving information associated with a first party 3 T0 9999 T0 9999 Receiving information associated with a second party 4 T0 9999 T0 9999 Receiving information associated with a third party 5 T0 9999 T0 9999 Receiving information associated with a fourth party 6 T0 T1 T0 T1 Linking the account to the first party 7 T0 T1 T1 T2 Linking the account to the second party 8 T2 9999 T2 9999 Linking the account to the third party 9 T0 T1 T3 9999 Linking the account to the fourth party
Referring now to Table 1, Table 1 presents a set of facts along with how the facts change through various business time (BT) periods and system time (ST) periods. As indicated by Table 1, at ST0, the account was linked to the first party. At ST1, upon realizing that the account was incorrectly linked to the first party, the account was linked to the second party as of BT0. At ST2, the account was transferred, as of BT3, to the third party. At ST3, after realizing that the correction for BT0-BT1 was incorrect, the account is linked to the fourth party for BT0-BT1.
As indicated by Table 1, the only fact about the account that is in effect at BT1.5 is Fact No. 1. Fact Nos. 6, 7, and 9 have business end times of BT1 and are not in effect at BT1.5, while Fact No. 8 does not go into effect until BT2.
As indicated previously, a user may construct and submit queries to find out the status of the account at a particular business time and/or system time. An exemplary query is a query that asks which party is linked to the account at the current business time. In order to process this query, the system selects the most recent (system time) snapshot that includes the current business time. The answer to this exemplary query is the third party.
Another exemplary query is a query that asks which party is linked to the account at BT0.5. In order to process this query, the system selects the most recent (system time) snapshot that includes BT0.5. The answer to this exemplary query is the fourth party.
Another exemplary query is a query that asks which party is linked to the account at BT0.5 at ST1.5. In order to process this query, the system selects the ST1.5 snapshot that includes BT0.5. The answer to this exemplary query is the second party.
Referring now to FIG. 2, FIG. 2 presents an exemplary block diagram of the system environment 200 for implementing any of the process flows described herein, in accordance with embodiments of the present invention. As illustrated, the system environment 200 includes a network 210, a system 230, and a user input system 240. Also shown in FIG. 2 is a user 245 of the user input system 240. The user input system 240 may be a mobile device (e.g., a portable mobile communication device). The user 245 may be a person who uses the user input system 240 to execute a user application 247 (e.g., a fact-storing, a fact-creating, or fact-querying application). The system 230 may be the apparatus described herein that hosts or manages the database comprising the facts described herein. The user application 247 and/or the system application 237 may incorporate one or more parts of the process flow 300 or any other function described herein. The user 245 may use the user input system 240 to perform one or functions as described herein.
FIG. 2 also illustrates a system 230, in accordance with an embodiment of the present invention. The system 230 may include any computerized apparatus that can be configured to perform any one or more of the functions of the system 230 described and/or contemplated herein. In accordance with some embodiments, for example, the system 230 may include a computer network, an engine, a platform, a server, a database system, a front end system, a back end system, a personal computer system, and/or the like. Therefore, the system 230 may be a server, apparatus, or other computing device as described herein. In some embodiments, such as the one illustrated in FIG. 2, the system 230 includes a communication interface 232, a processor 234, and a memory 236, which includes a system application 237 and a datastore 238 stored therein. As shown, the communication interface 232 is operatively and selectively connected to the processor 234, which is operatively and selectively connected to the memory 236.
Referring now to FIG. 3, a general process flow 300 is provided for bitemporal milestoning. At block 310, the method comprises receiving a fact and storing the fact in a database, wherein the storing of the fact is associated with a first system starting time, a first system ending time, a first business starting time, and a first business ending time. At block 320, the method comprises creating a second version of the fact at a second system starting time, wherein the second version of the fact is associated with a second business starting time and a second business ending time. At block 330, the method comprises querying the database to obtain information associated with the fact at a specified business time and a specified system time. As described previously, the fact is stored and queried without modeling the fact based on a database schema.
1. An apparatus for bitemporal milestoning, the apparatus comprising:
store the fact in a database, wherein the storing of the fact is associated with a first system starting time, a first system ending time, a first business starting time, and a first business ending time;
create a second version of the fact at a second system starting time, wherein the second version of the fact is associated with a second business starting time and a second business ending time; and
query the database to obtain information associated with the fact at a specified business time and a specified system time,
wherein the fact is stored and queried without modeling the fact based on a database schema.
2. The apparatus of claim 1, wherein the database comprises a relational database.
3. The apparatus of claim 1, wherein creation of the second version of the fact does not change the stored fact.
4. The apparatus of claim 1, wherein the database comprises a Resource Description Framework (RDF) store
5. The apparatus of claim 1, wherein the fact comprises information associated with an account.
6. The apparatus of claim 1, wherein the specified business time and the specified system time are specified by a user.
7. The apparatus of claim 1, wherein the database schema comprises a blueprint for constructing the database.
8. The apparatus of claim 1, wherein the fact is stored as part of a collection of related facts.
9. The apparatus of claim 8, wherein the collection of related facts comprises different versions of the fact.
10. The apparatus of claim 1, wherein the first business starting time and the first business ending time comprise a business time period, and wherein the first system starting time and the first system ending time comprise a system time period.
11. The apparatus of claim 1, wherein the second business starting time is after the first business starting time and the second business ending time is after the first business ending time.
12. The apparatus of claim 1, wherein the second business starting time is before the first business starting time and the second business ending time is before the first business ending time.
13. The apparatus of claim 1, wherein the second business starting time is before the first business starting time and the second business ending time is after the first business ending time.
14. The apparatus of claim 1, wherein the second business starting time is after the first business starting time and the second business ending time is before the first business ending time.
15. The apparatus of claim 1, wherein the fact and the second version of the fact are plotted on a dual-axis map, wherein a first axis of the map comprises a system time axis, and wherein a second axis of the map comprises a business time axis.
16. The apparatus of claim 1, wherein the stored fact was valid at the first system starting time, and wherein the second version of the fact is created because the stored fact was determined to not be valid at the second system starting time.
17. The apparatus of claim 1, wherein the second version of the fact is different from the fact and not valid at the first system starting time.
18. The apparatus of claim 1, wherein the query is submitted via a user interface.
19. A method for bitemporal milestoning, the method comprising:
storing the fact in a database, wherein the storing of the fact is associated with a first system starting time, a first system ending time, a first business starting time, and a first business ending time;
creating a second version of the fact at a second system starting time, wherein the second version of the fact is associated with a second business starting time and a second business ending time; and
querying the database to obtain information associated with the fact at a specified business time and a specified system time,
20. A computer program product for bitemporal milestoning, the computer program product comprising:
US13/912,469 2013-05-31 2013-06-07 Bitemporal milestoning of model free data Abandoned US20140358744A1 (en)
US201361829345P true 2013-05-31 2013-05-31
US13/912,469 US20140358744A1 (en) 2013-05-31 2013-06-07 Bitemporal milestoning of model free data
US20140358744A1 true US20140358744A1 (en) 2014-12-04
ID=51986239
US13/912,469 Abandoned US20140358744A1 (en) 2013-05-31 2013-06-07 Bitemporal milestoning of model free data
US (1) US20140358744A1 (en)
US20080140629A1 (en) * 2003-01-15 2008-06-12 Luke Martin Leonard Porter Time in databases and applications of databases
US20120210249A1 (en) * 2011-02-15 2012-08-16 Bank Of America Corporation Information management change deployment system
US20130282765A1 (en) * 2012-04-24 2013-10-24 International Business Machines Corporation Optimizing sparse schema-less data in relational stores
2013-06-07 US US13/912,469 patent/US20140358744A1/en not_active Abandoned
BRUNE, Robert, "BiTemporal Design: Time After Time," SQL Server Pro, September 19, 2005, avaialble at http://sqlmag.com/business-intelligence/bitemporal-design-time-after-time (accessed December 1, 2015). *
BRUNE, Robert, "BiTemporal Through Time," SQL Server Pro, September 19, 2005, avaialble at http://sqlmag.com/print/database-administration/bitemporal-through-time (accessed December 1, 2015). *
KUMAR, Anil, et al., "Designing Access Methods for Bitemporal Databases," IEEE Transactions on Knowledge and Data Engineering, vol. 10 no. 1, Jan/Feb 1998. *
MACHANIC, Adam, "A Primer on Managing Data Bitemporally," Simple Talk, May 10, 2007, available at https://www.simple-talk.com/sql/t-sql-programming/a-primer-on-managing-data-bitemporally/ (accessed December 2, 2015). *
MOREIRA, Viviane Pereira, et al., "Schema Versioning: Queries to The Generalized Temporal Database System," Database and Expert Systems Applications, 1999. Proceedings. Tenth International Workshop on, Florence, 1999, pp. 458-459, available at http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=795208 (accessed May 24, 2016). *
NOH, Seo-Young, et al., "Comparisons of three data storage models in parametric temporal databases," J. Cent. South. Univ., vol. 20 (2013). *
PFEDS, "Bitemporal Database Table Design: The Basics," The Code Project, February 13, 2007, available at http://www.codeproject.com/Articles/17637/Bitemporal-Database-Table-Design-The-Basics (accessed December 1, 2015). *
SNODGRASS, Richard, "Developing Time-Oriented Database Applications in SQL," Morgan Kaufmann Publishers 2000, available at http://www.cs.arizona.edu/people/rts/tdbbook.pdf (accessed December 1, 2015). *
SOO, Michael, (1996) "Constructing a Temporal Database Management System," (Doctoral Dissertation), University of Arizona, retrieved from ProQuest, UMI number 9720650. *
TimeConsult.com, "What are Temporal Databases?," August 15, 1998, available at http://www.timeconsult.com/TemporalData/TemporalDB.html (archived September 21, 1999; accessed May 24, 2016). *
VRAM, Kouramajian (1994) "Temporal Databases: Access Structures, search methods, migration strategies, and declustering techniques," (Doctoral Dissertation), University of Texas at Arlington, retrieved from ProQuest, UMI number 9505507. *
Wikipedia, "Bitemporal modeling," available at https://en.wikipedia.org/wiki/Bitemporal_Modeling, archived May 9, 2013 (accessed December 1, 2015). *
Wikipedia, "Database schema," available at https://en.wikipedia.org/wiki/Database_schema, archived February 22, 2012 (accessed December 2, 2015). *
US20170075927A1 (en) 2017-03-16 Discovery and sharing of photos between devices
US20170228446A1 (en) 2017-08-10 Targeted multi-dimension data extraction for real-time analysis
JP2017050021A (en) 2017-03-09 Event archiving, systems and methods
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DEB NATH, RITURAJ;LAI, NICK;HICKIN, MICHAEL P.;AND OTHERS;REEL/FRAME:030567/0460