ebeshero / DHClass-Hub

a repository to help introduce and orient students to the GitHub collaboration environment, and to support DH classes.
GNU Affero General Public License v3.0
27 stars 27 forks source link

The 1st Crusade Project #604

Closed BMT45 closed 5 years ago

BMT45 commented 5 years ago

For my project idea, I want to go through various documents and to be able to inform people about the events that occurred during the First Crusade. I plan to go through some documents that describe Pope Urban 11’s speech which there are 5 versions of it on the sight. And the opening of the crusade itself. There are some documents that describe the Journey and how they traveled to get to Jerusalem. These documents also include accounts of the siege and capture of Nicea, Antioch, and Jerusalem. There are also some documents from historians at the time which gives us another account of what happened during the time of the First Crusade.

For the project, I also plan to use KML to create a map in Google Maps to mark the path of the crusaders to Jerusalem using locations named in the Journeys and Battles of the First Crusade. Then we could compare the created google map to a map of the time to visualize the advancement of maps from 1098 to present.

Source documents: https://sourcebooks.fordham.edu/sbook1k.asp

jonhoranic commented 5 years ago

@BMT45 Boy oh boy what a romp of a time the First Crusade was! Plenty of mad pilgrims, backstabbing nobles, bumbling crusaders, and many stories of fantastic quality! Starting off, you may wish to narrow how much of the Crusade you wish to include, as there was multiple stages and fronts that some historians argue may or may not be considered to fall under the "First Crusade" label. For example, months before the more notable nobles set out, Peter the Hermit led of band of peasants on a disastrous journey into the Holy Land...meanwhile that huge jerk Count Emicho was persecuting Jewish communities as he passed though the Rhineland. Both examples may be relevant to you, so who knows!

However, I do not think that should frown you away from trying to model more! I think once you have one overarching working model, you could easily increase your data set(s) with more specific content and events.

NADGIT commented 5 years ago

Man, we're coming up with some really good project ideas!

XML is perfect for historical events, especially ones as complex as the Crusades. Though I've never studied the Crusades specifically, I've always found history to be very interesting. The Crusades should be especially interesting because of all the various layers to the war and the various cultures involved. Definitely a great idea!

frabbitry commented 5 years ago

I think that this sounds like an interesting project. I'm currently taking a class on the Crusades, and they are fascinating historical events to study.

I like the idea of putting things on maps. I don't know a whole lot about using Google Maps and KML for stuff. Do you have to purchase an API key, or is that just to customize the map? Would we have access to it? I've never mapped anything with Google Maps, but I do know that you could also map things using ArcGIS (which is amazingly free for Pitt students to download) or GRASS GIS (which is open-source).

I guess my main question would be where would you get the geodata? I know that from the primary sources you can get information about the journey and how they got to Jerusalem, but how would you translate that into latitude and longitude points? It can be tricky to get reliable, accurate data for historical places and places in countries other than the U.S. I mean, maybe you don't need to be that specific or accurate. I'm just wondering how you would translate the stuff that you mark up in the documents into concrete data that you can put on a map, especially for places other than well-known cities.

ebeshero commented 5 years ago

@frabbitry This is a great question--and one that affects several other projects proposed so far. I'm thinking of updating how we work on maps--I have an old mapping exercise for this class that I've scheduled in past semesters but isn't (currently) on our schedule. That will change, but I'm thinking of a new approach. In past semesters we've done mapping like this:

One semester, on the Decameron project, we did this in a much simpler way-- We pulled the latitude and longitude coordinates into a csv file. This is basically a structured text file holding comma-separated-values (which you can basically open in any spreadsheet program in formatted columns). You can import a simple CSV into a number of free web mapping programs running with LeafletJS, and with the one we used that semester (might have been CartoDB), it added geocodes to our CSV file. See http://www.decameron.newtfire.org/map_simple_places.html . That mapping reflects some errors mostly b/c the team didn't take time to correct their data before they submitted their project at end of term. It's all too common for there to be multiple locations around the planet that share the same name, and you really want to do this work at a moment early enough to spend time correcting false data points--where the place referenced in your text is really in France, but came out in California, for example.

