SPARQL stands for SPARQL Protocol and RDF Query Language.1 SPARQL is the W3C recommendation for querying RDF data, providing a querying and search technology designed specifically for the Semantic Web. SQL (Structured Query Language) is a standardized computer language for querying data in relational databases. SPARQL plays a similar role for RDF stores. There are a number of important differences between SQL and SPARQL. SQL is designed to query a single database at a time, whereas SPARQL queries can be distributed in order to search multiple online resources simultaneously, gather the results, and present them to the user, a process known as federated query. In order to generate an SQL query, a user must have knowledge about the structure of the tables of the database in order to formulate JOIN and other SQL statements to retrieve the results. In contrast, SPARQL queries are based on triple patterns, conjunctions, disjunctions, filters, and optional patterns that can be used with any RDF store. SPARQL syntax allows queries to be formulated that are globally unambiguous because of the use of URIs2. These features make SPARQL a flexible and extensible framework for searching and representing information about resources on the Web.