prefix : prefix rdfs: select ?X ?C ?H ?A ?U ?Y from where {{ ?X a ?C . ?C rdfs:subClassOf :Animal } union { ?Y a ?C . ?C rdfs:subClassOf :Horn } union {?H a :Horn} union {?A :hasHorn ?H; a ?C . filter (!isBlank(?C)) ?C rdfs:subClassOf :Animal } union {?U a :Unicorn}}