This weekend, I'm investigating some simpler methods we can be using with the apparently terrific XML-based API of Open Street Maps (OSM). My students working with TimeMapper assignments in my Literature classes are accessing this from Google Sheets, with a formula that reaches into OSM and looks up its data on the first available latitude and longitude coordinates. But there's a lot more data available in OSM than my Lit students are receiving, and it can be delivered in a tractable XML format, so I think we could be using this in our XQuery processing this semester. To get a sense of the kind of information easy for us to retrieve, here's an example. Say I want to get XML data from OSM on the village of Tell-Timai-el-Amdid in Egypt's Nile Delta. (This was the location of @ghbondar 's archaeology dig site in December 2018):

We can enter the following OSM search query line into a web browser:

https://nominatim.openstreetmap.org/search/?format=xml&q="timai-el-amdid"

Notice it's just a web URL, and after the last / there's a string of text representing a search query: ?format=xml&q=, after which you plug in your query string (the place name you want to search for): Here's the XML you get back in the browser:

<searchresults timestamp="Sat, 26 Jan 19 18:30:20 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright" querystring=""timai-el-amdid"" polygon="false" exclude_place_ids="7310381" more_url="https://nominatim.openstreetmap.org/search.php?q=%22timai-el-amdid%22&exclude_place_ids=7310381&format=xml&accept-language=en-US%2Cen%3Bq%3D0.9">
<place place_id="7310381" osm_type="node" osm_id="768580940" place_rank="19" boundingbox="30.924444,30.964444,31.507778,31.547778" lat="30.944444" lon="31.527778" display_name="Timai al Amdid, Dakahlia Governorate, Egypt" class="place" type="village" importance="0.475" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_place_village.p.20.png"/>
</searchresults>

Let's try a search for a place where we know there's more than one: Oxford (which could be Oxford, England or Oxford, Mississippi at least):

https://nominatim.openstreetmap.org/search/?format=xml&q="oxford"

Open Street Maps gives us back:

<searchresults timestamp="Sat, 26 Jan 19 18:44:02 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright" querystring=""oxford"" polygon="false" exclude_place_ids="198019438,198138134,197544042,249442332,198198978,198113972,25082640,198696994,244410912,198320270" more_url="https://nominatim.openstreetmap.org/search.php?q=%22oxford%22&exclude_place_ids=198019438%2C198138134%2C197544042%2C249442332%2C198198978%2C198113972%2C25082640%2C198696994%2C244410912%2C198320270&format=xml&accept-language=en-US%2Cen%3Bq%3D0.9">
<place place_id="198019438" osm_type="relation" osm_id="394037" place_rank="16" boundingbox="51.7109788,51.7962658,-1.3042472,-1.1758134" lat="51.7520131" lon="-1.2578499" display_name="Oxford, Oxfordshire, South East, England, United Kingdom" class="place" type="city" importance="0.78503016698648" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png"/>
<place place_id="198138134" osm_type="relation" osm_id="188715" place_rank="16" boundingbox="39.7741886,39.7965701,-76.000354,-75.9599494" lat="39.7852062" lon="-75.9790215" display_name="Oxford, Chester County, Pennsylvania, 19363, USA" class="boundary" type="administrative" importance="0.78503016698648" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png"/>
<place place_id="197544042" osm_type="relation" osm_id="109850" place_rank="16" boundingbox="34.310464,34.394173,-89.596684,-89.475222" lat="34.3664127" lon="-89.5187664" display_name="Oxford, Lafayette County, Mississippi, 38655, USA" class="place" type="city" importance="0.55237946513934" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png"/>
<place place_id="249442332" osm_type="node" osm_id="6180230951" place_rank="12" boundingbox="42.4827633,43.7627633,-81.415072,-80.135072" lat="43.1227633" lon="-80.775072" display_name="Oxford, Ontario, N4S 2R3, Canada" class="place" type="county" importance="0.55" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png"/>
<place place_id="198198978" osm_type="relation" osm_id="182574" place_rank="16" boundingbox="39.483884,39.530234,-84.7807042,-84.7028016" lat="39.5103048" lon="-84.7420519" display_name="Oxford, Oxford Township, Butler County, Ohio, USA" class="place" type="city" importance="0.53828868701015" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png"/>
<place place_id="198113972" osm_type="relation" osm_id="179019" place_rank="16" boundingbox="36.284645,36.354858,-78.612596,-78.555197" lat="36.3107004" lon="-78.5908345" display_name="Oxford, Granville County, North Carolina, USA" class="place" type="city" importance="0.49908767637929" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png"/>
<place place_id="25082640" osm_type="node" osm_id="2426845305" place_rank="30" boundingbox="51.7484258,51.7584258,-1.2750049,-1.2650049" lat="51.7534258" lon="-1.2700049" display_name="Oxford, Botley Road, Osney, Oxford, Oxfordshire, South East, England, OX2 0AA, United Kingdom" class="railway" type="station" importance="0.4896709717155" icon="https://nominatim.openstreetmap.org/images/mapicons/transport_train_station2.p.20.png"/>
<place place_id="198696994" osm_type="relation" osm_id="2535184" place_rank="12" boundingbox="43.784985,45.3476783,-71.0841694,-70.239159" lat="44.4694529" lon="-70.7782375" display_name="Oxford County, Maine, USA" class="boundary" type="administrative" importance="0.47965970416506" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png"/>
<place place_id="244410912" osm_type="relation" osm_id="2021429" place_rank="16" boundingbox="45.7145863,45.7564237,-63.9027784,-63.830367" lat="45.7328222" lon="-63.8593419" display_name="Oxford, Town of Oxford, Cumberland County, Nova Scotia, Canada" class="boundary" type="administrative" importance="0.46844616169821" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png"/>
<place place_id="198320270" osm_type="relation" osm_id="1844185" place_rank="16" boundingbox="42.0727271,42.1923902,-71.9170452,-71.7971638" lat="42.1167621" lon="-71.8647941" display_name="Oxford, Worcester, Massachusetts, USA" class="boundary" type="administrative" importance="0.46112680251343" icon="https://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png"/>
</searchresults>

Skimming through this, notice that we have more information than just latitude and longitude markings--and you're given something that indicates the kind of place this is, as well as coordinates for a bounding box. As I continue to read about OSM, I'm learning that its layers, as represented in its database of XML files, permit querying of other things in the bounding box (which represents the maximum surrounding area containing this distinct place name)--so if we wanted to find buildings with names in that space, we could find a way to query that.

That last portion is something I'm still learning about, but I discovered yesterday that there's an XQuery library developed specifically for GIS queries of Open Street Maps and I want to see if I can pull it in to the eXist-db we'll be working with on my newtfire server this semester. We may or may not want to experiment w/ complex GIS work in this class--that depends on our interests and willingness to play with the available data really. But beyond plotting locations on a map, we could potentially find nearby locations of interest (inside a bounding-box for a city or region) or plot distances between locations.

Working with OSM's data is new to me, but at the very least, applying it to pull geo-coordinate data and alternative place names for locations is something we can do with our projects this spring. (A quick sidenote that TimeMapper's auto-generated visualizations aren't going to be sufficient for our work in this class, because we want you to be in control of the way your visualizations are mapped as part of your learning experience.)

I'm pinging @djbpitt @gabikeane and @zme1 since this may be of interest to our friends in the Pittsburgh class, too.