Time and place

The graph itself has no timestamps. When something happened and where it was are facts you assert on a thing, and both carry their precision.

Time

assert_time states when something was. The relation is At (it happened then), or Began and Ended for the two ends of a span. The shape of the value is the precision: 1953 is a year, 1953-04-14 a day, 1953-04-14T10:30 a minute. Asking for a finer granularity than the value carries is refused rather than filled in. One fact per thing and relation is active: asserting again switches it, and the answer names what was replaced.

In the test, assert_time with relation At and time 1902 on a source answered with granularity Year, and find_in_period from 1900 to 1905 returned it with certain: true.

Documents get an At fact when they are created, so a note written today stands on the same timeline as a dated source.

Intervals

A house can define spans of its own: a semester, a term of office, the period a report covers. assert_interval makes a thing an interval between two calendar bounds. Other things borrow its time with assert_time and the interval's id; their precision is then the interval's span. A search window that covers the interval finds them for certain.

Place

assert_place states where something was, in decimal degrees (WGS84), with a granularity from Zone down to Exact. A coarse claim is anchored to its cell of the spatial grid rather than pretending to metres: in the test, a point asserted with granularity Locality came back with the coordinate of its cell, a few hundred metres off the one given. Nothing is checked against a gazetteer.

find_nearby takes a coordinate and a radius in metres and returns hits ordered by distance, each marked certain or possible, with the distance. In the test the source was found within five kilometres at 337.4 metres.

Places as individuals are created with create_place; put the coordinate on the place identity. Places form a containment ladder with PartOf, ending at the place root that overview names.

Go deeper