Hacker News new | past | comments | ask | show | jobs | submit login

It's possible to model by annotating facts in the database with a timestamp (Wikidata has this, as well as qualifiers for e.g. the source of a statement, or that it applies within a restricted context) but you still need to somehow integrate the information if you want to know the state right now. E.g. if you have (Jenny, date, Tom) from a year ago and (Jenny, date, Mike) from yesterday, does that mean (Jenny, date, Tom) is no longer valid? Or are both simultaneously true? Or is (Jenny, date, Mike) invalid too, because yesterday was like ages ago?

You could have some heuristics to handle this and then you add another relation "has met" and suddenly you need a whole new set of heuristics.




you can have a date_start and date_end to handle this ambiguity. but yes the complexity lies in the interpreter/reasoner that has to deal with these facts and evolution of this (meta)schema.

But rdf style and labeled property graph data modeling approach have multiple ways of dealing with this.


The way Datomic handles facts, accumulating them and providing point-in-time queries, is very effective.

Facts can contradict each other. Old facts are not lost. Querying requires a notion of time - “as of”.


It's a combination of reification and bitemporal modeling.


Correctomundo. See RDF-Star for progress about state-in-time. During summer 2022 there was extensive discussion/consideration in the W3C working group about different state-conditions.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: