IP Library Granted Patent US 8,204,903
Granted Patent B2
US 8,204,903 · App. 12/705,983 · Granted Jun 19, 2012

Expressing and executing semantic queries within a relational database

Assignee: Microsoft Corporation
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 8,204,903
App. No.
12/705,983
Granted
Jun 19, 2012
Kind
B2
Abstract

Semantic queries are expressed and executed within a relational database. This can be done by defining semantic rules applied to execute the semantic queries using table valued functions and common table expressions, and then simply calling the defined table valued functions to execute the queries.

Claims (36)

1. A computer-implemented method of retrieving data from a relational database having a processing component and a relational data store, comprising:

receiving a semantic query that depends, for its execution, on application of at least one semantic rule;

expressing the semantic query within the relational database, using the processing component;

executing the semantic query against the relational data store, using the processing component within the relational database; and

returning database results, using the processing component, generated from execution of the semantic query, wherein the semantic query further comprises a recursive semantic query requiring application of a recursive semantic rule and wherein expressing the semantic query comprises:

generating a table valued function using a common table expression to express the recursive semantic rule.

2. The computer-implemented method of claim 1 wherein executing the semantic query comprises calling the table valued function.

3. The computer-implemented method of claim 1 wherein the semantic query comprises a bifurcating recursive semantic query requiring application of a bifurcating recursive semantic rule and wherein expressing comprises:

generating a table valued function that defines the bifurcating recursive semantic rule.

4. The computer-implemented method of claim 1 wherein expressing the semantic query within the relational database comprises:

expressing only non-recursive and linearly recursive semantic queries within the relational database.

5. The computer-implemented method of claim 1 wherein expressing the semantic query is performed after receiving the semantic query and in response to receiving the semantic query.

6. The computer-implemented method of claim 1 wherein expressing the semantic query results in a direct expression of the semantic query and is performed prior to receiving the semantic query, and further comprising:

storing the direct expression of the semantic query for execution against the relational data store in response to receiving the semantic query.

7. The computer-implemented method of claim 1 and further comprising:

after receiving the semantic query, determining whether the semantic query has an expression stored within the relational database; and

if not, expressing the semantic query within the relational database.

8. The computer-implemented method of claim 1 wherein expressing the semantic query comprises:

defining a scalar valued function that expresses a semantic rule to be applied in executing the semantic query, and wherein executing the semantic query comprises calling the scalar valued function.

9. A relational database stored in a memory, comprising:

a relational data store storing data in a form represented by a graph structure comprising a set of triples, each triple including a subject node, an object node and a predicate connecting the subject and object nodes; and

a processing component that defines and stores at least one semantic rule to be applied in executing a semantic query, the processing component receiving a call to the at least one semantic rule and directly executing the at least one semantic rule against the graph structure in the relational data store within the relational database to return results responsive to the semantic query, wherein the semantic query further comprises a recursive semantic query requiring application of a recursive semantic rule and wherein the recursive semantic rule is expressed by generating a table valued function using a common table expression.

10. The relational database of claim 9 wherein the semantic query comprises a recursive semantic query requiring application of a recursive semantic rule having at least one unbound subject or object such that when directly executing the recursive semantic rule against the graph structure, the processing component recursively climbs the graph structure to obtain results that bind the at least one unbound subject or object.

11. The relational database of claim 10 wherein the processing component defines a group of four functions to express all bindings for the semantic rule.

12. The relational database of claim 9 wherein the processing component defines and stores the at least one semantic rule prior to receiving a call to the at least one semantic rule.

13. The relational database of claim 9 wherein the processing component defines the at least one semantic rule in response to receiving the at least one semantic query.

14. The relational database of claim 9 wherein the processing component defines and stores all classes of semantic rules, including non-recursive, linearly recursive and bifurcating recursive semantic rules.

15. The relational database of claim 9 wherein the processing component defines and stores only non-recursive and linearly recursive semantic rules.

16. The relational database of claim 15 wherein the processing component determines whether the semantic query is a bifurcating recursive semantic query and, if so, provides the semantic query to a semantic reasoning engine, external to the relational database, for processing.

17. A relational database stored in a memory, comprising:

a relational data store storing items and indicating relations between the items;

a hardware computer readable medium storing semantic rules applied to execute semantic queries, the semantic rules falling into one of only a subset of classes of semantic rules, within the relational database; and

a processing component, receiving an input semantic query, and calling at least one of the stored semantic rules that express the input semantic rules and executing the one of the semantic queries against the relational data store to obtain search results responsive to the input semantic query, the processing component executing a query plan that accounts for semantic dependencies in the input semantic query, wherein the semantic query further comprises a recursive semantic query requiring application of a recursive semantic rule and wherein the processing component expresses the recursive semantic rule by generating the table valued function using a common table expression.

18. The relational database of claim 17 wherein the subset of classes of semantic rules stored in the computer readable medium comprises:

non-recursive semantic rules; and

linearly recursive semantic rules.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2010
From: BOWERS, STUART M.; JACKSON, THOMAS E.; KARKANIAS, CHRIS DEMETRIOS; BROWN, ALLEN L.; CAMPBELL, DAVID G.; AUST, BRIAN S.
To: MICROSOFT CORPORATION
Reel/Frame 023936/0714 →
Continuity (1)
Related Publication 20110202560A1 · Aug 18, 2011