SPARQL is a declarative programming language and protocol for graph database analytics. SPARQL has the capability to perform all the analytics that SQL can perform, plus it can be used for semantic analysis, the examination of relationships. This makes it useful for performing analytics on data sets that have both structured and unstructured data. SPARQL allows users to perform analytics on information stored in a relational database, as well as friend-of-a-friend (FOAF) relationships, PageRank and shortest path.
SPARQL was conceived and defined by a W3C standards committee to perform analysis on the semantic web or a semantic network (knowledge graph). SPARQL takes advantage of the relationship information (semantic layer) that is inherent in the Resource Description Framework (RDF) to gain insights into correlations between objects.
Today, SPARQL is the only semantic query language that is a standard with the W3C. As such, commercial organizations and governments have standardized on SPARQL as a language and RDF as a data model to build industry models such as Financial Industry Business Ontology (FIBO) in financial services industry, Clinical Data Interchange Standards Consortium (CDISC) in pharmaceutical and HL7/FHIR in healthcare.
SPARQL vs. SQL
SPARQL shares many concepts with SQL. For example, in both languages, the analyst would use SELECT statements and WHERE clauses to analyze data, as well as ORDER BY, LIMIT and OFFSET commands. However, since graph databases store data in triples using a simple SUBJECT-PREDICATE-OBJECT data model, SPARQL was designed to query data in this model as a way to better analyze the relationships of data.
Examples of triples include:
With this simple set of three triples, an analyst could use SPARQL to understand all of the people in a database as well as the context behind the data they produce. Since data in a graph database is stored in a single table of triples rather than multiple tables of data, JOIN commands are not necessary and therefore not part of the SPARQL syntax, nor is most syntax related to fact and dimension tables.
SPARQL use cases
The above specifics allow SPARQL and RDF to be used by data scientists and analysts for a variety of use cases, such as:
Fraud Detection - With SPARQL, an analyst can easily detect relationship patterns such as multiple people sharing the same IP address but reporting to reside in different physical addresses.
Money Laundering - SPARQL is being used to semantically identify and understand the intricate relationships between entities and transactions, including the many individuals and organizations involved with those transactions
Recommendation Engines – SPARQL lets the analyst explore graph relationships between information categories such as customer interests, friends, and purchase history. Then her or she can use SPARQL for product recommendations for a particular customer or customer segment based on which products are purchased by others who follow similar purchase history.
Customer Insight – SPARQL helps you gain new insight into each customer’s likes and dislikes in relation to other customers with similar location, demographics, etc.
History of SPARQL
SPARQL and RDF came from an idea first publicized by Tim Berners-Lee, who stressed the need for data that exists on the Web to work better together in government, enterprise, and science. By establishing SPARQL and RDF as a standard protocol, language and data model, the touchstone for data sharing on the worldwide web was created.