A core concept of GIS is answering questions about datasets. From the point of view of a database; SQL with spatial extensions is a way of asking such questions. What other ways can questions be expressed in a machine readable text based form? What are the benefits of different approaches?
I can only think of 3 types of spatial query, ignoring any attribute or hash based queries.
There are a few implementations that combine the above, such as StarSpan that combines raster and vector queries - although it really hides a preprocessing step.
There are numerous APIs that implement these types of queries that are both machine and text readable. There's a good discussion on different implementations and their problems here.
The paper Towards a 3d Spatial Query Language breaks spatial operators into 4 types, based on the query rather than datatype (which perhaps makes more sense):
It also brings in terminology to deal with 3d features (body and surface), which are not included in DE-I9M.
1 - There are some studies with this software: http://nlp.uned.es/MLQA06/papers/ferres.pdf
2-GeoDjango provides an API for spatial queries, it's a translation from SQL to a Object Oriented language that can speed up a lot of tedious work like writing PL/python functions for complex spatial queries. It's limited by the database you use.