Hi!
In Blazegraph, this could be supported by Quads or RDR (Reification Done Right).
We considered using RDR but decided against it because RDR is not standard and existing tools and libraries would not understand it. So in the interest of better data integration we decided to use regular RDF representation that can be queries by standard SPARQL.
One possible approach using triples for the use case could be to assign a blank node to a reference placeholder and introduce the valid range class for prov:wasDerivedFrom (prov:entity) with the canonical reference UUID like this:
I'm not sure I understand - what would doing this earn us? This looks like just adding one more join to the lookups.