There are 4 SPARQL query forms: SELECT, ASK, CONSTRUCT, and DESCRIBE. Each form serves a different purpose. SELECT returns variable bindings and is equivalent to an SQL SELECT query. ASK returns a boolean for whether a pattern matches or not. CONSTRUCT returns an RDF graph constructed from templates. DESCRIBE returns an RDF graph that describes resources found. Beyond their basic uses, the forms can be used for tasks like indexing, transformation, validation, and prototyping user interfaces.