Translation of a SPARQL query to a SQL query
First Claim
1. A method of translating a Simple Protocol and RDF Query Language (SPARQL) query into a Structured Query Language (SQL) query, the method comprising:
- generating one or more graphs from the SPARQL query, wherein the one or more graphs comprise a plurality of nodes;
assigning a priority to each of the plurality of nodes and generating a priority queue based on the assigned priority;
selecting the node having a highest assigned priority from the priority queue;
navigating the one or more graphs to traverse to one or more reached nodes of the plurality of nodes connected to the selected node, comprising;
identifying data corresponding to the one or more reached nodes;
for each reached node having a variable component, updating the priority of the reached node based on the identified data for the reached node; and
updating an order of the plurality of nodes in the priority queue based on the updated priorities;
generating an access plan element of the SQL query for the one or more reached nodes traversed and the selected node;
repeating the selecting of the node having the highest assigned priority from the priority queue, the navigating of the one or more graphs to traverse to the one or more reached nodes, and the generating of the access plan element of the SQL query until the priority queue is empty; and
generating an access plan for the SQL query comprising the access plan elements generated for the plurality of nodes.
2 Assignments
0 Petitions
Accused Products
Abstract
In the processing of a query while being translated from the SPARQL language to the SQL language, a manner of navigation through the one or more graphs is provided. The plurality of the nodes in the one or more graphs generated from the query is identified. The plurality of the nodes are assigned a priority and arranged in the priority queue based on the assigned priorities. The node with a highest assigned priority is selected each time for execution of the query from the selected node. The one or more graphs are navigated from the selected node to traverse to the one or more nodes connected with the selected node. An access plan element is generated corresponding to the selected nodes and the one or more traversed nodes.
44 Citations
18 Claims
-
1. A method of translating a Simple Protocol and RDF Query Language (SPARQL) query into a Structured Query Language (SQL) query, the method comprising:
-
generating one or more graphs from the SPARQL query, wherein the one or more graphs comprise a plurality of nodes; assigning a priority to each of the plurality of nodes and generating a priority queue based on the assigned priority; selecting the node having a highest assigned priority from the priority queue; navigating the one or more graphs to traverse to one or more reached nodes of the plurality of nodes connected to the selected node, comprising; identifying data corresponding to the one or more reached nodes; for each reached node having a variable component, updating the priority of the reached node based on the identified data for the reached node; and updating an order of the plurality of nodes in the priority queue based on the updated priorities; generating an access plan element of the SQL query for the one or more reached nodes traversed and the selected node; repeating the selecting of the node having the highest assigned priority from the priority queue, the navigating of the one or more graphs to traverse to the one or more reached nodes, and the generating of the access plan element of the SQL query until the priority queue is empty; and generating an access plan for the SQL query comprising the access plan elements generated for the plurality of nodes. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product for translating a Simple Protocol and RDF Query Language (SPARQL) query into a Structured Query Language (SQL) query, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a processor to cause the processor to perform a method comprising:
-
generating one or more graphs from the SPARQL query, wherein the one or more graphs comprise a plurality of nodes; assigning a priority to each of the plurality of nodes and generate a priority queue based on the assigned priority; selecting the node having a highest assigned priority from the priority queue; navigating the one or more graphs to traverse to one or more reached nodes of the plurality of nodes connected to the selected node, comprising; identifying data corresponding to the one or more reached nodes; for each reached node having a variable component, updating the priority of the reached node based on the identified data for the reached node; and updating an order of the plurality of nodes in the priority queue based on the updated priorities; generating an access plan element of the SQL query for the one or more reached nodes traversed and the selected node; repeating the selecting of the node having the highest assigned priority from the priority queue, the navigating of the one or more graphs to traverse to the one or more reached nodes, and the generating of the access plan element of the SQL query until the priority queue is empty; and generating an access plan for the SQL query comprising the access plan elements generated for the plurality of nodes. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system for translating a Simple Protocol and RDF Query Language (SPARQL) query into a Structured Query Language (SQL) query, the system comprising:
-
a processor; and a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a processor to cause the processor to perform a method comprising; generating one or more graphs from the SPARQL query, wherein the one or more graphs comprise a plurality of nodes; assigning a priority to each of the plurality of nodes and generate a priority queue based on the assigned priority; selecting the node having a highest assigned priority from the priority queue; navigating the one or more graphs to traverse to one or more reached nodes of the plurality of nodes connected to the selected node, comprising; identifying data corresponding to the one or more reached nodes; for each reached node having a variable component, updating the priority of the reached node based on the identified data for the reached node; and updating an order of the plurality of nodes in the priority queue based on the updated priorities; generating an access plan element of the SQL query for the one or more reached nodes traversed and the selected node; repeating the selecting of the node having the highest assigned priority from the priority queue, the navigating of the one or more graphs to traverse to the one or more reached nodes, and the generating of the access plan element of the SQL query until the priority queue is empty; and generating an access plan for the SQL query comprising the access plan elements generated for the plurality of nodes. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification