Good point, it's harder than it appears at first. I've developed the
habit from 4store of using named graphs for presentation, that is,
URI dereferencing. Ask the web server for http://www.yqcomputer.com/
it looks in the triplestore for a graph called that and returns
whichever triples it finds. This is much nicer (and computationally
much cheaper) than doing searches on the actual triple. Even so,
you are right, I would not normally have schema information in that
Which is related to one of the problems that led me to SWI-Prolog in
the first place: attribution and versioning. I suppose arbitrary atoms
and functors can be put in the line part of the graph:line context.
However probably a better place for that is in the transaction
though to be honest it isn't obvious to me how to query the journal,
how would one effeciently retrieve the log messages and timestamps
pertaining to a particular known triple, for example?
The other use case I had in mind was as a replacement for doing
forward reasoning (using a python package called FuXi) explicitly
by hand for mundane tasks like filling in backlinks. Something
like what you describe here would solve it. The alternative
since there is no index on the graph is to simply nail down the
subject where URIs are being dereferenced...
Or else use it offline to do the forward reasoning as I am doing
now with FuXi only better and more efficiently, basically to fill
out data that goes into 4store for "static" serving...