IP Library Granted Patent US 10,216,860
Granted Patent B2
US 10,216,860 · App. 15/165,775 · Granted Feb 26, 2019

System for accessing a relational database using semantic queries

Inventors: Daniel Paul Miranker (Austin, TX); Juan Federico Sequeda (Austin, TX)
Assignee: Capsenta, Inc.
G06F17/30976G06F17/30557G06F17/30707G06F17/30911G06F17/30917G06F17/30932G06F17/30935
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 10,216,860
App. No.
15/165,775
Granted
Feb 26, 2019
Kind
B2
Abstract

This invention is a system for integrating relational databases into a semantic web framework utilizing a simple mapping process and the SQL query optimizer present in the SQL database engine.

Claims (67)

1. A system comprised of one or more computers for executing a digitally encoded first query that is expressed in a query language operable on a graph representation of data, on the data contents of a pre-existing relational database with comprised of a corresponding relational database schema, said system comprising:

a computer memory comprised of stored data encoding the first query, said stored first query being expressed in a query language operable on a graph representation of data;

a translating module comprised of logic configured to automatically translate the stored first query into a second digitally encoded database query expressed in a relational query language by using a mapping data structure stored in a computer memory comprising said system, said data structure embodying a graph that represents a synthetic domain model representation of the relational database schema, in order to create a data object representing the second translated relational query; and

a relational database system comprised of the pre-existing relational database configured by logic to execute the second translated relational query on the pre-existing relational database.

2. The system of claim 1 further comprising an optimizing a module comprised of logic configured to optimize the second translated query prior to its execution on the relational database.

3. The system of claim 2 where the optimizing module is further configured to detect an at least one unsatisfiable condition.

4. The system of claim 2 where the optimizing module is further configured to execute a self-join elimination.

5. The system of claim 2 where the optimizing module is further configured to execute a self outer join elimination.

6. The system of claim 1 where the translating module is further configured to use a data structure representing the synthetic domain model expressed in OWL (Web Ontology Language).

7. The system of claim 1 where the translating module is further configured to use a data structure representing the synthetic domain model expressed in RDFS (Resource Description Framework Schema).

8. The system of claim 1 further comprising a generating module adapted by logic to generate from the representation of the synthetic domain model a data structure embodying an RDF (Resource Description Framework) logical representation of the pre-existing relational database data that conforms to the synthetic domain model.

9. The system of claim 1 further comprising a generating module adapted by logic to generate a data structure representing an RDF (Resource Description Framework) logical representation using a view definition associated with the pre-existing relational database.

10. The system of claim 9 where the view definition is a SQL view definition.

11. The system of claim 9 where the view definition is logical.

12. The system of claim 9 where the view definition is materialized.

13. The system of claim 10 where the SQL view definition is comprised of a body nested in the translated query.

14. The system of claim 1 where the translating module is further configured to output data representing the second translated relational query where the arguments of the second translated relational query are at least one column of a RDF (Resource Description Framework) logical representation of at least a portion of the data contents of the pre-existing relational database.

15. The system of claim 1 where the translating module is further configured to convert a unique resource identifier into a string comprised of a combination of a table name identifying a data table and a column label associated with the data table identified by the table name.

16. The system of claim 1 where the translating module is further configured to materialize into a data structure a plurality of database records comprising the pre-existing relational database as an RDF (Resource Description Framework) representation.

17. The system of claim 1 where the translating module is further configured to determine component substitutions of an at least one component comprising the stored first query.

18. The system of claim 1 further comprising a second translating module comprised of logic configured to translate the output of the relational database executing the second translated relational query into a data output that conforms to the query language operable on a graph representation of data.

19. The system of claim 1 where the graph representation of data is a property graph.

20. The system of claim 1 where the first query is expressed in a query language operable on a semantic graph representation of data.

21. The system of claim 1 where the first query is expressed in a query language operable on a property graph representation of data.

22. The system of claim 1 where the first query is expressed in a query language operable on a RDF representation of data.

23. The system of claim 1 where the first query is expressed in a query language operable on a triple table representation of data.

24. The system of claim 23 where the triple table has more than three columns.

25. A method executed by a computer system comprised of one or more computers, for executing a digitally encoded first query that is expressed in a query language operable on a graph representation of data, on the data contents of a pre-existing relational database comprised of a corresponding relational database schema, said method comprising:

retrieving from a data storage device data encoding the first query, said first query being expressed in a query language operable on a graph representation of data

