This solution uses extensions of RDF and SPARQL, called RDF\* and SPARQL\*, proposed by [Hartig and Thompson (2014)](https://arxiv.org/abs/1406.3399) and further discussed in [Hartig (2017)](https://www.semanticscholar.org/paper/Foundations-of-RDF%E2%8B%86-and-SPARQL%E2%8B%86-\(An-Alternative-to-Hartig/36e70ee51cb7b7ec12faac934ae6b6a4d9da15a8). The key feature of RDF\* and SPARQL\* is the ability to *directly* use one triple as the subject or object of another triple. This is functionally equivalent to assigning an identifier to a triple so that it can be referenced in other triple statements. The proposal includes an extension to Turtle syntax, called Turtle\*, that makes it easy to write nested triples in source data. The test data file `model_8-reasoned.ttlx` is in Turtle\* format.
The major drawback to RDF\* / SPARQL\* is that they are not (yet?) widely supported. Blazegraph [fully supports](https://wiki.blazegraph.com/wiki/index.php/Reification_Done_Right) RDF\* / SPARQL\* / Turtle\*, but as far as I know, none of the other major RDF datastores have implemented them yet.

## SPARQL queries
### Q1: What eats Plant?
Same as for [Model 1](observation_models/model_1#q1-what-eats-plant).
### Q2: What observations provide this information?