Karten der Teilnehmer der Synode von Konstantinopel und der Synode von Aquileia 381

5. Januar 2016

In zwei heute auf Patmos befindlichen griechischen Handschriften (172 und 173) sowie in syrischer (in den Handschriften BL Add. 14,528 und Borg. sir. 82 sowie in Mardin, Orth. 309) als auch lateinischer (in den Canones-Sammlungen der Prisca und der Dionysiana altera) Übersetzung liegt eine ungefähr 150 Namen umfassende Liste der Teilnehmer der Synode von Konstantinopel vor, in der neben dem Namen des Bischofs (bzw. des/der ihn vertretenden Klerikers) auch der Bischofsort angegeben ist und die nach Provinzen sortiert ist. Im Zuge der Edition in den »Dokumenten zur Geschichte des arianischen Streites« habe ich eine Karte dieser Teilnehmerliste erstellt, um mit ihrer Hilfe überlieferungstechnische und vor allem inhaltliche, die Kommentierung der Liste betreffende Fragen klären zu können.

Die fertige Karte befindet sich jetzt auf der Homepage des Athanasius Werke-Projektes: Karte der Teilnehmer an der Synode von Konstantinopel 381

Im Folgenden möchte ich kurz darstellen, wie ich die Karte erstellt habe:

In einem ersten Schritt habe ich dazu die Orte mit Hilfe der Pleiades-Datenbank (und gelegentlich weiterer Hilfsmittel) identifiziert und aus dieser sowohl die ID als auch die geographischen Koordinaten entnommen, so daß ich für jede Person ein Dateneintrag im geojson-Format anlegen konnte:

        { 
            "type": "Feature", 
            "properties": {
            "name": "(1) Νεκτάριος Κωνσταντινουπόλεως", 
                "uri": "https://pleiades.stoa.org/places/520998",
                "province": "Europa"
            }, 
            "geometry": {
                "type": "Point", 
                "coordinates": [28.979938000000001, 41.008547999999998] 
                }
            }

Einige Bischofsorte waren (natürlich) nicht zu identifizieren, so daß die Kartendarstellung die Liste nicht ganz vollständig wiedergibt.

Diese geojson-Datei wird nun mit Hilfe der JavaScript-Bibliothek Leaflet verarbeitet und die Orte mit je nach zugehöriger Provinz unterschiedlicher Farbe dargstellt, um leicht zusammengehörige Gruppen und Zahlenverhältnisse ausmachen zu können. Dazu wurde eine html-Datei erstellt, die Leaflet einbindet. Neben dem Digital Atlas of the Roman Empire, der vor allem wegen der Darstellung der Ortnamen und der Straßen hilfreich ist, ist es möglich auch die Tiles des Ancient World Mapping Centers zu nutzen, die eine physische Karte bieten; die Wahl zwischen beiden Karten wird durch ein Menü ermöglicht.

Da die Teilnehmerliste nach den Provinzen gegliedert ist, schien es sinnvoll, nicht nur die Orte, sondern auch die Provinzgrenzen anzuzeigen, wobei sich hier größere Schwierigkeiten ergaben:

[Update 2019-07-09: Das leider die Einbindung der Provinzgrenzen des DAMRC nicht mehr funktioniert, greife ich jetzt auf die von Ancient World Mapping Centers in ihrem Github-Repository bereitgestellten Daten zurück, die ebenfalls auf den Barrington-Atlas zurückgehen; allerdings stehen für die nach-diokletianische Zeit nur die Grenzen zwischen den Provinzen, nicht aber die Außengrenzen des Römischen Reiches zur Verfügung.]

Die Daten für Provinzen sind in der Pleiades-Datenbank nicht vollständig (und mit exakten Daten versehen) enthalten. Ich habe daher auf die Datei https://github.com/pelagios/gazetteer-data/tree/master/magis-pleiades-regions zurückgegriffen (und als pleiades-regions.js eingebunden), die aber auch nicht für alle Provinzen die nötigen Daten enthielt. In der Karte ist sie dennoch als Layer unter »Provinzen (Pleiades)« auswählbar.

Bessere Daten der Provinzgrenzen stellt der Digital Atlas of Roman and Medieval Civilizations (DAMRC) der Universität Harvard zur Verfügung, wobei die Daten auf Talbert, Richard J. A. (ed.) 2000, Barrington Atlas of the Greek and Roman World, Princeton basieren. Allerdings werden hier nur Daten nur für den Zeitrahmen 303–324 bzw. um das Jahr 500 (und damit nur für den Osten) geboten, so daß also der für meine Karte benötigte Stand des Provinzenzuschnitts nicht genug abgedeckt ist. Die Daten liegen auch nicht im geojson-Format, sondern im Esri-Format vor, so daß noch die JavaScript-Bibliothek esri-leaflet.js eingebunden werden mußt, damit die Provinzgrenzen als Layer »Provinzen (ca. a. 303–324!)« und »Provinzen (ca. a. 500!)« dargestellt werden konnten.