automatically translating the first database query into a second digitally encoded translated database query expressed in a relational query language by using a mapping data structure stored in a computer memory comprising said computer system, said data structure embodying a graph that represents a synthetic domain model representation of the relational database schema in order to create a data object representing the second translated relational query; and

executing the second translated relational query on the pre-existing relational database.

26. The method of claim 25 further comprising the step of:

optimizing the second translated query prior to its execution on the pre-existing relational database.

27. The method of claim 26 further comprising the step of:

detecting an at least one unsatisfiable condition.

28. The method of claim 26 further comprising the step of:

executing a self-join elimination.

29. The method of claim 26 further comprising the step of:

executing a self outer join elimination.

30. The method of claim 25 further comprising the step of:

generating a data structure representing the synthetic domain model expressed in OWL (Web Ontology Language).

31. The method of claim 25 further comprising the step of:

generating a data structure representing the synthetic domain model expressed in RDFS (Resource Description Framework Schema).

32. The method of claim 25 further comprising the step of:

generating a data structure embodying an RDF (Resource Description Framework) logical representation of the pre-existing relational database data that conforms to the synthetic domain model.

33. The system of claim 25 further comprising the step of:

generating a data structure representing an RDF (Resource Description Framework) logical representation of a portion of the pre-existing relational database using a view definition associated with the pre-existing relational database.

34. The method of claim 22 where the view definition is a SQL view definition.

35. The method of claim 33 where the view definition is logical.

36. The method of claim 33 where the view definition is materialized.

37. The method of claim 34 where the SQL view definition is comprised of a body nested in the translated query.

38. The method of claim 25 further comprising the step of:

generating data representing the second translated relational query where the arguments of the second translated query are at least one column of a RDF (Resource Description Framework) logical representation of at least a portion of the data contents of the pre-existing relational database.

39. The method of claim 25 further comprising the step of:

converting a unique resource identifier into a string comprised of a combination of a table name identifying a data table and a column label associated with the data table identified by the table name, said data table being a component of the pre-existing relational database.

40. The method of claim 25 further comprising the step of:

materializing in a data structure a plurality of database records comprising the pre-existing relational database as an RDF (Resource Description Framework) representation.

41. The method of claim 25 further comprising the step of:

determining the component substitutions of an at least one component comprising the retrieved first query.

42. The method of claim 25 further comprising the step of:

translating the output of the relational database executing the second translated relational query into a data output that conforms to the query language operable on a graph representation of data.

43. The method of claim 25 where the graph representation of data is a property graph.

44. The method of claim 25 where the first query is expressed in a query language operable on a semantic graph representation of data.

45. The method of claim 25 where the first query is expressed in a query language operable on a property graph representation of data.

46. The method of claim 25 where the first query is expressed in a query language operable on a RDF representation of data.

47. The method of claim 25 where the first query is expressed in a query language operable on a triple table representation of data.

48. The method of claim 47 where the triple table has more than three columns.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2025
From: DATA.WORLD, INC.
To: SERVICENOW, INC.
Reel/Frame 073004/0844 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2019
From: MIRANKER, DANIEL P.; SEQUEDA, JUAN F.
To: BOARD OF REGENTS OF THE UNIVERSITY OF TEXAS SYSTEM
Reel/Frame 049419/0298 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2019
From: CAPSENTA, INC.
To: DATA.WORLD, INC.
Reel/Frame 049419/0484 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9396284 PREVIOUSLY RECORDED ON REEL 042222 FRAME 0316. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 10, 2019
From: SEQUEDA, JUAN; MIRANKER, DANIEL PAUL
To: CAPSENTA, INC.
Reel/Frame 049422/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2019
From: BOARD OF REGENTS OF THE UNIVERSITY OF TEXAS SYSTEM
To: MIRANKER, DANIEL P.; SEQUEDA, JUAN F.
Reel/Frame 048515/0926 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2017
From: SEQUEDA, JUAN; MIRANKER, DANIEL PAUL
To: CAPSENTA, INC.
Reel/Frame 042222/0316 →
Continuity (4)
Continuation 14220526 · Mar 20, 2014
Continuation 13278907 · Oct 21, 2011
Provisional Application 61406021 · Oct 22, 2010
Related Publication 20160275204A1 · Sep 22, 2016
Cited By (3)
US 12,292,870 US 12,430,335 US 12,608,366