Since childhood, I love to look at maps, especially old ones. What spaces! How many countries! The map is like a canvas on which the imagination paints how people lived, how they spread their influence and established power. Another map limits the territories of countries, and does it clearly, categorically. And here doubts arise, for example: did the borders exist, as we define them now, a thousand years ago, even earlier?
No, of course, the kings considered some land their own, some foreign. Did it refer to territories or to more specific objects: settlements, fields? What about mountains, lakes, rivers? Have the borders remained the same for as long as the available maps indicate? There are big doubts … It becomes interesting: where does this data come from? Whose point of view is this?
To make the uncertainty even more explicit, here’s another quote from Wikipedia:
The project was created about a year ago Historicathe purpose of which is to create a geo-historical atlas that reflects the most objective historical picture, using only publicly available historical data.
The project is based on the following theses:
Available historical maps contain inaccurate data (this thesis is touched upon in the introduction)
Too precise boundaries where they shouldn’t be
Lack of detail
cards sin with subjective assessments
Objective imaging is possible. (At least it is possible to display doubts or different opinions)
Technical solution possible, all necessary
components either exist or are realizable
One of the most difficult questions for me, because I like the “don’t do it – don’t” approach. I myself, as I already mentioned, are very interested in maps. But what else, with the obvious exception, could such a tool be used for?
The obvious is:
There are many more unobvious possibilities.
So, what is a geo-historical atlas from the user’s point of view? First of all, this is a map that allows spatial movement, and the choice of the level of detail. There are a sufficient number of solutions for working with cards, we can choose. We don’t need much:
Move the viewport around the map
Display cities, countries and their names on the map, and accordingly points, polygons and inscriptions
Provide the ability to get to the data source
The next required component is the time position controller. Its purpose is to load data corresponding to the selected date. Here we understand that there will be a lot of data, and the closer to the current moment, the more. Compare, for example, how many cities you need to display on the map in 2000 BC (BC) and in 2000 AD (ours)!
It looks like a regular geographical atlas, with the number of pages by the number of years. Or days. It depends on what minimum step of detailing the timeline, we will choose. There will be a lot of data, and this will force us to work on optimizing their transmission and display.
What do we have to implement the above? At least two developments:
Both are well known and have communities that support and develop them. Both systems support the display of data in several ways, including the format Geo JSON. In short, this is a JSON text file containing a description of several classes of primitives (points, polygons, lines). Exactly what is needed!
Here we store the data that we send to the client at his request. This is a set of GeoJSON files containing data on the location of cities, country borders. And by expanding this format a little, we get the opportunity to transfer additional metadata along with these primitives, such as:
This is where we can contribute to the process of optimizing the transfer of information on the backend by pre-generating data optimized for viewing, taking into account three criteria specified by the client in the request:
Of course, this is not the only possibility, there are still developments that optimize work with geo-data, for example PostGIS for PostgreSQL.
An interesting question is how to calculate the borders of countries. After all, it must be borne in mind that only in the last centuries have we humanity had the opportunity to carefully document the borders of states. There are several possibilities here, for example:
Calculate the intersection of zones of influence of known settlements of different countries (gradient descent)
Use modern minimal administrative territories as a minimal piece of the puzzle
The displayed facts must be objective and accurate – this is our main goal. So how do we achieve this? We can deny the right of existence to facts for which there is an alternative interpretation. For example: according to Wikipdeia/bu, Astron became part of Herost in 145 AD, and according to usa.cogress.lib, Astron was part of Cartensia until 147 AD. (All data is fictitious and coincidences are unintentional).
In this example, we must ignore both facts.
The next step is to add a rule by which data sources will receive weights. Then we will add rules by which it will be possible to estimate the weights of sources. Then the fact from Wikipedia or the library of congress will be used to display as authentic.
Of course, here we are entering the thin ice of the subjectivity of the rules. However, if the set of applied rules is public, and the rules themselves are optional, then this will give the user the opportunity to use only the set of rules that he considers correct.
Another option is a special way to display ambiguous data. We will honestly let the user know that some of the information is contradictory, incomplete, and generally requires a separate approach when used. In this case, the user will immediately understand that with Astronomerin this period, not everything is so clear.
However, facts can be ruled only if they are comparable. Any developer will tell you that comparing data of different types requires a prior cast to some common type. And you still need to be able not to lose information at the same time! So, this very format of facts is necessary.
In addition to the main fact: settlement, name, periods of belonging, to states, it is also necessary to store a set of metadata that are important in determining the weight of the fact itself, for example: data source.
We move on. Where will we get the data to display?
We will not limit ourselves to sources, let’s take into account and process everything we can reach:
Encyclopedias available online, starting with all language versions of Wikipedia
Digitized maps, including old ones (although you will have to tinker with old ones to bring them to normal coordinates)
We have decided on the types of data sources. However, only a small part of them is structured and suitable for direct use. Most of them require additional processing to be converted into the raw data described in the previous section.
This part of the work should be taken over by search engine plugins, which will periodically review data sources in search of new or updated information, and send it to the repository, in the form of raw facts.
Plugins can be very different: prasers, database drivers, NLP analyzers (natural language processors), but all of them will be united into one family by a single output data format.
So, the minimum set of components is described, and we will stop there for now.
The project has already been launched, has some POC developments and implementation in the form of a website Historica. The project is non-commercial, so it is supported exclusively by enthusiasts.
If you are interested in the question, you have ideas – join us!
We are sure that the proposed solution is not the only correct one and can be improved. As for the possibilities of application, there are many more than those mentioned, and they are limited only by the number of participating developers.
We have all the technologies for creating a tool, we have an understanding of what we want to get, and we have the ability to support the infrastructure.
The next step is we’re going to get a small team to develop a prototype, maybe even as a small project with a development grant.
After that, we plan to transfer the project to an open one, where all volunteer ideas and developments can get a residence permit. The project itself, in the form of an initiative group, will take over the work on the integrity of the system and the support of its infrastructure.