IP Library Granted Patent US 7,818,347
Granted Patent B2
US 7,818,347 · App. 11/951,675 · Granted Oct 19, 2010

Timeline condition support for an abstract database

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,818,347
App. No.
11/951,675
Granted
Oct 19, 2010
Kind
B2
Abstract

Embodiments of the invention relate data retrieved from the logical fields of an abstract database using a timeline. The logical fields specified by a database abstraction model are extended to include attributes that specify where data corresponding to a logical field occurs on a timeline. Query results may be displayed by ordering query results as points (for an event) or segments (for a duration) on the timeline. Further, query processing techniques disclosed by the present invention allow users to include temporal operators such as “before,” “after,” “during,” and “within” in an abstract query. Temporal operators provide users with the ability to include temporal relationships in an abstract query, without having to construct a complex conditional expression from more primitive logical operators (e.g., “ands” and “ors”).

Claims (32)

1. A computer implemented method of creating a database abstraction model over an underlying physical database, comprising:

defining a plurality of logical fields, wherein each logical field specifies at least an access method mapping the logical field to data in the underlying physical database, and wherein at least one logical field includes timeline metadata indicating where data elements retrieved for the logical field occur on a timeline; and

providing an abstract query building interface used to compose an abstract query from the plurality of logical fields, wherein the abstract query specifies:

(i) a set of conditional expressions, wherein each conditional expression includes a logical field, a conditional operator, and a comparison value, and wherein at least one conditional operator specifies a temporal operator relating the logical field and comparison value, wherein the temporal operator comprises at least one of the following:

a) a first operator specifying that data corresponding to the logical field included by at least one conditional expression occurred at a single point on the timeline before the comparison value;

b) a second operator specifying that data corresponding to the logical field included by at least one conditional expression occurred at a single point on the timeline after the comparison value;

c) a third operator specifying that data corresponding to the logical field occurs at any point on a segment of the timeline; and

d) a fourth operator specifying that data corresponding to the logical field occurs within a certain distance from another point on the timeline; and

(ii) a set of logical fields defining result fields for which query results, satisfying the set of conditional expressions, are returned, wherein the database abstraction model is stored on a computer readable storage medium.

2. The method of claim 1 , wherein the underlying physical database comprises a relational database system, and wherein a resolved query, generated from the abstract query, comprises an SQL query statement.

3. A method for processing an abstract query that includes a temporal conditional expression, comprising:

receiving, from a requesting entity, an abstract query composed from a plurality of logical fields specified by a database abstraction model, wherein each logical field has an access method mapping the logical field to data in an underlying physical database, wherein the abstract query specifies:

(i) a set of conditional expressions, wherein each conditional expression includes a logical field, a conditional operator, and a comparison value, and wherein at least one conditional expression specifies a temporal operator relating the logical field and comparison value, wherein the temporal operator comprises at least one of the following:

a) a first operator specifying that data corresponding to the logical field included by at least one conditional expression occurred at a single point on the timeline before the comparison value;

b) a second operator specifying that data corresponding to the logical field included by at least one conditional expression occurred at a single point on the timeline after the comparison value;

c) a third operator specifying that data corresponding to the logical field occurs at any point on a segment of the timeline; and

d) a fourth operator specifying that data corresponding to the logical field occurs within a certain distance from another point on the timeline; and

(ii) a set of logical fields defining result fields for which query, results satisfying the set of conditional expressions, are returned;

generating an equivalent conditional expression corresponding to the at least one conditional expression, wherein the generated equivalent conditional expression does not include the temporal operator, and wherein the equivalent conditional expression is composed from numerical or logical operators;

merging other conditional expressions specified by the abstract query with the equivalent conditional expression; and

generating, from the merged conditional expressions and the set of logical fields used to retrieve a set of query results, a resolved query of the underlying physical database, wherein generating an equivalent conditional expression, merging other conditional expressions with the equivalent conditional expression, and generating a resolved query of the underlying physical database are done by operation of a computer processor.

4. A computer-readable storage medium containing a program which, when executed, on a computer system performs operations, comprising:

receiving, from a requesting entity, an abstract query composed from a plurality of logical fields specified by a database abstraction model, wherein each logical field has an access method mapping the logical field to data in an underlying physical database, and wherein the abstract query specifies:

(i) a set of conditional expressions, wherein each conditional expression includes a logical field, a conditional operator, and a comparison value, and wherein at least one conditional operator specifies a temporal operator relating the logical field and comparison value, wherein the temporal operator comprises at least one of the following:

a) a first operator specifying that data corresponding to the logical field included by at least one conditional expression occurred at a single point on the timeline before the comparison value;

b) a second operator specifying that data corresponding to the logical field included by at least one conditional expression occurred at a single point on the timeline after the comparison value;

c) a third operator specifying that data corresponding to the logical field occurs at any point on a segment of the timeline; and

d) a fourth operator specifying that data corresponding to the logical field occurs within a certain distance from another point on the timeline; and

(ii) a set of logical fields defining result fields for which query, results satisfying the set of conditional expressions, are returned;

generating an equivalent conditional expression corresponding to at least one conditional expression, wherein the generated equivalent conditional expression does not include the temporal operator, and wherein the equivalent conditional expression is composed from numerical or logical operators;

merging other conditional expressions specified by the abstract query with the equivalent conditional expression; and

generating, from the conditional expressions and the set of logical fields used to retrieve a set of query results, a resolved query of the underlying physical database.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →