БПЦ е уикипедиански проект, който има за цел създаването и подобряването на данните, свързани с организацията и обектите, свързани с Българската православна църква в България, в свободната интернет енциклопедия Уикипедия.

Административно деление

редактиране

Wikidata: Eastern Orthodox eparchy (Q60176300)

Епархията е най-високото ниво на административно делене. Всяка епархия се управлява от епископ, чието седалище се помещава в катедрала.

Българската православна църква понастоящем има 13 вътрешни епархии (в страната), 2 външни епархии – за българите в чужбина.

Заявка, показваща списък с всички епархии:

select ?x ?xLabel {
  ?x wdt:P31 wd:Q60176300 ; 
     wdt:P361 wd:Q242758 ;
     .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg". }
  filter not exists {?x wdt:P576 [] }
} order by ?xLabel

Изпълни заявката в Уикиданни

TAB таблица с епархиите

Заявка, изкарваща справка за пълнотата на понастоящем попълнените данни за епархиите:

SELECT (COUNT(?item) AS ?item_count)
(sum(?image_count) as ?image_count_sum)
(sum(?religion_count) as ?religion_sum)
(sum(?chairperson_count) as ?chairperson_sum)
(sum(?country_count) as ?country_sum)
(sum(?cathedral_count) as ?cathedral_sum)
(sum(?headquarters_loc_count) as ?headquarters_loc_sum)
(sum(?official_website_count) as ?official_website_sum) {
  ?item wdt:P31 wd:Q60176300 ; 
        wdt:P361 wd:Q242758 .
  OPTIONAL { ?item wdt:P18 ?image. }  bind(if(bound(?image),1,0) as ?image_count)
  OPTIONAL { ?item wdt:P140 ?religion. }  bind(if(bound(?religion),1,0) as ?religion_count)
  OPTIONAL { ?item wdt:P488 ?chairperson. }  bind(if(bound(?chairperson),1,0) as ?chairperson_count)
  OPTIONAL { ?item wdt:P17 ?country. }  bind(if(bound(?country),1,0) as ?country_count)
  OPTIONAL { ?item wdt:P1885 ?cathedral. }  bind(if(bound(?cathedral),1,0) as ?cathedral_count)
  OPTIONAL { ?item wdt:P159 ?headquarters_loc. }  bind(if(bound(?headquarters_loc),1,0) as ?headquarters_loc_count)
  OPTIONAL { ?item wdt:P856 ?official_website. }  bind(if(bound(?official_website),1,0) as ?official_website_count)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg". }
  FILTER NOT EXISTS {?item wdt:P576 [] }
}

Изпълни заявката в Уикиданни

Духовна Околия

редактиране

Wikidata: Духовна околия (Q125350820) WDQ

По-ниското ниво на административно делене е духовната околия (всяка духовна околия е част от дадена епархия). Духовните околии в България са 71 на брой. Детайлна информация за тях може да се прегледа в TAB таблицата.

Заявка, показваща списък с всички духовни околии:

SELECT ?x ?xLabel WHERE {
  ?x wdt:P31 wd:Q125350820;
    wdt:P361 wd:Q242758.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg". }
  FILTER(NOT EXISTS { ?x wdt:P576 _:b2. })
}
ORDER BY (?xLabel)

Изпълни заявката в Уикиданни

Заявка, изкарваща справка за пълнотата на понастоящем попълнените данни за духовните околии (към момента данните са пълни):

SELECT (COUNT(?item) AS ?item_count) 
(sum(?religion_count) as ?religion_sum)
(sum(?country_count) as ?country_sum)
(sum(?diocese_count) as ?diocese_sum)
(sum(?headquarters_loc_count) as ?headquarters_loc_sum) WHERE {
  ?item wdt:P31 wd:Q125350820;
    wdt:P361 wd:Q242758.
  OPTIONAL { ?item wdt:P140 ?religion. }  bind(if(bound(?religion),1,0) as ?religion_count)
  OPTIONAL { ?item wdt:P17 ?country. }  bind(if(bound(?country),1,0) as ?country_count)
  OPTIONAL { ?item wdt:P708 ?diocese. }  bind(if(bound(?diocese),1,0) as ?diocese_count)
  OPTIONAL { ?item wdt:P159 ?headquarters_loc. }  bind(if(bound(?headquarters_loc),1,0) as ?headquarters_loc_count)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg". }
  FILTER(NOT EXISTS { ?item wdt:P576 _:b2. })
}

Изпълни заявката в Уикиданни

TAB таблица с духовните околии в Уикиданни

Edit groups:

Църковни Обекти

редактиране