Die vollständige Datei [ebenfalls Update 2019-07-09], die mit Hilfe eines Browsers interaktiv dargstellt werden kann, sieht dann folgendermaßen aus, wobei die Personendaten als Datei bishops.js eingebunden wird:

<!DOCTYPE html>
<html>
<head>
    <title>Synod of Constantinople (381)</title>
    <meta content=
    "Map of the participants at the synod of Constantinople in 381" name=
    "description">
    <meta content="Map,Synod,Constantinople,381" name="keywords">
    <meta content="Annette von Stockhausen" name="author">
    <meta charset="utf-8">
    <meta content="width=device-width, initial-scale=1" name="viewport">
    <style type="text/css">
    p {font-family: sans-serif;}
    h1 {font-family: sans-serif;
        font-size: 150%;}
    .info {
        padding: 6px 8px;
        font: 10px/12px "Helvetica Neue", Arial, Helvetica, sans-serif;
    font-weight: bold;
        background: white;
        background: rgba(255,255,255,0.8);
        box-shadow: 0 0 15px rgba(0,0,0,0.2);
        border-radius: 5px;
        }
    .info h4 {
        margin: 0 0 5px;
    font-size: 120%; 
        color: #777;
        }
    .legend {
        line-height: 14px;
        color: #555;
        }
    .legend i {
        width: 18px;
        height: 18px;
        float: left;
        margin-right: 8px;
        opacity: 0.7;
    }
    .leaflet-label {
    background: rgb(235, 235, 235);
    background: rgba(235, 235, 235, 0.81);
    display: block;
    font: 10px/12px "Helvetica Neue", Arial, Helvetica, sans-serif;
    font-weight: bold;
    color: #555;
    padding: 1px 3px;
    position: absolute;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    pointer-events: none;
    white-space: nowrap;
    z-index: 6;
    }
    </style>
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css"
    integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ=="
    crossorigin=""/>
