I've been messing around with bitemporal databases lately and was thinking that the new edge properties might be just what's needed to do that in Stardog. Any thoughts on what might be required to do that? I'm guessing it would at least require a custom transaction listener to include start transaction time and default valid time properties if they weren't included. Can you access property attributes in a transaction listener? The second part I'm less sure of. I guess you'd need to hook into updates/deletes to update the property attributes rather than actually delete the triple.
And once quick followup question on the subject of property attributes. Does any of the virtual graph mappings support property attributes? If not any plans to add that?
Is your question around implementing a data model or Stardog supporting this natively. The former is possible but would be slow and I would not recommend it. To be efficient you would need range index around start/endValidTime and start/endSystemTime. The system time would need to be handle by the insert/delete to be trustworthy. I guess properties on ObjectProperty (edge) could be used to represent it in a RDF manner, but what about the DataProperty (properties).
Disclaimer I have not played with RDF+ yet but found the topic interesting
A little bit of both I guess. It would require a temporal index similar to the Lucene full text indexes but for date/time literals or various vocabularies like owl-time. I always thought that would be interesting to give it a try but I don't think I'm familiar enough with the Stardog internals enough to be able to do it although I know it should be possible. Maybe using something like http://www.chronix.io/ although I'm not sure how active that is or if it would be the right thing to use.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.