Всеки църковен обект попада в границите на определена духовна околия и съответно - епархия.

Заявка, извеждаща всички църковни обекти в България

SELECT ?church 
?churchLabel 
?eparchyLabel 
?type 
?typeLabel 
?ecclesiasticalEntityLabel 
?religionLabel 
?headquartersLabel 
?namedAfterLabel 
?locatedInATELabel 
?websiteLabel 
?locationLabel 
?osm_rel 
?osm_way
?osm_node
?osm_tag_key
WHERE {
  values ?type {
     wd:Q16970
     wd:Q44613
     wd:Q2977 
  }
  ?church wdt:P31 ?type;
    wdt:P17 wd:Q219.
  OPTIONAL { ?church wdt:P708 ?eparchy. }
  OPTIONAL { ?church wdt:P5607 ?ecclesiasticalEntity. }
  OPTIONAL { ?church wdt:P140 ?religion. }
  OPTIONAL { ?church wdt:P159 ?headquarters. }
  OPTIONAL { ?church wdt:P138 ?namedAfter. }
  OPTIONAL { ?church wdt:P131 ?locatedInATE. }
  OPTIONAL { ?church wdt:P856 ?website. }
  OPTIONAL { ?church wdt:P625 ?location. }
  OPTIONAL { ?church wdt:P402 ?osm_rel }
  OPTIONAL { ?church wdt:P10689 ?osm_way  } 
  OPTIONAL { ?church wdt:P11693 ?osm_node  }
  OPTIONAL { ?church wdt:P1282 ?osm_tag_key  }
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg,en". }
}

Изпълни заявката в Уикиданни

Wikidata: църква (Q16970) WDQ COUNTS (TODO finish!) TAB

Брой попълнени данни относно църквите (COUNTS Finished):

