Commons structured data guidelines call to label depicts statement as specific as possible. I.e. an image of a chihuahua should be `depicts=chihuahua`, not `depicts=dog`
Still, when searching for "dog", that is a relevant image. We should be able to include it, because the "chihuahua" entity is a subclass of the "dog" entity.
We already search for relevant entities that match the search term, here's what else we need to figure out:
[] Figure out which entity matches we want to consider finding subclasses of (how perfect of a match should it be before (e.g. [Q28284645](https://www.wikidata.org/wiki/Q28284645) may not be as relevant for "cat" as [Q146](https://www.wikidata.org/wiki/Q146) is, and not worth traversing the tree for)
[] Figure out what entities to traverse (instance of? subclass of?)
[] Figure out how many levels deep to go (in terms of when results get too noisy)
[] Figure out how to decay the boost based on how many levels deep we go (assuming that going deeper adds more noise)
[] Figure out whether there are performance concerns to querying sparkle for these data
[] Figure out whether there are performance concerns to including and scoring a massive amount of statement-based matches in elastic (and if so, where to draw the line)
[] Given all of the above - is this worth building? Rough estimate on implementation?