IP Library Granted Patent US 8,412,720
Granted Patent B2
US 8,412,720 · App. 11/927,305 · Granted Apr 2, 2013

Methods and apparatus for querying a relational data store using schema-less queries

Inventors: Colin P. Britton (Lexington, MA); Ashok Kumar (North Billerica, MA); David Bigwood (Lexington, MA); Anthony J. DeFusco (Woonsocket, RI); Howard Greenblatt (Wayland, MA)
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,412,720
App. No.
11/927,305
Granted
Apr 2, 2013
Kind
B2
Abstract

The invention provides, in one aspect, a method of searching an RDF triples data store of the type in which the triples are maintained in accord with a first storage schema. The method includes inputting a first query specifying RDF triples that are to be identified in the data store. That first query assumes either (i) that the triples are stored in a schema-less manner (i.e., with no storage schema) or (ii) that the triples are maintained in accord with a second storage schema that differs from the first. The method further includes generating, from the first query, a second query that specifies those same RDF triples, yet, that reflects the first storage schema. That second query can be applied to the RDF triples data store in order to identify and/or retrieve the desired data.

Claims (42)

1. A method for searching a resource description framework (“RDF”) triples data store having a first storage schema, comprising:

inputting a first query specifying one or more RDF triples to be identified in the data store, where the first query reflects any of a second storage schema or no storage schema, where the second storage schema differs from the first storage schema of the RDF triples;

examining the first query for one or more tokens that represent data to be used in generating the second query;

dispatching context-specific grammar events containing the data, represented by the tokens in the examined first query, to be used in generating the second query,

extracting data, represented by the tokens and contained within the context-specific grammar events, from the context-specific grammar events to generate a second query that specifies one or more RDF triples to be identified in the data store responsive to the first query and that reflects the first storage schema;

where the second query comprises:

a single SQL SELECT statement with a WHERE clause containing three or more logical conditions limiting triples to be considered for retrieval from the RDF triples data store, where each logical condition specifies one or more RDF triples according to a boolean condition; and

applying the single SQL SELECT statement to the data store for identification of the one or more RDF triples responsive to the first query;

wherein each of the events represents any of a declaration and a constraint specified in the first query, and

wherein the constraint specifies RDF triples to be identified.

2. The method of claim 1 , wherein the RDF triples store uses a hashed with origin schema.

3. The method of claim 1 wherein dispatching context-specific grammar events further comprises generating any of a logical condition event, a selection term declaration event, and a triple declaration event.

4. The method of claim 3 where generating a logical condition event comprises generating an event containing data which, when applied to a relational database via the second query, identifies RDF triples according to a boolean condition.

5. The method of claim 3 , where generating a selection term declaration event comprises generating an event containing data which, when applied to the relational database via the output query, identifies RDF triples including a specified term.

6. The method of claim 3 , further where generating a triple declaration event comprises generating an event containing data which, when applied to the relational database via the output query, identifies RDF triples according to a specified subject, predicate and object.

7. The method of claim 1 , further comprising generating the second query as an SQL Select statement.

8. The method of claim 1 , wherein the RDF triples are stored in a hashed with origin schema.

9. A method for translating a schema-less input query in a first language to an output query in a second language comprising:

examining the schema-less input query in the first language for one or more tokens that represent data to be used in generating the output query;

dispatching context-specific grammar events containing the data, represented by the tokens in the examined first query, to be used in generating the second query,

populating portions of the output query according to the events and data; and

extracting data, represented by the tokens and contained within the context-specific grammar events, from the context-specific grammar events to generate the output query in the second language, comprising those populated portions, as a translation of the input query into second language, wherein the output query represents a schema of a relational database storing resource description framework (“RDF”) triples and wherein the output query comprises

a single SQL SELECT statement with a WHERE clause containing three or more logical conditions limiting triples to be considered for retrieval from the RDF triples data store, where each logical condition specifies one or more RDF triples according to a boolean condition;

wherein each of the events represents any of a declaration and a constraint specified in the first query, and

wherein the constraint specifies RDF triples to be identified.

10. The method of claim 9 , wherein dispatching events further comprises generating any of a logical condition event, a selection term declaration event, and a triple declaration event.

11. The method of claim 10 , where generating a logical condition event comprises generating an event containing data which, when applied to the relational database via the output query, identifies RDF triples according to a boolean condition.

12. The method of claim 10 , where generating a selection term declaration event comprises generating an event containing data which, when applied to the relational database via the output query, identifies RDF triples including a specified term.

13. The method of claim 10 , further where generating a triple declaration event comprises generating an event containing data which, when applied to the relational database via the output query, identifies RDF triples according to a specified subject, predicate and object.

14. The method of claim 9 , wherein the first language is any of SQL-like and XML-like.

15. The method of claim 9 , further comprising generating the output query as an SQL Select statement.

16. The method of claim 9 , wherein the RDF triples are stored in a hashed with origin schema.

17. A digital system for searching a resource description framework (“RDF”) triples data store having a storage schema, comprising:

a parser component to examine a schema-less, first query specifying one or more RDF triples to be identified, the parser component examines the first query for one or more tokens that represent data to be used in generating a second query and that dispatches context-specific grammar events containing the data, represented by the tokens in the examined first query, to be used in generating the second query, wherein each of the events represents any of a declaration and a constraint specified in the first query and wherein the constraint specifies RDF triples to be identified;

an event-processing component coupled to the parser component, the event-processing component to extract statement data, represented by the tokens and contained within the context-specific grammar events, from one or more of the context-specific grammar events;

a statement component coupled to the event-processing component, the statement component to generate the second query so as to identify the same RDF triples identified in the schema-less, first query and so as to reflect the storage schema of the RDF triples data store, where the second query comprises:

a single SQL SELECT statement with a WHERE clause containing three or more logical conditions limiting triples to be considered for retrieval from the RDF triples data store, where each logical condition specifies one or more RDF triples according to a boolean condition.

18. The digital system of claim 17 , wherein events represent any of a declaration, constraint and sorting order.

19. The digital system of claim 18 , wherein the declaration event specifies RDF documents to be searched for those RDF triples to be identified.

20. The digital system of claim 18 , wherein the constraint event specifies RDF triples to be identified that match an associated constraint.

21. The digital system of claim 18 , wherein the associated constraint is any of a boolean expression and a literal.

22. The digital system of claim 18 , wherein a sorting order event specifies an order in which identified RDF triples are to be sorted for presentation to a user.

Assignments (3)
CHANGE OF NAME Recorded Jan 25, 2016
From: METATOMIX, INC.
To: OBJECTSTORE, INC.
Reel/Frame 037587/0587 →
RELEASE OF SECURITY INTEREST Recorded Feb 13, 2015
From: NUTTER MCCLENNEN & FISH LLP
To: METATOMIX, INC.
Reel/Frame 034957/0613 →
LIEN Recorded Feb 23, 2011
From: METATOMIX, INC.
To: NUTTER MCCLENNEN & FISH LLP
Reel/Frame 025846/0744 →
Continuity (10)
Continuation 11101361 · Apr 6, 2005
Continuation 10302764 · Nov 21, 2002
Continuation In Part 09917264 · Jul 27, 2001
Continuation In Part 10051619 · Oct 29, 2001
Continuation In Part 09917264
Provisional Application 60332053 · Nov 21, 2001
Provisional Application 60332219 · Nov 21, 2001
Provisional Application 60291185 · May 15, 2001
Provisional Application 60324037 · Sep 21, 2001
Related Publication 20080109420A1 · May 8, 2008