SELECT (count(?church) as ?church_count) (sum(?eparchy_count) as ?eparchy_count_sum) (sum(?ecclesiasticalEntity_count) as ?ecclesiasticalEntity_sum) 
(sum(?religion_count) as ?religion_sum)  (sum(?headquarters_count) as ?headquarters_sum) (sum(?namedAfter_count) as ?namedAfter_sum)
(sum(?locatedInATE_count) as ?locatedInATE_count_sum) (sum(?website_count) as ?website_count_sum) (sum(?location_count) as ?location_count_sum)
WHERE {
  ?church wdt:P31 wd:Q16970;
    wdt:P17 wd:Q219.
  OPTIONAL { ?church wdt:P708 ?eparchy.} bind(if(bound(?eparchy),1,0) as ?eparchy_count) 
  OPTIONAL { ?church wdt:P5607 ?ecclesiasticalEntity. } bind(if(bound(?ecclesiasticalEntity),1,0) as ?ecclesiasticalEntity_count) 
  OPTIONAL { ?church wdt:P140 ?religion. } bind(if(bound(?religion),1,0) as ?religion_count) 
  OPTIONAL { ?church wdt:P159 ?headquarters. } bind(if(bound(?headquarters),1,0) as ?headquarters_count) 
  OPTIONAL { ?church wdt:P138 ?namedAfter. } bind(if(bound(?namedAfter),1,0) as ?namedAfter_count) 
  OPTIONAL { ?church wdt:P131 ?locatedInATE. } bind(if(bound(?locatedInATE),1,0) as ?locatedInATE_count) 
  OPTIONAL { ?church wdt:P856 ?website. } bind(if(bound(?website),1,0) as ?website_count) 
  OPTIONAL { ?church wdt:P625 ?location. } bind(if(bound(?location),1,0) as ?location_count) 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg,en". }

Изпълни заявката в Уикиданни

Заявка за всички църкви - списък:

SELECT ?church ?churchLabel ?eparchyLabel ?ecclesiasticalEntityLabel ?religionLabel ?headquartersLabel ?namedAfterLabel ?locatedInATELabel ?websiteLabel ?locationLabel WHERE {
  ?church wdt:P31 wd:Q16970;
    wdt:P17 wd:Q219.
  OPTIONAL { ?church wdt:P708 ?eparchy. }
  OPTIONAL { ?church wdt:P5607 ?ecclesiasticalEntity. }
  OPTIONAL { ?church wdt:P140 ?religion. }
  OPTIONAL { ?church wdt:P159 ?headquarters. }
  OPTIONAL { ?church wdt:P138 ?namedAfter. }
  OPTIONAL { ?church wdt:P131 ?locatedInATE. }
  OPTIONAL { ?church wdt:P856 ?website. }
  OPTIONAL { ?church wdt:P625 ?location. }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg,en". }
}

Изпълни заявката в Уикиданни

Манастири

редактиране

Wikidata: манастир (Q44613) WDQ

Заявка за всички манастири:

SELECT ?item ?itemLabel ?eparchy ?ecclesiasticalEntity ?religion ?headquarters ?namedAfter ?locatedInATE ?website ?location ?image ?wiki 
WHERE {
 ?item wdt:P31 wd:Q44613;
       wdt:P17 wd:Q219;
  OPTIONAL { ?item wdt:P708 ?eparchy. }
  OPTIONAL { ?item wdt:P5607 ?ecclesiasticalEntity. }
  OPTIONAL { ?item wdt:P140 ?religion. }
  OPTIONAL { ?item wdt:P159 ?headquarters. }
  OPTIONAL { ?item wdt:P138 ?namedAfter. }
  OPTIONAL { ?item wdt:P131 ?locatedInATE. }
  OPTIONAL { ?item wdt:P856 ?website. }
  OPTIONAL { ?item wdt:P625 ?location. }
  OPTIONAL { ?item wdt:P18 ?image. }       
  OPTIONAL {?wiki schema:about ?item ; schema:isPartOf <https://bg.wikipedia.org/> }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg". }
}

Изпълни заявката в Уикиданни

Заявка за всички попълнени данни относно манастирите - COUNTS

SELECT (count(?item) as ?item_count)  (sum(?eparchy_count) as ?eparchy_count_sum) (sum(?ecclesiasticalEntity_count) as ?ecclesiasticalEntity_sum)
(sum(?religion_count) as ?religion_sum)  (sum(?headquarters_count) as ?headquarters_sum) (sum(?namedAfter_count) as ?namedAfter_sum)
(sum(?locatedInATE_count) as ?locatedInATE_count_sum) (sum(?website_count) as ?website_count_sum) (sum(?location_count) as ?location_count_sum) 
(sum(?image_count) as ?image_count_sum) (sum(?wiki_count) as ?wiki_count_sum)
WHERE {
 ?item wdt:P31 wd:Q44613;
       wdt:P17 wd:Q219;
  OPTIONAL { ?item wdt:P708 ?eparchy. }  bind(if(bound(?eparchy),1,0) as ?eparchy_count) 
  OPTIONAL { ?item wdt:P5607 ?ecclesiasticalEntity. }  bind(if(bound(?ecclesiasticalEntity),1,0) as ?ecclesiasticalEntity_count) 
  OPTIONAL { ?item wdt:P140 ?religion. }  bind(if(bound(?religion),1,0) as ?religion_count) 
  OPTIONAL { ?item wdt:P159 ?headquarters. }   bind(if(bound(?headquarters),1,0) as ?headquarters_count) 
  OPTIONAL { ?item wdt:P138 ?namedAfter. }  bind(if(bound(?namedAfter),1,0) as ?namedAfter_count) 
  OPTIONAL { ?item wdt:P131 ?locatedInATE. }  bind(if(bound(?locatedInATE),1,0) as ?locatedInATE_count) 
  OPTIONAL { ?item wdt:P856 ?website. }  bind(if(bound(?website),1,0) as ?website_count) 
  OPTIONAL { ?item wdt:P625 ?location. }  bind(if(bound(?location),1,0) as ?location_count) 
  OPTIONAL { ?item wdt:P18 ?image. }  bind(if(bound(?image),1,0) as ?image_count)      
  OPTIONAL {?wiki schema:about ?item ; schema:isPartOf <https://bg.wikipedia.org/> } bind(if(bound(?wiki),1,0) as ?wiki_count) 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg". }
}

Изпълни заявката в Уикиданни

Катедрали

редактиране

Wikidata: Катедрала (Q2977) WDQ

Заявка за всички катедрали:

SELECT ?item ?itemLabel ?eparchy ?ecclesiasticalEntity ?religion ?headquarters ?namedAfter ?locatedInATE ?website ?location WHERE {
 ?item wdt:P31/wdt:P279* wd:Q2977;
     wdt:P17 wd:Q219;
      OPTIONAL { ?item wdt:P708 ?eparchy. }
  OPTIONAL { ?item wdt:P5607 ?ecclesiasticalEntity. }
  OPTIONAL { ?item wdt:P140 ?religion. }
  OPTIONAL { ?item wdt:P159 ?headquarters. }
  OPTIONAL { ?item wdt:P138 ?namedAfter. }
  OPTIONAL { ?item wdt:P131 ?locatedInATE. }
  OPTIONAL { ?item wdt:P856 ?website. }
  OPTIONAL { ?item wdt:P625 ?location. }
       
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg". }
}

Изпълни заявката в Уикиданни

Заявка за всички попълнени данни относно катедралите (COUNTS):

SELECT (count(?item) as ?item_count) (sum(?eparchy_count) as ?eparchy_count_sum) (sum(?ecclesiasticalEntity_count) as ?ecclesiasticalEntity_sum)
(sum(?religion_count) as ?religion_sum)  (sum(?headquarters_count) as ?headquarters_sum) (sum(?namedAfter_count) as ?namedAfter_sum)
(sum(?locatedInATE_count) as ?locatedInATE_count_sum) (sum(?website_count) as ?website_count_sum) (sum(?location_count) as ?location_count_sum) 
 WHERE {
 ?item wdt:P31/wdt:P279* wd:Q2977;
     wdt:P17 wd:Q219;
      OPTIONAL { ?item wdt:P708 ?eparchy. }  bind(if(bound(?eparchy),1,0) as ?eparchy_count) 
  OPTIONAL { ?item wdt:P5607 ?ecclesiasticalEntity. }  bind(if(bound(?ecclesiasticalEntity),1,0) as ?ecclesiasticalEntity_count) 
  OPTIONAL { ?item wdt:P140 ?religion. }  bind(if(bound(?religion),1,0) as ?religion_count) 
  OPTIONAL { ?item wdt:P159 ?headquarters. }   bind(if(bound(?headquarters),1,0) as ?headquarters_count) 
  OPTIONAL { ?item wdt:P138 ?namedAfter. }  bind(if(bound(?namedAfter),1,0) as ?namedAfter_count) 
  OPTIONAL { ?item wdt:P131 ?locatedInATE. }  bind(if(bound(?locatedInATE),1,0) as ?locatedInATE_count) 
  OPTIONAL { ?item wdt:P856 ?website. }  bind(if(bound(?website),1,0) as ?website_count) 
  OPTIONAL { ?item wdt:P625 ?location. }  bind(if(bound(?location),1,0) as ?location_count) 
       
  SERVICE wikibase:label { bd:serviceParam wikibase:language "bg". }
}

Изпълни заявката в Уикиданни

  • Обща Бройка [1]

Извличане на данни от Wikidata чрез Python

редактиране

Съществува библиотека (SPARQLWrapper), чрез която могат да бъдат изпълнявани SPARQL заявки в Python среда. По този начин лесно могат да бъдат заредени данни от Wikidata за последваща обработка.

Същата заявка, представена по-рано (тази, която извлича списък с всички църковни обекти), може да бъде изпълнена чрез SPARQLWrapper: SPARQLWrapper Demo

Индивиди

редактиране

От общ характер

редактиране

Свързани с OSM

редактиране

OpenStreetMap (OSM)

редактиране

OpenStreetMap (OSM) е безплатен и отворен проект за създаване на карта на света, която може да бъде редактирана от всеки. Той използва данни, събрани от доброволци с помощта на GPS устройства, въздушни снимки и други свободно достъпни източници. Основната цел на OSM е да предостави подробна, актуална и свободно достъпна географска информация, която може да бъде използвана от всеки за различни цели, включително навигация, анализи и изследвания.

Всеки обект в OSM е характеризиран чрез един или повече тагове. Таговете се състоят от ключ и стойност. Синтаксисът е key=value.

  • amenity=place_of_worship
  • amenity monastery
  • building=church
  • wikidata=
  • boundary = religious_administration

Пълен списък с налични тагове в OSM може да бъде достъпен тук.

Уики страници

редактиране

Overpass Turbo е уеб-базиран инструмент за изпълнение на заявки към Overpass API, който позволява на потребителите да извличат и визуализират данни от OpenStreetMap (OSM). С помощта на Overpass Turbo, потребителите могат лесно да създават, изпълняват и редактират Overpass QL заявки, за да получат специфична географска информация от OSM. Инструментът предоставя интуитивен интерфейс с карта, където резултатите от заявките могат да бъдат прегледани и анализирани.

Примерни заявки

редактиране

Tърсене на елемент по wiki-data таг (в примера търсим Храм-паметник „Свети Александър Невски“ (Q43282)):

nwr["wikidata"="Q43282"];
// Output
out body;
>;
out skel qt;

https://overpass-turbo.eu/s/1Jyt

Заявка, предоставяща таблица със всички религиозни обекти в София или в България:

[out:csv(::id, ::lat, ::lon, ::type, name, "name:en","name:bg",wikidata,religion,building,website,denomination ; true; ",")][timeout:90];
// relation(4283101); //София
relation(186382); //България
map_to_area -> .a;
nwr["amenity"="place_of_worship"](area.a);
// Output
out body;
>;
out skel qt;

https://overpass-turbo.eu/s/1Kbu

Автоматизирани заявки чрез Wizard

редактиране

Натиснете "Wizard" бутона над прозореца за писане на заявки. В прозорчето напишете key=value (например: amenity=hospital) и автоматично ще бъде генерирана заявка.

Чрез библиотеката overpy да се използва API, чрез което да се пускат заявки в Python среда. Резултатите лесно могат да бъдат записани в pandas data frame. Пример със същата заявка, предоставяща таблица със всички религиозни обекти в София или в България: overpy Demo

Задача: Да се измисли ГИС подход, с който да се напълнят релациите в административно-териториалната единица (P131) на църквите и манастирите.

187 обекта нямат в административно-териториалната единица (P131) но имат географски координати (P625) според тази заявка

Общините в България WDQ

Вадим полигони от OSM използвайки резултатите на горната заявка и следната услуга https://polygons.openstreetmap.fr/get_wkt.py?id=1934707&params=0

Малко е бавно защото трябва да се викне два пъти. Един път да генерира полигона и втори път да го даде. Веднъж генериран го име кеширан за следващи заявки

За тестване на WKT литерали може да се ползва openstreetmap-wkt-playground

Сравняване и допълване на данни - OSM и wikidata

редактиране

OSM и wikidata са много богати складове на информация. Съществуват обаче разминавания в пълнотата на връзките между обектите в двете платформи. Целта на тази задача е всеки църковен обект от едната платформа да съдържа идентификатор към своя образ в другата платформа. Съществуват няколко нива на пълнота, които могат да се обособят по следния начин:

  • Ниво 0: Това е идеалният случай, в който обектът съшествува и в wikidata, и в OSM, и също така в във всяка от двете платформи е налично id-то на същия този обект от другата платфортма. Няма нужда от последващо действие.
  • Ниво 1а: Обектът съществува в двете платформи. В wikidata не е налично OSM id, но в OSM е налично wikidata id. Нужно е да се добави OSM id в wikidata платформата.
  • Ниво 1б: Обектът съществува в двете платформи. В wikidata е налично OSM id, но в OSM не е налично wikidata id. Нужно е да се добави wikidata id в OSM платформата.
  • Ниво 2: Обектът съществува в двете платформи. В wikidata не е налично OSM id и в OSM не е налично wikidata id. Нужно е да се добави wikidata id в OSM платформата и OSM id в wikidata платформата.
  • Ниво 3а: Обектът съществува единствено в OSM. В wikidata не е налично OSM id и в OSM не е налично wikidata id. Нужно е да се създаде обектът в wikidata. Трябва и да се добави wikidata id в OSM платформата и OSM id в wikidata платформата.
  • Ниво 3б: Обектът съществува единствено в wikidata. В wikidata не е налично OSM id и в OSM не е налично wikidata id. Нужно е да се създаде обектът в OSM. Трябва и да се добави wikidata id в OSM платформата и OSM id в wikidata платформата.
  • Ниво 4: Обектът не съществува в никоя платформа, но съществува в истинския свят. Обектът трябва да се добави в платформите ръчно и да се навържат id-тата.
  • Ниво 5: Обектът не съществува в истинския свят и трябва да се построи. :)

ВАЖНО е дa се коментира методологията, по която обектите биват асоциирани със своите образи в другата платформа (важи за нива 1 и 2). Най-ефективно е да се използва алгоритъм, включващ асоциация по географвски координати (географска дължина и географска ширина) и съвпадение на имена. В идеалния случай координатите на даден обект в OSM и в wikidata биха съвпадали, но повечето пъти те имат известни отклонения и това трябва да се отчете в алгоритъма.

  • Да се напълнят обектите, отговарящи за духовните околии, в Уикиданни
    • Да се създаде обект тип (клас) отговарящ на „Духовна околия“
    • Да се създадат и напълнят обектите с OpenRefine
    • На ръка да се оправят описанията където са сгрешени от TAB таблицата
    • На ръка да се закачат съществуващите Уики страници към новите обекти и да се слеят тези за които вече има уикидата обект
  • Да се извадят и разгледат съществуващите обекти от тип Църква, катедрала или манастир
    • Всяка Епархия тряба да си има катедрала вързана с cathedral (P1885)
  • Да се напишат заявки които да броят за всеки тип колко са популирани релациите
  • Да се измисли ГИС подход, с който да се напълнят релациите в административно-териториалната единица (P131) на църквите и манастирите.
  • Да се измисли подход с който да се свържат сградите от в ОСМ и тези от WD с правилните релации и двупосочно.
  • Да се ссъздадат overpass заявки за релевантинте тагове