SPARQL (phát âm là theo từ "sparkle" trong tiếng Anh [1]) là một ngôn ngữ truy vấn RDF, tên của nó là một từ viết tắt của giao thức SPARQL và ngôn ngữ truy vấn RDF [2] (A viết tắt đệ quy). SPARQL được tạo ra là một chuẩn để truy cập dữ liệu RDF làm việc theo nhóm (DAWG) của World Wide Web Consortium, và được coi là một trong những công nghệ chủ chốt của web semantic. Ngày 15 tháng 2008, SPARQL đã trở thành một khuyến cáo chính thức của W3C.[3]
SPARQL cho phép cho một truy vấn bao gồm mô hình ba mẫu [4], liên từ, disjunctions, và các mô hình mẫu tùy chọn.
Khi triển khai cho nhiều ngôn ngữ lập trình hiện thời [5] "SPARQL sẽ làm cho một sự khác biệt lớn" theo ông Tim Berners-Lee trong một cuộc phỏng vấn năm 2006.[6]
Có sự tồn tại các công cụ cho phép một để kết nối và bán tự động xây dựng một truy vấn SPARQL cho một thiết bị đầu cuối SPARQL, ví dụ như ViziQuer [7].
SPARQL cho phép người dùng viết các truy vấn rõ ràng. Ví dụ, truy vấn sau đây trả về tên và email của từng người lưu trong dạng dữ liệu dataset:
PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?email WHERE { ?person a foaf:Person. ?person foaf:name ?name. ?person foaf:mbox ?email. }
Truy vấn này có thể được phân phối tới nhiều SPARQL endpoints (các dịch vụ sử dụng các truy vấn SPARQL và trả về kết quả), tính toán, và thu thập kết quả, là một thủ tục được gọi là liên truy vấn (federated query).
Ngôn ngữ SPARQL đặc tả bốn loại truy vấn khác nhau cho các mục đích khác nhau.
Truy vấn SELECT
Sử dụng để trích xuất các giá trị thô từ SPARQL endpoint, các kết quả được trả về trong một định dạng bảng.
Truy vấn CONSTRUCT
Sử dụng để trích xuất thông tin từ SPARQL endpoint và chuyển kết quả thành dạng RDF hợp lệ.
Truy vấn ASK
Sử dụng để cung cấp các kết quả dạng True/False đơn giản cho các truy vấn trên SPARQL endpoint
Truy vấn DESCRIBE
Sử dụng để trích xuất một đồ thị RDF từ SPARQL endpoint, các nội dung đó được đưa tới endpoint để quyết định dựa trên những thông tin có ích.
Mỗi dạng truy vấn đều dùng khối lệnh bên trong từ khóa WHERE để hạn chế truy vấn mặc dù trường hợp truy vấn DESCRIBE từ khóa WHERE là tùy chọn.
Một ví dụ về truy vấn SPARQL các mô hình câu hỏi "tất cả các thủ đô quốc gia ở châu Phi là gì?":
PREFIX abc: <http://example.com/exampleOntology#[liên kết hỏng]> SELECT ?capital ?country WHERE { ?x abc:cityname ?capital; abc:isCapitalOf ?y. ?y abc:countryname ?country; abc:isInContinent abc:Africa. }
Các biến được chỉ định bởi tiền tố "?" hoặc "$". Truy vấn rằng buộc các dữ liệu là ?capital và ?country sau đó trả về kết quả.
Để thực hiện các truy vấn ngắn gọn, SPARQL cho phép định nghĩa các tiền tố và các URI cơ sở trong một cách như Turtle. Trong truy vấn này, các tiền tố "abc" là viết tắt của đường dẫn "http://example.com/exampleOntology[liên kết hỏng] #".