</head>
<body>
    <h1>Participants at the Synod of Constantinople (381)</h1>
    <div id="map" style="height: 725px; width: 1200px"></div>
    <!-- Load Leaflet from CDN -->
    <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js"
    integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og=="
    crossorigin=""></script>
    <script src="leaflet.ajax.min.js"></script>
    <script>
        var geojsonMarkerOptions1 : {
                 radius: 5,
                 fillColor: "white",
                 color: "#000",
                 weight: 1,
                 opacity: 1,
                 fillOpacity: 0.8
                   };
           
        var macedonians : new L.GeoJSON.AJAX("macedonians381.geojson", {
            style: function (feature) {
                return feature.properties && feature.properties.style;
            },

            onEachFeature: onEachFeature,

            pointToLayer: function (feature, latlng) {
                return L.circleMarker(latlng,geojsonMarkerOptions1);
            }
        });

        var bishops : new L.GeoJSON.AJAX("bishops381.geojson", {
            style: function (feature) {
                return feature.properties && feature.properties.style;
            },

            onEachFeature: onEachFeature,

            pointToLayer: function (feature, latlng) {
                return L.circleMarker(latlng, geojsonMarkerOptions1);
                 },
            style:getColor
        });


      var others : new L.GeoJSON.AJAX("others381.geojson", {
            style: function (feature) {
                return feature.properties && feature.properties.style;
            },

            onEachFeature: onEachFeature,

            pointToLayer: function (feature, latlng) {
                return L.circleMarker(latlng,geojsonMarkerOptions1);
            }
        });
    
         function getColor (feature) {
                    switch (feature.properties.province) {
                        case 'Europa' : return {fillColor: "#FF0099"};
                        case 'Aegyptus' : return {fillColor: "#FFCC00"};
                        case 'Palaestina': return {fillColor: "#006600"};
                        case 'Phoenice' : return {fillColor: "#FF3300"};
                        case 'Syria' : return {fillColor: "#99CCFF"};
                        case 'Arabia': return {fillColor: "#33FF00"};   
                        case 'Osrhoene' : return {fillColor: "#66FF00"};
                        case 'Mesopotamia' : return {fillColor: "#FFFF00"};
                        case 'Augustoeuphratesia': return {fillColor: "#FF0000"}; 
                        case 'Cilicia' : return {fillColor: "#CCFFCC"};
                        case 'Cappadocia' : return {fillColor: "#663300"};
                        case 'Armenia minor': return {fillColor: "#33CCFF"}; 
                        case 'Isauria' : return {fillColor: "#33CC00"};
                        case 'Cyprus' : return {fillColor: "#339900"};
                        case 'Pamphylia': return {fillColor: "#FF6600"}; 
                        case 'Lycaonia' : return {fillColor: "#CC33FF"};
                        case 'Pisidia' : return {fillColor: "#669900"};
                        case 'Lycia': return {fillColor: "#66CC00"}; 
                        case 'Phrygia Salutaria' : return {fillColor: "#CC99FF"};
                        case 'Phrygia Pacatiane' : return {fillColor: "#0066FF"};
                        case 'Caria': return {fillColor: "#660000"}; 
                        case 'Bithynia' : return {fillColor: "#333300"};
                        case 'Pontus Amasiae' : return {fillColor: "#9933FF"};
                        case 'Moesia': return {fillColor: "#FF9900"}; 
                        case 'Scythia' : return {fillColor: "#0000FF"};
                        case 'Haemimontus' : return {fillColor: "#666600"};
                        case 'Pontus Polemoniacus' : return {fillColor: "#FF0066"};
        }
             };

    
        function onEachFeature(feature, layer) {
            var popupContent : '<h4>' + feature.properties.name + '</h4><br/> Province according to list: ' + feature.properties.province + '<br\/>Place in <a href="https://pleiades.stoa.org/places/' + feature.properties.locid + '" target="_blank">Pleiades</a> ' + '/ <a href="https://pelagios.org/peripleo/pages/places/http%3A%2F%2Fpleiades.stoa.org%2Fplaces%2F' + feature.properties.locid + '" target="_blank">Pelagios</a>';

            layer.bindPopup(popupContent);
        }
      
      
        var dare= L.tileLayer('https://pelagios.org/tilesets/imperium/{z}/{x}/{y}.png', {
        attribution: 'Tiles: <a href="https://dare.ht.lu.se">DARE 2015<\/a> (CC-BY-SA) | Provinces: <a href="https://github.com/AWMC/geodata">AWMC</a> (Open Database License) | Data: <a href="https://www.vonstockhausen.org">A. v. Stockhausen</a> with help of <a href="https://pleiades.stoa.org">Pleiades</a> (CC-BY)'  +     ' | Source: <a href="https://www.athanasius.theologie.uni-erlangen.de/aw-III-6.html">AW III 6, Dok. 94.5</a>',
        minZoom:5,
        maxZoom:11
        });
        
        var awmc : L.tileLayer('https://a.tiles.mapbox.com/v3/isawnyu.map-knmctlkh/{z}/{x}/{y}.png', {
        attribution: 'Tiles: <a href="https://www.awmc.unc.edu" target="_blank">AWMC<\/a> (CC-BY-NC)' + 
                ' | Provinces: <a href="https://github.com/AWMC/geodata">AWMC</a> (Open Database License) | Data: <a href="https://www.vonstockhausen.org">A. v. Stockhausen</a> with help of <a href="https://pleiades.stoa.org">Pleiades</a> (CC-BY)' +
                ' | Source: <a href="https://www.athanasius.theologie.uni-erlangen.de/aw-III-6.html">AW III 6, Dok. 94.5</a>'});

      var provinces1 : new L.GeoJSON.AJAX("roman_empire_provinces post_diocletian.geojson", {
            style: function (feature) {

                return feature.properties && feature.properties.style;
            },

            onEachFeature: onEachFeature,

            pointToLayer: function (feature, latlng) {
                return L.circleMarker(latlng,geojsonMarkerOptions1);
            }
        });
          

          
        var map : L.map('map', {
        center: [36.008547999999998, 30.979938000000001],
        zoom: 5,
        layers: [awmc,bishops]
        });
        
        var baseMaps : {
            "Ancient World Mapping Center": awmc,
            "Digital Atlas of the Roman Empire": dare
        };

        var overlayMaps : {
          "Participants according to the list": bishops,
          "Other known participants": others, 
          "Macedonians at the synod": macedonians,        
          "Provinces (borders post Diocletian)": provinces1
        };
        
        L.control.layers(baseMaps, overlayMaps, {
        collapsed: false
        }).addTo(map);
              
              L.control.scale({position: 'bottomright'}).addTo(map);
          
          var legend : L.control({position: 'bottomleft'});
          legend.onAdd : function (map) {
          var div : L.DomUtil.create('div', 'info legend');
          div.innerHTML : '<h2>Notes</h2>'
        + '<br/>Color of places according to the province of origin. Note the differences' + '<br/>to the “Provinces (borders post Diocletian)“ from AWMC which' + '<br/> occur at some places.' + '<br/>Click on places to get more information.';
          return div;
          };
          legend.addTo(map);

    </script>
</body>
</html>

Diesem Modell folgend habe ich außerdem eine Karte der Teilnehmer an der Synode von Aquileia 381 erstellt und auch die in Athanasius Werke III 4 abgedruckte Karte der Teilnehmer an der Synode von Serdika 342 konvertiert.