UNIVERZITET U NOVOM SADU FAKULTET TEHNIČKIH NAUKA U

NOVOM SADU

Kosa Nenadić

RAZVOJ MODULARNIH ARHITEKTURA WEB APLIKACIJA U PAMETNIM MREŽAMA

DOKTORSKA DISERTACIJA

Novi Sad, 2018.

Zahvalnica

Zahvaljujem se mom mentoru profesoru dr Imre Lendaku koji mi je omogućio i pružio priliku da realizujem ovu doktorsku disertaciju. Izuzetnu zahvalnost dugujem profesoru dr Milanu Gavriću koji je nesebično ulagao svoje znanje i iskustvo u naučno istraživački rad koji je pratio izradu ove doktorske disertacije, i koji je savetima i smernicama značajno doprineo kvalitetu same doktorske disertacije. Nadam se da će u skoroj budućnosti rezultati ove saradnje i naučno istraživačkog rada biti višestruko primenjeni u praksi, u cilju unapređenja CIM metodologije i primene semantičkih web tehnologija u elektroenergetici. Takođe, zahvaljujem se kompaniji Schneider Electric DMS NS iz Novog Sada i mojim kolegama na razumevanju i podršci tokom rada na izradi ove doktorske disertacije. Neizmernu zahvalnost dugujem mojim roditeljima, Jeleni i Ratku, kao i sestri Milici i njenoj porodici na ljubavi i podršci koju mi bezuslovno pružaju. УНИВЕРЗИТЕТ У НОВОМ САДУ  ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА 21000 НОВИ САД, Трг Доситеја Обрадовића 6

КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА

Редни број, РБР: Идентификациони број, ИБР: Тип документације, ТД: Монографска документација Тип записа, ТЗ: Текстуални штампани материјал Врста рада, ВР: Докторска дисертација Аутор, АУ: MSc Коса Ненадић Ментор, МН: др Имре Лендак, доцент Наслов рада, НР: Развој модуларних архитектура веб апликација у паметним мрежама Језик публикације, ЈП: српски Језик извода, ЈИ: српски Земља публиковања, ЗП: Србија Уже географско подручје, УГП: АП Војводина Година, ГО: 2018 Издавач, ИЗ: Факултет техничких наука Место и адреса, МА: Трг Д. Обрадовића 6, 21000 Нови Сад Физички опис рада, ФО: 9/127/165/13/51/5/30/1 (поглавља/страна/ цитата/табела/слика/графика/листинга/прилога) Научна област, НО: Електротехничко и рачунарско инжењерство Научна дисциплина, НД: Примењено софтверско инжењерство Предметна одредница/Кључне речи, ПО: Паметне мреже, веб апликације, модуларна архитектура, заједнички информациони модел у електроенергетици

УДК Чува се, ЧУ: Библиотека Факултета техничких наука, Трг Д. Обрадовића 6, 21000 Нови Сад Важна напомена, ВН: Извод, ИЗ: У овом раду су истраживане семантичке веб технологије и њихова примена у електроенергетским системима. Анализирани су CIM стандарди усвојени од стране IEC-а (61970-501 и 61970-552) и њихова ограничења, разматрана постојећа CIM методологија заснована на овим стандардима и дати предлози за унапређење ове методологије у складу са текућим достигнућима у пољу семантичких веб технологија. Истовремено је разматрана модуларност веб апликација базираних на CIM моделу података са становишта семантичког веба и дат предлог модуларне архитектуре веб апликација која се ослања на CIM семантику. Датум прихватања теме, ДП: 02.06.2016. Датум одбране, ДО: Чланови комисије, КО: Председник: др Милан Гаврић, доцент

Члан: др Игор Тартаља, ванредни професор

Члан: др Ервин Варга, ванредни професор Потпис ментора Члан: др Срђан Вукмировић, ванредни професор

Члан, др Имре Лендак, доцент ментор:

UNIVERSITY OF NOVI SAD  FACULTY OF TECHNICAL SCIENCES 21000 NOVI SAD, Trg Dositeja Obradovića 6

KEY WORDS DOCUMENTATION

Accession number, ANO: Identification number, INO: Document type, DT: Monograph documentation Type of record, TR: Textual printed material Contents code, CC: Ph.D. thesis Author, AU: Kosa Nenadić, M.Sc. Mentor, MN: Imre Lendak, Ph.D., Assistant Professor Title, TI: Development of web application modular architectures in smart grid Language of text, LT: Serbian Language of abstract, LA: Serbian Country of publication, CP: Serbia Locality of publication, LP: AP Vojvodina Publication year, PY: 2018 Publisher, PB: Faculty of Technical Sciences Publication place, PP: Trg D. Obradovića 6, 21000 Novi Sad Physical description, PD: 9/127/165/13/51/5/30/1 (chapters/pages/ref./tables/pictures/graphs/listings/append ixes) Scientific field, SF: Electrical and Computer Engineering Scientific discipline, SD: Applied software engineering Subject/Key words, S/KW: Smart grid, web aplications, modular architecture, Common Information Model for power systems UC Holding data, HD: Library of Faculty of Technical Sciences, 21000 Novi Sad, Trg Dositeja Obradovića 6 Note, N: Abstract, AB: This paper explores the semantic web technologies and their application in power systems. It also analyzes CIM standards adopted by IEC (61970- 501 and 61970-552) and their limitations, assesses the existing CIM methodology based on these standards and provides suggestions for improving this methodology in accordance with the current achievements in the field of semantic web technologies. At the same time, the modularity of web applications based on the CIM data model was considered from the semantic web standpoint and the proposal of a modular web application architecture based on the CIM semantics was given.

Accepted by the Scientific Board on, ASB: June 2nd 2016 Defended on, DE: Defended Board, DB: President: Milan Gavrić, Ph.D., Assistant Professor Member: Igor Tartalja, Ph.D., Associate Professor

Member: Ervin Varga, Ph.D., Associate Professor Mentor’s sign

Member: Srđan Vukmirović, Ph.D., Associate Professor Member, Imre Lendak, Ph.D., Assistant Professor

Mentor: Sadržaj

SADRŽAJ

1. Uvod ...... 12 1.1 Predmet istraživanja ...... 13 1.2 Cilj istraživanja i očekivani rezultati ...... 14 1.3 Prikaz disertacije po poglavljima ...... 14 2. Teorijske osnove ...... 15 2.1 Pametna mreža ...... 15 Standardizacija u pametnim mrežama ...... 16 Referentne arhitekture u pametnim mrežama ...... 17 2.2 Standardi u elektroenergetskim sistemima ...... 30 Common Information Model ...... 30 Common Grid Model Exchange Standard ...... 32 2.3 Modularne arhitekture ...... 33 Modularnost softverske arhitekture vođena razvojnom platformom ...... 33 Modularnost vođena srodnim funkcijama ...... 34 Modularnost UI-a ...... 37 Modularnost CIM-a ...... 39 Modularnost softvera zasnovana na procesu transformacije podataka u CIM ...... 39 2.4 Istorija razvoja web-a ...... 40 2.5 W3C preporuke ...... 44 Važeće W3C preporuke u pametnim mrežama ...... 44 Aktuelne W3C preporuke sa potencijalom primene u pametnim mrežama...... 49 2.6 Web alati ...... 51 Pellet ...... 51 Polymer ...... 52 Protégé ...... 52 Stardog ...... 52 3. Metodologija istraživanja ...... 53 3.1 Faze istraživanja ...... 53 3.2 Istraživački metodi ...... 53 Metod kompilacije ...... 54 Metod uzorka...... 54 Metod analize ...... 54 Metod sinteze ...... 54 Metod komparacije ...... 54

1 Sadržaj

Metod modelovanja ...... 54 Metod eksperimenta ...... 55 Metod izrade prototipa ...... 55 Metod univerzalne indukcije ...... 55 Istorijski metod ...... 55 Metod generalizacije ...... 55 4. Opis problema ...... 56 4.1 IEC standardi nisu u potpunosti usklađeni sa W3C RDF preporukama ...... 56 IEC 61970-501 – CIM RDF šema ...... 58 IEC 61970-552 – CIMXML ...... 58 4.2 Mogućnosti usklađivanja IEC standarda sa W3C preporukama ...... 60 4.3 Web aplikacije u pametnim mrežama mogu da koriste semantički obogaćene podatke 62 Problem 1: Složenost reverznog frejmovanja ...... 62 Problem 2: Reverzni frejming sa višestrukim relacijama ...... 63 Problem 3: Ugrađivanje na prvu pojavu ...... 64 Problem 4: Napredno filtriranje ...... 64 4.4 Web aplikacije u pametnim mrežama mogu imati modularne arhitekture i koristiti semantički obogaćene podatke ...... 64 5. Opis rešenja ...... 66 5.1 IEC standardi nisu u potpunosti usklađeni sa W3C RDF preporukama ...... 66 CIM OWL 2 Ontologija ...... 67 CIM JSON-LD ...... 68 5.2 Mogućnosti usklađivanja IEC standarda sa W3C preporukama ...... 70 5.3 Web aplikacije u pametnim mrežama mogu da koriste semantički obogaćene podatke 71 Proširivanje frejma ...... 71 Prošireni frejming algoritam ...... 72 5.4 Web aplikacije u pametnim mrežama mogu imati modularne arhitekture i koristiti semantički obogaćene podatke ...... 75 Web komponente za prikaz CIM profila ...... 76 6. Diskusija rezultata ...... 78 6.1 IEC standardi nisu u potpunosti usklađeni sa W3C RDF preporukama ...... 78 CIM RDFS ...... 78 CIM JSON-LD ...... 83 6.2 Mogućnosti usklađivanja IEC standarda sa W3C preporukama ...... 84 Prevođenje CIM UML-a u OWL 2 ontologije ...... 85 Konverzija CGMES ekstenzija ...... 86 Konverzija CGMES profila ...... 86

2 Sadržaj

Validnost ontologija ...... 86 Kreiranje validacionih grafova oblikovanja u SHACL-u ...... 87 Kreiranje validnih RDF grafova ...... 92 Provera konzistentnosti modela ...... 94 Validacija SHACL-om ...... 94 OWL 2 DL rasuđivanje ...... 98 Sistem vrednovanja pet zvezda ...... 100 6.3 Web aplikacije u pametnim mrežama mogu da koriste semantički obogaćene podatke 101 Metodologija testiranja ...... 101 Testni frejm ...... 101 Rezultati ...... 101 6.4 Web aplikacije u pametnim mrežama mogu imati modularne arhitekture i koristiti semantički obogaćene podatke ...... 107 Web komponenta za prikaz CIM profila ...... 107 7. Zaključci i pravci daljih istraživanja ...... 114 8. Literatura ...... 117 9. Prilozi ...... 127 9.1 Biblioteke ...... 127 SHACLib.ts ...... 127

3 Spisak skraćenica

SPISAK SKRAĆENICA

Skraćenica Engleski termin Srpski termin

AGPL Affero General Public License Opšta javna licenca „Affero“.

AJAX Asynchronous JavaScript and XML Asinhroni JavaScript i XML.

AMI Advanced Metering Infrastructure Sistem napredne merne infrastrukture. System

API Application Programming Aplikativni programski interfejs. Interface

AVL Automatic Vehicle Location Sistem za automatsko lociranje vozila. System

CEN Comité Européen de Evropska komisija za standardizaciju. Normalisation

CENELEC Comité Européen de Evropska komisija za elektrotehničku Normalisation Electrotechnique standardizaciju.

CGMES Common Grid Model Exchange Standard za razmenu zajedničkih modela mreže. Standard CIM Common Information Model Zajednički informacioni model.

CIS Customer Information System Korisnički informacioni sistem.

DER Distributed Energy Resource Distribuirani izvor energije.

DMS Distribution Management System Sistem za upravljanje distribucijom.

EMS Energy Management System Sistem za upravljanje elektroenergetskim sistemom.

ENTSO-E European Network of Evropska mreža operatora prenosnih sistema. Transmission System Operators

ETSI European Telecommunications Evropski institut za standardizaciju Standard Institute telekomunikacija.

FERC Federal Energy Regulatory Federalna regulatorna komisija za energiju. Commission FLISR Fault Location Isolation and Lokacija i izolacija kvara i restauracija napajanja. Supply Restoration

GIS Geographical Information System Geografski informacioni sistem.

4 Spisak skraćenica

Skraćenica Engleski termin Srpski termin

HTTP Hyper Text Transfer Protocol Protokol za prenos hiperteksta.

ICT Information and Communication Informaciona i komunikaciona tehnologija. Technology

IEC International Electrotechnical Međunarodna komisija za standardizaciju u oblasti Commission elektrotehnike.

IETF Internet Engineering Task Force Organizacija odgovorna za istraživanje i promovisanje novih internet standarda.

IRI Internationalized Resource Međunarodni identifikator resursa. Identifier

ISO Independent Systems Nezavisni sistem operatori. Operator IVR Interactive Voice Response Sistem za interaktivni govorni odziv. System

JSON JavaScript Object Notation JavaScript objektna notacija.

JSON-LD JavaScript Object Notation for JavaScript objektna notacija za povezane podatke. Linked Data

LD Linked Data Povezani podaci.

MWM Mobile Workforce Management Sistem za upravljanje ekipama na terenu. System

NERC North American Electric Reliability Severno američka korporacija za električnu Corporation pouzdanost

OCL Object Constraint Language Objektni jezik za opis ograničenja.

OMS Outage Management System Sistem za upravljanje ispadima.

OWL Jezik za opis web ontologija.

RDF Resource Description Framework Okvir za opis resursa.

RDFS Resource Description Framework Šema okvira za opis resursa. Schema

RTO Regional Transmission Operator Regionalni operatori za prenos.

SCADA Supervisory Control and Data Sistema za nadzor i upravljanje industrijskim Acquisition procesima.

5 Spisak skraćenica

Skraćenica Engleski termin Srpski termin

SDO Standard Developing Organizacija za donošenje standarda. Organization

SGAM Smart Grid Reference Referentna arhitektura za pametnu mrežu. Architecture

SHACL Shapes Constraint Language Jezik za opis i validaciju RDF grafova.

SKOS Simple Knowledge Organization Jednostavni sistem za organizaciju znanja. System

SOA Service Oriented Architecture Servis orijentisana arhitektura.

SPA Single Page Application Jednostranična aplikacija.

SPARQL SPARQL Query Language for RDF SPARQL Upitni jezik za RDF.

Turtle Terse RDF Triple Language Jezik za opis RDF trojki.

UI User Interface Korisnički interfejs.

UML Unified Modeling Language Objedinjeni jezik modelovanja.

URI Uniform Resource Identifier Uniformni identifikator resursa.

URL Uniform Resource Locator Uniformni lokator resursa.

URN Uniform Resource Name Predstavlja URI koji koristi urn šemu.

UUID Universally Unique Identifier Univerzalno jedinstveni identifikator.

W3C World Wide Web Consortium WWW konzorcijum je međunarodna organizacija zadužena za izradu internet standarda.

WMS Work Management System Sistem za upravljanje radovima.

WWW, World Wide Web Svetska mreža predstavlja sistem međusobno W3 povezanih hipertekstualnih dokumenta na internetu. XML Extensible Markup Language Predstavlja proširivi (meta) jezik za označavanje tekstualnih dokumenata.

XSD XML Schema Definition Šema za definisanje XML-a.

6 Spisak slika

SPISAK SLIKA

Slika 1. Prikaz integracione distance između sistema [2] ...... 18 Slika 2. NIST konceptualni referentni model pametne mreže [21] ...... 19 Slika 3. Pregled SGAM-a [27], [28] ...... 22 Slika 4. Nivoi apstrakcije SGAM-a [28] ...... 23 Slika 5. GWAC stek [27] ...... 24 Slika 6. Mapiranje GWAC na SGAM [1] ...... 25 Slika 7. Evropski konceptualni model [27] ...... 25 Slika 8. IEC TS 62913 konceptualni model [28] ...... 26 Slika 9. TC 57 referentna arhitektura [28] ...... 27 Slika 10. Referentni model za IEC 62443 standarde [31] ...... 27 Slika 11. Primer implementacije IEC-62443 u elektroenergetskom kontrolnom sistemu ...... 29 Slika 12. CIM informacioni modeli, profili i poruke [28] ...... 32 Slika 13. Prikaz zavisnosti između trenutno aktuelnih CGMES profila (verzija 2.5) [39] ...... 33 Slika 14. Grupisanje povezanih komponenti u module ...... 33 Slika 15. Modularna arhitektura SE DMS NS web rešenja ...... 35 Slika 16. OSI Spectra modularne aplikacije [51] ...... 36 Slika 17. Predix – industrijska internet platforma [53]...... 36 Slika 18. Predix mikroservisi [53] ...... 37 Slika 19. Odgovornost baze, servera i klijenta [54] ...... 37 Slika 20. Slojevita modularnost SE DMS NS klijentskih web rešenja ...... 38 Slika 21. Tipična arhitektura Predix industrijskih web aplikacija [57] ...... 39 Slika 22. Prikaz različitih izvora podataka i serijalizacionih formata [35] ...... 40 Slika 23. Proces transformacije vođen modelom podataka [35] ...... 40 Slika 24. Dijagram podržanosti web specifikacija u Chrome-u i Edge-u [60] ...... 41 Slika 25. Dijagram podržanosti web specifikacija u Edge-u i Firefox-u [60] ...... 41 Slika 26. Dijagram podržanosti web specifikacija u Chrome-u i Firefox-u [60] ...... 42 Slika 27. Pregled razvoja web pretraživača, W3C i TCP standarda ...... 43 Slika 28. Pregled razvoja najznačajnijih serverskih i klijentskih web okvira ...... 43 Slika 29. Arhitektura semantičkog web-a, Tim Berners-Lee, 2000. godina [78] ...... 44 Slika 30. Arhitektura semantičkog web-a, W3C, 2007. godina [79] ...... 45 Slika 31. Trenutno aktuelna arhitektura semantičkog web-a (formati i tehnologije) [80] ...... 45 Slika 32. RDF 1.0 i RDF 1.1 serijalizacioni formati [109] ...... 48 Slika 33. RDF arhitektura – formati podataka [132] ...... 56 Slika 34. Evropski i severno američki pristup za generisanje profila i poruka [134] ...... 57 Slika 35. CIM okvir za razmenu modela ...... 57 Slika 36. Novi pristup modelovanju podataka pametne mreže ...... 61

7 Spisak slika

Slika 37. Vizuelizacija dugovečnosti odabranih klijentskih web okvira [142] ...... 65 Slika 38. Veze između CIM baziranih dokumenata po predloženoj metodologiji...... 67 Slika 39. Semantičko mapiranje CIM artefakata ...... 70 Slika 40. Prototip modularne arhitekture bazirane na web komponentama ...... 76 Slika 41. Dijagram procesiranja web komponente ...... 77 Slika 42. Dijagram klasa CIM GeographicLocation profila ...... 81 Slika 43. Dijagram klasa ENTSO-E GeographicLocation profila ...... 81 Slika 44. Međusobne zavisnosti CGMES profila u odabranoj testnoj konfiguraciji ...... 84 Slika 45. Konverzija i semantičko mapiranje ENTSO-E CGMES artefakata ...... 85 Slika 46. OntoGraf vizualizacija StateVariables (SV) profilne ontologije u Protégé-u ...... 86 Slika 47. Mapiranje CIM i CGMES pristupa za validaciju na W3C pristup ...... 88 Slika 48. Prikaz JSON stabla TP profila u RDFS-u (levo) i OWL 2 (desno) ...... 104 Slika 49. CIM profil u HTML-u ...... 112 Slika 50. Prikaz DOM elemenata ENTSO-E CGMES GeographicLocation profila u panelu za prikaz elemenata u Developer Tools alatki Chrome web pretraživača ...... 113 Slika 51. Dijagram komponenti SHACLib.ts biblioteke ...... 127

8 Spisak tabela

SPISAK TABELA

Tabela 1. Domeni i njihove uloge po NIST konceptualnom modelu pametne mreže [21] ...... 19 Tabela 2. Pregled aplikativnih kategorija po domenima [21] ...... 19 Tabela 3. Mapiranje CIM RDF šeme na CIM OWL ontologiju ...... 68 Tabela 4. OWL DL ekspresivnost CGMES ontologija po predloženoj metodologiji ...... 87 Tabela 5. RDF ekstenzije definisane CIM RDF šemom ...... 88 Tabela 6. CGMES ograničenja dužine nad atributima IdentifiedObject klase po profilima [160]...... 91 Tabela 7. CGMES ograničenja dužine nad ConnectivityNode i TopologicalNode klasama [160] ...... 91 Tabela 8. Rezultati validacije za povezane datasetove i RDFS po profilu ...... 96 Tabela 9. Rezultati validacije nad svim datasetova i povezanim RDFS-ovima po profilu ...... 98 Tabela 10. Rezultat SPARQL upita – razlika između napona u kV ...... 99 Tabela 11. Rezultat SPARQL upita – ACLineSegmenti sa isključena oba terminala ...... 99 Tabela 12. Metrika modela podataka po CIM profilu u RDFS-u...... 103 Tabela 13. Metrika modela podataka po CIM profilu u OWL 2 ...... 103

9 Spisak grafika

SPISAK GRAFIKA

Grafik 1. Metrika broja ulaznih trojki ontologija, klasa i propertija prema vremenu frejmovanja ..... 104 Grafik 2. Metrika broja ulaznih trojki prema vremenu frejmovanja ...... 105 Grafik 3. Metrika veličine ulaznog fajla prema vremenu frejmovanja ...... 105 Grafik 4. Metrika broja izlaznih trojki prema vremenu frejmovanja ...... 106 Grafik 5. Metrika veličine izlaznog fajla prema vremenu frejmovanja ...... 106

10 Spisak listinga

SPISAK LISTINGA

Listing 1. Imenovani graf sa jednim objektnim čvorom ...... 49 Listing 2. Izvod iz JSON-LD frejma sa reverznim propertijima ...... 63 Listing 3. Izvod JSON-LD frejma sa višestrukim ugnježdenim reverznim propertijima ...... 63 Listing 4. Primer proširenog JSON-LD frejma ...... 72 Listing 5. Pseudo kod prvog dela proširenog frejming algoritma ...... 73 Listing 6. Pseudo kod rekurzivnog dela proširenog frejming algoritma ...... 74 Listing 7. SvPowerFlow RDFS klasa i SvPowerFlow.p RDFS properti ...... 79 Listing 8. SvPowerFlow OWL klasa i SvPowerFlow.p OWL datatype properti ...... 80 Listing 9. Izvod iz Meta ontologije ...... 80 Listing 10. Izvod Entsoe ontologije ...... 82 Listing 11. Mapiranje ograničenja kardinaliteta SvPowerFlow.p propertija u SHACL...... 82 Listing 12. Izvod iz fajla OCL pravila izvedena iz UML-a za profil granične topologije (TP_BD) ...... 90 Listing 13. Izvod iz CIM RDF šeme profila granične topologije (TP_BD) ...... 90 Listing 14. Properti oblik TopologicalNode.BaseVoltage objektnog propertija ...... 90 Listing 15. Izvod iz fajla OCL dodata pravila za profil granične topologije (TP_BD) ...... 91 Listing 16. Properti oblik za TopologicalNode.fromEndIsoCode properti tipa podataka ...... 91 Listing 17. Izvod iz fajla OCL dodata pravila za profil promenljivih stanja (SV) ...... 92 Listing 18. Primer SHACL ograničenja baziranog na SPARQL-u ...... 92 Listing 19. Izvod iz modela varijabli stanja (SV) u RDF/XML-u ...... 93 Listing 20. Model promenljivih stanja (SV) predstavljen kao imenovani graf ...... 93 Listing 21. Izvod iz inicijalnog validacionog izveštaja ...... 95 Listing 22. Primer rezultata validacije narušenog ograničenja nad klasom ...... 96 Listing 23. SHACL ograničenja nad CIM DiagramObject.IdentifiedObject propertijem ...... 97 Listing 24. Izvod iz CGMES EQ dataseta ...... 97 Listing 25. SPARQL upit – razlika između napona ...... 98 Listing 26. SPARQL upit – ACLineSegmenti sa isključena oba terminala ...... 99 Listing 27. CIM profilni frejm ...... 101 Listing 28. Web komponenta za vizuelizaciju CIM profila ...... 108 Listing 29. Frejm za kreiranje hijerarhije stabla ...... 109 Listing 30. Rekurzivni deo komponente za vizuelizaciju CIM profila ...... 112

11 Uvod

1. UVOD

Pametna mreža (engl. Smart Grid) predstavlja inteligentni sistem za proizvodnju, skladištenje i isporuku električne energije uz oslonac na informacione i komunikacione tehnologije (engl. Information and Communication Technology, skr. ICT) [1]. Ona obuhvata povezivanje i kontrolu generatora, postrojenja za skladištenje električne energije, potrošača i opreme za upravljanje u prenosnim i distributivnim mrežama. Cilj pametne mreže je da osigura održivo i ekološki prihvatljivo snabdevanje električnom energijom korišćenjem transparentnog, energetski i cenovno efikasnog, bezbednog i pouzdanog rada sistema [2]. U tako složenom sistemu, koji sadrži električnu mrežu sa primenjenim informacionim i komunikacionim tehnologijama u cilju automatizacije donošenja odluka i uspostavljanju ravnoteže između proizvodnje i potrošnje, primeru savremene kritične infrastrukture, arhitekturalni izazovi su brojni. Prethodno navedeno pogotovo dolazi do izražaja u elektroenergetskoj industriji imajući u vidu činjenicu da je poznata po svom konzervativnom pristupu ka uvođenju ICT baziranih sistema za unapređenje upravljanja električnom mrežom [3]. Danas većina automatizovanih elektroenergetskih sistema adresira usko ciljane skupove zahteva. Kao rezultat takve prakse, tipično elektroprivredno preduzeće u svakodnevnoj upotrebi koristi niz kupljenih ili sopstveno razvijenih sistema povezanih interfejsima od tačke do tačke (engl. point-to-point interface) što čini implementaciju pametnih mreža teško održivom. U tradicionalnim okvirima, razvoj aplikacija, baza podataka i ekspertnih sistema je vođen od strane ograničenog broja softverskih inženjera i inženjera znanja koji imaju potpunu kontrolu na celim životnim vekom IT artefakata. Praksa kreiranja samostalnih sistema za sopstvene potrebe se danas napušta u korist sistema orijentisanih na njihove sastavne delove – komponente. Tako na primer, u distribuiranim arhitekturama postoje instalirane različite baze podataka, dok se sistemi zasnovani na znanju prave tako da iskoriste već postojeće baze znanja i alate za zaključivanje [4]. Distribuiranosti IT sistema je umnogome doprineo razvoj interneta zajedno sa web-om i semantičkim web-om, koji je omogućio širenje i razmenu informacija na globalnom nivou. U cilju prevazilaženja problema nametnutih integracijom tradicionalnih elektroenergetskih sistema u ekosistem pametne mreže, neophodno je uvesti standarde koji ispunjavaju zahteve za interoperabilnošću u celokupnoj arhitekturi jednog elektroenergetskog sistema kao i ICT baziranu prenosnu i distributivnu mrežu. U protivnom, bez standarda koji opisuju modele podataka i interfejse, troškovi za integrisanje komponenti i aplikacija u sistemu bi bili preveliki zbog čestog uvođenja novih procesa i interfejsa. U veoma bliskoj budućnosti, jedno elektroenergetsko preduzeće će biti zaduženo za nadgledanje i kontrolu miliona sopstvenih uređaja i desetina miliona potrošačkih uređaja direktno ili preko posredničkih sistema [5], [6]. Veliki broj heterogenih komponenti poput distribuiranih energetskih resursa (engl. Distributed Energy Resources, skr. DER), inteligentnih elektronskih uređaja (npr. pametnih brojila) i napredne mrežne opreme (engl. Flexible Alternating Current Transmission System, skr. FACTS) će morati da međusobno sarađuje kako bi se optimizovale operacije i obezbedilo pouzdano i održivo snabdevanje električnom energijom [7]. U tako složenim zahtevima za integracijom, sposobnost više sistema da sarađuju u zajedničkom interesu nije više samo želja već potreba [8]. Modularnost je potreba svakog velikog inženjerskog poduhvata, kao takva modularnost se izučava u softverskom inženjerstvu. Na apstraktnom nivou ona predstavlja stepen do kog se komponente nekog sistema mogu razdvojiti i kombinovati. Međutim, u praksi kompozicija i interakcija IT komponenti na nivou njihove distribucije na web-u i uopšteno predstavlja izazov, ako posmatramo interoperabilnost komponente van okvira komunikacije zasnovane na predefinisanoj sintaksi (engl. syntactic communication) [4]. Stoga je za razumevanje informacija koje komponenta izlaže neophodno isporučiti i semantiku ugrađenu u informaciju. Zajednički informacioni model (engl. Common

12 Uvod

Information Model, skr. CIM) je izložen kao sveobuhvatni zajednički semantički model podataka za modeliranje pametne mreže da bi se obezbedila interoperabilnost u elektroenergetskom sistemu. CIM je definisan serijom standarda propisanih od strane Međunarodne elektrotehničke komisije (engl. International Electrotechnical Commission, skr. IEC) koji definišu model elektroenergetskog sistema, njegova proširenja i mapiranja ovog modela na tehnologije koje se oslanjaju na preporuke World Wide Web konzorcijuma (engl. World Wide Web Consortium, skr. W3C), poput Resource Description Framework Schema-e (skr. RDF šema ili RDFS), RDF/XML-a (XML sintakse za zapis RDF-a), Extensible Markup Language-a (skr. XML), XML Schema Definition-a (skr. XSD) i u novije vreme pokušaja mapiranja u Web Ontology Language (skr. OWL). Zbog vremenskog trenutka u kojem su usvajani IEC CIM standardi (61970-501 i 61970-552) i tada aktuelnog stanja W3C preporuka, u CIM su uvedena ograničenja koja iz današnje perspektive umanjuju sposobnost interpretacije CIM kao skupa povezanih podataka (engl. Linked Data). Upravo ubrzani razvoj web-a u proteklih dvadeset godina i zahtevi sa kojima se danas susreću moderne web aplikacije, kako na internetu tako i u pametnim mrežama, navodi da način na koje su upotrebljene pomenute W3C preporuke traži preispitivanje i usaglašavanje sa aktuelnim preporukama. 1.1 Predmet istraživanja

Razvoj web platforme je doživeo značajne pomake od svog začetka početkom i sredinom 1990- ih godina. Od nekada statičkog sadržaja kreiranog na serveru, do dinamičkog sadržaja sastavljenog na klijentu i prevazilaženja razlika u implemenaciji web pretraživača, fokus razvoja web aplikacija danas je usmeren na klijentsku stranu. Njega čine standardizacija programskih jezika u web platformi, standardizacija modernih pretraživača, kao i usavršavanje MV* okvira (engl. Model-View-* frameworks) različitih proizvođača softvera. Kao posledica postojanja brojnih programskih okvira javila se potreba za unificiranjem deklarativnog pristupa programiranju web aplikacija na celoj web platformi. U tom smislu je danas značajan rad na W3C skupu preporuka za web komponente (engl. Web Components), W3C JavaScript objektnoj notaciji za povezane podatke (engl. JavaScript Object Notation for Linked Data, skr. JSON-LD, W3C preporuka od 2014. godine) i njenim pratećim standardima, i ECMAScript 6 specifikaciji (engl. EcmaScript Language Specification, Edition 6, zvanični naziv za JavaScript jezik). Stav vodećih inženjera današnjeg web-a i korporacija u kojima rade jeste da komponentizacija i modularizacija web aplikacija udružena sa primenom novih standarda i protokola predstavlja put kojim moderne web aplikacije treba da idu [9]. Razvoj web aplikacija u pametnim mrežama treba da pomiri dinamiku razvoja web platforme sa prirodom razvoja informacionih sistema u elektroenergetskom sektoru, pravovremeno analizirajući i usvajajući dostignuća sa obe strane. Upotrebom JSON-LD-a kao semantičkog serijalizacionog formata u aplikacijama baziranim na CIM-u bio bi napravljen iskorak ka interoperabilnosti kao i dat osnov za nadogradnju znanja kojim upravlja moderna web aplikacija u pametnoj mreži. Istovremeno, baziranje razvoja web aplikacija na novim standardima postigla bi se nezavisnost od različitih proizvođača web okvira i omogućila bolja komponentizacija i ikoristivost napisanog koda. U skladu sa prethodno navedenim, predmet istraživanja ove disertacije pripada oblasti primenjenog softverskog inženjerstva u elektroenergetskim sistemima. Istraživane su semantičke web tehnologije i njihova primena u elektroenergetskim sistemima. Analizirani su CIM standardi usvojeni od strane IEC-a (61970-501 i 61970-552) i njihova ograničenja budući da ovi standardi definišu CIM RDF šemu i aktuelni CIMXML serijalizacioni format kojim je propisano kako se CIM RDF šema koristi za kreiranje XML dokumenata. Razmatrana je postojeća CIM metodologija zasnovana na ovim standardima i dati predlozi za unapređenje ove metodologije u skladu sa tekućim dostignućima na polju semantičkih web tehnologija. Istovremeno je razmatrana modularnost web aplikacija baziranih na CIM modelu podataka sa stanovišta semantičkog web-a. Takođe, kroz rad je prožeta analiza tekućeg stanja modularnosti u web platformi i dat predlog modularne arhitekture web aplikacija koja se oslanja na CIM. U radu su prikazani prototipovi elemenata predložene modularne arhitekture za čiju izradu su iskorišćeni aktuelni i nadolazeći semantički web standardi.

13 Uvod

1.2 Cilj istraživanja i očekivani rezultati

Osnovni cilj ovog istraživanja je predlog unapređenja CIM metodologije tako da istovremeno odgovori aktuelnim zahtevima u elektroenergetskoj industriji, aktuelnim semantičkim web tehnologijama i aktuelnim web preporukama. U svrhu prevazilaženja ograničenja navedenih u predmetu istraživanja i dostizanja navedenog cilja istraživanja potrebno je:  Uskladiti IEC standarde bazirane na RDF arhitekturi koji se odnose na upravljanje elektroenergetskim sistemima, kao i njihovo modelovanje (IEC 61970-501 i IEC 61970-552) sa tekućim W3C RDF preporukama. Ovim se omogućava primena standarnih RDF postupaka i alata na CIM artefakte.  Primeniti nove W3C standarde kako bi se unapredila metodologija CIM modelovanja. Na ovaj način se mogućnosti tekuće metodologije proširuju mogućnostima koje su do sada bile limitirane u CIM-u ili adresirane od strane nekih standarda baziranih CIM-u alternativnim tehnologijama i postupcima, kao na primer primena Object Constraint Language-a (skr. OCL) od strane Evropske mreže operatora prenosnih sistema u standardu za razmenu zajedničkih modela mreže.  Pokazati da je moguće zaključivanje iz CIM modela koji odgovaraju zavisnim CIM profilima (podskupima od interesa CIM UML modela definisanim korišćenjem CIM RDF šeme). Ovim se omogućava izvođenje znanja iz CIM modela na osnovu semantičkih relacija opisanih u CIM profilnim ontologijama. Isti mehanizam je primenjiv i na povezivanje CIM podataka sa drugim podacima dostupnim na internetu.  Razviti web komponente u web platformi koje koriste semantički obogaćene CIM podatke. Implementacijom CIM web komponenti u web platformi obezbeđuje se njihova nezavisnost od klijentskih (engl. front-end) okvira (engl. framework) i njihova iskoristivost u različitim web aplikacijama kao modularnih elemenata. Na osnovu predmeta istraživanja, a prema postavljenim ciljevima istraživanja i do sada postignutim rezultatima na polju istraživanja predmetne oblasti i aktuelnog stanja istraživanja u oblasti, moguće je definisati sledeće hipoteze: Hipoteza 1: IEC standardi koji se odnose na upravljanje elektroenergetskim sistemima, kao i njihovo modelovanje (IEC 61970-501 i IEC 61970-552), su bazirani na RDF arhitekturi i nisu u potpunosti usklađeni sa tekućim W3C RDF preporukama. Hipoteza 2: Aktuelne IEC standarde koji se odnose na upravljanje elektroenergetskim sistemima i njihovo modelovanje, kao i njihove primene u semantičkim web aplikacijama u pametnim mrežama, je moguće proširiti kako bi bili u skladu sa preporukama datim od strane W3C-a. Hipoteza 3: Moguće je proširiti savremene web aplikacije u pametnim mrežama da koriste semantički obogaćene podatke. Hipoteza 4: Moguće je razviti web aplikacije primenljive u pametnim mrežama koje će imati modularne arhitekture i koristiti semantički obogaćene podatke. 1.3 Prikaz disertacije po poglavljima

Rad je podeljen u devet poglavlja. U uvodnom poglavlju opisan je predmet istraživanja, definisani su ciljevi istraživanja, očekivani rezultati i postavljene hipoteze. U drugom poglavlju date su teorijske osnove i pregled literature korišćene za izradu teze. U trećem poglavlju opisana je metodologija istraživanja kroz faze istraživanja i primenjene istraživačke metode. Četvrto poglavlje sadrži opis problema adresiranih ovom tezom. U sledećem, petom poglavlju, dati su predlozi rešenja za opisane probleme. Diskusija rezultata opisana je u šestom poglavlju. Zaključci su izvedeni u sedmom poglavlju, gde su takođe predloženi i pravci daljih istraživanja. Spisak korišćene literature dat je u poglavlju osam. Poslednje deveto poglavlje sadrži dodatna objašnjenja u vidu priloga.

14 Teorijske osnove

2. TEORIJSKE OSNOVE

2.1 Pametna mreža

Termin pametna mreža se prvi put pojavljuje u industriji oko 2003. godine, nakon najvećeg američkog ispada električne energije poznatog kao „Severnoistočni ispad“ (engl. Northeast Blackout of 2003). Ovaj ispad je zahvatio severnoistočne i srednjezapadne delove Sjedinjenih Američkih Država (SAD) i kanadsku provinciju Ontario dana 14. avgusta 2003. godine [10]–[13]. U akademskoj zajednici, ovaj termin se prvi put pominje 2004. godine u radu Massoud Amin-a „Balancing market priorities with security issues“ objavljenog u časopisu „IEEE Power and Energy Magazine“ [14]. Tek nakon 2010. godine ovaj termin je postao sveprisutan u naučnim radovima. Razlog za ovo leži u činjenici da je američka federalna vlada donela „Akt o oporavku“ (engl. Recovery Act) kojim stimuliše istraživače u oblasti pametnih mreža [15]. Ovaj termin se takođe sreće u američkom zakoniku, zvaničnom zapisu akata američkog kongresa (engl. Acts of Congress). Tako na primer, zakonik iz 2007. godine propisuje da je politika SAD-a da podrži modernizaciju nacionalnog električnog prenosnog i distributivnog sistema kako bi se obezbedila pouzdana i bezbedna električna infrastruktura koja može da odgovori budućim zahtevima i koja ispunjava sledeće uslove (koji istovremeno karakterišu pametnu mrežu) [10] :  Povećana upotreba digitalnih informacija i upravljačkih tehnologija kako bi se unapredila pouzdanost, bezbednost, i efikasnost električne mreže.  Dinamička optimizacija operacija i resursa u mreži, sa potpunom zaštitom od napada u sajber prostoru (engl. cyber security).  Postavka i integracija distribuiranih resursa i izvora energije, uključujići obnovljive izvore.  Razvoj i uvođenje upravljanja potrošnjom (engl. Demand Response, skr. DR), potrošačkih resursa i energetski efikasnih izvora.  Postavka pametnih tehnologija (tehnologija u realnom vremenu, automatizovanih i interaktivnih da optimizuju upravljanje uređajima u polju i potrošačkim uređajima) za merenje, izdavanje komandi uređajima u mreži i nadgledanje statusa, kao i automatizaciju distribucije.  Integraciju pametnih uređaja i korisničkih uređaja.  Postavku i integraciju naprednih skladišta električne energije i tehnologija za smanjenje vršnog opterećenja (engl. peak-shaving), uključujući plug-in električna i hibridna električna vozila, termalna skladišta i rashladne uređaje.  Pružanje potrošačima pravovremenih informacija kao i upravljačkih mogućnosti.  Razvoj standarda za komunikaciju i interoperabilnost aparata i opreme povezane na električnu mrežu, uključujući i infrastrukturu koja opslužuje mrežu.  Identifikaciju i smanjivanje nerazumnih ili nepotrebnih prepreka ka usvajanju tehnologija pametne mreže, praksi i usluga.

15 Teorijske osnove

Danas u SAD i Evropi, postoji više inicijativa za definisanjem i uspostavljanjem pametnih mreža. Kao posledica ovih inicijativa postoje brojne definicije za termin pametna mreža. Tako pametna mreža može biti definisana kao stanje, tranzicioni proces ili ciljana arhitektura [16]. Američki Nacionalni institut za standarde i tehnologiju (engl. US National Institute of Standards and Technology, skr. NIST) definiše pametnu mrežu kao modernizaciju sistema za isporuku električne energije takvu da nadgleda, štiti i automatski optimizuje operacije njenih povezanih činilaca od centralnih i distribuiranih generatora, preko visokonaponske prenosne mreže i distributivnih sistema do industrijskih potrošača i sistema za automatizaciju zgrada, postrojenja za skladištenje energije i krajnjih potrošača i njihovih termostata, električnih vozila, aparata i drugih kućnih uređaja [1], [17]. U Evropi je koncept pametne mreže razvijen 2006. godine od strane Evropske tehnološke platforme za pametne mreže (engl. European Technology Platform SmartGrids, skr. ETPSG) podržane od strane Evropske komisije [18]. ETPSG definiše pametnu mrežu kao električnu mrežu koja na inteligentni način integriše akcije svih korisnika povezanih na nju – generatora, potrošača, i onih koji obavaljaju obe prethodno navedene funkcije – sa ciljem da na efikasan način pruže održivo, ekonomično i bezbedno snabdevanje [1], [17]. Prema ovoj viziji, evropske električne mreže treba da budu:  Fleksibilne – ispunjavaju potrebe potrošača prilagođavajući se istovremeno budućim promenama i izazovima.  Dostupne – dozvoljavaju pristup za povezivanje svim korisnicima mreže, posebno obnovljivim izvorima i visoko efikasnim lokalnim generatorima energije, bez ili sa niskom emisijom ugljenika.  Pouzdane – obezbeđuju i poboljšavaju bezbednost i kvalitet snabdevanja, konzistentno potrebama digitalnog doba uz povećanje robustnosti na nepredviđene događaje.  Ekonomične – pružaju najbolju vrednost kroz inovaciju, efikasno upravljanje energijom, ravnopravno nadmetanje i regulaciju. Prema prethodno navedenom, pametna mreža je po NIST-u definisana kao proces tranzicije sa postojećih elektroenergetskih sistema na nove ICT bazirane elektroenergetske sisteme, dok ETPSG definiše pametnu mrežu kao ciljanu arhitekturu. Prema IEC-u, termin pametna mreža se danas više koristi u marketinške svrhe, nego kao tehnička definicija i označava koncept modernizacije električne mreže kojim su obuhvaćeni svi elementi elektroenergetskog sistema između bilo koje dve tačke proizvodnje i potrošnje. Na osnovu datih definicija i tumačenja jasno se uočava da je pažnja usmerena u različitim smerovima i da ne postoji jedan model pametne mreže, već modeli pametnih mreža sa različitim fokusima i nivoima detaljnosti za različite aspekte pametnih mreža, poput integracije distribuiranih izvora energije i skladišta, efikasnog i održivog napajanja električnom energijom, integraciju potrošača koji su istovremeno i proizvođači, inteligentne upotrebe pametne opreme, i drugo [16]. Kako promenljiva elektroenergetska infrastruktura zahteva novu ICT infrastrukturu sa visokim stepenom interoperabilnosti, uobičajeni pristup za rešavanje predstavljenih izazova je primena standarda. Standardizacija u pametnim mrežama Veliki broj država razvija nacionalne planove za razvoj standarda u oblasti pametnih mreža. Pored njih, razne organizacije i kompanije razvijaju sopstvene strategije za razvoj pametnih mreža. Ono što je zajedničko za sve njih je da nude prikaz različitih međunarodnih inicijativa za standardizaciju i daju konkretne preporuke za upotrebu određenih standarda za specifične delove pametnih mreža. U radovima [16], [17], [19] prikazana su istraživanja studija za standardizaciju pametnih mreža i njihove važeće preporuke. Najznačajnija tela za standardizaciju pametnih mreža obuhvataju:  Panel za interoperabilnost pametnih mreža (engl. Smart Grid Interoperability Panel, skr. SGIP) američkog NIST-a.

16 Teorijske osnove

 Međunarodnu elektrotehničku komisiju (engl. International Electrotechnical Commission, skr. IEC).  Asocijaciju za standarde Instituta inženjera elektrotehnike i elektronike (engl. Institute of Electrical and Electronics Engineers, skr. IEEE).  Institut za elektroenergetska istraživanja (engl. Electric Power Research Institute, skr. EPRI).  Nacionalni savet za velike električne sisteme (fra. Conseil International des Grands Reseaux Electriques, skr. CIGRE).  Evropski komitet za standardizaciju (fra. Comité Européen de Normalisation, skr. CEN)  Evropski komitet za elektrotehničku standardizaciju (fra. Comité Européen de Normalisation Electrotechnique, skr. CENELEC).  Institut za evropske telekomunikacione standarde (engl. European Telecommunications Standards Institute, skr. ETSI). Referentne arhitekture u pametnim mrežama Pametna mreža predstavlja složen sistem sistema (engl. system of systems) [20] koji opslužuje različite potrebe njegovih brojnih učesnika (engl. stakeholders). Ona mora da podrži uređaje i sisteme koji su nezavisno razvijani tokom niza godina od strane različitih proizvođača, potrebe različitih elektroenergetskih preduzeća, milione korisnika od industrijskih, preko komercijalnih korisnika do domaćinstava i različita pravila nametnuta od strane regulatornih tela. Kako bi se osigurao neometan rad ovih sistema, ne samo sa tehničke strane u okvirima pametne mreže već i van nje, zbog različitih potreba njenih učesnika za postizanje interoperabilnosti neophodno je slediti određeni skup arhitekturalnih pravila. Kao i druge industrije, rad elektroenergetske industrije zavisi od automatizacije njenih procesa. Vremenom su razvijani brojni arhitekturalni i inženjerski pristupi kojim se poslovni ciljevi učesnika implementiraju na zadovoljavajući način. U cilju razumevanja tekućeg stanja arhitektura u pametnim mrežama potrebno je definisati sledeće termine:  Konceptualni model – predstavlja globalni model koji opisuje učesnike i njihove interakcije u pametnoj mreži. Primeri konceptualnih modela predstavljaju NIST i evropski konceptualni model.  Referentna arhitektura – skup univerzalnih prezentacionih šema kojim se pametna mreža može prikazati iz više uglova, kako bi se predstavile potrebe njenih različitih učesnika i zahtevi za upravljanjem elektroenergetskim sistemom kombinovani sa proširenim zahtevima za interoperabilnošću korišćenjem različitih nivoa detaljnosti opisa. Referentna arhitektura kombinuje nekoliko arhitektura (kao što su funkcionalna, komunikaciona i druge) u zajednički okvir. Primeri referentnih arhitektura predstavljaju Smart Grid Architecture Model (skr. SGAM), IEC TC 57 referentna arhitektura (definisana u okviru IEC 62357-1) i evropska referentna arhitektura. Navedene referentne arhitekture su objašnjene u nastavku.  Interoperabilnost – NIST definiše interoperabilnost kao sposobnost dve ili više mreža, sistema, aplikacija ili komponenti da rade zajedno, razmenjujući i koristeći informacije na bezbedan, efikasan način, bez ili sa zanemarljivim nelagodnostima po korisnika [21]. Interoperabilnost je takođe identifikovana kao jedan od ključnih činilaca pametne mreže [21], kao naprednog elektroenergetskog sistema. Tačnije, pametna mreža zahteva sintaksnu interoperabilnost da bi se postigla fizička razmena podataka i semantičku interoperabilnost da bi se omogućilo ispravno razumevanje i interpretacija značenja podataka [22]. Zbog toga se pod okriljem IEC-a sprovode napori za identifikaciju standarda za interoperabilnost pametnih mreža [1]. Na početku je fokus bio stavljen na definisanje protokola za prenos podataka [23], dok je kasnije on pomeren na interoperabilnost na semantičkom nivou [24]. Ovaj proces je rezultovao

17 Teorijske osnove

usvajanjem CIM-a koji je identifikovan kao jedan od osnovnih IEC standarda za pametne mreže [2], [25].

System Distance to bridge between two systems System Interface A Interface B

No standards available, custom integration needed

Interface serializations are standardized (syntactic interoperability) Interfaces use common semantic model - CIM (semantic interoperability)

Plug and automate standard

Scope of standards-based integration

Slika 1. Prikaz integracione distance između sistema [2] Slika 1 prikazuje različite stepene integracione distance koje je potrebno prevazići kako bi se dva različita sistema uspešno integrisala. Kao što je prikazano, u slučaju kada nema ili nije iskorišćen pristup definisan standardom, integracioni jaz je najveći. On se smanjuje ukoliko je prisutna sintaktička interoperabilnost tj. standardizovana serijalizacija interfejsa. Kada se na prethodno doda i semantička interoperabilnost poput interfejsa koji koriste CIM model tada je ovaj jaz još manji. Integraciona distanca je najmanja kada su sistemi povezani standardom koji obezbeđuje priključivanje i automatizaciju (što je u praksi veoma retko).

2.1.2.1 NIST konceptualni domenski model NIST konceptualni domenski model pametne mreže (takođe poznat kao NIST referentni model i NIST konceptualni model) vrši podelu pametne mreže na sedam domena povezanih bezbednosnim, komunikacionim i električnim tokovima (Slika 2). Svaki domen i njegovi poddomeni obuhvataju konceptualne role i servise. Role predstavljaju očekivano ponašanje učesnika i njima odgovara određen skup odgovornosti. Domeni uključuju različite tipove servisa (realizovane u vidu aplikacija), interakcije između njih, i učesnike koji donose odluke i razmenjuju informacije potrebne za dostizanje zadatih ciljeva poput upravljanja potrošačima, ispadima ili skladištenjem električne energije iz distribuiranih izvora. Jedna ili više rola mogu da upravljaju servisom unutar nekog domena. Role unutar jednog domena obično imaju slične ciljeve. Međutim, komunikacija unutar jednog domena može da se odvija na različite načine, tako da za postizanje interoperabilnosti treba da budu ispunjeni različiti zahtevi. Role jednog domena često komuniciraju sa drugim domenima (Slika 2). Takođe, neki domeni mogu da sadrže komponente drugog domena. Na primer, distributivno preduzeće (Tabela 1) nije u potpunosti sadržano u distributivnom domenu, pošto sadrži uloge u domenu operacija koje se odnose na upravljanje distribucijom, odnosno u domenu potrošača ono sadrži ulogu nadgledanja. Tabela 2 prikazuje pregled aplikativnih kategorija po domenima.

18 Teorijske osnove

Slika 2. NIST konceptualni referentni model pametne mreže [21]

Tabela 1. Domeni i njihove uloge po NIST konceptualnom modelu pametne mreže [21] Domen Opis domena Potrošači Domen obuhvata krajnje potrošače električne energije, gde se razlikuju tri osnovna tipa potrošača: domaćinstva, komercijalni i industrijski potrošači. Ovi potrošači takođe mogu da proizvode, skladište i upravljaju upotrebom električne energije. Tržište Domen tržišta obuhvata operatore i ostale učesnike na tržištu električne energije. Usluge Domen usluga obuhvata organizacije koje pružaju uslužne servise kako potrošačima električne energije tako i elektroenergetskim preduzećima. Operacije Domen operacija obuhvata učesnike koji upravljaju radom elektroenergetskog sistema obezbeđujući što kraće prekide napajanja električnom energijom. Proizvodnja Domen proizvodnje obuhvata proizvodnju električne energije, koja takođe može i da se skladišti za kasniju distribuciju. Domenom su obuhvaćeni tradicionalni i DER izvori električne energije. Tradicionalna proizvodnja električne energije pretpostavlja sagorevanje fosilnog goriva (ugalj, prirodni gas), korišćenje obnovljivih izvora (kao što su voda, vetar, Sunce) ili nuklearne energije. DER-ovi su sa druge strane povezani sa električnom energijom proizvedenom i skladištenom u potrošačkom i distributivnom domenu, i sa izvorima dobijenim od pružaoca usluga. Prenos Domen prenosa obuhvata proces prenosa velikih količina električne energije na daljinu putem visokonaponske mreže. U okviru ovog domena takođe može da se proizvodi i skladišti električna energija. Distribucija Domen distribucije obuhvata proces distribucije električne energije od i do potrošača. U okviru ovog domena takođe može da se proizvodi i skladišti električna energija.

Tabela 2. Pregled aplikativnih kategorija po domenima [21] Domen Aplikativna Kategorija Opis Potrošači Automatizacija domaćinstva Sistem koji upravlja različitim funkcijama unutar ili građevinskog objekta objekta poput osvetljenja i temperature. Industrijska automatizacija Sistem kojim se kontroliše industrijski proces poput proizvodnje ili skladištenja. Mikro generatori Obuhvataju različite tipove distribuiranih izvora

19 Teorijske osnove

Domen Aplikativna Kategorija Opis energije poput solarnih, vetro i hidroelektričnih generatora koji na lokaciji potrošača transformišu energiju u električnu. Oni se mogu nadgledati, kontrolisati, i programirati da rade po zadatom rasporedu. Skladištenje energije Obuhvata skladištenje energije koja se može direktno ili nekim postupkom transformisati u električnu. Primeri predstavljaju termalne jedinice za skladištenje i baterije. Tržište Upravljanje tržištem Obuhvata aplikacije za upravljanje veleprodajnim tržištem, prenosnim, servisnim i tržištem potrošnje. Maloprodaja Maloprodaja je povezana sa organizacijama za trgovinu kako bi joj bilo omogućeno učešće na veleprodajnom tržištu. Agregacija DER-ova Omogućava grupisanje sitnijih resursa u cilju njihovog učestvovanja na većim tržištima. Trgovina Obuhvata aplikacije koje se bave kupovinom i prodajom energije. Tržišne operacije Aplikacije čiji je cilj omogućavanje neometanog funkcionisanja tržišta. Pomoćne operacije Funkcionalnosti ovih aplikacija definisane su od strane FERC, NERC i raznih ISO tela. Usluge Upravljanje potrošačima Aplikacije za upravljanje odnosima sa potrošačima obezbeđuju kontaktne tačke za rešavanje korisničkih pitanja i problema (npr. call centri). Instalacija i održavanje Aplikacije obezbeđuju nadgledanje instalacija i opreme održavanje uređaja koji komuniciraju sa pametnom mrežom. Upravljanje građevinskim Aplikacije obezbeđuju nadgledanje i kontrolu raspodele objektima električne energije u građevinskim objektima u skladu sa signalima dobijenim od pametne mreže. Upravljanje domaćinstvom Aplikacije obezbeđuju nadgledanje i kontrolu raspodele električne energije u domaćinstvu u skladu sa signalima dobijenim od pametne mreže. Naplata Aplikacije omogućavaju upravljanje potrošačkim informacijama potrebnim za naplatu, uključujući naloge za naplatu i sam proces naplate. Upravljanje računima Aplikacije omogućavaju upravljanje poslovnim računima snabdevača i potrošača. Operacije Nadgledanje Aplikacije obezbeđuju nadgledanje topologije mreže, opterećenja u mreži i statusa upravljačke opreme. Kontrola Aplikacije u kojima je kontrola raspoređena na role u domenu, tako da nadgledaju šira područja, podstanice, lokalnu automatiku i slično. Upravljanje kvarovima Obuhvata aplikacije za lociranje, identifikaciju, izolaciju kvara, i brzinu kojom se napajanje ponovo može uspostaviti. Ove aplikacije se koriste kao izvor informacija za krajnje potrošače, koordinaciju ekipa na terenu i prikupljanje statistike za izveštavanje. Analiza Uloga ovih aplikacija je analiza istorije operacija izvršenih u realnom vremenu i njihovo poređenje sa incidentima u mreži, topologijom, i opterećenjem u cilju optimizacije periodičnog održavanja.

20 Teorijske osnove

Domen Aplikativna Kategorija Opis Izveštavanje i statistika Svrha ovih aplikacija je arhiviranje podataka iz realnog vremena i izvođenje povratne analize o efikasnosti i pouzdanosti sistema. Mrežni proračuni Ove aplikacije između ostalog omogućavaju procenu pouzdanosti i bezbednosti elektroenergetskog sistema. Obučavanje Aplikacije za obučavanje dispečera omogućavaju simulaciju realnih scenarija. Evidentiranje opreme Aplikacije za evidentiranje opreme služe za praćenje stanja podstanične i mrežne opreme. One uključuju geografske podatke i prikaze, evidenciju neelektrične opreme i omogućuju planiranje uvođenja nove opreme. Planiranje radova Aplikacije za planiranje i optimizaciju radova omogućavaju simulaciju operacija u mreži, poput planiranih uključivanja/isključivanja, slanja ekipa na teren, obaveštavanja pogođenih potrošača, i planiranja uvoza energije. Održavanje i građevinski Ova kategorija aplikacija služi za koordinaciju, radovi nadgledanje, pripremu terena, organizaciju građevinskih radova, planiranje izvođenja održavanja i građevinskih radova. Planiranje proširenja mreže Ova kategorija aplikacija služi za pravljenje dugoročnih planova u cilju osiguravanja pouzdanosti elektroenergetskog sistema. Njima se nadgledaju troškovi, performanse, planiraju građevinski radovi i proširenja mreže (poput vodova, fidera, prekidačke opreme,…). Podrška potrošačima Ova kategorija aplikacija služi da pomogne potrošačima u kupovini, primeni i rešavanju problema usluga/servisa elektroenergetskog sistema. Proizvodnja Kontrola Obuhvata aplikacije za upravljanje tokom električne energije i pouzdanošću sistema. Merenje Obuhvata digitalna i analogna merenja kolektovana SCADA sistemom koja se propagiraju do kontrolnih centara u domenu operacija. Zaštita Obuhvata reakciju na greške i druge događaje u sistemu koji mogu da izazovu ispade, restrikcije i uništenje opreme. Arhiva Aplikacije koje omogućavaju uvid u arhivu u finansijske, inženjerske, i operativne svrhe kao i predviđanja. Upravljanje opremom Obuhvata aplikacije za proveru opreme, izračunavanja životnog veka uređaja, evidentiranje svih operacija nad opremom kao i servisnih radnji u cilju donošenja budućih operativnih i inženjerskih odluka. Prenos Podstanica Sistem za kontrolu i nadgledanje unutar podstanice. Skladište Sistem za upravljanje punjenjem i pražnjenjem jedinice za skladištenje energije. Merenje i kontrola Uključuje sve tipove sistema za merenje i kontrolu u cilju zaštite i optimizacije operacija u mreži. Distribucija Podstanica Sistem za kontrolu i nadgledanje unutar podstanice. Skladište Sistem za upravljanje punjenjem i pražnjenjem jedinice za skladištenje energije. Distriburana proizvodnja Upravljanje izvorom električne energije smeštenim na

21 Teorijske osnove

Domen Aplikativna Kategorija Opis distributivnoj strani mreže. DER Energetski izvori tipično locirani kod potrošača ili u vlasništvu operatora distributivne mreže. Merenje i kontrola Uključuje sve tipove sistema za merenje i kontrolu u cilju zaštite i optimizacije operacija u mreži.

2.1.2.2 SGAM referentna arhitektura Referentna arhitektura za pametnu mrežu (engl. Smart Grid Architecture Model, skr. SGAM) predstavlja univerzalni šablon arhitekture za pametnu mrežu razvijen od strane evropske radne grupe za referentnu arhitekturu M/490 (engl. EU Mandate M/490’s Reference Architecture working group) [26]. SGAM nudi arhitekturalni pristup za proces dizajniranja različitih scenarija iz domena pametne mreže. Taj pristup je, na tehnički neutralan način, predstavljen iz različitih uglova sa stanovišta interoperabilnosti preko tzv. arhitekturalnih pogleda. SGAM je trodimenzioni model, koji spaja dimenziju sačinjenu od pet slojeva interoperabilnosti (poslovnog, funkcionalnog, informacionog, komunikacionog i komponentnog sloja) sa dve dimenzije tzv. ravni pametne mreže koju čine zone (zona procesa, polja, stanica, operacija, preduzeća i tržišta) i domeni (koji pokrivaju ceo lanac dobijanja električne energije: proizvodnju, prenos, distribuciju, DER- ove, i potrošačka mesta isporuke). Slika 3 ilustruje SGAM trodimenzionalni model.

Slika 3. Pregled SGAM-a [27], [28] SGAM-a čine sledeći slojevi interoperabilnosti:  Poslovni sloj (engl. Business layer) – obuhvata strategijske i taktičke ciljeve i procese, kao i regulatorne aspekte.

22 Teorijske osnove

 Funkcionalni sloj (engl. Function layer) – IT (engl. Information Technology) orijentisan, tehnološki nezavisan opis slučajeva korišćenja, funkcija i servisa.  Informacioni sloj (engl. Information layer) – sadrži poslovne objekte i modele podataka funkcionalnog novoa kako bi omogućio interoperabilnost.  Komunikacioni sloj (engl. Communication layer) – sadrži specifikaciju protokola i procedura za razmenu podataka između komponenti zasnovanu na informacionom sloju.  Komponentni sloj (engl. Component layer) – predstavlja fizički i tehnički pogled na komponente pametne mreže, koji pored elektroenergetske infrastrukture i opreme takođe razmatra ICT infrastrukturu i sisteme. SGAM analiza se može primeniti na slojeve interoperabilnosti prema različitim nivoima apstrakcije. Nivoi apstrakcije variraju od konceptualnog do nivoa detaljnosti potrebnog za implementaciju. Kao što se može videti u primeru nivoa apstrakcije (Slika 4), tokovi informacija u SGAM informacionom nivou referenciraju IEC standarde gde sintaksa za zapis informacija (XML šema, RDF) upravo odgovara IEC CIM 61970-501 i 61970-552 standardima.

Slika 4. Nivoi apstrakcije SGAM-a [28] SGAM koristi servis orijentisani pristup za opis arhitekture pametne mreže u velikom poslovnom okruženju. Servis orijentisani pristup je namenjen pre svega za modularizaciju posla na atomičke jedinice/servise kojim se modeluje saradnja različitih delova poslovnog procesa. Primenom ovog pristupa moguće je blagovremeno ograničiti uticaj izmena u sistemu i unapred prepoznati kaskadne uticaje unete izmenama u celokupnu organizaciju. Takođe, servis orijentisani pristup adresira tipične probleme koji se sreću u izolovanim (engl. siloed) rešenjima, koja su obično dizajnirana ne obraćajući pažnju na šire okvire, uticaj različitih poslovnih jedinica i dugoročne ciljeve.

2.1.2.2.1 GWAC stek GridWise Architecture Council (skr. GWAC) je formiran od strane američkog departmana za energiju u cilju promovisanja i omogućavanja interoperabilnosti između entiteta koji učestvuju u nacionalnom elektroenergetskom sistemu. GWAC nudi industrijske preporuke i alate potrebne za implementaciju pametne mreže. GWAC je kreirao okvir za uspostavljanje konteksta interoperabilnosti (engl. GWAC Interoperability Context-Setting Framework) poznat i kao GWAC stek.

23 Teorijske osnove

GWAC stek je podeljen u tri celine: organizacionu, informacionu i tehničku (Slika 5). Organizaciona celina se bavi razradom poslovnih funkcija i identifikacijom njihove pripadnosti okvirima organizacije, razvrstanih u tri kategorije: ekonomsku i regulatornu politiku, poslovne ciljeve i poslovne procedure. Preslikavanje organizacionih aspekata na odgovarajući informacioni model je cilj informacione celine, koju čine sledeće kategorije interoperabilnosti: poslovni kontekst i semantičko razumevanje. Tehnička celina se odnosi na osnovnu konektivnost potrebnu za uspostavljanje mrežne komunikacije između distribuirane opreme i aplikacija. Ona uključuje sledeće kategorije: sintaktičku interoperabilnost, mrežnu interoperabilnost i osnovnu konektivnost. Svih osam kategorija interoperabilnosti u GWAC steku čine [1], [29]: 1. Ekonomska i regulatorna politika (engl. Economic-regulatory policy) – obuhvata političke i ekonomske ciljeve ugrađene u regulatorna pravila i državne zakone. 2. Poslovni ciljevi (engl. Business objectives) – ova kategorija obuhvata strateške i taktičke ciljeve deljene između preduzeća. 3. Poslovne procedure (engl. Business procedures) – ova kategorija podrazumeva razumevanje obima i zadataka određene funkcije. 4. Poslovni kontekst (engl. Business context) – podrazumeva razumevanje upotrebe informacija u svrhe određene poslovne funkcije. 5. Semantičko razumevanje (engl. Semantic understanding) – podrazumeva razumevanje koncepata sadržanih u porukama razmenjenim između sistema. 6. Sintaktička interoperabilnost (engl. Syntactic interoperability) – se odnosi na strukturu podataka poruka koje se razmenjuju izmedju opreme i aplikacija u pametnoj mreži. Standardi od značaja za ovu kategoriju obuhvataju HTML, XML i SOAP. 7. Mrežna interoperabilnost (engl. Network interoperability) – obuhvata mehanizam za razmenu poruka između više sistema putem različitih tipova mreža. Komunikacioni standardi od važnosti za ovu kategoriju između ostalih obuhvataju TCP, UDP, FTP i IP(v6). 8. Osnovna konektivnost (engl. Basic connectivity) – obuhvata mehanizam za uspostavljanje fizičkih i logičkih veza između sistema. Najznačajniji standardi za uspostavljanje ove vrste konektivnosti uključuju: Ethernet, WiFi i PPP (engl. Point-To-Point Protocol).

Slika 5. GWAC stek [27] GWAC kategorije interoperabilnosti predstavljaju opšteprihvaćenu metodologiju za postizanje interoperabilnosti između sistema i komponenti. NIST identifikuje GWAC kategoriju semantičkog razumevanja kao najkritičniju za postizanje interoperabilnosti u pametnoj mreži [21]. Slika 6 prikazuje

24 Teorijske osnove mapiranje GWAC kategorija interoperabilnosti na SGAM slojeve interoperabilnosti, gde je GWAC semantičko razumevanje mapirano na SGAM informacioni sloj.

Economic/Regulatory Policy Business Layer Business Objectives

Business Procedures Function Layer System System A System System B Business Context Information Layer Semantic Understanding

Syntactic Interoperability Communication Layer

Network Interoperability Component Layer Basic Connectivity

Slika 6. Mapiranje GWAC na SGAM [1]

2.1.2.3 Evropski konceptualni model i referentna arhitektura Evropski konceptualni model (engl. European Union M/490 Smart Grids conceptual model) je razvijen od strane koordinacione grupe evropske unije za pametne mreže (engl. European Union Smart Grid-Coordination Group, skr. SG-CG) osnovane od strane CEN-a, CENELEC-a i ETSI-ja. On se zasniva na NIST konceptualnom domenskom modelu koji je prilagođen i proširen za specifične evropske potrebe uvođenjem [30], [27]: 1. Evropskog konceptualnog modela – NIST konceptualni domenski model je proširen uvođenjem novog DER domena kako bi se detaljnije definisale arhitekturalne zone u pametnoj mreži, Slika 7. 2. Arhitekturalnih pogleda – Primenjeni su slojevi interoperabilnosti na definisane zone kako bi se uspostavila trodimenziona reprezentacija, Slika 3. Za razliku od SGAM-a, evropska referentna arhitektura razmatra četiri arhitekturalna pogleda na pametnu mrežu, i to poslovni, funkcionalni, informacioni i komunikacioni pogled. 3. SGAM-a – Inkorporirane su GWAC kategorije interoperabilnosti, kojim su definisani i razdvojeni zahtevi za interoperabilnost na tri kategorije: organizacionu, informacionu i tehničku.

Slika 7. Evropski konceptualni model [27]

25 Teorijske osnove

2.1.2.4 Referentna arhitektura definisana u okviru IEC 62357-1 IEC 62357 serija standarda predstavlja najobimnije standarde razvijene od strane IEC Tehničkog komiteta 57 (engl. Technical Committee 57, skr. TC 57). Ona kombinuje brojne IEC standarde za upravljanje elektroenergetskim sistemima i razmenu informacija među njima u referentnu arhitekturu. Ciljevi ove serije standarda su [2]:  Uspostavljanje referentne arhitekture kako bi se prikazala povezanost između postojećih standarda.  Identifikacija oblasti koje zahtevaju harmonizaciju između TC 57 standarda.  Definisanje budućih napora za standardizaciju. Slično postojećim konceptualnim modelima (NIST-ovom i evropskom), IEC TS 62913 standard organizuje domene pametne mreže u pet klastera:  Domeni vezani za mrežu – uključuju prenosni, distributivni i mikrogrid domen.  Tržišni domen.  Domeni resursa povezanih na mrežu – ovi domeni obuhvataju domen proizvodnje, DER domen, domen upravljanja potrošačima i domen skladištenja energije.  Električni prenosni domen.  Domen pomoćnih funkcija – koji uključuje domen automatizacije podstanica, domen napredne infrastrukture za pametna brojila i domen održavanja elektroenergetskih postrojenja. IEC TS 62913 konceptualni model daje pregled domena i njihovih interakcija u pametnoj mreži (Slika 8). Ovaj konceptualni model predstavlja model opšteg nivoa za TC 57 referentnu arhitekturu opisanu IEC 62357-1 standardom.

Grid Markets Transmission Grid Management Wholesale Market Grid Capacity Market (including System Operation)

Distribution Grid Management Flexibility Market Capacity Market

Micro-Grid Management Balancing Market Retail Market Smart Substation Automation Electricity Services Balancing Metering Management Trading Responsibilities Asset Management

(Smart Grid & Markets Interface)

Resources Related to Grid Bulk Generation Distributed Energy Resources Storage

Smart Industry, Building and Home Electric Transportation

Slika 8. IEC TS 62913 konceptualni model [28] Mapiranje TC 57 referentne arhitekture na SGAM domene i zone prikazuje Slika 9. Ovom arhitekturom pokriveni su informacioni i komunikacioni arhitekturalni pogledi na pametnu mrežu.

26 Teorijske osnove Market Market Place

Trading Trading System Trading System Trading System Trading System System Reference

62325 62325 62325 62325 62325 Enterprise Architecture (TC57 standards) 61970/61968 62325

62351 covers all 61970/ 61970/ 61970/ 61968 62746 62746 security aspects.

61968 61968 61968 Operation Station Field Process MDMS 60870-6 60870-6 Generation DER 61968 Some security Management EMS/SCADA DMS/SCADA Management Head End aspects are System System System System System handled by some H/B/I specific standards. 61850 Management System Smart Meter 60870-5-101/104 60870-5-101/104 60870-5-101/104 61850 Gateway / WAN Information Exchange 61850 61850 61850 61400-25 CIM Interface between Market and Power Standards 61850 61850 61850 61850 Smart Meter CIM Market Standards 61400-25-2 DER System CIM Power System Standards (Generation, Substation and Substation and IEC 61850 Standards Plant Storage, Transmission Distribution 61850 Automation Controllable Load, Automation Automation EV Charging Station) Controllable Load, Storage, Generation

Generation Transmission Distribution DER Customer Premises Slika 9. TC 57 referentna arhitektura [28]

2.1.2.5 Referentna arhitektura definisana u okviru IEC 62443 IEC 62443 serijom standarda i tehničkih izveštaja definisane su procedure za implementaciju elektronski bezbednih industrijskih sistema za automatizaciju i kontrolu (engl. Industrial Automation and Control System, skr. IACS). IACS sistemi su evoluirali od pojedinačnih, izolovanih računara sa instaliranim vlasničkim (engl. proprietary) operativnim sistemima i vlasničkim mrežama do međusobno povezanih sistema i aplikacija koji koriste komercijalne tehnologije (poput operativnih sistema i protokola) [31]. Danas su IACS sistemi integrisani u preduzeća i njihove poslovne aplikacije putem različitih komunikacionih mreža [31]. Referentni model predstavlja generički pogled na integrisani industrijski sistem izražen preko niza logičkih nivoa (Slika 10).

Slika 10. Referentni model za IEC 62443 standarde [31]

27 Teorijske osnove

Nivoi referentnog modela obuhvataju [31]:  Poslovni nivo (engl. Level 4 – Enterprise systems) – opisuje poslovno planiranje i logistiku uključujući sve poslovne aktivnosti potrebne za upravljanje preduzećem.  Operativni nivo (engl. Level 3 – Operations management) – uključuje funkcije vezane za upravljanje poslovnim tokovima u cilju proizvodnje željenog proizvoda.  Nivo nadzora i upravljanja (engl. Level 2 – Supervisory control) – se odnosi na funkcije zadužene za nadgledanje i kontrolu fizičkih procesa.  Nivo lokalne ili osnovne kontrole (engl. Level 1 – Local or basic control) – se odnosi na funkcije za osluškivanje i manipulaciju fizičkim procesima.  Procesni nivo (engl. Level 0 – Process) – se odnosi na stvarne fizičke procese. On uključuje senzore i aktuatore direktno povezane na sam proces i procesnu opremu. Referentnu arhitekturu sačinjavaju međusobno povezani resursi specifični za potrebe preduzeća. IEC 62443-1-1 [31] opisuje model bezbednosnih zona (engl. Zone and Conduit Security Model) zasnovan na referentnoj arhitekturi. Ovaj model se bazira na fizičkom i logičkom razdvajanju sistema koje je potrebno zaštititi, kao i grupisanju uređaja i aplikacija koji dele iste bezbednosne zahteve, stepen kritičnosti resursa i posledica koje bezbednosni incidenti mogu imati. Model je zasnovan na konceptu zone (engl. zone) i kontrolisanog komunikacionog kanala (engl. conduit) radi obezbeđivanja segmentacije i izolacije različitih komponenti unutar sistema. Bezbednosna zona je logička grupa resursa koji čine jednu administrativnu celinu u kojoj važi ista bezbednosna politika (određena dozvoljenim protokolima, pravilima za pristup resursima, i slično). Dodatna podela na podzone vrši segmentaciju resursa na osnovu zadatog kriterijuma. Standard međunarodnog društva za automatizaciju (engl. The International Society of Automation, skr. ISA), definiše prvi nivo segmentacije na osnovu fizičke lokacije resursa, dok su ostali nivoi segmentacije na podzone određeni logičkim grupisanjem resursa na osnovu specifičnih bezbednosnih zahteva [30]. Komunikacija između dve zone se odvija putem kontrolisanih komunikacionih kanala. Bezbedan komunikacioni kanal predstavlja tok podataka između dve zone gde je razmena podataka osigurana odgovarajućim bezbednosnim mehanizmima. Za kontrolu toka podataka između dve zone se koriste pristupne tačke kojima se kontroliše dolazni i odlazni saobraćaj u svakoj zoni. U tehničkom izveštaju američkog departmana za energiju (engl. Department of Energy) dat je predlog preporuka za implementaciju bezbednog prenosa podataka u složenim kritičnim infrastrukturama primenljiv na elektroenergetska, naftna i gasna preduzeća i kontrolne sisteme koje implementiraju [32]. Ovaj predlog je zasnovan na IEC 62443 referentnom modelu. Slika 11 prikazuje primer bezbednosne arhitekture industrijskog kontrolnog sistema razvijenog u skladu sa IEC-62443 modelom bezbednosnih zona i prethodno navedenim preporukama (originalna slika je preuzeta iz SE DMS prakse i dorađena za potrebe ove disertacije). Ova bezbednosna arhitektura je podeljena na pet bezbednosnih zona (spoljašnju zonu, zonu javnog pristupa, poslovnu zonu, operativnu DMZ zonu, i operativnu zonu). Nivoi 1-5 i njihovi podnivoi (3.5 i 4.5) predstavljaju hijerarhijske nivoe bezbednosnih zona.

28 Teorijske osnove

Level 5 Independent CC Oversight Vendor Support External Connections Internet

Level 4.5 Enterprise DMZ

Directory Web Mail

Level 4 Enterprise

Directory CMS GIS

Level 3.5 Operations DMZ

Directory Web Historian ICCP Integration DTS

Level 3 Operations

FEP SCADA EMS OMS ADMS Historian AMI Headend Phasor App Field devices below this line Level 2 Control Bus Repeater RTU Local HMI PDC

Level 1 Instrumentation AMI Security ZoneSecurity AMI Protection Relay Security ZoneSecurityRelay Protection SCADA SecurityZone SCADA IED IED IED IED PMU PMU IED – Intelligent Electronic Device RTU – Remote Terminal Unit HMI – Human Machine Interface PDC – Phasor Data Consolidator PMU – Phasor Measurement Unit FEP – Front End Processor AMI – Advanced Metering Infrastructure Slika 11. Primer implementacije IEC-62443 u elektroenergetskom kontrolnom sistemu Demilitarizovana zona (engl. demilitarized zone, skr. DMZ) je bezbednosna zona logički postavljena između dve bezbednosne zone, u opštem slučaju između unutrašnje i spoljašnje zone, u cilju obezbeđivanja:  politike osiguranja informacija (engl. Information Assurance Policy) ostvarenih spoljnjom razmenom,  kontrolisanog pristupa spoljnjih, neproverenih izvora informacija i  zaštite unutrašnje zone od spoljašnjih napada [33]. Upravo su web serveri smešteni u demilitarizovane javne i operativne zone (nivoi 4.5 i 3.5) zbog bolje kontrole i izolacije spoljnjeg saobraćaja. Spoljašnja zona (engl. Level 5 – External connections) je eksterna oblast koja ne pripada nadležnosti organizacije. U njoj nije moguće propisati takvu bezbednosnu politiku koja će se primenjivati da odgovara organizaciji. U okvirima ove zone mogu postojati podzone sa različitim namenama, na primer za potrebe praćenja sistema od strane regulatornih tela (Oversight bezbednosna zona, Slika 11), održavanje sistema od strane verifikovanih prodavaca softvera (Vendor Support bezbednosna zona, Slika 11), za komunikaciju sa udaljenim kontrolnim centrima (Independent CC bezbednosna zona, Slika 11), i slično. Zona javnog pristupa (engl. Level 4.5. – Enterprise DMZ) je eksterna DMZ zona koja omogućava javni pristup serverima organizacije okrenutim ka spoljnjim izvorima (usklađenim sa definisanom korporativnom politikom). Na ovaj način ona štiti internu mrežu od spoljašnjih pretnji i ograničava izloženost internih resursa spoljašnjoj zoni (npr. internetu). Spoljašnji korisnici imaju direktan pristup uređajima i servisima u ovoj zoni, npr. web, e-mail, i proxy serverima. Osetljive informacije mogu prolaziti i biti prikupljane u ovoj zoni, ali svakako ne i skladištene. U te svrhe treba koristiti zone sa višim stepenom bezbednosti.

29 Teorijske osnove

U poslovnoj zoni (Level 4. – Enterprise) se obavljaju svakodnevne operacije zaposlenih upotrebom različitih servisa za unapređenje i izvršavanje poslovnih procesa (npr. sistem za upravljanje poslovanjem i odnosima sa klijentima, sistem za naplatu, itd.). Komunikacija sa spoljašnjom zonom se odvija preko servera iz zone javnog pristupa. Korisnici Smart Grid web aplikacija u elektroenergetskim preduzećima po pravilu pripadaju ovoj zoni. Ukoliko neki spoljašnji korisnik ima potrebu da koristi web aplikacije (ili uopšteno pristupa resursima ove zone) tada je neophodno uspostaviti VPN tunel sa jakom autentikacijom ka ovoj zoni. Operativna DMZ zona (Level 3.5. – Operations DMZ) je interna DMZ zona između poslovne i operativne zone. Ona omogućava resursima iz poslovne zone da na bezbedan način pristupe operativnim podacima, npr. istorijskim podacima Sistema za nadzor i upravljanje industrijskim procesima (engl. Supervisory Control and Data Acquisition, skr. SCADA). Kako tranzitni saobraćaj nije dozvoljen u ovoj zoni, operativni podaci (i njima pripadajući serveri) kojima se pristupa ne smeju biti smešteni u poslovnoj ili SCADA zoni već u operativnoj DMZ zoni gde predstavljaju replike odgovarajućih podataka/servera iz operativne zone. Pristup ovoj zoni se vrši iz zona koje su pod kontrolom organizacije, ili iz eksternih sistema pod utvrđenim bezbednosnim pravilima, npr. komunikacija sa udaljenim kontrolnim centrima preko ICCP protokola, razmena podataka sa regulatornim telima i drugo. Web serveri koji hostuju Smart Grid aplikacije (web aplikacije i integracione web servise) su instalirani u ovoj zoni. U operativnoj zoni (Level 3. – Operations) su instalirane aplikacije sa strogo definisanim zahtevima za pouzdanost i raspoloživost. Ovo su kritične aplikacije čije narušavanje može imati posledice po stabilnost sistema, kao npr. SCADA sistemi. Zonu ograničenog pristupa predstavlja industrijski kontrolni sistem koji objedinjuje kritične servise namenjene za nadzor i upravljanje fizičkim procesima, a čiji gubitak znači prekid usluge. Ovoj zoni pripadaju fizički uređaji (Level 1. – Instrumentation) i uređaji za razmenu podataka sa kontrolnim sistemom (Level 2. – Control Bus). Direktna komunikacija je omogućena samo sa operativnom zonom. 2.2 Standardi u elektroenergetskim sistemima

Dva najpopularnija načina za povezivanje softverskih aplikacija u elektroenergetskoj industriji su upotreba MultiSpeak specifikacije i CIM standarda [34]. MultiSpeak je kreiran od strane Nacionalne asocijacije ruralnih električnih udruženja (engl. National Rural Electric Cooperative Association, skr. NRECA), kako bi svojim članovima (njih preko 1000) nametnuo da pričaju istim jezikom i u upotrebi je uglavnom na teritoriji Severne Amerike. Pošto je MultiSpeak fokusiran na distribuciju, EPRI je želeo da adresira potrebe proizvodnje i prenosa, kao i distribucije u okviru novog standarda nazvanog Common Information Model. Common Information Model Common Information Model (skr. CIM) [35] predstavlja integracioni programski okvir definisan serijom IEC standarda koji su ujedno najviše preporučivani ICT standardi u elektroenergetskom domenu. CIM je dizajniran kao apstraktni i generički model elektroenergetskog sistema. Kao takav, CIM se kontinuirano razvija u dva pravca. Prvi pravac predstavlja razvoj sveobuhvatnog modela podataka održavanog u objedinjenom jeziku modeliranja (engl. Unified Modeling Language, skr. UML), gde je UML paketima opisan logički informacioni model CIM-a. Drugi pravac predstavljaju specificirana tehnološka mapiranja kojim ovaj model postaje primenjiv u praksi. U osnovi CIM se u elektroenergetici koristi na dva načina:  Razmenu poruka baziranih na XML serijalizaciji.  Razmenu izgrađenosti elektroenergetskih mreža baziranih na RDF serijalizaciji. CIM je iniciran 1993. godine u okviru EPRI projekta za kreiranje Aplikativnog programskog interfejsa za kontrolne centre (engl. Control Center Application Program Interface, skr. CCAPI) sa

30 Teorijske osnove idejom da se omogući integracija nezavisno razvijenih aplikacija Sistema za upravljanje prenosnom elektroenergetskom mrežom (engl. Energy Management System, skr. EMS) i time eliminiše monopol nametnut od strane izabranog isporučioca softvera u okviru jednog elektroenergetskog preduzeća [36], [37]. U te svrhe je napravljen interni model baze podataka Sistema za upravljanje prenosnom elektroenergetskom mrežom i Sistema za nadzor i upravljanje industrijskim procesima. Vremenom je CIM prerastao svoju prvobitnu svrhu i danas predstavlja jednu veliku ontologiju elektroenergetskog domena. Dok se danas razvoj i standardizacija CIM-a vrši pod okriljem IEC-a i njegovog Tehničkog komiteta 57 (TC 57), za podršku elektroenergetskim preduzećima, isporučiocima softvera i konsultantima je zadužena CIM korisnička grupa (engl. CIM Users Group, skr. CIMug) [38]. CIM familija standarda može grubo da se podeli u sledeće tri serije:  IEC 61970 – Aplikativni programski interfejs za sisteme za upravljanje elektroenergetskim sistemom (EMS-API). U okviru ove serije standarda definisan je osnovni model podataka potreban za modelovanje elektroenergetskih mreža. Kako je jedan od ciljeva CIM-a da obezbedi model podataka koji ne zavisi od platforme, definisana su i mapiranja na specifične tehnologije poput RDF-a i XML-a (preko standarda IEC 61970-501 i IEC 61970-552).  IEC 61968 – Integrisanje aplikacija u elektroenergetskim sistemima — Interfejsi sistema za upravljanje distribucijom. Glavni deo ove serije predstavlja Referentni model interfejsa kojim se specificiraju slučajevi korišćenja, interfejsi i poruke u elektroenergetskom domenu. Takođe, sadrži proširenja osnovnog modela podataka datog u IEC 61970 seriji standarda od interesa za distribuciju.  IEC 62325 – Okvir za komunikaciju na tržištu električnom energijom. Centralni deo ove serije standarda se bavi komunikacijom između učesnika na tržištu i tržišnih operatera. Takođe, data je podrška za dva tipa tržišta (evropsko i američko). Uzimajući u obzir da se samo delovi CIM-a koriste u razmeni podataka između i u okviru elektroenergetskog preduzeća, potrebno je omogućiti identifikaciju podskupova CIM-a od interesa za razmenu podataka. Ovi podskupovi – kontekstualni semantički modeli – se još nazivaju i CIM profili. Grupe CIM profila mogu biti određene geografskim kontekstom i/ili aplikativnim domenom. Postoje standardima propisane grupe CIM profila, kao što su:  IEC 61970-452 CIM profili statičkog modela sistema za prenos električne energije (engl. Common Power System Model, skr. CPSM),  IEC 61968-13 CIM RDF format za razmenu modela za distribuciju (engl. Common Distribution Power System Model, skr. CDPSM), i  standard za razmenu zajedničkih modela mreže [10] (engl. Common Grid Model Exchange Standard, skr. CGMES) razvijen od strane Evropske mreže operatora prenosnih sistema (engl. European Network of Transmission System Operators for Electricity, skr. ENTSO-E). Osim standardom propisanih CIM profila, u CIM integracijama se najčešće kreiraju CIM profili koji odgovaraju zahtevima tražene integracije vođene interesima određenog regiona, zemlje, ili kompanije (elektroenergetskog preduzeća ili proizvođača). Ovi profili mogu biti podskupovi postojećih (generičkih) CIM profilnih grupa ili samostalno razvijeni profili dobijeni korišćenjem CIM profilnih alata. Slika 12 daje prikaz upotrebe CIM-a iz perspektive UML modelovanja i generisanja artefakata potrebnih integracionim alatima. Na njoj su ilustrovane veze između informacionih modela i kontekstualnih profila koji udruženi sa grupama pravila definišu izvođenje CIM artefakata.

31 Teorijske osnove

Information Models

CIM CIM ExtensionsCIM Foreign Extensions IEC CIM Bridge Extensions (UML, RDF, XML,...)

Message Assembly

CPSM Common CIM/XML 61968 Project Profile Profile Profile Rules Rules Rules

Contextual Profiles

CIM/XML Message XML RDBMS RDF Schema Schema Schema

Message Syntax (Point of Interoperability)

Slika 12. CIM informacioni modeli, profili i poruke [28] Common Grid Model Exchange Standard Da bi osigurali pouzdanost razmene modela mreže i informacija o tržištu na području Evrope, asocijacija Evropske mreže operatora prenosnih sistema (engl. European Network of Transmission System Operators for Electricity, skr. ENTSO-E) je osnovala sopstveni standard zasnovan na IEC CIM standardima. Novi standard za razmenu modela, nazvan Standard za razmenu zajedničkih modela mreže (engl. Common Grid Model Exchange Standard, skr. CGMES), je usvojen od strane ENTSO-E-a 2013. godine. CGMES je nadskup IEC CIM standarda. CGMES definiše interfejs između softvera razvijenog od strane članova ENTSO-E-a omogućavajući razmenu informacija elektroenergetskog modela na način zahtevan od ENTSO-E i poslovnih procesa operatora prenosnih sistema, pre svega tokove snaga, kratke spojeve, dinamiku i šematske prikaze uključujući GIS sloj elektroenergetske mreže. CGMES čine sledeći profili (Slika 13): 1. oprema (engl. Equipment, skr. EQ), 2. topologija (engl. Topology, skr. TP), 3. hipoteza stabilnog stanja (engl. Steady State Hypothesis, skr. SSH), 4. promenljive stanja (engl. State Variables, skr. SV), 5. granična oprema (engl. Equipment Boundary, skr. EQ_EB), 6. granična topologiju (engl. Topology Boundary, skr. TB), 7. dinamika (engl. Dynamics, skr. DY), 8. raspored dijagrama (engl. Diagram Layout, skr. DL), 9. geografska lokacija (engl. Geographical location, skr. GL), 10. manifest (engl. Manifest, skr. MF), 11. nepredviđeni događaji (engl. Contingency, skr. CO), 12. plan dostupnosti (engl. Availability Plan, skr. AP), i

32 Teorijske osnove

13. oblast razmene kontrole (engl. Area Interchange Control, skr. AIC).

IEC 61970-457 IEC 61970-453 IEC 61970-456 opt. ref Dynamic opt. ref Diagram Layout Topology DY DL TP Manifest MF ref ref ref ref ref IEC 61970-452 ref State Variables Contingency Short Circuit Equipment Core SV CO ref EQ_SC EQ_CO ref Steady State Operation Hypothesis Availability Plan ref EQ_OP ref SSH AP opt. ref ref ref ref Area Intercharge Geographical Equipment Topology Control Location opt. ref Boundary Boundary AIC GL EQ_BD ref TP_BD

Slika 13. Prikaz zavisnosti između trenutno aktuelnih CGMES profila (verzija 2.5) [39] 2.3 Modularne arhitekture

Modularnost je opšti sistemski koncept primenjen u raznim vrstama sistema uključujući tehnološke, socijalne i biološke sisteme [40], [41]. Na apstraktnom nivou modularnost predstavlja stepen do kog se komponente nekog sistema mogu razdvojiti i kombinovati, obuhvatajući istovremeno jačinu sprege između komponenti i stepen do kog pravila sistemske arhitekture omogućavaju (zabranjuju) kombinovanje komponenti [42], Slika 14. U dizajniranju softvera, modularnost se odnosi na logičko particionisanje koje omogućava upravljanje složenim softverom u cilju njegove lakše implementacije i održavanja. Logičko particionisanje može biti bazirano na srodnim funkcijama, implementacionim aspektima, povezanosti podataka ili drugim kriterijumima.

Slika 14. Grupisanje povezanih komponenti u module Modularnost softverske arhitekture vođena razvojnom platformom Modularni dizajn softvera predstavlja tehniku dizajniranja softvera po kojoj se funkcionalnosti programa razdvajaju u nezavisne i zamenjive module gde svaki modul sadrži sve potrebno da se izvrši samo jedan aspekt željene funkcionalnosti. Interfejsi modula opisuju elemente koji su obezbeđeni i zahtevani od strane datog modula i koji omogućavaju njegovu interakciju sa drugim modulima. Termini biblioteka (engl. assembly, tipičan za .NET jezike poput C#, F#, Visual Basic-a) ili paket (engl. package, korišćen u Javi ili Go jezicima) se često koriste kao sinonimi za modul.

2.3.1.1 JavaScript Za razliku od tradicionalnih programskih jezika, JavaScript (pored HTML-a i CSS-a, jedan od tri esencijalna programska jezika potrebna za web razvoj) dugo nije podržavao kreiranje i importovanje modula na jednostavan i organizovan način. Potreba za modularizacijom JavaScript aplikacija se javila

33 Teorijske osnove u novije vreme kao posledica sveprisutnosti i povećane složenosti samih aplikacija. U klasičnom smislu, na serverskoj strani web aplikacija modularnost je (bila) podržana u okviru mogućnosti diktiranih primenjenom razvojnom platformom/programskim jezikom. U web aplikacijama, na klijentskoj strani pre svega, zbog ograničenja na JavaScript programski jezik modularnost aplikacija je (bila) bazirana na veštinama programera/razvojnog tima i odabranog pristupa. Ti pristupi su većinom predstavljali varijacije Object Literal ili Module dizajn paterna [43]. Pri tome su skripte modula (bile) spregnute sa -om (skr. DOM) preko namespace-a zadatog preko jednog globalnog objekta što potencijalno izaziva koliziju imena. Takođe, za razrešavanje međuzavisnosti skripti potrebni su (bili) ručni koraci ili odgovarajući alati. Moduli u JavaScript aplikacijama predstavljaju novinu uvedenu nedavno kroz ECMAScript 6 (engl. ECMAScript 2015 Language Specification, Edition 6, skr. ES6, takođe poznat i kao ECMAScript 2015; ECMAScript je zvanični naziv za JavaScript jezik) [44]. Naravno isti principi su primenjivi i na serverskoj strani modernih aplikacija u potpunosti baziranih na JavaScript-u. Do pojave ES6, ES5 i njeni prethodnici su koristili sisteme za modularizaciju bez eksplicitne podrške u samom programskom jeziku. Najznačajniji standardi ovog tipa su [43]:  Asynchronous Module Definition (skr. AMD) API [45] – specificira mehanizam za definisanje modula takav da modul i zavisni moduli mogu da se učitavaju asinhrono. Pogodan je za upotrebu u web pretraživačima (klijentskoj strani), gde sinhrono učitavanje modula izaziva probleme na performansama, upotrebljivosti, debagovanju i međudomenskim pozivima.  CommonJS Modules [46] – ovim predlogom je specificiran jednostavan API za deklarisanje modula na serverskoj strani. Za razliku od AMD-a, on pokušava da adresira širi spektar funkcionalnosti poput IO operacija, fajl sistema, Promise-a (paterna kojim se definiše mogući rezultat asinhrone operacije; Promise patern je sada i deo ES6 [47]), i drugih.

2.3.1.2 HTML Imports HTML Imports [48] predstavlja mehanizam za uključivanje spoljnjeg HTML dokumenta i web komponenti u HTML stranicu bez dodatnih AJAX (engl. Asynchronous JavaScript and XML) zahteva. HTML Imports specifikacija je trenutno u fazi razvoja od strane W3C-a. Inicijalno je bio zamišljen kao mehanizam za pakovanje web komponenti, ali ga je moguće koristiti i samostalno. HTML Imports podržava DRY (engl. don’t repeat yourself) pristup programiranju. HTML Imports i JavaScript moduli su konkurentni pristupi za modularizaciju klijentskog dela web aplikacija. U trenutku pisanja ove disertacije nije jasno koja od alternativa (ili čak obe) će biti favorizovane od strane web zajednice. Činjenica je da je HTML Imports jedino zvanično implementiran u Google Chrome-u i korišćen od strane Google Polymer biblioteke, dok je u drugim pretraživačima omogućen preko polifil (engl. polyfill; polifil je kod koji služi da nadomesti nedostajaću funkcionalnost u web pretraživaču) biblioteka. Usvajanje HTML Imports-a bi svakako omogućilo deklarativno programiranje web aplikacija sa minimumom JavaScript koda. S druge strane, njegovo napuštanje bi vratio web razvoj na stare staze JavaScript programiranja pa se postavlja pitanje da li bi to dovelo do stagnacije HTML-a u korist aplikacija u potpunosti pisanih u JavaScript-u i JavaScript API-ja u web platformi. Modularnost vođena srodnim funkcijama Kompleksne web aplikacije u pametnim mrežama objedinjuju funkcionalnosti različitih sistema poput DMS-a, OMS-a, MWM-a, WMS-a, SCADA-e, GIS-a i drugih sistema. Funkcionalnosti ovih sistema mogu biti grupisane u nezavisne module i kao takve isporučivane u okviru web aplikacije i aplikacija uopšte u zavisnosti od potreba određenog klijenta. Ovim je skup funkcionalnosti date aplikacije određen skupom instaliranih i omogućenih modula u kvazi realnom vremenu.

34 Teorijske osnove

2.3.2.1 Modularnost vođena srodnim funkcijama u komercijalnim web aplikacijama u pametnoj mreži Kao deo Schneider Electric EcoStruxure™ Platforme, Schneider Electric DMS NS (skr. SE DMS NS) je razvio EcoStruxure™ ADMS (engl. Advanced Distribution Management System¸ skr. ADMS) softver koji obuhvata pored ostalih aplikacija i web rešenja, WebDMD i FieldClient [49], [50]1:  WebDMD predstavlja lakšu, web varijantu, aplikacije korišćene u kontrolnoj sobi namenjenu korporativnim korisnicima. Ona omogućava uvid u tekuće stanje distributivne mreže preko različitih mrežnih prikaza, topoloških bojenja, rezultata različitih elektroenergetskih proračuna, DMS i SCADA tabelarnih pregleda, upravljanje ekipama na terenu, radnim nalozima i ispadima.  FieldClient omogućava ekipama na terenu rad sa radnim nalozima, planovima za isključivanje, ispadima i sigurnosnim dokumentima istovremeno olakšavajući komunikaciju ekipa sa kontrolnom sobom. Rešenje je optimizovano za tablet uređaje, za dnevni, noćni rad i rad sa i bez internet veze. Oba rešenja dele istu modularnu arhitekturu baziranu na modulima koji predstavljaju celine definisane funkcijom određenog sistema, Slika 15 (originalna slika je preuzeta iz SE DMS prakse i dorađena za potrebe ove disertacije). Osnovni web proizvod definiše jezgro aplikacije i niz modula koji pokrivaju različite funkcionalnosti. Kako osnovni proizvod retko ispunjava sve zahteve klijenata u fazi prilagođavanja proizvoda određenom klijentu, omogućeno je kreiranje ekstenzija postojećih modula (koji su i sami moduli) kao i kreiranje modula specifičnih za datog klijenta. U okviru pojedinačnih modula dalja podela može da se uradi na serverski i klijentski deo.

Base Product Customizations Application Modules Module Extensions Modules Core

DMS ... DMS ... WMS ... WMS OMS OMS MWM MWM #N SCADA SCADA

Server side

Client side

Slika 15. Modularna arhitektura SE DMS NS web rešenja Open Systems International, Inc. (skr. OSI) je u okviru Spectra-e, svog integrisanog ADMS rešenja, razvio niz modularnih aplikacija kojim je omogućeno modelovanje i upravljanje distributivnom mrežom, nadgledanje i upravljanje elektroenergetskim sistemom, upravljanje planiranim i neplaniranim ispadima, upravljanje ekipama na terenu i radom u polju, analizu i optimizaciju operacija u mreži i integraciju obnovljivih i distribuiranih izvora [51]. Slika 16 prikazuje module Spectra rešenja. OSI Electra OMS predstavlja novu generaciju najsavremenijih OSI rešenja za upravljanje ispadima. Electra OMS predstavlja samostalnu varijantu OSI OMS-a, koristi najnovije web tehnologije, Big Data i mobilne tehnologije kako bi omogućila elektroenergetskim preduzećima bolje upravljanje svim fazama procesa restauracije ispada [52]. Electra OMS omogućava efikasnu integraciju sa GIS, CIS, IVR, AVL, AMI, MWM i WMS sistemima kao i uključivanje Spectra ADMS modula poput FLISR-a (engl. Fault Location Isolation and Supply Restoration) i Volt/Var-a [52].

1 Autorka rada je osmislila arhitekturu i vodila implemenataciju SE DMS NS web rešenja.

35 Teorijske osnove

Slika 16. OSI Spectra modularne aplikacije [51] General Electric je kreirao Predix – industrijsku internet platform (Slika 17) za izradu aplikacija koje se povezuju sa industrijskim mašinama, senzorima, kontrolnim sistemima, izvorima podataka i uređajima, prikupljaju, skladište i analiziraju podatke i u realnom vremenu pružaju uvid u optimizaciju industrijske infrastrukture i operacije [53]. Predix omogućava kreiranje web, mobilnih i ugrađenih aplikacija sa brzim odzivom koje se skaliraju da odgovore potrebama pametnih telefona, tableta i desktop računara. Predix mikroservisi predstavljaju softverske module koji se mogu iskoristiti za brz razvoj aplikacija, Slika 18. Oni su nezavisne, samostalne komponente koje enkapsuliraju funkcionalnosti. Kao takve slabo su spregnute (engl. loosely coupled) u aplikacijama, izbegavajući na taj način kompleksnosti i zavisnosti prisutne u tradicionalnim monolitnim arhitekturama.

Slika 17. Predix – industrijska internet platforma [53]

36 Teorijske osnove

Slika 18. Predix mikroservisi [53] Modularnost UI-a Moderne web aplikacije prestavljaju jednostranične aplikacije (engl. Single Page Application, skr. SPA) koje pružaju desktop iskustvo u web pretraživaču [54]. Ove aplikacije sve potrebne resurse inicijalno učitavaju u okviru jedne web stranice, a po potrebi i dinamički najčešće na osnovu korisničkih akcija. Primenjujući AJAX tehniku, SPA aplikacije šalju i primaju podatke sa servera na asinhron način nezavisno od prikaza. Korišćenjem AJAX-a, svaki podatak poslat ili primljen od strane klijenta (preko XMLHttpRequest objekta) se dobija u okviru konekcije uspostavljene za taj događaj. U slučaju da je potrebno postići automatsko osvežavanje sadržaja stranice tzv. „serverski push“, AJAX tehnikom je potrebno prozivati (engl. polling) server sa zadatim intervalom. Kao naprednija tehnika potom se nametnulo produženo prozivanje (engl. long polling takođe poznat kao COMET) kojim ako nema odgovora na poslati zahtev server zadržava konekciju otvorenom dok se ne kreira novi odgovor. Nedavno uvedeni WebSocket protokol [55] omogućava dvosmernu komunikaciju između klijenta i servera kroz jednu TCP konekciju. Korišćenjem ovog protokola web aplikacije više ne moraju da otvaraju višestruke HTTP konekcije (korišćenjem XMLHttpRequest ili long pollinga) radi dvosmerne komunikacije. Za razliku od WebSocket-a, Server Sent Events (skr. SSE) [56] koristi HTTP protokol i omogućava jednosmernu komunikaciju u smeru od servera ka klijentu. Slika 19 prikazuje tranziciju odgovornosti u troslojnoj arhitekturi web aplikacije kreiranoj na tradicionalnim i SPA principima. Kako SPA aplikacije mogu da koriste brojne serverske tehnologije, poslovna logika i generisanje HTML su migrirani sa servera na klijenta. Ovaj prikaz takođe ilustruje pravac u kome ide razvoj vodećih web okvira. Tako su brojni klijentski JavaScript okviri, poput Angular- a, Backbone.js-a, Ember.js-a, Meteor.js-a, i React-a usvojili SPA principe.

Slika 19. Odgovornost baze, servera i klijenta [54]

37 Teorijske osnove

Klijentski JavaScript okviri su najčešće bazirani na MVC (engl. Model-View-Controller) paternu ili nekoj njegovoj varijaciji (poput Model-View-ViewModel-a svojstvenog za npr. Knockout.js, Model- View-Anything karakterističnog npr. za Angular, Backbone.js). MVC čine:  Model – zadužen za ponašanje i podatke domena aplikacije. On skladišti i preuzima informacije iz baze podataka ili servisa, definiše strukture podataka za obradu informacija potrebnih kontroleru i vizuelizaciju potrebnih view-u.  View – predstavlja vizuelizaciju informacija dostupnih u web aplikaciji. Preko korisničkog interfejsa (engl. User Interface, skr. UI) pretvara informacije i korisničke akcije u oblik razumljiv korisniku,  Controller – definiše poslovnu logiku potrebnu za obradu komandi, donošenje logičkih odluka, i izvršavanje proračuna. On na osnovu korisničkog ulaza manipuliše modelom i ažurira prikaz modela na UI-u. U JavaScript aplikacijama, do podrške za modularizaciju u samom jeziku, modulima su najčešće smatrani tzv. widget-i tj. komponente sa jasnom odgovornošću koje se mogu višestruko instancirati u aplikaciji. U složenim SPA aplikacijama MVC pomaže da se razdvoje odgovornosti za koordinaciju podacima i vizuelizaciju, ali ne podržava koncept koordinacije između komponenti. Uobičajena praksa u ovakvim modularnim arhitekturama je izvajanje komunikacije između komponenti preko nekog mehanizma za emitovanje događaja (npr. Pub/Sub-a, Observer paterna).

2.3.3.1 Modularnost UI u komercijalnim web aplikacijama u pametnoj mreži Web rešenja SE DMS NS-a su kreirana po SPA principima. Ova rešenja podržavaju slojevitu modularnost klijentskog dela aplikacija, Slika 20 (originalna slika je preuzeta iz SE DMS prakse i dorađena za potrebe ove disertacije). Tako prvi sloj čine funkcionalni moduli u okviru kojih se razlikuju komponente. Komponente su nezavisne samostalne celine koje sarađuju sa drugim komponentama korišćenjem Pub/Sub mehanizma. Komponente su interno organizovane po modifikovanom MVC paternu, nazvanom MVCP (engl. Model-View-Controller-Proxy), gde dodatni proksi sloj predstavlja apstrakciju pristupa podacima (u JSON formatu) u online i offline režimu rada, omogućujući aplikaciji da radi nezavisno od dostupnosti internet konekcije (pristupajući web servisima ili lokalnoj bazi podataka). Ekstenzije predstavljaju deo kastomizacija, one proširuju i/ili modifikuju ponašanje komponenti baznih modula i opciono uvode nove komponente. Takođe, kastomizacije opciono donose nove funkcionalne module. Svaki modul i ekstenzija definiše svoje učitavače (engl. loader) resursa i skripti potrebne za dinamičku integraciju.

Base Product Customizations Application Modules Module Extensions Modules

P#n Components ... P#n Ext Components ......

Core C #m ... Loaders C #m Ext ... Loaders

Resources (templates, , images) ...

View Resource Resource & & Controllers Script Script Models

Proxies

Slika 20. Slojevita modularnost SE DMS NS klijentskih web rešenja

38 Teorijske osnove

U okviru GE Predix platforme razvijen je Predix Design System (skr. PDS). Srce ovog sistema čini kolekcija modularnih web komponenti, nazvanih Predix UI, koje rade u svim pretraživačima i klijentskim JavaScript okvirima i doprinose da industrijske web aplikacije bazirane na Predix platformi poseduju karakteristike desktop aplikacija. Predix UI komponente su bazirane na Polymer biblioteci (uvodi sintaksne konstrukcije oko WebComponents skupa standarda, videti 2.5.2.4). Svaka komponenta predstavlja skup HTML, CSS-a, JavaScript-a koji se ponaša kao standardni HTML tag. Proizvoljan broj ovih komponenti se može kombinovati u aplikaciji koja radi nad Predix servisima i podacima (JSON API-ji na Node Express serveru) [57], Slika 21. Treba reći i to da je prethodna verzija Predix UI bila implementirana u AngularJS-u, a da je pojednostavljena prelaskom na Polymer. Takođe, sastavni deo PDS-a su i CSS moduli zaduženi za tipografiju, dizajn rasporeda i sadržaja.

Slika 21. Tipična arhitektura Predix industrijskih web aplikacija [57] Modularnost CIM-a CIM profili omogućavaju modularnost pokrivajući specifične razmene podataka koje su od značaja u brojnim slučajevima korišćenja. Tako na primer, profili mreže distributivnog i prenosnog sistema iako dele dosta toga zajedničkog uvek sadrže razlike kao posledicu činjenice da modeli prenosnog sistema ne zahtevaju modele nebalansiranog sistema ili niskonaponske transformatore smeštene na električnim stubovima. Međutim, kada su u pitanju koncepti poput razmene topoloških informacija i promenljivih stanja tokova snaga, zahtevane klase su identične između slučajeva korišćenja. Profili su stoga definisani što je moguće specifičnije kako bi se lakše kombinovali u profilnu grupu za određenu razmenu podataka, čime svaka razmena podataka postaje razmena više profila koji mogu biti deljeni sa drugim profilnim grupama u drugim razmenama [35]. Tipičan primer predstavljaju Topology i StateVariables profili iz CPSM profilne grupe koji su iskorišćeni u CDPSM profilnoj grupi. Modularnost softvera zasnovana na procesu transformacije podataka u CIM Definisanjem informacionog modela za neku aplikaciju ili sistem, struktura podataka se odvaja od serijalizacionog formata. Na ovaj način se preko apstraktnih entiteta olakšava razumevanje podataka u sistemu i istovremeno omogućava serijalizacija podataka u različite formate bez uticaja na njihovu strukturu i definiciju. Upravo koncept razdvajanja strukture od formata podataka omogućava primenu inženjerstva vođenog modelom (engl. Model Driven Engineering, skr. MDE) i arhitektura vođenih modelom (engl. Model Driven Architectures, skr. MDA) na transformacije vođene modelom (engl. Model Driven Transformation, skr. MDT) [35]. Slika 22 daje prikaz različitih izvora podataka i serijalizacionih formata primenjenih u jednoj aplikaciji. Aplikacija je definisana u odnosu na strukturu podataka, a ne u odnosu na njihove pojedinacne izvore i serijalizacione formate. Ovim je omogućeno da isti podaci, zadati istom strukturom budu serijalizovani u različite formate (uključujući bazu podataka, XML, datoteku, i slicno).

39 Teorijske osnove

Slika 22. Prikaz različitih izvora podataka i serijalizacionih formata [35] Pisanjem aplikacija koje obrađuju objekte nezavisne od formata podataka omogućena je modularizacija softvera, prvenstveno razdvajanjem parsiranja ulaznih podataka, aplikativne logike i serijalizacije izlaznih podataka (Slika 23).

Slika 23. Proces transformacije vođen modelom podataka [35] 2.4 Istorija razvoja web-a

Web, kao jedan od najznačajnijih internet servisa, je doživeo svoj vrtoglavi uspon u protekle dve decenije. 1994. godina označava početak web razvoja, podržana je prva verzija HyperText Markup Language (skr. HTML) i oformljen World Wide Web konzorcijum, telo za standardizaciju web-a. U najranijim danima, web aplikacije su činile pojedinačne web stanice isporučivane na web pretraživače kao statički dokumenti. Svaka promena sadržaja je zahtevala osvežavanje cele stranice, dok se interaktivnost postizala navigacijom kroz stranice. Potom je 1995. godine Netscape uveo dinamički skriptni jezik – JavaScript omogućivši dodavanje dinamike na elemente korisničkog interfejsa (npr. skrivanje delova interfejsa, validaciju formi za unos i sl.). Koncept „web aplikacije“ je uveo Java programski jezik 1999. godine kroz Java Servlet 2.2 specifikaciju. Istovremeno su bili razvijeni JavaScript i XML jezici, a XMLHttpRequest objekat tek uveden u Internet Explorer 5. Tek od 2005. godine AJAX aplikacije zaživljavaju omogućujući dinamičku promenu sadržaja tj. parcijalno osvežavanje stranica. Sa ovom mogućnošću, akcenat razvoja web aplikacija je stavljen na klijentsku stranu dominacijom SPA (engl. Single-Page Application) aplikacija. Kako su potrebe polako prevazilazile mogućnosti web platforme, web korisnici, pre svega programeri/arhitekte i firme u čijem vlasništvu su web pretraživači, bili su primorani da preuzmu inicijativu od W3C-a koji je umnogome kočio njegov napredak. Tako su kreirani brojni serverski i klijentski okviri za različite platforme (Java, .NET, i druge) kao i platforme (npr. Microsoft Silverlight, Adobe Flash, Nodejs) kojim se omogućilo kreiranje web aplikacija sa bogatim interfejsom čije performanse i korisnički doživljaj mogu da se mere sa klasičnim desktop i nativnim aplikacijama, Slika 28. U prvom trenutku najvažniji zadatak je bilo apstrahovanje razlika između web pretraživača korišćenjem različitih biblioteka. Među njima je svakako najznačajnija jQuery biblioteka [58]. Izrada kompletnih web aplikacija se najčešće zasnivala na kombinaciji niza različitih biblioteka (uključujući i jQuery) i iskustava autora aplikacija (slična iskustva je imala i autorka disertacije radeći na razvoju smart grid web aplikacija). Kako je usvajanjem HTML5 standarda od strane web pretraživača standardizovan DOM, potreba za bibliotekama poput jQuery-ija je opala. Istovremeno složenost web aplikacija na internetu je porasla što je za posledicu imalo porast u broju web programerskih MV* okvira (engl. Model-View-* frameworks), gde svaki od njih na svoj način rešava iste ili slične probleme. Primeri ovakvih klijentskih web okvira su Backbone, Ember, Angular, React (Slika 28), pri čemu je svaki od njih samostalno dovoljan za razvoj aplikacije, a gde je njihova koegzistencija u jednoj web aplikaciji otežana [59]. Kao posledica opisanog toka razvoja web aplikacija javila se jasna potreba za unificiranjem web

40 Teorijske osnove razvojne platforme i mogućnosti da se jednom razvijen kod u jednom programskom okviru bez ograničenja koristi u drugim. U poslednjih nekoliko godina došlo je do značajnog napretka u samoj web platformi. Pre svega, uvođenje HTML5 standarda, standardizacija DOM-a, rad na skupu WebComponents standarda (Custom elements, HTML imports, HTML templates, i Shadow DOM) i standardizacija novih TCP web protokola (WebSocket i HTTP/2), Slika 27. Specifikacije u okviru web platforme trenutno identifikuju oko 12 000 API-ja, dok web pretraživači implementiraju još oko 8 000 API-ja koji nisu deo web platformskih specifikacija [60]. Ovi API-ji nisu u istoj meri podržani od strane vodećih web pretraživača (Slika 24, Slika 25 i Slika 26), već je u pitanju kontinuiran proces koji podrazumeva da neke web platformske specifikacije budu implementirane u hodu i pre njihovog zvaničnog objavljivanja dok je dizajn i implementacija pojedinih specifikacija inicijativa samih pretraživača u nadi da one postanu deo web platforme. (Jedan primer za poslednje je Pointer Events API iniciran i implementiran od strane Microsofta u Internet Explorer-u 10, a potom prihvaćen od drugih pretraživača i standardizovan od strane W3C-a [61], [62]. Drugi primer je rad na definisanju zahteva, dizajnu i implementaciji WebAssembly-ija od strane vodećih web pretraživača. WebAssembly je novi format za kompajliranje aplikacija na web-u, efikasan u pogledu veličine i vremena potrebnog za učitavanje [63].) Prethodno je u skladu sa manifestom za proširivost web-a (engl. The Extensible Web Manifesto [9]), kojim njegovi potpisnici, a istovremeno tvorci današnjeg web-a, žele da promene način na koji komiteti za standardizaciju kreiraju i prioritetizuju nove stavke, tj. obavezuju se da će pretraživači podržati nove stavke i pre nego one budu zvanično standardizovane. U ovakvom okruženju modularnost web aplikacija se svodila na kreativnost autora okvira i samih aplikacija, gde su moduli veoma retko mogli da egzistiraju van okvira njihovih programskih okvira, dok je sa novim W3C preporukama odgovornost za modularizaciju u samoj web platformi i u rukama autora web aplikacija.

Slika 24. Dijagram podržanosti web specifikacija u Chrome-u i Edge-u [60]

Slika 25. Dijagram podržanosti web specifikacija u Edge-u i Firefox-u [60]

41 Teorijske osnove

Slika 26. Dijagram podržanosti web specifikacija u Chrome-u i Firefox-u [60] Razvoj web aplikacija u pametnim mrežama treba da odgovori trenutnoj dinamici razvoja web platforme. Primeri za primenu modernih web tehnologija u prikazu pametnih mreža mogu se naći u radovima [64], [65] i [66]. U radu [64] (u kome je učestvovala i autorka) je analizirana primena u to vreme aktuelnih klijentskih web internet tehnologija (JavaScript/jQuery, Google Web Tookit (skr. GWT), Microsoft Silverlight i Adobe Flash/Flex) u kritičnim infrastrukturnim sistemima. Korišćenjem ISO kriterijuma za kvalitet softvera pokazano je da su aplikacije bazirane na ovim tehnologijama brže, sigurne, pouzdane i održive. Upotreba HTML5 u 2D i 3D prikazu energetskog sistema korišćenjem (skr. SVG) formata opisana je u [65]. Ovim je pokazan pomak od klasične klijent-server ka pretraživač-server (engl. browser-server, skr. B/S) arhitekturi. B/S arhitektura stavlja akcenat na korišćenje ugrađenih funkcionalnosti samog pretraživača. Jedan aspekt primene naprednih funkcionalnosti pretraživača upotrebom Shadow DOM-a je opisan u radu [67], gde se poverljive informacije čuvaju u DOM-u, skrivene i izolovane u web komponente. Knjiga [68] donosi eksperimetalni primer migracije jQuery dijalog komponente u W3C WebComponent-u, gde autori u skoroj budućnosti očekuju slične primene u produkciji.

42 Teorijske osnove

Slika 27. Pregled razvoja web pretraživača, W3C i TCP standarda

Slika 28. Pregled razvoja najznačajnijih serverskih i klijentskih web okvira

43 Teorijske osnove

2.5 W3C preporuke

Važeće W3C preporuke u pametnim mrežama Uporedo sa nedavnim napretkom na polju razvoja aplikacija poslovne inteligencije i aplikacija za predstavljanja znanja (engl. knowledge representation) teklo je i unapređivanje semantičkih web tehnologija. Evoluciju arhitekture semantičkog web-a od 2000. godine do danas prikazuju redom Slika 29, Slika 30 i Slika 31. Viziju arhitekture semantičkog web-a iz ugla Tim Berners-Lee-ija prikazuje Slika 29. U osnovi ove arhitekture su URI-ji (kao identifikatori resursa) i Unicode (koji omogućava jedinstvenu identifikaciju svakog karaktera). Oni zajedno sa XML formatom podataka čine sintaksni sloj, koji zajedno sa RDF slojem omogućava kreiranje samo opisnih dokumenata korišćenjem RDF šema minimalističkog modela. Dodavanje meta informacija o podacima pruža primena ontološkog sloja. Logički sloj se sastoji od pravila koja omogućavaju zaključivanje na osnovu opisa i meta informacija o podacima. Sloj dokaza je neophodan kako bi obrazložio rezultate zaključivanja. Sloj digitalnog potpisa čini jedini vertikalni sloj u arhitekturi semantičkog web-a. On predstavlja korak ka ostvarivanju web-a poverenja primenom XML digitalnih potpisa na informacije. Poslednji sloj čini sloj poverenja. On zavisi od izvora informacija kao i bezbednosnih polisa primenjenih na njega koje služe da spreče neautentifikovane i neautorizovane korisnike ili aplikacije da im pristupe [69], [70]. Razvoj arhitekture semantičkog web-a je dalje tekao u pravcu razrade RDF sloja, dodavanja korisničkog interfejsa i aplikacija koje koriste RDF tehnologije (Slika 30). Slika 31 ilustruje tekuće stanje arhitekture semantičkog web-a, opisano u ovom radu. Integracija web-a dokumenata (web-a baziranog na povezanim dokumentima) i semantičkog web-a (web-a baziranog na povezanim podacima) nailazi na brojne izazove. Zbog toga je u radu [71] analizirana uloga RDF semantike u selektovanju struktuiranju i stilizovanju XML sadržaja, gde je kao alternativa kreirana ekstenzija XSLT-a sa ciljem da omogući direktne semantičke upite unutar XSLT transformacija. Ontologije, na kojim se semantički web bazira, imaju tendenciju da postanu preobimne unoseći na taj način brojne probleme kao što su ekstrakcija podataka, njihovo pregledanje i navigacija kroz njih. U radu [72] je prezentovana jedna metodologija za ekstrahovanje podataka baziranih na ontologiji koja koristi semantiku primenjene ontologije. Na primer, u protekle tri godine kreirane su brojne nove ili ažurirane verzije postojećih RDF W3C preporuka [73]. U istom pravcu su bili napori da se podaci iz JSON formata konvertuju u semantički obogaćen RDF format koji sadrži URI-je povezanih podataka [74]. Gotovo u isto vreme, W3C je kreirao JSON-LD [75] kao jednostavnu sintaksu za serijalizaciju povezanih podataka u JSON-u. JSON-LD je popularizovan i postao opšte prihvaćen kada su vodeći pretraživači (Google, Microsoft, Yahoo! i Yandex) kreirali schema.org – šemu za označavanje struktuiranih podataka – sa ciljem da se omogući pretraživačima da razumeju informacije ugrađene u web stranice, kako bi rezultati pretraživanja bili kvalitetniji [76], [77].

Slika 29. Arhitektura semantičkog web-a, Tim Berners-Lee, 2000. godina [78]

44 Teorijske osnove

Slika 30. Arhitektura semantičkog web-a, W3C, 2007. godina [79]

Slika 31. Trenutno aktuelna arhitektura semantičkog web-a (formati i tehnologije) [80] Kako je integracija uređaja na internetu stvari (engl. Internet of Things, skr. IoT) otežana zbog raznolikosti protokola i standarda, Web stvari (engl. Web of Things, skr. WoT) prevazilazi ovaj problem upotrebom raspoloživih web standarda. Međutim, podaci deljeni od strane uređaja u WoT-u koriste različite formate, pa zajedničko razumevanje podatka nedostaje. U cilju rešavanja ovog problema predložen je Semantički web stvari (engl. Semantic Web of Things, skr. SWoT) kao spona između semantičkog web-a i WoT-a [81]. U radu [82] je predstavljena dinamička arhitektura za pretragu semantički označenih podataka na WoT-u korišćenjem JSON-a. U radu [83] razvijen je Okvir za upravljanje stvarima baziran na semantičkom opisu stvari prikazan u JSON-LD-u, omogućujući na ovaj

45 Teorijske osnove način neometanu interakciju između stvari u IoT prostoru. U radu [84], JSON-LD je prepoznat kao format koji povećava iskoristivost podataka pametnog grada (engl. Smart City). Za potrebe integracije sa javnim domenima, i da bi se elektroenergetski podaci objavili na web- u, elektroenergetski domen zahteva eksternu interoperabilnost [85]. Dodatno, on pretpostavlja javnu dostupnost CIM ontologije i/ili njenih delova od interesa za integraciju sa drugim domenom. Dva osnovna CIM standarda, IEC 61970-501 [86] i IEC 61970-552 [87], su bazirana na RDF i XML tehnologijama. Iako se ova dva standarda zasnivaju na tehnologijama koje su centralne za semantički web – web povezanih podataka, oni uvode skup ograničenja koja umanjuju sposobnost CIM-a da bude interpretiran kao skup povezanih podataka (engl. Linked Data, skr. LD). Nedavno završeni CERISE-SG projekat [85] je bio fokusiran na razmenu podataka pametnih mreža sa njihovom okolinom, tačnije u i iz domena elektroenergetskog preduzeća, vladinog i geografskog domena. CERISE-SG izveštaj [85] je potvrdio da u poređenju sa ostalim domenima domen elektroenergetskog preduzeća ima najmanju tendenciju ka pomeranju u pravcu razmene podataka na web-u, prevashodno zbog sopstvene samodovoljnosti stečene u eri koja je prethodila pojavi pametnih mreža. Iako CIM predstavlja globalni standard za razmenu elektroenergetskih podataka baziran na RDF tehnologiji on nije publikovan na persistentnom URI-ju [85]. Za svrhe CERISE-SG projekta, CERISE CIM profil za brojila (u vidu OWL ontologije) je razvijen i publikovan u Linked Open Vocabularies (skr. LOV) bazi rečnika. Međutim, publikovana ontologija [88] nije zadržala nijednu ugrađenu semantičku povezanost sa CIM ontologijom, što je u suprotnosti sa centralnom idejom CIM-a da semantika podataka može da se isprati sve do CIM semantike [36]. Metodi za postizanje semantičke interoperabilnosti se grubo mogu klasifikovati na sledeće tri kategorije: poravnanje modela, upotrebu semantičkih tagova i metapodataka, i razvoj deljenih konceptualnih referenci [89]. U radu [90], ontologija je posmatrana kao deljena konceptualizacija reprezentacije znanja određenog domena. Dodatno, operacije ontološke interoperabilnosti su definisane kao ontološka transformacija i translacija, spajanje, integracija, poravnanje i mapiranje. Ontološka mapiranja se mogu iskazati na različite načine. Na primer, u slučaju da nisu potrebna kompleksna mapiranja OWL konstrukcije za ekvivalentnost mogu da se primene za definisanje ontoloških mapiranja [91]. U izveštaju [92], CERISE CIM profil za brojila je korišćen kao osnova za translaciju između različitih skupova podataka i rečnika pametne mreže. Mapiranje između EBIF (engl. Energy Balancing Information Facility) i CERISE CIM profila za brojila je postignuto korišćenjem OWL konstrukcija (owl:equivalentClass, owl:equivalentProperty, i owl:sameAs). Za postizanje istih rezultata, takođe su mogli da se primene SPARQL Inference Notation (skr. SPIN) i Semantic Web Rule Language (skr. SWRL). Isti principi se mogu primeniti na mapiranje CM (engl. Crisis Management) ontologije na CERISE CIM profil za brojila [93], [94]. U slučajevima kada OWL nije dovoljan da izrazi sve relacije između mapiranih ontologija mora da se primeni mapiranje zasnovano na pravilima. Na primer, rešenje za integraciju heterogenih sistema u pametnoj mreži koristi SWRL i JRL (engl. Jena Rule Language) za definisanje transformacionih pravila između njihovih modela podataka [95]. Semantičko razdvajanje CIM profila od CIM modela je neizbežno, pošto zahtevi za njihovom primenom vremenom evoluiraju, pa profili moraju da se ažuriraju. Zato je neophodno razdvajanje prostora imena za CIM i CIM profile, i uvođenje njihovog mapiranja korišćenjem OWL-a [96]. Dva pristupa za mapiranje CIM UML-a na OWL su evaluirani u radu [97] gde su prepoznati problemi koji treba da se adresiraju. Međutim, ta mapiranja nisu zvanično podržana od strane publikovanih IEC standarda. Postojao je pokušaj da se formalizuje mapiranje CIM-a na OWL šemu u planiranom IEC 61970-505 standardu [2]. U praksi, postoji nekoliko alata koji omogućavaju translaciju CIM UML-a u različite formate, uključujući OWL, RDFS, i XSD. Dodaci za Spark Systems Enterprise Architect (skr. EA) alat poput CimConteXtor [98] i CIM EA [99] omogućavaju kreiranje RDFS i XSD CIM artefakata. S druge strane, CIMTool [100], alat otvorenog koda, koristi OWL za internu reprezentaciju CIM profila nezavisno od generisanja CIM artefakata (različitih OWL i RDFS ontologija, kao i XSD šema). Ono što treba uočiti je da generisani CIM profili u OWL-u predstavljaju pandane istih profila u RDFS-u takve da ne adresiraju potrebe povezanih podataka. Tipični pristup za modelovanje CIM-a autorka je analizirala iz perspektive povezanih podataka u radu [8], gde je predstavljeno i nekoliko unapređenja kojim bi se CIM dokumenti obogatili

46 Teorijske osnove mogućnostima povezanih podataka. Pre svega, CIM profil zasnovan na CIM RDF šemi je obogaćen sa nekoliko OWL koncepata kako bi se omogućilo mapiranje osnovne CIM ontologije i korišćenje OWL rasuđivača (engl. reasoner). Ovim je CIM profil postao izražen u RDFS-Plus-u (takođe poznat kao RDFS+). CIM ekstenzije su modelovane kao zasebne ontologije. Kompatibilnost CIM profila sa tipičnom reprezentacijom i postojećim CIM alatima je zadržana, dok su CIM dokumenti dobili neke od osobina povezanih podataka. Međutim, RDFS ekstenzije uvedene sa IEC 61970-501 nisu adresirane kao ni restrikcije CIMXML formata uvedene sa IEC 61970-552. U istom radu dat je predlog da se JSON-LD sintaksa koristi za zapis CIM-a kako bi se olakšala manipulacija CIM podacima na Web 3.0. W3C paralelno sa razvojem tehnologija potrebnih za web dokumenata (engl. Web of Documents) razvija i skup tehnologija potrebnih za web podataka (engl. Web of Data). Krajnji cilj web-a podataka pored omogućavanja računarima da ih razumeju i/ili konvertuju u sebi razumljiv format je i razvijanje sistema koji podržava sigurne interakcije preko mreže. Termin semantički web se odnosi na W3C viziju web-a povezanih podataka. Semantičke web tehnologije omogućavaju ljudima da kreiraju skladišta podataka na web-u, kreiraju rečnike i pišu pravila za upravljanje podacima. W3C tehnologije koje omogućavaju povezivanje podataka su RDF, SPARQL upitni jezik za RDF (engl. SPARQL Query Language for RDF, skr. SPARQL), OWL, i Jednostavni sistem za organizaciju znanja (engl. Simple Knowledge Organization System, skr. SKOS).

2.5.1.1 RDF Okvir za opis resursa (engl. Resource Description Framework, skr. RDF) [101] predstavlja opšti jezik za predstavljanje informacija o resursima specificiran od strane W3C-a. Resursi mogu biti bilo šta uključujući dokumente, ljude, fizičke objekte i apstraktne koncepte. RDF je namenjen za opis informacija na web-u koje treba da budu procesirane od strane aplikacija, a ne samo za prikaz. RDF uključuje okvir za izražavanje informacija tako da one mogu biti razmenjene između aplikacija bez gubitka njihovog značenja. Upravo ta osobina omogućava da iste informacije mogu da se koriste i od strane aplikacija za koje prvobitno nisu bile namenjene. RDF može da se koristi za publikovanje i povezivanje podataka na web-u. Takvi RDF podaci se još nazivaju i povezani podaci. RDF se bazira na ideji kreiranja iskaza u formi uređene trojke , sa značenjem da resurs subjekat ima svojstvo predikat čija je vrednost resurs objekat. Subjekat, predikat i objekat se u RDF modelu zadaju u formatu međunarodnog identifikatora resursa (engl. Internationalized Resource Identifier, skr. IRI, ova notacija je generalizacija URI-ja). Primer IRI-ja predstavlja http://dbpedia.org/resource/Leonardo_da_Vinci. RDF se može izraziti u više različitih sintaksi [102], Slika 32. CIM zajednica najčešće koristi CIMXML (čija je osnova RDF/XML) i Turtle sintaksu [103]–[105]. RDF/XML definiše XML sintaksu za zapis RDF grafa. Kada je RDF razvijen krajem 1990-tih, on je predstavljao jedinu njegovu sintaksu. Kasnije, 2001. godine se pojavila N3 sintaksa, preteča današnje Turtle sintakse, a potom su razvijene i ostale RDF sintakse. RDF 1.1 uvodi nove serijalizacione formate, od kojih tri nova formata JSON-LD [106], TriG [107] i N-Quads [108] podržavaju višestruke grafove tj. mogu da serijalizuju RDF datasetove.

47 Teorijske osnove

Slika 32. RDF 1.0 i RDF 1.1 serijalizacioni formati [109]

2.5.1.2 RDF šema RDF šema (engl. RDF Schema, skr. RDFS) [110] definiše rečnik za modelovanje RDF podataka. Ona opisuje klase, atribute i relacije jednog informacionog modela. RDFS zadat fajlom obično koristi .rdfs ekstenziju. RDF instance predstavljaju objekte/instance modela zadatog RDFS-om. RDF instance obično koriste .rdf ekstenziju ili ekstenziju koja odgovara primenjenoj RDF sintaksi. U okviru IEC 61970-501 CIM standarda [86], RDF šema je proširena kako bi se podržali UML koncepti od značaja za CIM.

2.5.1.3 OWL 2 W3C OWL 2 Web ontološki jezik (engl. Web Ontology Language, skr. OWL) [111] predstavlja jezik semantičkog web-a dizajniran za potrebe reprezentacije bogatog i kompleksnog znanja o stvarima, grupama stvari i relacijama između stvari. OWL je računarski jezik baziran na matematičkoj logici takav da znanje iskazano u OWL-u može biti iskorišćeno od strane kompjuterskih programa kako bi se verifikovala konzistentnost tog znanja ili implicitno znanje učinilo eksplicitnim. OWL se koristi od strane nekih CIM alata (poput CIMTool-a [100]) za specificiranje CIM profila.

48 Teorijske osnove

Aktuelne W3C preporuke sa potencijalom primene u pametnim mrežama

2.5.2.1 JavaScript Object Notation JavaScript Object Notation (skr. JSON) danas predstavlja dominantni format za razmenu podataka u web aplikacijama. Pogodan je za upotrebu od strane klijentskog softvera (posebno UI klijentskog softvera), gde su klijenti upoznatih sa aplikativnim modelom podataka. U praksi to znači da su JSON poruke razmenjivane između klijenta i servera/servisa (i obrnuto) skrojene za specifične potrebe i primenjive gotovo isključivo u posmatranom konkretnom slučaju bez mogućnosti da ih drugi razumeju bez adekvatne dokumentacije. Pomenuto razumevanje se odnosi na ljudski faktor, bilo kakvo interpretiranje od strane mašina u ovom slučaju nije moguće bez ljudske intervencije. Međutim, za klijente koji nisu upoznati sa semantikom modela podataka ili generičke klijente JSON format nije odgovarajući. Bez obzira na generičnost samog klijenta, semantički obogaćeni JSON pružio bi nove mogućnosti u klijentskoj aplikaciji poput transformacija dobijenog modela podataka u aplikativni model podataka ne generičkog klijenta.

2.5.2.2 JSON-LD JSON-LD predstavlja jednostavnu sintaksu za serijalizaciju povezanih podataka u JSON formatu, kojom se serijalizuju RDF graf i RDF dataset. RDF dataset predstavlja kolekciju grafova sačinjenu od tačno jednog podrazumevanog grafa (tj. neimenovanog grafa) i nijednog ili više imenovanih grafova. Termin dataset je u ovom radu korišćen u prethodno navedenom značenju. Sama sintaksa je zasnovana na JSON formatu, sa ciljem da se omogući postojećim JSON podacima da uz minimalne izmene budu interpretirani kao povezani podaci [75]. Model podataka definisan korišćenjem JSON-LD-a može biti predstavljen i kao usmereni graf. Čvorovi u grafu se nazivaju subjekti ili objekti (u zavisnosti od smera ivice sa kojom je čvor povezan), dok se ivice nazivaju propertijima (tj. svojstvima, ili predikatima u RDF-u). Subjekat, predikat i objekat formiraju iskaz (takođe poznat kao trojka). Suprotno torka centričnom pristupu koji podržavaju drugi serijalizacioni formati za povezane podatke, JSON-LD se fokusira na entitete [112], što znači da se jedan objektni čvor u JSON-LD-u koristi za sve trojke koje imaju zajednički subjekat. Listing 1 prikazuje imenovani graf koji sadrži jedan objektni čvor sa tri iskaza čiji je subjekat označen IRI-jem http://me.jane-doe.com/.

{ "@context": { "name": "http://xmlns.com/foaf/0.1/name", "knows": "http://xmlns.com/foaf/0.1/knows", "Person": "http://xmlns.com/foaf/0.1/Person" }, "@id": "http://example.com/graph/a", "@graph": [ { "@id": "http://me.jane-doe.com/", "@type": "Person", "name": "Jane Doe", "knows": "http://john-doe.com/#me" } ]} Listing 1. Imenovani graf sa jednim objektnim čvorom Da bi se JSON-LD koristio u najjednostavnijoj formi, potrebne su dve ključne reči (@context i @id) i osnovno poznavanje JSON-a. Ključna reč @context se koristi za definisanje konteksta koji sadrži skraćena imena koja se koriste u JSON-LD dokumentu. Skraćena imena predstavljaju mapiranja prefiksa prostora imena i JSON ključeva na IRI-je. Takođe, ona su poznata i kao termi u JSON-LD terminologiji. Primer JSON-LD terma predstavlja name, Listing 1. Ključna reč @id dodeljuje jedinstveni identifikator JSON objektu. Identifikatori mogu biti definisani kao IRI-ji ili prazni čvorovi (engl. blank nodes). Tako na primer http://example.com/graph/a IRI identifikuje dokument, Listing 1. Opseg važenja identifikatora praznog čvora predstavlja JSON-LD dokument. Ključna reč @graph se koristi za

49 Teorijske osnove grupisanje čvorova. Kada se ona upari sa ključnom reči @id dobija se imenovani graf. Imenovani grafovi se koriste kada je potrebno napraviti iskaze o samom grafu. Ključna reč @type u prikazanom primeru dodeljuje tip čvoru identifikovanim sa http://me.jane-doe.com/. U JSON-LD RDF grafu se mogu razlikovati dva tipa IRI-ja – IRI-ji ontoloških terma i IRI-ji resursa koji se koriste kao vrednosti. Prvi tip IRI-ja služi za dobijanje mašinski čitljivog opisa nekog ontološkog terma (npr. http://xmlns.com/foaf/0.1/name, Listing 1) dok se drugi koristi za dobavljanje ostalih podataka sa drugih izvora (npr. http://john-doe.com/#me, Listing 1). U prikazanom primeru termi iz Friend of a Friend (skr. FOAF) rečnika [113] su iskorišćeni da opišu osobu Jane Doe. FOAF rečnik takođe sugeriše da je vrednost knows propertija dereferencabilni IRI. Dereferencabilni IRI-ji predstavljaju jedan od osnovnih principa povezanih podataka [114]. Sam proces identifikacije linkova u dostupnim podacima i njihovo praćenje u cilju otkrivanja dodatnih informacija je poznato i kao Follow Your Nose patern za povezane podatke [115]. FOAF rečnik iz primera koristi stil prostora imena sa kosom crtom (engl. slash namespace style), što znači da su IRI-ji klasa i propertija konstruisani dodavanjem znaka kose crte ('/'), praćenog lokalnim imenom, na IRI rečnika [116], [117]. Drugi stil za prostor imena koristi heš (#) znak umesto kose crte. Heš znak razdvaja identifikator fragmenta od IRI-ja i označava opcioni deo IRI-ja. IRI-ji sa heš znakom se koriste za identifikaciju resursa unutar samog dokumenta. Nasuprot JSON sintaksi koja može da modeluje samo razgranatu strukturu podataka (tzv. stablo strukturu), JSON-LD podržava modelovanje grafovske strukture podataka. To znači da se JSON-LD podaci mogu serijalizovati na različite načine zadržavajući istu ekspresivnost podataka [118].

2.5.2.2.1 JSON-LD agoritmi za procesiranje i API JSON-LD algoritmi za procesiranje i API (engl. JSON-LD 1.0 Processing Algorithms and API) [106] predstavljaju zvaničnu W3C preporuku. Ova preporuka definiše transformaciju JSON-LD-a u proširenu, poravnatu i sažetu (engl. expanded, flattened, compacted) formu dokumenta, dok se JSON-LD algoritam za frejmovanje (engl. JSON-LD Framing Algorithm 1.1) [119] koristi za oblikovanje i filtriranje podataka. Na ovaj način, za razliku od drugih RDF serijalizacionih formata, JSON-LD ne ograničava ekspresivnost podataka. Proširivanje JSON-LD dokumenta podrazumeva proces primene konteksta (zadatog vrednošću propertija @context) na JSON-LD dokument tako da su svi IRI-ji, tipovi i vrednosti prošireni pa kontekst više nije neophodan. Poravnavanje JSON-LD dokumenta je postupak u kome se svi propertiji jednog čvora sakupljaju u jedan JSON objekat, dok se svi prazni čvorovi imenuju odgovarajućim identifikatorima. Ovim se osigurava oblik podataka koji može drastično da pojednostavi programski kod potreban za procesiranje JSON-LD dokumenata u aplikacijama. Sažimanje JSON-LD dokumenta predstavlja proces primene konteksta obezbeđenog od strane programera u cilju skraćivanja IRI-ja na terme ili sažete IRI-je i JSON/LD vrednosti izraženih u neproširenoj formi na jednostavne vrednosti poput stringova ili brojeva. Na ovaj način pojednostavljuje se rad sa dokumentom pošto se podaci mogu izraziti u obliku/jeziku specifičnom za aplikaciju u kojoj se koriste. Dokumenti u ovoj formi su čitljiviji za ljude.

2.5.2.3 SHACL W3C Shapes Constraint Language (skr. SHACL) predstavlja jezik za validaciju RDF grafova u odnosu na set zadatih uslova [120], razvijen od strane W3C RDF Data Shapes radne grupe. SHACL zahteva dve vrste ulaznih podataka:  graf oblikovanja (engl. shape graph) – RDF graf koji sadrži uslove,  graf podataka (engl. data graph) – graf koji se validira grafom oblikovanja. Rezultat validacionog procesa je validacioni izveštaj.

50 Teorijske osnove

SHACL specifikaciju čine dva dela: SHACL Core i SHACL-SPARQL jezici. SHACL Core jezik opisuje osnovne funkcionalnosti potrebne za predstavljanje oblika, ograničenja i ciljeva. SHACL-SPARQL jezik na SHACL Core dodaje napredne funkcionalnosti poput SPARQL baziranih ograničenja i mehanizam za proširenje pomoću kojeg se mogu deklarisati nove komponente za ograničenja. Svaka SHACL implementacija (tj. SHACL procesor) mora najmanje da podrži validaciju sa SHACL Core jezikom. SHACL procesor može da validira RDF grafove koji uključuju različite skupove semantičkih veza između izraza (engl. entailments, tj. takozvane entailment režime). Primeri entailment režima su: RDF, D , OWL 2 baziran na RDF semantici, OWL 2 direktna semantika i drugi [121]. Takvi RDF grafovi mogu biti unapred izračunati pa prosleđeni SHACL procesoru ili se izvođenje ulaznog grafa može raditi u hodu kao deo SHACL procesiranja. Osim za validaciju RDF grafova, SHACL grafovi oblikovanja mogu da se koriste za, na primer, opis integracija podataka, generisanja koda, ograničenja u korisničkom interfejsu vođenom modelom podataka. U toku rada na ovoj disertaciji, autorka je učestvovala u implementaciji SHACLib.ts biblioteke realizovane u TypeScript-u (videte prilog 9.1.1) [122].

2.5.2.4 Web komponente Skup standarda web komponenti (engl. WebComponents) je zamišljen da omogući kreiranje ponovno iskoristivih elemenata koji neometano rade sa ugrađenim elementima pretraživača. Štaviše, oni omogućuju dekompoziciju aplikativnog koda u cilju izolacije željenog ponašanja u komponente odgovarajuće veličine, čineći kod preglednijim i manje skupim za održavanje [123]. Web komponente se sastoje od četiri W3C specifikacije: 1. Korisnički definisani elementi (engl. Custom Elements) [124] – specifikacija napravljena sa ciljem da omogući programerima da definišu i koriste nove tipove DOM elemenata u svojim HTML dokumentima. Specifikacija predstavlja skup JavaScript API-ja kojim se definišu novi elementi i njihovo ponašanje. 2. HTML importi (engl. HTML imports) [48] – definišu način za uključivanje i ponovno korišćenje HTML dokumenata u drugim HTML dokumentima. 3. Šabloni (engl. Templates) [125] – deklarišu HTML fragmente koji se mogu klonirati i ubaciti u dokument pomoću skripte. Deklarisani fragmenti su inertna DOM podstabla, čijim instanciranjem i manipulacijom se kreira strukturno identični sadržaj koji se popunjava željenim podacima. Deo je HTML5 specifikacije. 4. Shadow DOM [126] – specifikacija omogućava bolju enkapsulaciju različitih funkcionalnih elemenata u okviru jednog DOM elementa. Specifikacija predstavlja skup JavaScript API-ja kojim se:  Enkapsulirano, skriveno (engl. shadow) DOM stablo dodaje u željeni DOM element glavnog dokumenta, pri čemu je skriveno DOM stablo renderovano nezavisno od DOM- a glavnog dokumenta, i  upravlja povezanim funkcionalnostima. 2.6 Web alati

Pellet Pellet je OWL 2 DL rasuđivač (engl. reasoner) otvorenog koda dostupan pod AGPL (engl. Affero General Public License) i komercijalnom licencom, implementiran u Java programskom jeziku, razvijen i komercijalno podržan od strane Complexible Inc. Pellet 2.0 je rešenje otvorenog koda. Ono može da se koristi sa Apache Jena i OWL-API bibliotekama. Pellet pruža sledeće funkcionalnosti: proveru konzistentnosti ontologija, izračunavanje hijerarhije klasa, objašnjenje izvođenja i odgovore na SPARQL upite.

51 Teorijske osnove

Pellet 3.0, rešenje zatvorenog koda, predstavlja sledeću generaciju Pellet-a, ugrađeno je i dostupno u Stardog RDF bazi podataka. Polymer Polymer [123] predstavlja biblioteku razvijenu od strane Google-a koja kreira omotač oko standardnog vizuelizatora (engl. rendering engine) web komponenti i proširuje njegove funkcionalnosti za kreiranje korisnički definisanih elemenata. Ove funkcionalnosti su dizajnirane da olakšaju kreiranje korisnički definisanih elemenata koji rade kao standardni DOM elementi. On se oslanja na webcomponents.js [127], skup polifila napravljenih da premoste razliku između različitih implementacija skupa standarda web komponenti u različitim pretraživačima. Korišćenjem web komponenti, web programeri mogu da integrišu unapred pripremljene komponente u svoje aplikacije ne uvodeći u svoje rešenje dodatne DOM elemente nad kojim njihov kod nema kontrolu. Polymer renderuje korisnički definisane elemente i enkapsulira svu funkcionalnost i dizajn (primenjene css stilove) u okviru Shadow DOM-a. Eksterne zavisnosti korisničkih definisanih komponenti, ako su definisane, mogu biti integrisane korišćenjem alata za rukovanje paketima poput Node Package Manager-a [128] (skr. npm) ili Bower-a [129] čime se programeri oslobađaju briga oko implementacije i zavisnosti na novododate komponente. Web komponente menjaju uvreženi način razmišljanja o modularnosti na web-u, i kao takve mogu da se koriste sa popularnim MV* okvirima poput Backbone.js [130] i Angular.js [131] kako bi omogućili programerima kreiranje portabilnih, dinamičkih, enkapsuliranih UI modula. Imajući u vidu da je skup standarda web komponenti u procesu izrade, implementacija robustnih web komponenti je izazovan zadatak. Zbog toga web programeri moraju veoma često da ažuriraju svoj kod u cilju obezbeđivanja da web komponente rade na očekivani način. Polymer od programera preuzima ovu odgovornost na sebe i omogućava podršku za određen broj poslednjih verzija standarda za sve vodeće verzije pretraživača. Protégé Protégé predstavlja okruženje za kreiranje i editovanje ontologija, sa punom podrškom za OWL 2 jezik i rasuđivače deskriptivne logike poput HermiT-a i Pellet-a. Sam alat dolazi u dva međusobno kompatibilna oblika Protégé Desktop i WebProtégé. Protégé Desktop podržava kreiranje i editovanje jedne ili više ontologija u jednom radnom prostoru. On nudi alate za vizuelizaciju kojim je omogućena interaktivna navigacija kroz prisutne ontološke relacije. Takođe, on omogućava lakše pronalaženje i izolaciju nekonzistentnih stanja u ontologijama. Kroz ovaj alat je moguće spajanje ontologija, prebacivanja aksioma između ontologija, preimenovanje entiteta i drugo. Stardog Stardog predstavlja komerijalno RDF rešenje razvijeno kao platforma grafova znanja za preduzeća. Stardog podržava model podataka baziran na RDF grafovima, SPARQL upitni jezik, SPARQL lokacije za pristup podacima (tzv. endpointe), OWL 2 i OWL 2 DL rasuđivanje (izvođenje znanja), korisnički definisana pravila za zaključivanje i analitiku podataka, geoprostorne upite i virtuelne grafove.

52 Metodologija istraživanja

3. METODOLOGIJA ISTRAŽIVANJA

3.1 Faze istraživanja

Istraživanje u okviru ove disertacije je sprovedeno kroz šest faza. Prva faza istraživanja je obuhvatila detaljnu analizu teorijskih osnova, upoznavanje sa predmetom istraživanja i aktuelnim stanjem u oblasti istraživanja putem dostupne naučne i stručne literature. Dat je pregled aktuelnog stanja u oblasti standardizacije u pametnim mrežama uz osvrt na najznačajnije arhitekture pametnih mreža. Posebno su razmatrani CIM i CGMES standardi, gde je za testni uzorak u ovom radu odabrana jedna ENTSO-E CGMES testna konfiguracija korišćena u testiranju interoperabilnosti. Analizirani su tekući CIM standardi sa tehničkog aspekta, tekuća stanja primenjenih W3C semantičkih web standarda (RDFS, RDF/XML), kao i novi semantički web standardi (RDF 1.1, Turtle 1.1, OWL 2, JSON-LD 1.0, JSON-LD 1.0 algoritmi procesiranja i API, SHACL) i standardi u razvoju (JSON- LD frejming). Razmatrana je modularnost web aplikacija iz nekoliko aspekata. Pored njih, analizirani su W3C standardi vezani za web dizajn i aplikacije pod čijim okriljem se nalazi skup web standarda koji se odnosi na web komponente (HTML Templates, Shadow DOM, HTML Imports i Custom Elements) kojim se omogućava modularizacija web aplikacija. Druga faza istraživanja je usmerena na ispitivanje aktuelnih zahteva u elektroenergetskoj industriji i ograničenja postojećih CIM standarda baziranih na semantičkim web standardima. Detaljnom analizom utvrđena su ograničenja u IEC 61970-501 i 61970-552 sa stanovišta semantičkog web-a. U ovoj fazi su takođe analizirane raspoložive mogućnosti za usklađivanje CIM standarda sa važećim W3C semantičkim standardima. U tom cilju ispitivan je RDFS-Plus tj. proširenje RDF šeme u pravcu korišćenja koncepata OWL 2 jezika, zatim je analizirana primena OWL 2 jezika za modelovanje CIM-a i JSON-LD-a kao serijalizacionog formata. Treća faza istraživanja predstavlja evaluaciju metodologije predstavljene kao rezultat istraživanja u drugoj fazi. Evaluacija je urađena na primeru ENTSO-E CGMES testne konfiguracije. Ona predstavlja dokaz da je aktuelne IEC standarde koji se odnose na upravljanje elektroenergetskim sistemima, kao i njihovo modelovanje, moguće proširiti u skladu sa preporukama datim od strane W3C- a. Četvrta faza istraživanja adresira modularnost podataka u smart grid web aplikacijama po prethodno razvijenoj metodologiji i koristi JSON-LD format podataka semantičkog web-a. U ovoj fazi analizirani su načini za unapređene frejming algoritma za procesiranje JSON-LD formata. U petoj fazi istraživanja izvršen je pregled tekućeg stanja klijentskih web okvira i prepoznat pravac razvoja modularnih web arhitektura danas. Eksperimentalno istraživanje elemenata modularne web arhitekture je sprovedeno na web platformi upošljavajući skup standarda za opis web komponenti (WebComponents). U poslednjoj fazi su analizirani rezultati i dati pravci za nova istraživanja u ovoj oblasti. 3.2 Istraživački metodi

Tokom naučno-istraživačkog rada korišćeni su metodi naučnog istraživanja koje obezbeđuju objektivnost, sistematičnost i pouzdanost.

53 Metodologija istraživanja

Metod kompilacije Metod kompilacije je primenjen u uvodnom razmatranju i prikazu aktuelnog stanja u oblasti standardizacije i arhitekture pametnih mreža, modularnosti, i standardizacije web-a. Istom metodom su preuzeti i sagledani rezultati tuđih naučno-istraživačkih i stručnih radova, odnosno tuđa opažanja, stavovi i zaključci u opisu problema postavljenih hipoteza. Metod uzorka Metodom uzorka odabran je reprezentativan skup vladajućih tehničkih standarda u oblasti modelovanja elektroenergetskih sistema koji je potom razmatran. Metodom uzorka je takođe odabran reprezentativan skup CIM profila i podataka, određen ENTSO-E CGMES standardom odnosno testnom konfiguracijom za proveru interoperabilnosti iz 2014. godine, na kojima su verifikovani rezulati ove disertacije. Na ovaj način je metod uzorka korišćen u trećoj, četrtoj i petoj fazi istraživanja prilikom definisanja inicijalnog skupa podataka na kojima se baziraju eksperimentalna istraživanja ove disertacije. Problem pouzdanosti karakterističan za metod uzorka u pogledu veličine uzorka i reprezentativnosti odabranih jedinica je razmatran, i zaključeno je da ne utiče na opštost eksperimentalnog istraživanja. Metod analize Metod eksplikativne analize je korišćen pri analizi ograničenja IEC 61970-501 i 61970-552 standarda sa stanovišta semantičkog web-a, čime je napravljen doprinos boljem shvatanju predmeta istraživanja i njegovom objašnjenju. Takođe, ovaj metod je iskorišćen u drugoj fazi istraživanja kako bi se objasnile relacije između elemenata nove metodologije za modelovanje u elektroenergetskim sistemima. Metod sinteze Metod sinteze je korišćen u petoj fazi istraživanja za sintezu rezultata prethodnih faza istraživanja. Sintezom CIM standarda, W3C semantičkih web standarda i W3C standarda vezanih za web dizajn i aplikacije kreirana je modularna web komponenta. Metod komparacije Komparativni metod je postupak upoređivanje srodnih pojava odnosno utvrđivanja njihove sličnosti u ponašanju i intenzitetu, i razlika među njima. Metodom komparacije je u drugoj fazi istraživanja upoređeno mapiranje koncepata CIM RDF šeme na CIM OWL ontologiju. Isti metod je primenjen pri mapiranju CIM RDF šema ekstenzija na SHACL u trećoj fazi. Takođe, komparativni metod je korišćen pri analizi eksperimetalnih rezultata u trećoj i četvrtoj fazi istraživanja. U trećoj fazi je razmatrana validacija unije povezanih datasetova i minimuma RDFS profila u odnosu na odgovarajući graf oblikovanja, kao i validacija unije svih datasetova i minimuma RDFS profila u odnosu na odgovarajući graf oblikovanja. Pri razmatranju su upoređivani različiti faktori od kojih su najznačajniji broj uočenih validacionih grešaka i vreme potrebno za njihovo otkrivanje. U četvrtoj fazi istraživanja su razmatrani uticaji različitih faktora na vremena potrebna za frejmovanje RDFS i OWL ulaznih dokumenata CIM profila. Metod modelovanja U drugoj fazi istraživanja primenjen je metod modelovanja u OWL 2 jeziku kojom su kreirani CIM artefakti koji odgovaraju novoj metodologiji. Modelovanje je rađeno u Protégé alatu, a validacija CIM artefakata je urađena pomoću Manchester OWL 2 validatora.

54 Metodologija istraživanja

Metod eksperimenta Osnovni metod primenjen u trećoj i četvrtoj fazi istraživanja je metod eksperimenta. Ovim metodom se namerno menjaju uslovi odigravanja nekog događaja i mere posledice izazvane tim promenama. Tako je u trećoj fazi istraživanja menjan sadržaj ulaznog skupa podataka, dok je u četvrtoj fazi menjan format ulaznog dokumenta. U oba slučaja rezulatati eksperimenta su prikazani tabelarno. Metod izrade prototipa U trećoj fazi, metod izrade prototipa je primenjen na izradu CIM artefakata koji odgovaraju novoj metodologiji modeliranja. U četvrtoj fazi metod izrade prototipa je primenjen na implementaciju predloženog unapređenja JSON-LD frejming algoritma. Metod izrade prototipa je primenjen u petoj fazi istraživanja za potrebe verifikacije elementa predložene modularne arhitekture. Komponenta prototipa je implementirana u Visual Studio Code razvojnom okruženju korišćenjem programskih jezika JavaScript-a i HTML-a. Metod univerzalne indukcije Metodom univerzalne indukcije izvedeni su zaključci o elementima predložene modularne arhitekture. Na primer, uzimajući ENTSO-E CGMES profile i jednu testnu konfiguraciju (koja sadrži modele odgovarajućih profila) izvršena je evaluacija predložene CIM metodologije. Kako je nova metodologija bila primenjiva na ulazni skup podataka zaključeno je da će predloženi pristup važiti u opštem slučaju. Po istom principu, u različitim fazama istraživanja kreirane su web komponenta za vizuelizaciju hijerarhije nasleđivanja CIM profila i web komponenta za prikaz CIM profila i zaključeno je da ukoliko su kreirane komponente bile primenjive na odabrane ENTSO-E CGMES profile, one će biti primenljive i u opštem slučaju i na CIM profile kreirane po predloženoj CIM metodologiji. Istorijski metod Istorijskim metodom je u petoj fazi istraživanja sagledan razvoj klijentskih i serverskih web okvira, najznačajnijih W3C web preporuka i protokola, kao i web pretraživača. Metod generalizacije Formiranje opštih stavova na osnovu pojedinačnih zaključaka izvedeno je metodom generalizacije. Na ovaj način izvedeni su zaključci o mogućnosti primene predloženih rešenja (dobijenih iz različitih faza istraživanja) u pametnoj mreži.

55 Opis problema

4. OPIS PROBLEMA

4.1 IEC standardi nisu u potpunosti usklađeni sa W3C RDF preporukama

Hipoteza 1: IEC standardi koji se odnose na upravljanje elektroenergetskim sistemima, kao i njihovo modelovanje (IEC 61970-501 i IEC 61970-552) su bazirani na RDF arhitekturi i nisu u potpunosti usklađeni sa tekućim W3C RDF preporukama. Krajem devedesetih i početkom dvadesetih godina prošlog veka Proširivi-meta jezik za označavanje tekstualnih dokumenata (engl. Extensible Markup Language, skr. XML) je predstavljao najčešće primenjivanu sintaksu za izražavanje strukture podataka (RDF arhitektura, Slika 33) [132]. Uvođenje RDF-a, kao novog sloja iznad XML-a, dodatno je omogućilo izražavanje semantike. Na ovaj način omogućeno je kreiranje aplikacija baziranih na RDF-u koje izvode nove podatke na osnovu logičkih pravila, čime se unapređuje modularnost i proširivost web-a [132].

Slika 33. RDF arhitektura – formati podataka [132] Uporedo sa razvojem RDF arhitekture usvojen je CIM koji je iskoristio zatečeno stanje, uredivši svoje standarde u troslojni okvir. Prvi sloj predstavlja informacioni model elektroenergetskog domena zabeležen u UML-u kojim je definisana semantika potrebna za interoperabilnost. Drugi sloj je grupa profila za specifične sistemske interakcije zasnovana na podskupu informacionog modela kojim se definiše sintaksa za razmenu informacija. Treći sloj predstavlja skup implementacionih tehnologija baziranih na XML-u i RDF-u koji se koristi za serijalizaciju podataka za razmenu (XSD za poruke i RDFS za razmenu modela) [133]. IEC 61970-501 i IEC 61970-552 adresiraju drugi i treći sloj CIM okvira. IEC 61970-501 standard [86] opisuje proces mapiranja CIM UML-a u XML korišćenjem podskupa RDFS-a. Rezultat mapiranja je poznat i kao CIM RDF šema. Ona definiše određeni model od interesa (podskup CIM modela) koji se još naziva i CIM profil. Standardom su opisane i ekstenzije RDF šeme, uvedene kako bi se nadomestili nedostajući UML koncepti. Ovi koncepti su pored ostalog omogućili korišćenje CIM RDFS-a kao šeme za sintaksnu proveru CIM dokumenata. IEC 61970-552 standard [87] specificira kako se CIM RDFS koristi za konstruisanje XML dokumenata koji sadrže informacije o modelovanju pametne mreže (takođe poznatih i kao CIMXML dokumenti [87]). Pored standardom definisanog naziva CIMXML, ovaj format se u praksi često naziva i CIM/XML. Dva najčešća pristupa za generisanje profila i poruka, prateći CIM okvir, su evropski i severno američki pristup [134], Slika 34. Iako je na slici prikazano da severno američki pristup koristi OWL za opis profila u praksi je to retko slučaj. Ideja se zadržala na pokušaju u okviru IEC 61970-505 planiranog standarda [2] i implementacije u CIMTool-u. Slika 35 ilustruje tipičan troslojni okvir za razmenu modela koji se primenjuje u praksi (isti princip prati i ENTSO-E CGMES standard), gde prvi sloj prikazuje CIM i ekstenzije informacionog modela, drugi sloj je prikazan sa dva profila (CIM profil A i B), dok je treći sloj informacionih tehnologija prikazan sa

56 Opis problema

CIM RDFS i CIMXML dokumentima. Na slici je takođe prikazan odnos CIM informacionog modela, njegovih ekstenzija, CIM profila, CIM profilne RDF šeme i CIMXML-a. CIM RDF šema za CIM profil može da sadrži samo CIM klase i propertije od interesa za određeni profil. Takođe, CIM profili mogu da uključe i potrebne ekstenzije, i to klase, propertije i/ili asocijacije sa profilnim CIM klasama. Svaki CIMXML dokument može da sadrži opis modela. Opis predstavlja zaglavlje dokumenta koje sadrži reference na odgovarajuće CIM profile i druge CIMXML dokumente. md:FullModel klasa (md je skraćenica za http://iec.ch/TC57/61970-552/ModelDescription/1#) opisuje zaglavlje podataka, dok njeni propertiji md:Model.profile i md:Model.DependentOn opisuju prikazane relacije, Slika 35.

Base UML (in EA)

European North American approach approach

Profiling Profiling rules rules

Profile in UML Profile in OWL

Transforming Transforming rules rules

Profile/message Profile/message XSD XSD or RDFS

Instance files Instance files

Slika 34. Evropski i severno američki pristup za generisanje profila i poruka [134]

Extensions UML CIMProfile B CIMProfile A CIM UML defines defines

Profile A Profile B CIM RDFS CIM RDFS

#URI #URI

references using references using Model.profile Model.profile

Network Model Network Model Data A Data B CIMXML CIMXML #URI #URI references using Model.DependentOn

Slika 35. CIM okvir za razmenu modela CIM metodologija je razvijana tokom niza godina i kroz primenu u elektroenergetskim kompanijama širom sveta [133]. Ona obuhvata procese koji variraju od usko specijalizovanih poslovnih slučajeva korišćenja do deljenja podataka na interoperabilan način preko različitih transportnih

57 Opis problema mehanizama u elektroenergetskom domenu. Kako bi se dostigla interoperabilnost i izvođenje znanja u domenu i sa drugim domenima tekuća ograničenja CIM sintakse i serijalizacije se moraju razumeti. IEC 61970-501 – CIM RDF šema CIM RDF šema koristi podskup RDFS klasa i propertija uključujući ekstenzije definisane da podrže nedostajuće UML koncepte. Preciznije, ona koristi sledeće RDF klase rdfs:Resource, rdfs:Class, rdfs:Literal2 i rdf:Property, i propertije rdfs:range, rdfs:domain, rdf:type, rdfs:subClassOf, rdfs:label i rdfs:comment. Takođe, ona nameće i sledeće konvencije [86], [87]: a. Uvedene su RDF ekstenzije, konkretno cims:multiplicity, cims:inverseRolename, cims:isAggregate, cims:stereotype, cims:datatype, cims:profile, cims:classCategory i cims:belongsToCategory. Prve četiri navedene ekstenzije su definisane korišćenjem nezvaničnog RDFS ograničenja – rdfs:ConstraintProperty. CIM RDF šema definiše sopstvene tipove podataka pomoću cims:datatype ekstenzije, poput string, float, integer, enumeracija i drugih tipova podataka. Preostale ekstenzije se odnose na metapodatke o profilu. b. U procesu generisanja CIM profila iz CIM UML modela korišćenjem CIM RDF šeme nekom UI aplikacijom (npr. CIMTool-om), podskup CIM UML modela se interaktivno specificira i pri tome obavezni atributi i kardinaliteti asocijacija mogu biti izmenjeni zajedno sa tipovima podataka ili ograničenjima na tipove podataka u odnosu na polazni model. c. CIM RDF šema se može koristiti od strane neke aplikacije za validaciju CIMXML dokumenata, što je moguće zahvaljujući definisanim RDFS ekstenzijama i za to razvijenim alatima (poput CIMTool-a [100], CIM Enterprise Architect-a [99], CimConteXtor-a [98], ili CIMBench-a [135]). d. Bazni URI za sve CIM profile iz iste profilne grupe je isti što sprečava njihovo publikovanje na web-u (pošto ne mogu svi biti objavljeni na istom URI-ju tako da su jednoznačno dereferencabilni). Ako bi se bazni prostor imena nekog CIM profila promenio, korišćenjem tekućeg CIM pristupa za modelovanje to bi dovelo do nepovezanih CIM profila i njihovih odgovarajućih modela. e. CIM profili mogu da izmene skup primenjenih restrikcija na atribute, asocijacije i tipove podataka. Na ovaj način, različiti CIM profili koji učestvuju u razmeni podataka mogu da imaju različite skupove restrikcija nad istom klasom deleći pri tom isti URI za klasu. Na osnovu navedenih konvencija može se uočiti da CIM RDF šema podržava definisanje ograničenja i metapodataka na način koji je nestandardan za RDF šemu, da je moguće je kreirati međusobno konfliktna pravila u CIM profilima koji pripadaju istoj profilnoj grupi, da se na indirektan način RDF šema koristi za proveru sintaksne usklađenosti iako joj to nije namena, i da upotreba istog baznog URI-ja ograničava njihovu dostupnost ukoliko bi se taj URI posmatrao kao lokacija dokumenta. IEC 61970-552 – CIMXML Konvencije uvedene u CIMXML po dizajnu koje utiču na interpretaciju CIMXML-a posmatrano iz RDF perspektive obuhvataju [35], [87]: a. Validan CIMXML dokument koristi samo podskup RDF sintakse [86]. Razlog za ovo je u činjenici da RDF sintaksa omogućava različite načine za reprezentovanje istog skupa podataka, a dostupni XML alati (npr. Extensible Stylesheet Language procesori) ne mogu da koriste različite reprezentacije na direktan način [86]. Stoga primenjena RDF/XML sintaksa i XML alati ograničavaju ekspresivnost CIM dokumenata i njihovu primenjivost. CIMXML dokument je poravnati RDF/XML bez baznog URI-ja. b. U RDF-u, svaki čvor mora da ima jedinstveni identifikator (rdf:ID). Tehnički gledano, pravi jedinstveni identitet nekog RDF čvora je određen konkatenacijom lokalnog rdf:ID-a i baznog URI-ja (engl. Unique Resource Identifier, skr. URI). Bazni URI je definisan ili preko :base

2 Klasa rdfs:Literal modelira string i celobrojne vrednosti [110].

58 Opis problema

atributa ili je u suprotnom jednak URI-ju samog dokumenta [136]. CIMXML ne prati ovo pravilo. U CIMXML-u bazni URI nije postavljen, rdf:ID vrednosti su relativne i bilo koji čvor u nekom od CIMXML dokumenata identifikovan sa istim rdf:ID-ijem odnosi se na isti, univerzalno jedinstveni objekat. c. Kada je prisutan u CIMXML dokumentu, md:FullModel čvor može da sadrži zaglavlje dokumenta sa opisom modela (uključujući vreme kreiranja, vreme scenarija, opis, nadležnost nad modelom, profil i verziju). U poređenju sa ostatkom čvorova, on sadrži metapodatke koji se odnose na ceo CIMXML dokument. d. IEC radna grupa preporučuje da rdf:ID bude UUID (engl. Universally Unique Identifier, skr. UUID). md:FullModel čvor je identifikovan sa rdf:about čija vrednost je URN u formatu urn:prostor_imena:specifikacija, gde prostor_imena ime vrednost “uuid” dok je specifikacija UUID broj. Ostatak čvorova je identifikovan sa rdf:ID, i referenciran sa rdf:about i rdf:reference. Njihova vrednost je konkatenacija “_” simbola i UUID broja, gde “_” zamenjuje “urn:uuid:”. e. Predloženo grupisanje CIMXML dokumenata navodi da instance klasa definisane u jednom CIMXML dokumentu odgovaraju jednom CIM profilu. Kada je potrebno da se više potencijalno povezanih CIMXML dokumenata čuva zajedno preporučeno je da se čuvaju u vidu arhive poput zip fajla. Uzimajući u obzir identifikovane konvencije, aplikacija koja procesira CIM RDF šeme i njihove odgovarajuće CIMXML-ove mora da implementira dodatno znanje (tj. mora da bude prilagođena) kako bi ispravno interpretirala raspoložive podatke. Takvo znanje podrazumeva da rdf:ID-ijevi u CIMXML- u ne ukazuju na CIMXML-ove gde detalji tih resursa mogu biti pronađeni (tj. referencirani resursi nisu dereferencabilni sa stanovišta povezanih podataka). Ako md:FullModel čvor postoji u CIMXML dokumentu, on može da ukaže na model(e) od kojeg tekući model zavisi. Ne postoji direktna referenca na model u kojem se referencirani rdf:ID nalazi. Ovaj nedostatak dovodi do pretrage unije svih dokumenata koji odgovaraju referenciranim modelima u cilju pronalaženja traženog resursa i njegovih detalja. U opisu problema prve hipoteze identifikovane su konvencije uvedene u CIM RDF šemu i postupke kreiranja CIM profila pomoću CIM RDF šeme. Ove konvencije, iako validne kada se posmatraju iz perspektive IEC CIM standarda, sa stanovišta RDF-a narušavaju interpretaciju CIM RDF šeme kao RDF šema dokumenta u pogledu upotrebljenih koncepata, upotrebe baznog URI-ja, načina primene restrikcija u okviru jedne profilne grupe i namene RDF šema dokumenta u svrhe provere sintaksne usklađenosti. Takođe, identifikovane su konvencije uvedene u CIMXML dokumente. Navedene konvencije sa stanovišta RDF-a ograničavaju ekspresivnost CIM dokumenta (tj. modela), uvode distinkciju između čvorova sa istim lokalnim ID-ijem kada se oni pojavljuju u različitim CIMXML dokumentima u jednoj razmeni modela, ne vezuju na direktan način metapodatke o modelu sa elementima modela, ograničavaju povezivanje ovih dokumenata pošto koriste nedereferencabilne identifikatore, i ne koriste RDF način za grupisanje grafova za objedinjavanje više CIMXML dokumenata u jedan dokument.

59 Opis problema

4.2 Mogućnosti usklađivanja IEC standarda sa W3C preporukama

Hipoteza 2: Aktuelne IEC standarde koji se odnose na upravljanje u elektroenergetskim sistemima i njihovo modelovanje, kao i njihove primene u semantičkim web aplikacijama u pametnim mrežama, je moguće proširiti kako bi bili u skladu sa preporukama datim od strane W3C. Kako bi CIM standardi bili u skladu sa skupom W3C semantičkih web standarda i iskoristili njihove prednosti, potrebno je analizirati raspoložive mogućnosti. U opisu problema prve hipoteze identifikovane su konvencije definisane IEC 61970-501 i IEC 61970-552 standardima. Ove konvencije učestvuju u definisanju problema druge hipoteze tako što njihovo rešavanje određuje pravac proširenja aktuelnih IEC standarda koji se odnose na upravljanje u elektroenergetskim sistemima i njihovo modelovanje u skladu sa W3C preporukama. U cilju prevazilaženja identifikovanih konvencija u CIM RDF šemi, prva opcija koja se nameće je nadogradnja RDFS-a novim W3C standardizovanim konceptima kojim bi se CIM RDF šema proširila u pravcu povezanih podataka. U tom smeru je definisano proširenje RDFS-a – RDFS-Plus, podskup OWL- a, koji je ekspresivniji od RDFS-a, ali istovremeno ne uvodi svu kompleksnost OWL-a zbog ograničenog skupa primenjenih OWL koncepata. Ne postoji zvanični standard kojim je RDFS-Plus opisan, ali je prepoznata industrijska potreba za jezikom koji deli karakteristike RDFS-a i OWL-a [137]. RDFS-Plus je opisan u knjizi [137]. RDFS-Plus uključuje ekspresivnost dovoljnu za opis načina na koji određeni propertiji mogu da se koriste i međusobno povezuju. Pristup sa korišćenjem CIM RDFS-Plus-a za sintaksu, odnosno JSON-LD kao implementacione tehnologije autorka je analizirala i na praktičnom primeru prikazala u radu [8], gde je predstavljen novi pristup za modelovanje podataka pametne mreže. Slika 36 prikazuje kako se CIM, CIM ekstenzije, CIM profili, ontologije i CIM instance podataka (CIM JSON-LD dokumenti) odnose jedni prema drugima u novom pristupu za modelovanje podataka pametne mreže (predstavljenom u radu [8]). Posebne ontologije su kreirane za CIM (CIM Ontology), CIM ekstenzije (Extensions Ontology) i opis modela (Model Description Ontology). CIM i Extensions ontologije su iskorišćene kao bazne ontologije za kreiranje CIM profilnih ontologija koje odgovaraju CIM profilnim RDF šemama iz tipičnog pristupa. S druge strane, Model Description ontologija se koristi u svom izvornom obliku u CIM JSON-LD dokumentima za opis metapodataka o modelu. Svaki CIM JSON-LD dokument po ovom pristupu koristi prikladnu ontologiju definisanu odgovarajućim CIM profilom, i Model Description ontologiju. CIM JSON-LD dokumenti su povezani IRI-jima kada jedan model referencira resurse iz drugog modela. Sve predložene ontologije se publikuju na zadatim prostorima imena što ih čini dereferencabilnim. Na taj način se postiže unapređenje u poređenju sa upotrebom prostora imena u CIM-u gde se oni tretiraju samo kao univerzalna resursna imena (engl. Universal Resource Name, skr. URN).

60 Opis problema

Extensions UML CIMProfile 1 CIMProfile 2

defines CIM UML defines

defines defines Extensions CIM Ontology defines Ontology JSON-LD syntax JSON-LD syntax #IRI #IRI equivalent equivalent equivalent equivalent

CIM Profile 1 Model Description CIM Profile 2 Ontology Ontology Ontology JSON-LD syntax JSON-LD syntax JSON-LD syntax #IRI #IRI #IRI

uses uses uses uses

CIM Network Data CIM Network Data JSON-LD syntax linked via IRI JSON-LD syntax

#IRI #IRI

Slika 36. Novi pristup modelovanju podataka pametne mreže CIM profilne ontologije upotrebljavaju ontološke terme (nadalje reči) od interesa iz baznih/referentnih CIM i Extension ontologija tako što sopstvene reči proglašavaju ekvivalentnim sa rečima od kojih su potekle. CIM profilne ontologije mogu da redefinišu restrikcije nad sopstvenim rečima u odnosu na njihove originalne ekvivalente. Kako neki ontološki termi mogu biti upotrebljeni u nekoliko CIM profilnih ontologija (zbog preklapanja CIM profila) oni su implicitno ekvivalentni. Skup RDFS klasa i propertija je ovim predlogom proširen sa rdfs:isDefinedBy propertijem, kako bi se označila pripadnost svake definisane reči datoj ontologiji. Takođe, uključen je podskup OWL konstrukcija, i to: owl:Ontology, owl:Class, owl:equivalentClass, owl:ObjectProperty, owl:DatatypeProperty i owl:equivalentProperty kako bi se omogućilo kreiranje redom, ontologija, klasa, ekvivalencije klasa, propertija čije su vrednosti objekti odnosno vrednosti određene nekim prostim tipom podatka i ekvivalencije propertija. Ovim pristupom je omogućeno povezivanje CIM dokumenata korišćenjem RDF tehnologije i razrešavanje veza između povezanih resursa pomoću principa povezanih podataka (engl. Linked Data Principles) [114]. Međutim, nisu adresirana sva ograničenja prepoznata u prvoj hipotezi, poput RDFS ekstenzija od kojih se na primer cims:multiplicity ne može izraziti u RDFS-Plus-u, ili metapodataka o CIM RDFS-u. Isto tako potrebno je adresirati validaciju CIM instanci. Stoga je neophodno razviti metodologiju baziranu u potpunosti na semantičkim web standardima i postupak kojim bi se CIM artefakti mapirali u novu metodologiju. Na osnovu analize jednog pristupa za modelovanje podataka pametne mreže koji uzima u obzir deo postojećih ograničenja, uočava se složenost problema proširenja aktuelnih IEC standarda koji se odnose na upravljanje u elektroenergetskim sistemima u skladu sa W3C preporukama. Minimalno proširenje CIM RDF šeme OWL 2 konceptima, izdvajanje baznih ontologija i upotreba JSON-LD-a ne adresiraju sva uočena ograničenja. IEC CIM standardi (IEC 61970-501 i IEC 61970-552) treba da budu prošireni i drugim W3C preporukama kojim bi se adresirala preostala ograničenja.

61 Opis problema

4.3 Web aplikacije u pametnim mrežama mogu da koriste semantički obogaćene podatke

Hipoteza 3: Moguće je proširiti savremene web aplikacije u pametnim mrežama da koriste semantički obogaćene podatke. Savremene web i mobilne aplikacije kao i web servisi kao dominantni format za razmenu podataka koriste JSON [138], [139], izuzetak nisu ni savremene web aplikacije u pametnim mrežama. Kako bi dodali nove mogućnosti u pametnu mrežu u okviru web aplikacija i/ili servisa koji ih opslužuju, potrebno je da se omogući korišćenje deljenih semantičkih informacionih modela. IEC CIM standardi (IEC 61970-501 i IEC 61970-552) se baziraju na upotrebi semantičkih web standarda pre svega RDFS-a i RDF/XML-a. Da bi omogućili rad sa CIM artefaktima neuphodno je upotrebiti format podataka pogodan kako za razmenu na web-u tako i za semantičku reprezentaciju. Kao odgovor na ovaj zahtev nametnuo se JSON-LD format. Činjenica je da JSON-LD 1.0 algoritmi za procesiranje i API, zajedno sa JSON-LD frejming 1.1 specifikacijom obezbeđuju algoritme za manipulaciju JSON-LD dokumentima. Ipak, u praksi se nailazi na potrebu za unapređenjem ovih algoritama. U publikovanom radu autorke [140], prepoznata je potreba za rekurzivnim prioritetizovanim inverznim relacijama u frejmovima i razvijena je rana implementacija kao proširenje filtriranja čvornih objekata. Ona je iskorišćena kao osnova web komponente koja procesira i prikazuje mašinski čitljive CIM profile u formi koja je lakša za razumevanje čoveku. U ovom radu biće prikazano unapređenje pomenute implementacije koja adresira rekurzivnu primenu prioritetizovanog reverznog frejmovanja uparenog sa filtriranjem čvornih objekata i uvođenje dodatnih ključnih reči kako bi se postigli fleksibilniji rezultati. Identifikacija nedostataka postojećeg reverznog frejmovanja obuhvata: 1. Nemogućnost definisanja jednostavnog frejma za potrebe reverznog frejmovanja. 2. Nepostojanje reverznog frejmovanja baziranog na višestrukim relacijama definisanim u jednostavnom frejmu. 3. Nemogućnost ugrađivanja čvornih objekata pri njihovoj prvoj pojavi. 4. Nedostatak naprednog filtriranja u reverznom frejmovanju. Problem 1: Složenost reverznog frejmovanja Kao posledica činjenice da JSON-LD serijalizuje usmerene grafove, svaki properti (usmerena grana grafa) u JSON-LD-u spaja jedan čvor sa drugim čvorom ili vrednošću. Ponekad je potrebno iskazati takvu relaciju u obrnutom smeru. Na primer, smatrajući subClassOf relacijom usmerenom od podklase ka super klasi, eksplicitna definicija propertija koji označava suprotni smer - superClassOf relacija se obično izostavlja. Takva relacija može biti iskazana u JSON-LD grafu kada je definisan @reverse subClassOf property. Na ovaj način kreirana je obrnuta hijerarhija. Kada je potrebno napraviti dugačku obrnutu hijerarhiju, kreiranje željenog frejmovanog izlaza zahteva duboko ugnježden kompleksan frejm pošto JSON-LD frejming specifikacija trenutno podržava samo osnovni reverzni frejming. Ovo znači da glavni frejm i svaki ugrađeni frejm treba da definišu svoju sopstvenu @reverse sekciju što može da bude nezgodno u situaciji kada kreator frejma nije svestan dubine hijerarhije u JSON-LD ulazu. Tipičan primer predstavlja hijerarhija nasleđivanja (rdfs:subClassOf) u bilo kom RDFS rečniku ili OWL ontologiji. Jedan primer JSON-LD frejma koji za rezultat ima hijerarhiju stabla baziranu na nasleđivanju klasa i grupisanju svih povezanih propertija klase na osnovu domenske vrednosti propertija prikazuje Listing 2. Treba primetiti da podfrejm dodeljen children propertiju mora biti ponovljen onoliko puta koliko je potrebno u zavisnosti od JSON-LD dokumenta koji se frejmuje.

62 Opis problema

{ "@context": { ... "children": { "@reverse": "rdfs:subClassOf", "@container": "@set" }, "properties": { "@reverse": "rdfs:domain", "@container": "@set" } }, "@type": "rdfs:Class", "children": { "@type": "rdfs:Class", "properties": { "@type": "rdf:Property" }, "children": { "@type": "rdfs:Class", "properties": { "@type": "rdf:Property" }, "children": { ... } } } } Listing 2. Izvod iz JSON-LD frejma sa reverznim propertijima Svakako postoji mogućnost za programsko kreiranje specifičnog frejma na osnovu dokumenta koji je potrebno frejmovati i relacija od interesa, ali tada svaki dokument zahteva sopstveni frejm pa reverzni frejming postaje dvofazni proces. U prvoj fazi potrebno je napisati program koji kreira frejm na osnovu ulaznog fajla i inverznih relacija od interesa, dok se u drugoj fazi dobijeni frejm primenjuje na ulazni fajl kako bi dobili frejmovani rezultat. Problem 2: Reverzni frejming sa višestrukim relacijama Frejmovi sa inverznim propertijima postaju izuzetno kompleksni kada se uključe dodatni propertiji ili kada postoje višestruki ugnježdeni reverzni propertiji istog tipa koji kreiraju odgovarajuće hijerarhije. Na primer, frejm sa višestrukim ugnježdenim reverznim propertijima prikazuje Listing 3. Kako se stanje prekidačke opreme u elektroenergetskoj mreži može razlikovati od normalnog uklopnog stanja prikazani frejm se može iskoristi za kreiranje dve hijerarhije – hijerahije fidera koji odgovaraju normalnom uklopnom stanju i hijerarhije koja odgovara aktuelnom stanju prekidačke opreme.

{ "@context": { ... "normalFeeders": { "@reverse": "ex:normalFeederOf" }, "actualFeeders": { "@reverse": "ex:actualFeederOf" } }, "@type": "PowerSystemResource", "normalFeeders": { "@type": "PowerSystemResource", "normalFeeders": { "@type": "PowerSystemResource", "normalFeeders": { ... }, "actualFeeders": { ... } }, "actualFeeders": { "@type": "PowerSystemResource", "normalFeeders": { ... }, "actualFeeders": { ... } } }, "actualFeeders": { "@type": "PowerSystemResource", "normalFeeders": { ... }, "actualFeeders": { ... }, } }

Listing 3. Izvod JSON-LD frejma sa višestrukim ugnježdenim reverznim propertijima

63 Opis problema

Trenutno ne postoji jednostavan i standardizovan način za kreiranje hijerahije, odnosno hijerarhija, obrnutog stabla proizvoljne dužine na osnovu jednog ili više propertija krenuvši od poravnatog JSON-LD dokumenta i jednostavnog frejma. Redosled u kome se inverzne relacije primenjuju je takođe važan, pošto JSON-LD framing koristi algoritam pretrage u dubinu (engl. Depth First Search, skr. DFS) pri obilaženju povezanih čvorova u kreiranju frejmovanog izlaza. Podrazumevano je da se reverzni propertiji primenjuju u redosledu određenim algoritmom za proširivanje (engl. Expansion Algorithm) pošto je prošireni frejm jedan od ulaza frejming algoritma. U zavisnosti od toga kako su reverzni propertiji zadati u početnom frejmu, da li korišćenjem običnih reverznih propertija, reverznih propertija sa proširenom definicijom termova ili njihovom kombinacijom, njihov redosled može da varira u proširenom frejmu. Redosled u kojem se inverzne relacije primenjuju treba da bude jednoznačno određen i jednostavan za razumevanje bez obzira kako su reverzni propertiji deklarisani. Problem 3: Ugrađivanje na prvu pojavu Čvorni objekti se ugrađuju na svoje poslednje pojavljivanje (podrazumevano pravilo ugrađivanja ”@embed”: ”@last”) ukoliko drugačije nije definisano u frejmu. Kao posledicu toga, rezultat reverznog frejmovanja može da ne sadrži eksplicitno prikazan lanac pune dužine (tj. najdužu obrnutu hijerarhiju) ukoliko se neki čvor u tom lancu pojavljuje kasnije u rezultatu. Kako bi prevazišli ovaj nedostatak, može da se primeni pravilo ugrađivanja @always, ali bi tada svaki referencirani čvor i njegovo podstablo bili ponovljeni u rezultatu. Problem 4: Napredno filtriranje Frejming algoritam podržava filtriranje bazirano na strogom tipiziranju (engl. strict-typing) i duck tipiziranju (engl. duck-typing) [119], [141]. Prvi tip filtriranja koristi vrednosti @type za uparivanje. U njegovom odsustvu, filtriranje čvorova je bazirano na uparivanju uključenih propertija. Reverzni frejming se izvodi zajedno sa filtriranjem, što znači proces frejmovanja rezultuje nizom čvornih objekata koji zadovoljavaju uslove filtriranja i mogu takođe biti koreni u obrnutoj hijerarhiji stabla ako je čvor povezan sa nekim drugim čvorom/evima sa reverznim propertijima zadatim u frejmu. Neki od ovih čvornih objekata već mogu da budu koreni podstabla neke druge obrnute hijerarhije stabla, pa postoji potreba za njihovim izbacivanjem. Na ovaj način, rezultat frejmovanja bi sadržao samo obrnute hijerarhije stabla pune dužine. 4.4 Web aplikacije u pametnim mrežama mogu imati modularne arhitekture i koristiti semantički obogaćene podatke

Hipoteza 4: Moguće je razviti web aplikacije primenjive u pametnim mrežama koje će imati modularne arhitekture i koristiti semantički obogaćene podatke. Kako bi opisali problem razvoja modularne arhitekture web aplikacija u pametnim mrežama uz oslonac na aktuelne W3C preporuke, potrebno je objasniti vremenski kontekst u kojem se ove aplikacije razvijaju kao i njegov uticaj. U protekle dve decenije web je doživeo vrtoglavi uspeh. Od web stranica za prikaz statičkog sadržaja do dinamičke promene sadržaja korišćenjem AJAX-a i SPA aplikacija, fokus razvoja web aplikacija vremenom je stavljen na klijentsku stranu. Kako su zahtevi koje treba da ispune web aplikacije rasli tokom vremena i pošto su potrebe prevazilazile mogućnosti same web platforme, kreirano je mnoštvo klijentskih okvira za različite platforme (na primer za Java-u, .NET) kao i platformi koje omogućavaju kreiranje web aplikacija sa bogatim interfejsom (poput Adobe Flash-a, Microsoft Silverlight-a, Nodejs-a, i druge). Istovremeno, zbog neravnomernog i ubrzanog razvoja API-ja podržanih od strane web pretraživača prevazilaženje razlika između web pretraživača je dobilo na značaju. Iz te potrebe razvijene su brojne JavaScript biblioteke od kojih je jQuery bila najdominantnija. Usvajanjem W3C HTML5 standarda je standardizovan DOM, što je smanjilo potrebu za bibliotekama poput jQuery- ija i istovremeno omogućilo razvoj brojnih MV* okvira.

64 Opis problema

Danas, problem razvoja web aplikacija leži u brojnosti razvojnih web okvira, kratkom životnom veku njihovog trajanja, velikoj frekventnosti smene okvira na vrhu popularnosti i nemogućnosti njihove koenzistencije u okvirima jedne aplikacije. Slika 37 prikazuje vizuelizaciju dugovečnosti nekih od aktulenih klijentskih web okvira i očekivani nivo njihovog daljeg napredovanja. Kao što se iz priloženog može videti, posle pet godina uobičajeno dolazi do stagnacije u razvoju klijentskog web okvira.

Continued innovation

Not backwards compatible

release 5 years 10 years commercial timeline

Not backwards compatible Stagnated innovation

Slika 37. Vizuelizacija dugovečnosti odabranih klijentskih web okvira [142] Web platforma je u poslednjih par godina značajno napredovala uzimajući u obzir W3C aktivnosti u cilju usvajanja familije HTML5 standarda, standardizacije DOM-a, definisanja skupa standarda za web komponente kao i aktivnosti Internet Engineering Task Force-a (skr. IETF) na usvajanju novih TCP web protokola WebSocketa i HTTP/2. Od posebnog su značaja za modularnost i kompoziciju web aplikacija na klijentskom delu W3C standardi u razvoju vezani za kreiranje web komponenti, kojim bi se prevazišli problemi današnjih klijentskih web okvira. Ovi problemi važe i za web aplikacije u pametnim mrežama. S druge strane, CIM model podataka elektroenergetskog sistema je baziran na RDF standardima koji su osnova semantičkog weba. Aktuelni serijalizacioni format za CIM je CIMXML. Kao format baziran na XML-u, tačnije serijalizaciji RDF grafa u XML (RDF/XML-u), ovaj format je upotrebljiv u web aplikacijama. Međutim, upotreba ovog formata u modernim web aplikacijama na klijentskoj strani nije optimalna za JavaScript programski jezik. Stoga je neophodna upotreba formata koji je istovremeno optimalan za JavaScript programski jezik i izražavanje semantike podatka. Dodatno, upotreba ovog formata uvodi ograničenja kada se posmatra iz perspektive upotrebe u semantičkim web aplikacijama (videti opis problema prve hipoteze 4.1.1). Takođe, modularizaciju podataka elektroenergetskog sistema je moguća korišćenjem CIM profila 2.3.4. Web servisi koji predstavljaju izvor podataka za web aplikacije u pametnoj mreži danas koriste JSON kao format razmene podataka (videti poglavlje 2.3.3.1). Ovim se njihova upotreba ograničava na klijentske web aplikacije koje razumeju zadatu strukturu JSON sadržaja, gde bez detaljnje dokumentacije servisnog web API-ja nije moguća njegova upotreba.

65 Opis rešenja

5. OPIS REŠENJA

5.1 IEC standardi nisu u potpunosti usklađeni sa W3C RDF preporukama

Opis problema prve hipoteze identifikuje konvencije uvedene u CIM RDF šemu i postupke kreiranja CIM profila pomoću CIM RDF šeme, kao i konvencije uvedene u CIMXML dokumente. Sa stanovišta RDF-a konvencije uvedene u CIM RDF šemu narušavaju interpretaciju CIM RDF šeme kao RDF šema dokumenta upotrebom nestandardnih RDF koncepata, upotrebom istog baznog URI-ja za svaki profil u profilnoj grupi, načinom primene restrikcija u okviru jedne profilne grupe i upotrebom RDF šema dokumenta u svrhe provere sintaksne usklađenosti. Takođe, sa stanovišta RDF-a identifikovane konvencije uvedene u CIMXML dokumente: ograničavaju ekspresivnost CIM dokumenta (tj. modela), na različit način interpretiraju čvorove sa istim lokalnim ID-ijem kada se oni pojavljuju u različitim CIMXML dokumentima u jednoj razmeni modela, ne vezuju na direktan način metapodatke o modelu sa elementima modela, ograničavaju povezivanje ovih dokumenata pošto koriste nedereferencabilne identifikatore, i ne primenjuju RDF način za grupisanje grafova. U cilju prevazilaženja problema opisanog u prvoj hipotezi, tj. konvencija uvedenih u CIM RDF šemu i postupke kreiranja CIM profila pomoću CIM RDF šeme, kao i konvencija uvedenih u CIMXML dokumente, u ovom radu dat je predlog nove metodologije za modelovanje u elektroenergetskim sistemima (Slika 38) korišćenjem povezanih podataka koristeći pri tome OWL 2 jezik za CIM sintaksu i semantiku, i JSON-LD kao serijalizacioni format dokumenata baziranih na CIM-u. Osnovna ideja je da se iskoriste UML modeli CIM-a i njegovih ekstenzija, i njihovi profilni podskupovi za kreiranje različitih ontologija izraženi u ekspresivnijem ontološkom jeziku. Svaka ontologija kreirana po ovoj metodologiji, a zasnovana na CIM-u, je na ovaj način unapređena kako bi obuhvatila specifičniju semantiku. Slika 38 ilustruje kako se UML modeli CIM-a i ekstenzija (tj. CIM proširenja), CIM profili, njima odgovarajuće ontologije i CIM JSON-LD dokumenti odnose jedni prema drugima u skladu sa predloženom metodologijom. (U ovom radu JSON-LD dokument zasnovan na CIM profilnoj ontologiji se naziva još i CIM JSON-LD dokument). Različite i nezavisne ontologije su kreirane za CIM, CIM ekstenzije, opis modela i opis ontoloških metapodataka. CIM UML klase, atributi i asocijacije su definisane sa CIM ontologijom, dok su novouvedene ekstenzije – atributi i asocijacije nad postojećim UML klasama kao i nove klase i njhovi atributi i asocijacije modelovani sa Extensions ontologijom. CIM i Extensions ontologije su iskorišćene kao zajedničke referentne ontologije za svaku CIM profilnu ontologiju koja odgovara željenom podskupu proširenog CIM-a. Takođe, CIM profilna ontologija definiše skup ograničenja (kardinaliteta) nad odabranim podskupom. Ovaj skup ograničenja se koristi za validaciju CIM JSON-LD dokumenata koji su instance odabranog podskupa. Meta ontologija opisuje metapodatke CIM baziranih ontologija koji potiču od organizacije i obogaćenja UML sadržaja u CIM UML modelu (poput pripadnosti klase CIM UML paketu, ili primenjenom stereotipu). Termi iz Meta ontologije se koriste kao anotacije u referentnim i profilnim ontologijama. Slično, Model Description ontologija opisuje metapodatke modela. Svaki CIM JSON-LD dokument (tj. instance CIM modela) po predloženoj metodologiji koristi prikladnu ontologiju definisanu odgovarajućom CIM profilnom i Model Description ontologijom, gde su obe izražene u JSON-LD sintaksi. CIM JSON-LD dokument referencira terme iz primenjenih CIM ontologija preko IRI-ja. Takođe, CIM JSON-LD dokumenti su povezani preko IRI-ja kada jedan model referencira resurse iz drugog modela.

66 Opis rešenja

Extensions UML CIMProfile B defines CIMProfile A

CIM UML defines defines defines

defines defines

Model Description Extensions CIM Ontology Meta Ontology Ontology uses uses Ontology #IRI #IRI #IRI #IRI

equivalent uses uses equivalent

CIM Profile A CIM Profile B Ontology Ontology equivalent #IRI #IRI defines defines

uses CIM Profile A CIM Profile B Constraints Constraints uses uses validates validates

Network Model Network Model Data A Data B IRI JSON-LD JSON-LD #IRI #IRI uses

Slika 38. Veze između CIM baziranih dokumenata po predloženoj metodologiji CIM OWL 2 Ontologija Predložena metodologija za modelovanje CIM-a adresira prepoznata CIM RDF šema ograničenja/konvencije na sledeći način: a. U cilju uklanjanja nestandardnih RDF ekstenzija iz CIM RDF šeme (tačnije cims:multiplicity, cims:inverseRolename, cims:isAggregate, cims:stereotype, cims:datatype, cims:profile, cims:classCategory i cims:belongsToCategory), CIM RDF šema je zamenjena sa OWL 2 ontologijom zbog njenog bogatijeg rečnika i veće ekspresivnosti od RDFS-a. Korišćeni RDFS koncepti su mapirani na OWL 2 koncepte, vodeći računa da su definisane CIM RDFS klase mapirane na odgovarajuće koncepte i to XML Schema Definition (skr. XSD) tipove i/ili OWL 2 klase, i definisani CIM RDFS propertiji mapirani na OWL 2 propertije čije su vrednosti nekog prostog tipa podataka (u daljem tekstu datatype propertije) i objektne propertije. CIM RDF šema ekstenzije (tj. termi prefiksovani cims prostorom imena) su mapirane na OWL 2 koncepte gde postoji odgovarajući pandan, ili su mapirane na odgovarajuće anotacione propertije korićenjem terma iz Meta ontologije. Mapiranje CIM RDF šema koncepata na OWL 2 koncepte prikazuje Tabela 3. b. Generalno, opisani CIM OWL 2 ontološki koncepti i mapiranja omogućuju reprezentaciju CIM- a jednaku definisanom UML modelu. Nasuprot tome, CIM profili su obično dopunjeni/izmenjeni različitim skupom restrikcija (obaveznim atributima, kardinalitetima asocijacija, ograničenjima nad tipovima podataka) u odnosu na inicijalni CIM UML model ili drugi CIM profil sa kojim imaju neki deljeni sadržaj. c. Ni RDFS ni OWL2 nisu šematski jezici za proveru sintaksne usklađenosti. OWL 2 podržava pretpostavku otvorenog sveta (engl. the open-world assumption, skr. OWA), dok CIM zahteva

67 Opis rešenja

ograničenja integriteta i validaciju pod pretpostavkom zatvorenog sveta (engl. the closed- world assumption, skr. CWA) [143]. Restrikcije izražene u OWL 2 mogu biti transformisane u W3C Shapes Constraint Language (skr. SHACL) izraze i korišćene za validaciju CIM instanci podataka upotrebom standardnih alata. d. Bazni URI za svaki CIM profil mora da bude jedinstven kako bi publikovanje CIM profila kao web rečnika za opis profilnih instanci bilo moguće. Na ovaj način CIM profilni rečnik može biti iskorišćen za opis podataka na web-u. e. Neohodno je napraviti diferencijaciju bazne CIM ontologije od izvedenih CIM profila, kao i izvedenih CIM profila međusobno kako bi se izbegli slučajevi da su različiti skupovi restrikcija dodeljeni istoj klasi ili propertiju. Uvođenje jedinstvenog baznog URI-ja CIM profila rešava problem diferencijacije, ali on nije dovoljan da bi se očuvala povezanost CIM profila. U tu svrhu neophodno je definisati ekvivalencije odgovarajućih klasa i odgovarajućih propertija. OWL 2 koncepti za ekvivalenciju (owl:equivalentClass, owl:equivalentProperty) su dodatno uvedeni u CIM profilne ontologije. Oni omogućavaju ontološka mapiranja sa zajedničkim referentnim ontologijama, koje na ovaj način povezuju CIM instance podataka smeštene u različitim CIM JSON-LD dokumentima. Tabela 3. Mapiranje CIM RDF šeme na CIM OWL ontologiju CIM RDF šema CIM OWL 2 Ontologija CIM RDF šema owl:Ontology cims:profile; rdfs:isDefinedBy i/ili svaki element mapiran u OWL rdfs:Class sa Primitive stereotipom XSD tip rdfs:Class sa CIMDatatype stereotipom XSD tip, owl:Class rdfs:Class sa enumeration stereotipom owl:Class; Element enumeracije owl:NamedIndividual rdfs:Class owl:Class rdfs:Property owl:DatatypeProperty, owl:ObjectProperty cims:multiplicity owl:qualifiedCardinality, owl:maxQualifiedCardinality, owl:minQualifiedCardinality cims:inverseRoleName owl:inverseOf cims:datatype rdfs:range od owl:DatatypeProperty ili owl:ObjectProperty cims:isAggregate meta:isAggregate (owl:AnnotationProperty); cims:stereotype meta:stereotype (owl:AnnotationProperty); cims:ClassCategory owl:Class (u Meta ontologiji) cims:belongsToCategory meta:belongsToCategory (owl:AnnotationProperty); cims:isFixed* meta:isFixed (owl:AnnotationProperty); cims:associationUsed* meta:associationUsed (owl:AnnotationProperty); * ograničenja propertija koja se mogu naći u praksi u ENTSO-E CGMES standardu

CIM JSON-LD Od strane autorke disertacije je data prednost JSON-LD (u opštem slučaju bilo kom RDF serijalizacionom formatu koji podržava višestruke grafove i pogodan je za web) nad RDF/XML serijalizacionim formatom zbog sledećih razloga:  Zasnovan na JSON-u – JSON danas predstavlja dominantni format za razmenu podataka na web-u povezujući distribuirane sisteme korišćenjem Web API-ja,  Serijalizuje RDF graf i RDF dataset – jedan podrazumevani graf i nula ili više imenovanih grafova u poređenju sa RDF/XML-om koji serijalizuje samo podrazumevani graf,

68 Opis rešenja

 Podrazumeva upotrebu dereferencabilnih IRI-ja i  Ima standardizovane algoritme za procesiranje i API – definisane u JSON-LD 1.0 algoritmi za procesiranje i API specifikaciji zajedno sa JSON-LD frejming 1.1 specifikacijom koja je u izradi. Istovremeno posmatrano iz CIM ugla, JSON-LD ispunjava ciljeve definisane u IEC 61970-552 potrebne za serijalizacioni format:  Čitljiv je i za ljude i mašine,  Postoji veliki broj već dostupnih JSON parsera i biblioteka. Pošto je JSON-LD 100% kompatibilan sa JSON-om, postojeći parseri i biblioteke mogu biti iskorišćeni,  Samoopisan je, pošto sadrži povezani kontekst (definisan sa ključnom reči @context),  Predstavlja zvaničnu W3C preporuku. Identifikovane CIMXML konvencije su adresirane na sledeći način: a. Primenom JSON-LD serijalizacije, CIM instance podataka nisu ograničene na određeni izgled dokumenta pošto JSON-LD 1.0 algoritmi za procesiranje i API, i JSON-LD frejming 1.1 specifikacije obezbeđuju algoritme za proširivanje, sažimanje, poravnavanje, serijalizaciju/deserijalizaciju i frejmovanje. Korišćenjem ovih algoritama proizvoljno struktuirani CIM JSON-LD dokument može biti izražen u poravnatoj formi sa željenim kontekstom za sažimanje i/ili frejmovan da odgovara ciljanom izgledu. Takođe, definisanom (de)serijalizacijom može biti preveden u druge RDF sintakse. b. Svi resursi definisani u CIM JSON-LD dokumentu koriste IRI-je (relativne ili apsolutne) kao identifikatore. c. Imenovani graf omogućava dodelu metapodataka skupu RDF trojki. Korišćenjem Model Description ontologije, md:FullModel podaci mogu biti dodeljeni CIM instanci podataka koja odgovara CIM profilu (dalje u radu referenciran i kao CIM imenovani graf). d. Identifikator md:FullModel čvora sada postaje IRI imenovanog grafa i jednak je identifikatoru samog CIM JSON-LD dokumenta. e. Više CIM imenovanih grafova može biti objedinjeno u jedan JSON-LD dokument, kreirajući na taj način CIM dataset spreman za razmenu podataka.

69 Opis rešenja

5.2 Mogućnosti usklađivanja IEC standarda sa W3C preporukama

U opisu problema druge hipoteze uočava se složenost problema proširenja aktuelnih IEC standarda koji se odnose na upravljanje u elektroenergetskim sistemima u skladu sa W3C preporukama. Minimalno proširenje CIM RDF šeme OWL 2 konceptima, izdvajanje baznih ontologija i upotreba JSON-LD-a nisu dovoljni za rešavanje svih uočenih ograničenja. Stoga je neophodno primeniti i druge W3C preporuke. Na primer, OWL 2 jezikom je moguće iskazati CIM RDFS ekstenzije, kako je u opisu rešenja postavljenog prvom hipotezom predloženo. Isto tako, transformacijom OWL 2 restrikcija u SHACL grafove oblikovanja se omogućava validacija CIM instanci podataka na preporučeni W3C način. Opis dokaza druge hipoteze predstavlja predlog mapiranja CIM artefakata iz tekućih implementacionih tehnologija u CIM artefakte implementirane pomoću W3C standarda poslednje generacije, a u skladu sa opisom rešenja prve hipoteze (Slika 39). Predlog mapiranja obuhvata: 1. CIM UML mapiran redom u CIM, Meta i Model Description OWL 2 ontologije – Na ovaj način bi iz CIM UML-a bila kreirana tri nezavisna OWL 2 rečnika. Sveobuhvatna CIM ontologija bi bila sačuvana kao bazna ontologija na koju CIM profilne ontologije mogu da se referenciraju. Metapodaci CIM profila bi bili opisani rečima Meta ontologije. Opšti podaci za opis CIM modela bili opisani rečima Model Description ontologije. 2. Ekstenzije CIM UML-a mapirane u Extensions OWL 2 ontologiju – Ekstenzije CIM UML modela po ovom predlogu čine baznu ontologiju koju profilne ontologije referenciraju po potrebi. 3. Mapiranje CIM RDFS profila u odgovarajuću OWL 2 ontologiju i SHACL graf oblikovanja – Za svaki CIM profil bila bi kreirana odgovarajuća ontologija u procesu mapiranja koja se oslanja redom na bazne CIM i Extensions ontologije kao i Meta ontologiju. Kako bi definisane OWL 2 restrikcije jednog CIM profila mogle da se interpretiraju kao validaciona pravila pod pretpostavkom zatvorenog sveta neophodno ih je iskazati kao SHACL graf oblikovanja. 4. Mapiranje CIMXML dokumenta u odgovarajući RDF graf serijalizovan u JSON-LD sintaksi.

Model Description CIM Meta Ontology CIM UML Ontology OWL 2 OWL 2 OWL 2

extends

Extensions Extensions UML OWL 2 ontology mapping uses

restricts semantic ontology mapping mapping uses

Profiles Profiles SHACL shape RDFS OWL 2 graphs uses

uses uses validated by

CIM CIMXML JSON-LD

Slika 39. Semantičko mapiranje CIM artefakata

70 Opis rešenja

5.3 Web aplikacije u pametnim mrežama mogu da koriste semantički obogaćene podatke

U opisu problema treće hipoteze identifikovani su nedostaci reverznog frejmovanja JSON-LD frejming algoritma koji uključuju: nemogućnost definisanja jednostavnog frejma za potrebe reverznog frejmovanja, nepostojanje reverznog frejmovanja baziranog na višestrukim relacijama definisanim u jednostavnom frejmu, nemogućnost ugrađivanja čvornih objekata pri njihovoj prvoj pojavi i nedostatak naprednog filtriranja u reverznom frejmovanju. Da bi adresirali identifikovane probleme, autorka predlaže proširivanje definicije JSON-LD frejma i JSON-LD frejming algoritma [144]. Proširivanje frejma

5.3.1.1 Rekurzivna primena reverznih propertija Predlog za proširenje frejma obuhvata definisanje svakog reverznog propertija u frejmu na najvišem nivou JSON-LD frejma. Svaki reverzni properti se primenjuje rekurzivno, što znači da se svi oni implicitno prosleđuju svakom podfrejmu, slično načinu primenjenom na flegove za ugrađivanje objekata, fleg za eksplicitno uključivanje i fleg za uključivanje zadatih propertija. Istovremeno, reverzni propertiji mogu biti predefinisani u podfrejmu i kao takvi prosleđeni njegovim podfrejmovima. Na ovaj način se izbegava duboko ugnježdavanje reverznih propertija u frejmu.

5.3.1.2 Definisanje prioritetizovanih reverznih propertija Problem redosleda u kojem se inverzne relacije primenjuju može biti prevaziđen ukoliko se redosled eksplicitno definiše. Zbog ovog razloga, definicija reverznog propertija u frejmu je proširena sa novom ključnom reči @priority (employees i children, Listing 4). Prioritet reverznog propertija je definisan brojčanom vredošću @priority ključne reči (niža vrednost označava veći prioritet). Ako reverzni properti nema definisan prioritet, podrazumevani prioritet je određen algoritmom proširenja. Prioritet ne određuje redosled u kome se relacije pojavljuju u rezultujućem rasporedu stabla, zato što je ovaj raspored određen sažimanjem na osnovu konteksta uključenog u frejm.

5.3.1.3 Definisanje novog pravila ugrađivanja Ugrađivanje čvornih objekata pri prvom pojavljivanju u JSON-LD grafu jednako je važno kao i ostale alternative. Kada se koristi sa rekurzivnim reverznim frejmovanjem ono omogućava kreiranje obrnutih hijerarhija stabla pune dužine, ostavljajući pri tome reference na čvorove koji su već obiđeni. Stoga je predložena nova vrednost ključne reči @embed definisana flegom za ugrađivanje objekata @first. Listing 4 ilustruje kako se novi fleg koristi u frejmu za globalno definisanje ugrađivanja čvornih objekata pri njihovom prvom pojavljivanju.

5.3.1.4 Definisanje korena hijerarhije Kako bi se zadržale samo obrnute hijerarhije stabla pune dužine u rezultujućem izlazu frejminga, uvedena je nova ključnu reč @reverseRoots (Listing 4). Ova ključna reč služi kao fleg. Njena vrednost je boolean tipa. Postavljanjem njene vrednosti na true omogućeno je filtriranje. Ako njena vrednost nije specificirana, podrazumevana vrednost je false.

71 Opis rešenja

{ "@context" : { "ex" : "http://example.com/", "employees" : {"@reverse" : "ex:employeeOf"}, "children" : {"@reverse" : "ex:childOf"} }, "@type": "ex:Person", "@embed": "@first", "@reverseRoots": true, "employees": {"@priority" : 1}, "children": {"@priority" : 2} } Listing 4. Primer proširenog JSON-LD frejma Prošireni frejming algoritam Prošireni frejming algoritam (PFA) predstavlja jedno proširenje Frejming algoritma [145], koje podržava predloženu, proširenu definiciju frejma. Kao dodatak postojećim frejming mogućnostima on kreira obrnutu hijerarhiju stabla na svakom filtriranom čvoru na osnovu višestrukih prioritetizovanih reverznih propertija sadržanih u ulaznom frejmu. Sam proces kreiranja prioritetizovanih obrnutih hijerarhija stabla u JSON-LD stablu se može podeliti na dva dela. U prvom delu PFA (Listing 5) prihvata prošireni JSON-LD ulazni fajl (graph) i prošireni frejm (frame) zajedno sa globalnim frejming opcijama (options). Ovaj deo algoritma inicijalizuje parametre koji se koriste u drugom, rekurzivnom delu. On uključuje:  Inicijalizaciju tekućeg stanja.  Poravnavanje ulaznog grafa.  Identifikaciju relacija za invertovanje na osnovu ulaznog frejma.  Identifikaciju čvorova u grafu povezanih sa identifikovanim relacijama.  Identifikaciju svih korena hijerarhije i nepraznih korena hijerarhije za svaku identifikovanu relaciju na osnovu povezanih čvorova, i inicijalizaciju tekućeg stanja. Identifikacija nepraznih korena je važna pošto je u ovoj implementaciji očekivano da su svi prazni (neimenovani) čvorovi ugrađeni unutar nepraznih (imenovanih) čvorova u kreiranoj hijerarhiji. Zbog ovog razloga, na osnovu identifikovanih hijerarhijskih korena, ako je koren prazan čvor, tada se njegova hijerarhija pretražuje u dubinu za najbližom pojavom nepraznih potomaka koji postaju novi koreni hijerarhije.

72 Opis rešenja function Frame(graph, frame, options)

state = CreateState(options) fGraph = Flatten(graph) revRels = GetReverseRelationships(frame)

forEach node in fGraph do forEach revRel in revRels do if node has revRel then add node.id into revRel.domain add node.revRel.value into revRel.range

forEach revRel in revRels do forEach id in revRel.range do if not id exists in revRel.domain then add id into revRel.roots

forEach revRel in revRels do forEach id in revRel.roots do if IsBlank(id) then descs = FindNearestNBDescs(id, revRel) add descs into revRel.nonBlankRoots else add id into revRel.nonBlankRoots

state.revRels = revRels state.subjects = fGraph.nodes

return RecurFrame(state, Ids(fGraph.nodes), frame, false, undefined) end function Listing 5. Pseudo kod prvog dela proširenog frejming algoritma Drugi, rekurzivni deo PFA (videti pseudo kod prikazan, Listing 6) uključuje:  Inicijalizacija flegova korišćenjem tekućeg frejma i stanja – flegovi (preciznije embed, explicit, requireAll, reverse flegovi) osiguravaju da je properti prosleđen iz tekućeg frejma u podfrejm ukoliko ga podfrejm ne predefiniše;  Filtriranje subjekata koji zadovoljavaju tekući frejm i flegove (takozvane pogotke);  Prioritetizaciju pogodaka korišćenjem identifikovanih nepraznih korena – što znači da neprazni koreni imaju prednost u odnosu na ostatak pogodaka koji su sortirani rastući prema njihovim identifikatorima;  Svaki pogodak se procesira na sledeći način: o Pogodak se preskače ako je čvor najvišeg nivoa takav da je već obiđen u drugoj obrnutoj hijerarhiji i od interesa su samo hijerarhije pune dužine; o U zavisnosti od tekuće embed vrednosti i stanja je određen način na koji je pogodak referenciran u izlazu ili se frejming proces nastavlja; o Na osnovu sadržaja tekućeg frejma inverzne relacije se identifikuju, sortiraju po prioritetima i koriste za kreiranje hijerarhije stabla sa tekućim pogotkom kao njegovim korenom. Za svaku relaciju su prioritetizovani i rekurzivno (sa odgovarajućim podfrejmom) obrađeni čvorovi povezani sa tekućim pogotkom, vodeći računa da su povezani čvorovi preskočeni ukoliko su već obrađeni i ako su od interesa hijerarhije pune dužine. Pogodak i povezani čvorovi su markirani kao obrađeni kada su rekurzivno procesirani; o Procesiraju se propertiji tekućeg pogotka; o Procesiraju se podrazumevani propertiji, koji su definisani u tekućem frejmu; o output se postavja kao vrednost tekućeg propertija parent-a;

73 Opis rešenja

o ako je rekurzivni frejming čvora najvišeg nivoa završen i ako je od interesa pronalaženje hijerarhija pune dužine, tada su svi obrađeni čvorovi globalno sačuvani kako bi bili provereni kada novi čvor najvišeg nivoa bude procesiran.

function RecurFrame(state, subjects, frame, parent, property) flags = GetFlags(frame, state) matches = FilterSubjects(state, subjects, frame, flags) matches = PrioritizeNonBlankRoots(matches, state, frame)

forEach match in matches do if property == undefined and flags.reverseRoots and match in state.traversedAll then continue

output = create(match) if ProcessEmbedValues(flags.embed, state, output) then continue

revRels = GetReverseRelationships(frame) revRels = OrderByPriority(revRels)

forEach revRel in revRels do rs = GetRelated(id, revRel) rs = PrioritizeNonBlankRoots(rs, state, frame) implicitFrame = CreateImplicitFrame(flags) subframe = GetSubframe(frame, revRel) subframe = MergeFrames(implicitFrame, subframe)

forEach r in rs do if subframe.reverseRoots and r in state.traversed then continue

RecurFrame(state, r, subframe, output.reverse, revRel)

if not id in state.traversed then add id into state.traversed if not r in state.traversed then add r into state.traversed ProcessOwnProperties(match, flags, frame, output) ProcessDefaultProperties(frame, output) AddFrameOutput(parent, property, output)

if property == undefined and flags.reverseRoots then add state.traversed into state.traversedAll end function Listing 6. Pseudo kod rekurzivnog dela proširenog frejming algoritma

74 Opis rešenja

5.4 Web aplikacije u pametnim mrežama mogu imati modularne arhitekture i koristiti semantički obogaćene podatke

Opis problema četvrte hipoteze identifikuje sledeće probleme u razvoju modularnih arhitektura web aplikacija u pametnim mrežama i korišćenju semantički obogaćenih podataka: postojanje velikog broja klijentskih web okvira sa kratkim životnim vekom i nemogućnost njihove koegzistencije u okviru jedne web aplikacije, nepostojanje ugrađene semantike u podacima objavljenim kroz web servise koji opslužuju web aplikacije u pametnim mrežama i upotrebu formata za razmenu podatka baziranog na XML-u koji nije optimalan za klijentske web aplikacije i koji uvodi ograničenja posmatrano iz RDF perspektive. Na osnovu opisa problema četvrte hipoteze, posmatrajući aktuelno stanje i pravce razvoja W3C preporuka, rešenje razvoja modularnih arhitektura web aplikacija leži u web platformi. Ona pruža dugoročno i održivo rešenje sa arhitekturom baziranom na komponentama kojeg treba posmatrati kao jedinstveni okvir koji će zameniti postojeće obilje klijentskih web okvira zasnovanih na MV* konceptima. Osnovna ideja ove hipoteze je prikaz rešenja u kojem se rezultati prethodnih hipoteza u kombinaciji sa W3C preporukama mogu iskoristiti za kreiranje prototipa modularne web arhitekture koja koristi nativne mogućnosti web platforme i omogućuje upotrebu tako kreiranih modula u različitim web rešenjima, Slika 40. Elemente ove modularne arhitekture na klijentskom delu predstavljaju semantičke web komponente i klasične web komponente. Sloj semantičkih web komponenti je izložen ka servisnom sloju u cilju razumevanja semantike i odlučivanja. Ove komponente mogu da predstavljaju kompoziciju drugih web komponenti, ne obavezno semantičkih. Statički resursi web aplikacije, koji čine kod i resurse klijentskog dela se nalaze na serveru. Na istom serveru, takođe, može da se nalazi servisni sloj aplikacije. Servisni sloj može biti raspoređen i na više različitih servera. Na servisnom sloju moguća je upotreba različitih implementacija HTTP servisa baziranih na Representational State Transfer (skr. REST) principima [146] (ne nužno postujući sve REST principe) a koji uvažavaju semantiku i čine je dostupnom u okviru objavljenog sadržaja, poput:  Platforme za povezane podatke (engl. Linked Data Platform, skr. LDP) – definiše skup pravila za HTTP operacije nad web resursima kojim je propisana arhitektura za čitanje i pisanje povezanih podataka na web-u [147]. Ovom specifikacijom je propisano da LDP serveri moraju da podrže Turtle sintaksu, dok JSON-LD sintaksu mogu da podrže.  Hypermedia-Driven Web API-ja (skr. Hydra) – ovaj web API je baziran na JSON‑LD-u i Hydra Core rečniku. On kombinuje REST arhitekturalni stil sa principima povezanih podataka [148].  JSON API-ja – predstavlja specifikaciju za kreiranje API-ja u JSON-u [149]. Sadržaj objavljen korišćenjem ovog API-ja je moguće dopuniti spoljašnjim kontekstom povezanih podataka u skladu sa W3C JSON-LD preporukom upotrebom HTTP Link zaglavlja [75]. Takođe, moguće je implementirati modifikaciju JSON API-ja sa ugrađenom semantikom.  JSON-LD web API-ja za web servise skrojenih prema sopstvenim potrebama – ovaj pristup zbog upotrebe povezanih podataka podrazumeva da su podaci dereferencabilni, dok je način za interakciju sa servisom koji ih objavljuje prepušten njegovim autorima. Jedan pokušaj definisanja dobrih praksi za razvoj ovakvih servisa nudi Linking Data in JSON Community Group [150]. Pored HTTP web servisa, mogu se koristiti i web servisi bazirani na WebSocket protokolu koji serviraju JSON-LD poruke. Za skladištenje CIM artefakata, u zavisnosti od potreba, moguće je koristiti različite implementacije skladišta povezanih podataka. To može biti i običan fajl sistem sa JSON-LD dokumentima koje aplikacija publikuje na odgovarajućim HTTP IRI-jima. S druge strane, moguće je koristiti složene RDF baze podataka poput Stardog-a [151] ili Apache Jena Fuseki-ja [152].

75 Opis rešenja

Web application

Web Component Web Component Web Component Communication (pub/sub, data binding, element API) Web Component Semantic Web Component Semantic Web Component Semantic Web Component

Web Client

REST-style based HTTP services HTML, JavaScript, CSS, WebSocket (Linked Data Platform, Hydra, JSON other resources (JSON-LD messages) API, Custom JSON-LD API, ...) Web Server

Ontologies (CIM, Extensions, CIM Profiles – e.g. EQ, TP, SV, SSH, GL, DL, ...) & RDF Data Storage CIM Models

Slika 40. Prototip modularne arhitekture bazirane na web komponentama

Web komponente za prikaz CIM profila Izlaganjem CIM profila kao JSON-LD dokumenata na web-u omogućava se njihovo korišćenje u vidu rečnika i istovremeno razumevanje instance CIM modela od strane različitih semantičkih web aplikacija. Kako bi omogućili konzistentan prikaz CIM profila neophodno je uposliti najnovije web tehnologije poput JSON-LD-a, proširenog JSON-LD frejming algoritma, HTML5 i skupa standarda za web komponente. Dijagram procesiranja web komponente prikazuje Slika 41. CIM web komponenta kao ulazni parametar prima CIM profil u JSON-LD-u. Ovaj dokument je preuređen korišćenjem proširenog JSON- LD frejming algoritma i odgovarajućeg frejma. Istovremeno, ovim postupkom komponenta postaje semantička web komponenta pošto filtriranje/oblikovanje ulaznog grafa radi na osnovu semantičkih relacija opisanih u frejmu. Na ovaj način kreira se JSON-LD graf čiji su elementi stablo hijerarhije i koji može da se koristi kao ulaz u JavaScript mehanizam šablona. Rezultat primene šablona je CIM profil u HTML obliku pogodan za korišćenje od strane korisnika.

76 Opis rešenja

analysis Web Component Processing

CIM Profile RDF/XML

«input»

Conversion

«result»

CIM Profile JSON-LD

«input»

Web Component

Display CIM CIM Profile CIM Profile Framing Templating Profile «output» Tree «input» «output» HTML

«input» «input» «input»

Frame jsonld.js polymer.js Template JSON-LD

Slika 41. Dijagram procesiranja web komponente

77 Diskusija rezultata

6. DISKUSIJA REZULTATA

6.1 IEC standardi nisu u potpunosti usklađeni sa W3C RDF preporukama

U cilju dokazivanja tvrdnje da IEC standardi koji se odnose na upravljanje i modelovanje elektroenergetskim sistemima (IEC 61970-501 i IEC 61970-552) bazirani na RDF tehnologiji, nisu u potpunosti usklađeni sa tekućim W3C RDF standardima dati su odgovarajući primeri i predlozi kojima bi se isti unapredili. Inicijalno istraživanje je podrazumevalo konstruisanje odgovarajućih primera za dokazivanje koncepata (engl. Proof of Concept, skr. PoC) pomoću poznatih semantičkih alata (Protégé- a i Manchester OWL 2 validator-a). CIM RDFS Uvedenim konvencijama, detaljno opisanim u problemu prve hipoteze, CIM RDF šema podržava definisanje ograničenja i metapodataka na način nestandardan za RDF šemu, omogućava kreiranje međusobno konfliktnih pravila u CIM profilima koji pripadaju istoj profilnoj grupi, na indirektan način se RDF šema koristi za proveru sintaksne usklađenosti, i upotrebom istog baznog URI-ja CIM RDF šema ograničava dostupnost CIM profila iste profilne grupe ukoliko bi se taj URI posmatrao kao lokacija dokumenta. U cilju prevazilaženja konvencija uvedenih u CIM RDF šemi i konvencija uvedenih u postupke kreiranja CIM profila pomoću CIM RDF šeme, predložena metodologija za modelovanje CIM-a uvodi OWL 2 ontologiju kao zamenu za CIM RDF šemu, omogućava mapiranje UML koncepata na OWL 2, uvodi SHACL validaciju kao mehanizam za sintaksnu proveru CIM instanci, uvodi jedinstveni bazni URI za svaku ontologiju, i omogućava očuvanost izvorne CIM ontologije kao i povezanost profilnih ontologija sa baznim ontologijama (uključujući izvornu ontologiju). PoC realizacija predložene metodologije za modelovanje CIM-a adresira prepoznata CIM RDF šema ograničenja/konvencije na sledeći način: a. Mapiranje RDFS koncepata na OWL 2 koncepte na primeru elemenata StateVariables profila dato je u listinzima u nastavku (Listing 7, Listing 8 i Listing 9). Prikazani prototipovi StateVariables profila i Meta ontologije u OWL-u su ručno napravljeni i validirani u Protégé editoru. Zbog čitljivosti i lakšeg poređenja sa originalnim zapisom CIM profila u RDF/XML-u, delovi CIM profilne ontologije u OWL-u su takođe prikazani u istoj sintaksi. CIM StateVariables profil u RDFS-u sadrži bazni URI http://iec.ch/TC57/2013/CIM-schema-cim16 koji dele i ostali CIM profili. Isti profil u mapiranom OWL-u ima dodeljen bazni URI http://www.example.com/StateVariablesProfile koji je jedinstven. U primerima je izdvojena SvPowerFlow klasa i njen SvPowerFlow.p properti. Pored primenjenog mapiranja (Tabela 3) u primeru se može videti i složenije mapiranje ActivePower CIMDatatype-a na float tip podataka. Za razliku od RDFS-a u OWL-u se ograničenja kardinaliteta nad propertijem klase zadaju preko OWL restrikcija. U OWL primeru (Listing 8) se vidi upotreba anotacionih propertija iz Meta ontologije (Listing 9).

78 Diskusija rezultata

... SvPowerFlow State variable for power flow. Load convention is used for flow direction. This means flow out from the TopologicalNode into the equipment is positive. ... p The active power flow. Load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment. ... ActivePower Product of RMS value of the voltage and the RMS value of the in-phase component of the current. CIMDatatype value ...

Listing 7. SvPowerFlow RDFS klasa i SvPowerFlow.p RDFS properti

... 1 http://iec.ch/TC57/NonStandard/UML#concrete

79 Diskusija rezultata

State variable for power flow. Load convention is used for flow direction. This means flow out from the TopologicalNode into the equipment is positive. SvPowerFlow ... http://iec.ch/TC57/NonStandard/UML#attribute The active power flow. Load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment. p ... ... ... Listing 8. SvPowerFlow OWL klasa i SvPowerFlow.p OWL datatype properti

Package_StateVariables StateVariables ...

Listing 9. Izvod iz Meta ontologije b. Primeri UML modela izvornog profila za geografsku lokaciju i odgovarajućeg ENTSO-E CGMES profila dati su na dijagramima klasa, Slika 42 i Slika 43. Zbog vizuelne preglednosti za poređenje je odabran profil sa malim brojem klasa. Na primeru ovog profila se lako uočavaju restrikcije uvedene nad izvornim profilom: IdentifiedObject klasa ima samo dva atributa, Location klasa nijedan nenasleđeni atribut, jedini atribut CoordinateSystem klase je obavezan, PositionPoint klasa ima manje atributa od kojih su neki obavezni, sve asocijacije imaju izmenjenje kardinalitete, i uvedena je nova GeographicLocationVersion klasa sa svojim atributima.

80 Diskusija rezultata

class GeographicalLocationProfile

Core::IdentifiedObject

+ aliasName: String [0..1] + description: String [0..1] + mRID: String [0..1] + name: String [0..1]

Location

+ direction: String [0..1] + electronicAddress: ElectronicAddress [0..1] CoordinateSystem +CoordinateSystem +Locations + geoInfoReference: String [0..1] +Location +PowerSystemResources Core:: + crsUrn: String [0..1] + mainAddress: StreetAddress [0..1] PowerSystemResource 0..1 0..* + phone1: TelephoneNumber [0..1] 0..1 0..* + phone2: TelephoneNumber [0..1] + secondaryAddress: StreetAddress [0..1] + status: Status [0..1] + type: String [0..1]

+Location 1

+PositionPoints 0..*

PositionPoint

+ groupNumber: Integer [0..1] + sequenceNumber: Integer [0..1] + xPosition: String [0..1] + yPosition: String [0..1] + zPosition: String [0..1]

Slika 42. Dijagram klasa CIM GeographicLocation profila

class GeographicalLocationProfile ENTSO-E

Core::IdentifiedObject Core:: PowerSystemResource + mRID: String [0..1] + name: String [0..1]

+PowerSystemResources 1

+Location 0..1 Common::PositionPoint Common:: +CoordinateSystem +Location +Location +PositionPoints CoordinateSystem Common:: + sequenceNumber: Integer [0..1] Location + xPosition: String 1..1 0..* 1 1..* + crsUrn: String + yPosition: String + zPosition: String [0..1]

«Entsoe» GeographicalLocationVersion

+ baseUML: String = iec61970cim16v2... {readOnly} + baseURI: String = http://entsoe.e... {readOnly} + date: Date = 2014-08-07 {readOnly} + differenceModelURI: String = http://iec.ch/T... {readOnly} + entsoeUML: String = entsoe_v2.4.15 {readOnly} + entsoeURI: String = http://entsoe.e... {readOnly} + modelDescriptionURI: String = http://iec.ch/T... {readOnly} + namespaceRDF: String = http://www.w3.o... {readOnly} + namespaceUML: String = http://iec.ch/T... {readOnly} + shortName: String = GL {readOnly}

Slika 43. Dijagram klasa ENTSO-E GeographicLocation profila Novouvedena klasa GeographicLocationVersion i njeni propertiji su modelirani zasebnom Entsoe ontologijom, Listing 10.

81 Diskusija rezultata

... iec61970cim16v28_iec61968cim12v08_iec62325cim03v01a http://iec.ch/TC57/NonStandard/UML#attribute Base UML provided by CIM model manager. baseUML 1 ... Entsoe Version details. StateVariablesVersion ... Listing 10. Izvod Entsoe ontologije c. Mapiranje ograničenja kardinaliteta tačno jedan SvPowerFlow.p propertija je prikazano u CIM RDFS-u, OWL-u i SHACL-u (Listing 7, Listing 8 i Listing 11 redom).

a sh:NodeShape ; sh:targetClass ; … sh:property [ sh:path ; sh:datatype xsd:float ; sh:maxCount 1 ; sh:minCount 1 ; s ] ; . Listing 11. Mapiranje ograničenja kardinaliteta SvPowerFlow.p propertija u SHACL d. Jedinstveni dereferencabilni IRI (generalizacija URI-ja) za CIM StateVariables profil u OWL-u je zadat sa http://www.example.com/StateVariablesProfile (Listing 8) ovim je omogućeno publikovanje profila na zadatom IRI-ju za razliku od http://iec.ch/TC57/2013/CIM-schema-cim16 IRI-ja koji je deljen u CIM profilima u RDFS-u. Takođe, ostale navedene ontologije u prikazanim primerima imaju svoje jedistvene IRI-je: Meta ontologija - http://www.example.com/meta i Entsoe ontologija - http://www.example.com/entsoe. Bazna CIM ontologija bi takođe trebalo da ima svoj jedinstveni dereferencabilni IRI. Za nju bi mogao da se iskoristi postojeći http://iec.ch/TC57/2013/CIM-schema-cim16 IRI na kojem bi IEC zaista i publikovao CIM ontologiju. e. Prethodnom diferencijacijom bazne CIM ontologije i izvedenih CIM profila neophodno je očuvati semantičku povezanost CIM ontologije i profila. Listing 8 prikazuje semantičko mapiranje OWL

82 Diskusija rezultata

koncepata na primeru SvPowerFlow klase i njenog SvPowerFlow.p propertija. U primeru je za jedinstveni IRI bazne CIM ontologije uzet http://www.example.com/CommonCIM. CIM JSON-LD Upotreba predložene JSON-LD sintakse je diskutovana u različitim poglavljima rada, preciznije: a. Upotreba JSON-LD algoritama za procesiranje i API-ja demonstrirana je u dizajnu proširenog frejming algoritma (videti poglavlje 5.3.2) i njegovoj implementaciji (videti poglavlje 6.3.1). Takođe, ovi algoritmi za procesiranje su primenjeni kao jedan od mehanizama za validaciju ispravno implementirane konverzije RDFS-a u OWL 2 na primeru ENTSO-E CGMES profila (videti poglavlje 6.3.3). Pored ovih primena, JSON-LD algoritmi za procesiranje su primenjeni u web komponenti za prikaz CIM profila (videti poglavlja 5.4.1 i 6.4.1). b. Upotreba relativnih i apsolutnih IRI-ja u CIM JSON-LD dokumentu je prikazana u poglavlju 6.2.6., Listing 20. c. Upotreba imenovanog grafa, tj. dodele metapodataka skupu CIM RDF trojki je prikazana u poglavlju 6.2.6., Listing 20. d. Identifikator CIM JSON-LD dokumenta kao imenovanog grafa je zadat sa IRI-jem čvora koji opisuje model (videti poglavlje 6.2.6., Listing 20). e. CIM modeli podataka predstavljeni kao imenovani grafovi i objedinjeni u jedan dataset su učitani u Stardog bazu i iskorišćeni za demonstraciju izvođenja znanja u poglavlju 6.2.9.

83 Diskusija rezultata

6.2 Mogućnosti usklađivanja IEC standarda sa W3C preporukama

Kako bi pokazali da je aktuelne IEC standarde koji se odnose na upravljanje elektroenergetskim sistemima, kao i njihovo modelovanje, moguće proširiti u skladu sa preporukama datim od strane W3C- a realizovano je mapiranje CIM artefakata iz tekućih implementacionih tehnologija u CIM artefakte implementirane pomoću W3C standarda poslednje generacije opisano u opisu rešenja problema druge hipoteze, a u skladu sa opisom rešenja problema prve hipoteze. Praktično, izvršena je evaluacija metodologije predstavljene u opisu rešenja prve hipoteze. Evaluacija je urađena na primeru ENTSO-E CGMES profila [153] i CGMES testne konfiguracije (verzije CGMES_v2.4.15_TestConfigurations_v4.0.3) [154]. Za demonstraciju je odabrana testna konfiguracija – NodeBreaker/MiniGridTestConfiguration_BaseCase_Complete zajedno sa odgovarajućom NodeBreaker/MiniGridTestConfiguration_Boundary testnom konfiguracijom. Ove konfiguracije obezbeđuju testne slučajeve za proveru interoperabilnosti za grupu profila koju čine: 1. oprema (engl. Equipment, skr. EQ), 2. topologija (engl. Topology, skr. TP), 3. hipoteza stabilnog stanja (engl. Steady State Hypothesis, skr. SSH), 4. promenljive stanja (engl. State Variables, skr. SV), 5. raspored dijagrama (engl. Diagram Layout, skr. DL), 6. granična oprema (engl. Equipment Boundary, skr. EQ_EB), i 7. granična topologija (engl. Topology Boundary, skr. TB). Međusobne zavisnosti između profila prikazuje Slika 44.

BASE CASE IEC 61970-453 IEC 61970-456 Diagram Layout Topology DL TP

ref ref ref IEC 61970-452 ref State Variables Short Circuit Equipment Core SV EQ_SC EQ_CO ref ref Steady State Operation Hypothesis EQ_OP ref SSH ref ref BOUNDARY Equipment Topology Boundary Boundary EQ_BD ref TP_BD

Slika 44. Međusobne zavisnosti CGMES profila u odabranoj testnoj konfiguraciji

Evaluacija predložene metodologije je urađena kroz sledeće faze (Slika 45): 1. Implementaciju konvertera kojim su od CIM UML modela kreirane tri OWL 2 ontologije (CIM, Meta, Model Description ontologije). 2. Implementaciju konvertera kojim je od CGMES UML modela kreirana CGMES Extensions ontologija koja sadrži CGMES ekstenzije CIM UML modela. 3. Implementaciju konvertera i semantičkog mapera CGMES profila u RDFS-u na OWL 2. 4. Inspekciju i validaciju kreiranih ontologija. 5. Implementaciju konvertera kojim je od svakog CGMES profila u RDFS-u i odgovarajućeg Object Constraint Language (skr. OCL) fajla kreiran odgovarajući SHACL graf oblikovanja.

84 Diskusija rezultata

6. Dopunjavanje CGMES podataka testne konfiguracije da predstavlja validne RDF grafove. 7. Proveru konzistentnosti CGMES podataka testne konfiguracije (korišćenjem grafova oblikovanja i Stardog alata). 8. Validacija CGMES modela SHACL grafovima oblikovanja. 9. Izvođenje novih znanja korišćenjem OWL 2 DL rasuđivača (Pellet-a).

Model CIM CIM UML Meta Ontology Description OWL2 Ontology

extends

CGMES CGMES UML Extensions ontology OWL2 mapping uses

restricts ontology mapping conversion CGMES Profiles and CGMES Profiles RDFS semantic OWL 2 uses mapping

uses CGMES CGMES SHACL shape uses OCL uses graphs

validated by validated by CGMES CGMES Mini Grid Mini Grid CIMXML JSON-LD

Slika 45. Konverzija i semantičko mapiranje ENTSO-E CGMES artefakata

Prevođenje CIM UML-a u OWL 2 ontologije Kao polazna tačka u prvoj fazi evaluacije iskorišćena je verzija CIM UML-a sa oznakom iec61970cim16v28_iec61968cim12v08_iec62325cim03v01a definisana u XML formatu za razmenu metapodataka (engl. XML Metadata Interchange, skr. XMI) [155]. Sam ENTSO-E CGMES UML je baziran na ovoj verziji. Dati CIM UML je poslužio kao ulaz u posebno razvijeni alat čiji su izlaz tri ontologije – CIM, Meta i Model Description. Za ostatak konverzija su takođe korišćeni posebno razvijani alati. U normalnim uslovima ova konverzija treba da se uradi jednom pri svakoj zvaničnoj promeni verzije CIM UML-a, i svaka rezultujuća ontologija (ako je izmenjena) treba da bude publikovana na odgovarajućem perzistentnom HTTP IRI-ju i poželjno zavedena u Linked Open Vocabularies (skr. LOV) [156] bazi rečnika. Na ovaj način, svako ko kreira svoj skup CIM ekstenzija može da iskoristi postojeće javno dostupne CIM ontologije. Alati razvijeni za potrebe konverzije iz UML-a u opštem slučaju mogu biti nepotrebni u budućnosti, ako bi se CIM, Meta i Model Description ontologije čuvale u LOV a održavale u nekom od OWL 2 editora, stoga u ovom radu nije posvećena posebna pažnja ovim alatima. Razlog zašto CGMES UML XMI fajl (ENTSOE_CGMES_v2.4.15_7Aug2014.xmi) nije korišćen za kreiranje ontologija (već CIM UML) je u tome što je inicijalni skup restrikcija nad modelom izmenjen od strane ENTSO-E-a.

85 Diskusija rezultata

Konverzija CGMES ekstenzija Pored izmenjenih restrikcija, CGMES UML uvodi nove atribute, asocijacije (obeležene sa Entsoe stereotipom) nad postojećim klasama kao i nove klase (obelezene sa Entsoe stereotipom) i njihove atribute i asocijacije. Oni su konvertovani u CGMES Extension ontologiju u drugoj fazi polazeći od CGMES UML XMI fajla. Konverzija CGMES profila U sledećoj fazi, CIM RDFS CGMES profila je iskorišćen kao ulaz za konverziju. Razlog za korišćenje CGMES CIM RDFS-a, a ne CGMES UML XMI fajla, je u tome što UML dijagrami CGMES profila u CGMES UML-u nisu jedan na jedan poravnati sa CGMES CIM RDFS-om, pa je izbor CGMES CIM RDFS-a bio logičan pošto su instance modela iz testnih konfiguracija poravnate sa njim. Profili su konvertovani i semantički mapirani na CGMES profilne ontologije korišćenjem mapiranja CIM RDF šeme u CIM OWL 2 ontologiju opisanim u poglavlju 5.1.1. Uvedeno je jedno dodatno mapiranje specifično za CGMES, preciznije cims:AssociationUsed u meta:associationUsed anotacioni properti. Meta ontologija je proširena ovim novim anotacionim propertijem. Validnost ontologija Tokom procesa kreiranja ontologija, sve ontologije su validirane korišćenjem Manchester OWL validatora [157] sa primenjenim OWL 2 DL profilom. Potom su ontologije pregledane i proverene u Protégé editoru za ontologije, u smislu definisanih klasa, njihovih pripadajućih objektnih propertija i propertija tipova podataka. Primer OntoGraf vizuelizacije StateVariables (SV) profilne ontologije u Protégé-u prikazan je na Slici 46.

Slika 46. OntoGraf vizualizacija StateVariables (SV) profilne ontologije u Protégé-u

86 Diskusija rezultata

Ekspresivnost OWL deskriptivne logike (engl. Description Logic, skr. DL) kreiranih ontologija prikazuje Tabela 4. Tabela 4. OWL DL ekspresivnost CGMES ontologija po predloženoj metodologiji OWL DL Ontologija ekspresivnost CIM ALIQ(D) Entsoe ALQ(D) ModelDescription ALQ(D) Meta AL(D) DiagramLayoutProfile ALHOIQ(D) EquipmentProfile ALHOIQ(D) SteadyStateHypothesisProfile ALHOIQ(D) StateVariablesProfile ALHOIQ(D) TopologyProfile ALHIQ(D) TopologyBoundaryProfile ALHIQ(D) Equipment Boundary Profile ALHOIQ(D)

AL – atributivni jezik (atomička negacija, presek koncepata, univerzalne restrikcije, ograničena egzistencijalna kavatifikacija), Q – kvalifikovane restrikcije kardinaliteta, I – inverzni propertiji, H – hijerarhija rola (subpropertiji rdfs:subPropertyOf), O – nominali (klase enumeracije ili restrikcije objektnih vrednosti owl:oneOf, owl:hasValue), (D) – upotreba datatype propertija, vrednosti ili tipova podataka. Kreiranje validacionih grafova oblikovanja u SHACL-u U opštem slučaju moguće je napraviti konverter kojim se ograničenja definisana u CIM RDFS-u prevode u SHACL grafove oblikovanja. Međutim, ENTSO-E CGMES ograničenja definiše u objektnom jeziku za opis ograničenja (engl. Object Constraint Language, skr. OCL). Slika 47 prikazuje pristupe za validaciju RDF baziranih skupova podataka koji se primenjuju redom u standardnom CIM-u, CGMES-u i W3C-u. CIM koristi CIM RDF šemu kao rečnik CIMXML dokumenata i CIM RDF šema ekstenzije kako bi definisao dodatna ograničenja koja se interpretiraju kao validaciona pravila. Nasuprot njemu, CGMES definiše validaciona pravila u OCL-u, pošto sva u njemu važeća kompleksna ograničenja nije moguće definisati preko ekstenzija. Sama ograničenja su implementirana u vlasničkim (komercijalnim) CIM alatima poput CIMSpy-a [158] i CIMDesk-a [159]. Iz CGMES primera se da zaključiti da u praksi postoji potreba za iskazivanjem kompleksnih ograničenja i da CIM RDFS ekstenzije nisu dovoljne. S druge strane, primenom OCL-a kompleksna ograničenja su iskazana jezikom nerazumljivim RDF-u. Po novoj metodologiji, predlog je da se CIM ograničenja izraze preko SHACL grafova oblikovanja (SHACL podržava kompleksna ograničenja) [122]. Na ovaj način se usvaja W3C-ov pristup za validaciju RDF datasetova i omogućava validacija CIM modela korišćenjem standardnih alata semantičkog web- a.

87 Diskusija rezultata

Slika 47. Mapiranje CIM i CGMES pristupa za validaciju na W3C pristup

6.2.5.1 CIM RDF šema ekstenzije CIM RDF šema upotrebljava podskup RDFS klasa i propertija uključujući RDFS ekstenzije definisane kako bi se podržali nedostajući UML koncepti [86]. RDFS ekstenzije predstavljaju ne samo ograničenja nad samom CIM RDF šemom već i nad njenim instancama podataka. U CIM RDF šemi su definisane RDFS ekstenzije, Tabela 5. Tabela 5. RDF ekstenzije definisane CIM RDF šemom RDFS ekstenzija Opis cims:multiplicity Označava kardinalitet atributa i asocijacija UML klasa. Njegove uobičajene vrednosti u CIM UML-u su: M:0..1 (nula ili jedan), M:1..1 and M:1 (tačno jedan), M:0..n (nula ili više), i M:1..n (jedan ili više). U praksi se sreću vrednosti M:n (tačno n) i M:m..n (više na više). Ovo ograničenje se primenjuje na instance rdf:Property-ija i definiše očekivani kardinalitet povezanih instancnih CIM podataka. cims:inverseRoleName Označava ime role na suprotnom kraju asocijacije UML klase. Ovo ograničenje se primenjuje na instance rdf:Property-ija koje za vrednost rdfs:domain i rdfs:range ima instance rdfs:Class-e. Vrednost ovog ograničenja označava inverznu rdf:Property-i instancu. cims:isAggregate Označava da li je ime role na tekućem kraju asocijacije UML klase agregacija, postavljanjem vrednosti ovog ograničenja na true. Ovo ograničenje se premenjuje na instance rdf:Property-ija, slično prethodno opisanim ograničenjima. Kada ovaj metapodatak ima vrednost true, cims:inverseRoleName ograničenje ne mora da bude definisano za ime role definisane na suprotnom kraju. cims:dataType Označava tip podataka atributa UML klase. Ograničenje se premenjuje na instance rdf:Property-ija koje imaju za vrednost tip podataka, nasuprot rdfs:range-u koji se primenjuje na instance rdf:Property-ija čija je vrednost neki objekat iz CIM RDF šeme. cims:stereotype Označava ekstenzije UML meta modela. Primenjuje se kako na instance rdfs:Class-e tako i na instance rdf:Property-ija. Inicijalno ovo ograničenje je bilo zamišljeno da označi primitivne tipove podatka i enumeracije. Danas se uobičajeno koristi za obeležavanje CIM ekstenzija (novouvedenih klasa, atributa i asocijacija koje proširuju standardni IEC CIM model). cims:ClassCategory Označava da li je UML klasa kategorija (tj. UML paket). U osnovi, u CIM RDF šemi predstavlja metapodatke o

88 Diskusija rezultata

RDFS ekstenzija Opis organizaciji UML klasa. Ograničenje se dodeljuje instancama rdfs:Class-e. Ovaj metapodatak nije od značaja za instance CIM RDF šeme i može se tretirati kao anotacija instance rdfs:Class-e. cims:belongsToCategory Označava kojoj kategoriji tekuća klasa pripada. Ograničenje se dodeljuje instancama rdfs:Class-e. Kao u prethodnom slučaju ovaj metapodatak se može tretirati kao anotacija instance rdfs:Class-e. cims:isFixed* Označava nepromenljivu vrednost koja je očekivana u instanciranim podacima. cims:AssociationUsed* Označava da li se tekući kraj asocijacije UML klase koristi. Ovo ograničenje se premenjuje na instance rdf:Property- ija. Kada ima vrednost false, odgovarajući properti se ne pojavljuje u instancama CIM RDF šeme. * ograničenja propertija koja se mogu naći u praksi (ne predstavljaju deo IEC 61970-501, ali se koriste od strane ENTSO-E-a)

6.2.5.2 Mapiranje CIM ograničenja u SHACL Na osnovu analize primenjenih RDF šema koncepata i RDF šema ekstenzija u CIM-u, mapiranje CIM RDF šema ograničenja u SHACL graf oblikovanja je definisano na sledeći način:  Svaka instanca rdfs:Class-e iz CIM RDF šeme je mapirana na čvorni oblik (sh:NodeShape) koji cilja instance klase.  Svaka instanca rdf:Property-ija iz CIM RDF šeme je mapirana na properti oblik (sh:property) sa vrednošću za sh:path jednakoj properti instanci u čvornom obliku koji odgovara rdfs:Class-i njegovog rdfs:domain propertija. Ako properti instanca ima ograničenje cims:AssociationUsed postavljeno na false ono se preskače. Ograničenja parametara properti oblika su potom dodata na sledeći način: o Ako instanca propertija ima postavljeno ograničenje cims:dataType, komponenta za ograničenje vrednosti tipa sh:datatype se kreira sa odgovarajućom vrednošću. o Ako instanca propertija ima postavljen rdfs:range, komponenta za ograničenje vrednosti tipa sh:class se kreira sa odgovarajućom vrednošću. o Ako instanca propertija ima postavljeno ograničenje cims:multiplicity, ono se mapira na komponente za ograničenje kardinaliteta i to sh:minCount, sh:maxCount ili njihovu kombinaciju u zavisnosti od vrednosti. 0 (nula) i n (više) predstavljaju nerestriktivna ograničenja, pa njihovo mapiranje nije neophodno. o Ako instanca propertija ima postavljeno ograničenje cims:isFixed, onda je ono mapirano na komponentu za ograničenje stringa sh:pattern sa konstantnom vrednošću.

6.2.5.3 Mapiranje CGMES ograničenja u SHACL Ograničenja izvedena iz UML-a. Pored toga što su definisana preko OCL, ova ograničenja su takođe prisutna i u odgovarajućoj CIM RDF šemi kako je specificirano IEC 61970-501 standardom. Listing 12 i Listing 13 prikazuju ograničenja kardinaliteta i vrednosti tipa postavljene na TopologicalNode.BaseVoltage asocijaciju (objektni properti) TopologicalNode klase u OCL-u i CIM RDFS-u. Ista ograničenja mogu biti izražena u SHACL-u kao parametri ograničenja propertija oblika koji pripada čvornom obliku koji odgovara TopologicalNode klasi, Listing 14.

89 Diskusija rezultata package TC57CIM context IEC61970::Base::Topology::TopologicalNode -- BaseVoltage must be set. -- The base voltage of the topologocial node. inv TopologicalNode_BaseVoltage: (self.BaseVoltage <> null) ... endpackage Listing 12. Izvod iz fajla OCL pravila izvedena iz UML-a za profil granične topologije (TP_BD)

BaseVoltage The base voltage of the topological node. Yes Listing 13. Izvod iz CIM RDF šeme profila granične topologije (TP_BD)

a sh:NodeShape ; sh:targetClass ; sh:property [ sh:path ; sh:class ; sh:maxCount 1 ; sh:minCount 1 ; ] ; # ... . Listing 14. Properti oblik TopologicalNode.BaseVoltage objektnog propertija

CGMES ograničenja dužine. Ograničenja dužine i ograničenja kardinaliteta nad atributima IdentifiedObject klase po profilima su prikazuje Tabela 6. Ova klasa se smatra osnovnom klasom CIM hijerarhije, većina CIM klasa je nasleđuje pošto sadrži atribute za imenovanje i referenciranje objekata. Ograničenja dužine i ograničenja kardinaliteta nad atributima vezanim za imenovanje koji pripadaju klasama ConnectivityNode EQ_BD profila i TopologicalNode TP_BD profila sumira Tabela 7. Obe tabele se mogu naći u dokumentu [160].

90 Diskusija rezultata

Tabela 6. CGMES ograničenja dužine nad atributima IdentifiedObject klase po profilima [160] Dužina stringa Profil IdentifiedObject [broj znakova] EQ TP SSH SV DL GL DY .name 32 maximum r o o r r  o .description 256 maximum o o     o .energyIdentCodeEic 16 exactly o o      .shortName 12 maximum o o      Legenda: r – atribut je prisutan i obavezan u profilu, o - atribut je prisutan i opcion u profilu,  - atribut nije prisutan u profilu;

Tabela 7. CGMES ograničenja dužine nad ConnectivityNode i TopologicalNode klasama [160] Za ConnectivityNode u EQ_BD profilu Dužina stringa EQ_BD TP_BD i TopologicalNode u TP_BD profilu [broj znakova] IdentifiedObject.name 32 maximum r r IdentifiedObject.description 256 maximum r r IdentifiedObject.energyIdentCodeEic 16 exactly o o IdentifiedObject.shortName 12 maximum r r .fromEndIsoCode 2 exactly r r .toEndIsoCode 2 exactly r r .fromEndName 32 maximum r r .toEndName 32 maximum r r .fromEndNameTso 32 maximum r r .toEndNameTso 32 maximum r r Legenda: r – atribut je prisutan i obavezan u profilu, o - atribut je prisutan i opcion u profilu,  - atribut nije prisutan u profilu; Listing 15 prikazuje ograničenje tačne dužine postavljeno na TopologicalNode.fromEndIsoCode atribut (datatype properti) klase TopologicalNode izraženo u OCL-u. Ono može biti izraženo u SHACL-u sa parametrima ograničenja za minimum i maksimum dužine u properti obliku, sh:minLength i sh:maxLength, Listing 16. package TC57CIM context IEC61970::Base::Topology::TopologicalNode -- R.4.10.11. From End ISO Code length restriction inv topologyBoundaryFromEndIsoCodeLength: self.fromEndIsoCode->size() = 2 ... endpackage Listing 15. Izvod iz fajla OCL dodata pravila za profil granične topologije (TP_BD)

a sh:NodeShape ; sh:targetClass ; sh:property [ sh:path ; sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ; # from UML derived rules sh:minLength 2 ; sh:maxLength 2 ; # from added OCL rules ] ; # ... . Listing 16. Properti oblik za TopologicalNode.fromEndIsoCode properti tipa podataka

91 Diskusija rezultata

CGMES uslovna ograničenja. Ovaj tip ograničenja specificira kompleksne uslove definisane u OCL-u. Ona mogu biti izražena u SHACL-u korišćenjem SPARQL baziranih ograničenja ili SPARQL bazirane komponente za ograničavanje. Listing 17 prikazuje jedan primer CGMES uslovnog ograničenja. Jedan mogući način za mapiranje ovog ograničenja u SHACL je korišćenje SPARQL baziranog ograničenja, Listing 18. U CGMES-u, uslovna ograničenja su definisana za sledeće profile: topologiju (1 ograničenje), promenljive stanja (2 ograničenja), i opremu (20 ograničenja) [161]. package TC57CIM context IEC61970::Base::StateVariables::SvPowerFlow -- The active power flow into the ConductingEquipment. If the associated Terminal.connected status is "false", the flow specified in the SvPowerFlow.p should be zero. inv svPowerFlowDisconnectedPZero: ( ((self.p = 0.0) and (self.Terminal.connected = false)) or (self.Terminal.connected = true) ) ... endpackage Listing 17. Izvod iz fajla OCL dodata pravila za profil promenljivih stanja (SV)

@prefix cim: cim:ActivePowerFlowShape a sh:NodeShape ; sh:targetClass cim:SvPowerFlow ; sh: [ a sh:SPARQLConstraint ; sh:message "The active power flow into the ConductingEquipment is not correct." ; sh:prefixes cim: ; sh:select """ SELECT $this (cim:SvPowerFlow.Terminal AS ?path) (?terminal AS ?value) WHERE { $this cim:SvPowerFlow.p ?p . $this cim:SvPowerFlow.Terminal ?terminal . ?terminal cim:ACDCTerminal.connected ?connected . FILTER (!((?p = 0.0 && ?connected = FALSE) || ?connected = TRUE)) } """ ; ] . Listing 18. Primer SHACL ograničenja baziranog na SPARQL-u Kreiranje validnih RDF grafova U ovoj fazi CGMES instance modela u CIMXML-u su obogaćene baznim HTTP IRI-jem, prostorom imena za odgovarajuću CGMES profilnu ontologiju (koja zamenjuje cim prostor imena iz originalnog dokumenta), prostorima imena za CGMES Extensions i Model Description ontologije, i prostorom imena za sam model. RDF Translator je iskorišćen da prevede CIMXML modele u JSON-LD sintaksu (a bazni IRI je upravo dodat kako alat ne bi prevedenom dokumentu dodelio podrazumevani bazni IRI na osnovu fizičke lokacije dokumenta). U prevedenom dokumentu bazni IRI je uklonjen od strane RDF Translatora zbog imenovanja prostora imena zadatog baznim IRI-jem (http://www.example.com/model#). Potom su metapodaci o svakoj instanci modela (izraženi preko reči Model Description ontologije) izmešteni iz @graph podstrukture u metapodatke grafa formirajući na taj način imenovani graf. Svakom literalu u modelu je istovremeno pridružen odgovarajući XSD prost tip (primer vrednost propertija sv: SvPowerFlow.p, Listing 20). Svi CGMES artefakti dobijeni u procesu konverzije i semantičkog mapiranja su publikovani na lokalnom intranetu čime su postali dereferencabilni.

92 Diskusija rezultata

2030-01-02T09:00:00 2014-10-22T09:01:25.830 CGMES Conformity Assessment: Mini Grid Base Case... 4 http://entsoe.eu/CIM/StateVariables/4/1 http://A1.de/Planning/ENTSOE/2 -0.0877826 -0.178615972 Listing 19. Izvod iz modela varijabli stanja (SV) u RDF/XML-u

{ "@context": { "xsd": "http://www.w3.org/2001/XMLSchema#", "sv": "http://www.example.com/StateVariablesProfile#", "en": "http://www.example.com/entsoe#", "md": "http://www.example.com/ModelDescription#", "mo": "http://www.example.com/model#" }, "@id": "http://www.example.com/239vcbd3-9a39-11e0-aa80-0800200c9a66", "@type": "md:FullModel", "md:Model.DependentOn": [ { "@id": "http://www.example.com/2399cbd1-9a39-11e0-aa80-0800200c9a66" }, { "@id": "http://www.example.com/239ecbd2-9a39-11e0-aa80-0800200c9a66" }, { "@id": "http://www.example.com/239tcbd4-9a39-11e0-aa80-0800200c9a66" } ], "md:Model.created": "2014-10-22T09:01:25.830", "md:Model.description": "CGMES Conformity Assessment: Mini Grid Base Case ...", "md:Model.modelingAuthoritySet": "http://A1.de/Planning/ENTSOE/2", "md:Model.profile": "http://entsoe.eu/CIM/StateVariables/4/1", "md:Model.scenarioTime": "2030-01-02T09:00:00", "md:Model.version": "4", "@graph": [ { "@id": "mo:_c8677d0a-b4ed-4c17-b20a-3266e2c33d26", "@type": "sv:SvPowerFlow", "sv:SvPowerFlow.Terminal": { "@id": "mo:_4dec53ca-3ea6-4bd0-a225-b559c8293e91" }, "sv:SvPowerFlow.p": { "@type": "xsd:float", "@value": "-0.0877826" }, "sv:SvPowerFlow.q": { "@type": "xsd:float", "@value": "-0.178615972" } }, ... ] } Listing 20. Model promenljivih stanja (SV) predstavljen kao imenovani graf

93 Diskusija rezultata

Provera konzistentnosti modela Potreba za importom CGMES primera u Stardog [151] proističe iz zahteva za izvođenjem znanja na osnovu kreiranih ontologija i kvalitetnim OWL 2 DL rasuđivačem. Autorka se opredelila za Pellet 3.0 rasuđivač koji je sastavni deo Stardog platforme. Konzistentnost svih modela je proverena u Stardog-u gde su prethodno učitane sve ontologije i modeli u jednu bazu. Provera konzistentnosti modela se u Stardogu svodi na proveru aksioma definisanih ontologijama pod OWA pretpostavkom. U slučaju CGMES primera provera se svodi na proveru usklađenosti tipova vrednosti propertija sa tipovima definisanim u odgovarajućim ontologijama i proveru narušenosti ograničenja kardinaliteta za maksimum. Da u prethodnoj fazi svakom literalu različitom od stringa nije dodeljen prost tip, provera konzistentnosti bi bila neuspešna. Ovako su dobijeni validni RDF grafovi. Stardog podrazumeva proveru kardinalnosti pod OWA predpostavkom, što znači da je podrazumevano shvatanje da informacije o modelu nisu kompletne tj. ako je na primer neki properti obavezan, a nije definisan nad resursom, to ne znači da on ne postoji, već da nemamo dovoljno informacija koje bi potvrdile njegovo nepostojanje. Provera kardinalnosti u CWA se na ovaj način ne može izvršiti u Stardog-u. Za te potrebe bi bilo neophodno koristiti vlasničko Stardog rešenje za validaciju koje podrazumeva CWA pretpostavku – Identity Constraints Validation (skr. ICV). Kako je cilj ove hipoteze da se pokaže primena standardnih metoda na CIM artefakte, validacija CIM modela pod CWA pretpostavkom biće izvršena pomoću SHACL grafova oblikovanja dobijenih u prethodnoj fazi. Validacija SHACL-om Evaluacija kvaliteta odabranih CGMES datasetova je urađena na virtuelnoj mašini sa Intel Core(TM) i5-6300U CPU @ 2.40GHz procesorom sa 6GB RAM-a, 50 GB HDD-om, i sa Microsoft Windows 8.1 Pro operativnim sistemom na kojem je instaliran Node v6.9.5. Validacija lokalnih fajlova je urađena korišćenjem SHACLib.ts v1.0.3 (videti 9.1) biblioteke i Apache Jena Fuseki v2.5.0 skladišta. Napomena: Kao polazna tačka za validaciju pod pretpostavkom zatvorenog sveta (CWA) uzeti su CIMXML-ovi dopunjeni baznim prostorom imena i CIM RDF šeme koje su iskorišćene za kreiranje grafa podataka potrebnog kao jednog od ulaza za validaciju SHACL-om. Razlog zašto nisu iskorišćene novokreirane ontologije i validni RDF grafovi kreirani u prethodnim koracima je u tome što postupak sproveden pri evaluaciji prikazanoj u ovom poglavlju može da se iskoristi za unapređenje trenutno važeće CIM metodologije kako bi se proces validacije CIM datasetova standardizovao bez obzira na složenost ograničenja (publikovano u radu [122]). Dodatni razlog je i to što bi u slučaju korišćenja ontologija (povezanih ekvivalencijama) bilo potrebno koristiti SHACL procesor sa podrškom za OWL 2 DL rasuđivanje. U trenutku rada na disertaciji nije bilo dostupno ni rešenje koje implementira SHACL Core procesor sposobno da radi u web okruženju, stoga je implementirana SHACLib.ts biblioteka. Takođe nijedna SHACL implementacija (sa Core i SPARQL procesorima) trenutno nema podršku za OWL 2 DL rezonovanje iako je SHACL standardom to predviđeno [162]. Validacija CIM artefakata po novoj metodologiji bi zahtevala implementaciju konvertera koji bi ograničenja iz OWL 2 ontologija prevodio u SHACL grafove oblika i korišćenje SHACL implementacije sa podrškoma za OWL 2 DL rasuđivanje kako bi mogle da se razreše relacije ekvivalencije između ontologija. Međutim, prikazana validacija ne umanjuje niti utiče na opštost pristupa, pošto je jedina razlika između razmatranih scenarija u primenjenim rečnicima. Kako bi se validirao skup odabranih CGMES datasetova korišćenjem SHACL-a (tj. provera konzistentnosti pod pretpostavkom CWA), potrebno je bilo kreirati skup grafova oblika (SHACL fajlova) koji sadrže validaciona pravila za svaki profil. U tu svrhu, implementiran je prilagođeni konverter u skladu sa definisanim mapiranjem CIM RDF šema ograničenja na SHACL proširenim da obradi CGMES ograničenja dužine i CIM tipove podataka. CIM tipovi podataka su mapirani u XSD tipove podataka. Validacija CGMES uslovnih ograničenja nije razmatrana u ovom radu pošto je fokus bio na validaciji sa SHACL Core procesorom implementiranim u SHACLib.ts biblioteci. Konverter prihvata CGMES profile (CIM RDF šeme u RDF/XML sintaksi) i generiše odgovarajuće SHACL grafove oblika u Turtle sintaksi. Validacija CGMES datasetova je urađena kroz četiri faze:

94 Diskusija rezultata

1. Uvođenje baznog prostora imena CIMXML-ove CGMES modela. 2. Uvođenje XSD tipova podataka u CGMES modele kako bi se dobili ispravni RDF grafovi. Uzeti su CIM modeli opisani u 6.2.6 poglavlju bez dopunjenih XSD tipova, kako bi pokazali da SHACL validacija detektuje narušenu usklađenost tipova. 3. Validaciju svakog CGMES dataseta zajedno sa povezanim datasetovima i minimumom potrebnih CGMES profila u RDFS-u u odnosu na odgovarajući graf oblikovanja. 4. Validaciju unije svih CGMES datasetova zajedno za minimumom potrebnih CGMES profila u RDFS- u odnosu na odgovarajući graf oblikovanja, sa ciljem da se provere i otkriju konflikti u modelima i ograničenja postavljena nad istom klasom od strane različitih CGMES profila.

6.2.8.1 Prva faza validacije Svakom CGMES CIMXML dokumentu je dodeljen isti bazni prostor imena (http://www.example.com/model#), kako bi se izbegla upotreba URI-ja dokumenta kao podrazumevanog prostora imena. Potom su CGMES datasetovi konvertovani iz RDF/XML u Turtle sintaksu RDF Translatorom.

6.2.8.2 Druga faza validacije Svaki CGMES dataset je validiran u odnosu na odgovarajući graf oblikovanja korišćenjem SHACLib.ts-a. Validacioni rezultati su prijavili brojna narušavanja ograničenja od kojih je najveći deo bio izazvan sh:DatatypeConstraintComponent komponentom, Listing 21.

_:b10 a sh:ValidationResult ; sh:focusNode ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; sh:resultPath ; sh:value "-0.0877826" ; sh:sourceShape _:sgb15 ; sh:detail _:b11 . _:b11 a sh:ValidationResult ; sh:focusNode ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:PropertyShapeComponent ; sh:sourceShape cim:SvPowerFlowShape . Listing 21. Izvod iz inicijalnog validacionog izveštaja CIMXML fajlovi nemaju ugrađene tipizirane vrednosti literala, već obične literale (koji se interpretiraju kao da su tipa xsd:string, Listing 19). Umesto toga, CIM aplikacije preuzimaju očekivane tipove literala XML čvorova sa vrednostima prostih tipova iz odgovarajućih CIM RDF šema. Da bi ovi fajlovi postali upotrebljivi iz RDF perspektive, vrednosti literala različite od stvarnih običnih literala su tipizirane odgovarajućim XSD tipom. Na ovaj način, CGMES datasetovi su pripremljeni za dalje validacione provere eliminišući sva narušavanja ograničenja na tipove podataka.

6.2.8.3 Treća faza validacije U ovoj fazi, za svaki CGMES profil njegov odgovarajući dataset zajedno sa svim povezanim datasetovima (poštujući profilne zavisnosti, Slika 44) i minimalnim skupom povezanih profilnih RDF šema je validiran u odnosu na odgovarajući graf oblikovanja. Tabela 8 prikazuje rezultate ove validacije. Odluka za dodavanje minimalnog broja povezanih profilnih RDF šema je načinjena u cilju smanjenja broja preklapanja RDFS trojki, kao i trojki koje definišu potencijalno različita ograničenja kardinaliteta nad istim klasama (Tabela 6). Kvačice u tabeli označavaju fajlove koji su korišćeni pri validaciji, dok susedni broj označava u kojoj validacionoj iteraciji je fajl dodat u graf podataka. Vreme validacije predstavlja prosečno vreme 100 uzastopnih izvršavanja. Početni graf podataka je formiran od profilnog dataseta, njegovih povezanih datasetova i profilne RDF šeme. Profilna RDF šema je dodata pošto je očekivano da graf podataka uključi sve ontološke aksiome koji se odnose na podatke, pogotovo aksiome nasleđivanja (rdfs:subClassOf) kako bi SHACL procesor ispravno identifikovao ciljane klase i validirao osnovna SHACL ograničenja [120].

95 Diskusija rezultata

Na primer, u prvoj iteraciji validacije sa DL grafom oblika, graf podataka je uključivao DL, EQ, EQ_BD datasetove i DL RDFS. Validacija je prijavila 434 narušavanja ograničenja od kojih su sva bila izazvana sh:ClassConstraintComponent komponentom (jedan primer rezultata validacije prikazuje Listing 22). Daljim ispitivanjem je utvrđeno da je u DL RDFS-u, super klasa IdentifiedObject korišćena kao vrednost rdfs:range-a propertija DiagramObject.IdentifiedObject (Listing 23 prikazuje odgovarajuće SHACL ograničenje propertija), dok su referencirani resursi tipizirani njenim podklasama u nekom od datasetova povezanih sa DL datasetom (Listing 24). Na osnovu ovog se izvodi zaključak da grafu podataka nedostaju aksiomi nasleđivanja iz EQ RDFS-a, odnosno da je DL RDFS nepotpun. U sledećoj iteraciji, EQ RDFS je dodat u graf podataka i validacija je završena bez ijedne greške.

Tabela 8. Rezultati validacije za povezane datasetove i RDFS po profilu

Dataset RDFS

Profil

DL DL EQ SV SSH TP EQ_BD TP_BD DL EQ SV SSH TP EQ_BD TP_BD #oblika oblika #trojki #trojki podataka Vreme [ms] validacije #narušenih ograničenja Komponenta ograničenja DL  1 1 1  1 2 48 204 16258 88022 0 EQ 1 1 1 684 2773 10318 77372 0 SV  1  1  1  1  1  2  1 73 309 11996 20482 0 SSH  1  1 114 477 1963 16157 0 TP 1 1 1 1 2 1 31 137 11086 55284 180 min count EQ_BD 1  2 1 43 203 6516 3822 0 TP_BD 1 1 2 1 29 153 956 3065 0

_:b10 a sh:ValidationResult ; sh:focusNode ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:ClassConstraintComponent ; sh:resultPath ; sh:value ; sh:sourceShape _:sgb23 ; sh:detail _:b11 . _:b11 a sh:ValidationResult ; sh:focusNode ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:PropertyShapeComponent ; sh:sourceShape cim:DiagramObjectShape . Listing 22. Primer rezultata validacije narušenog ograničenja nad klasom

96 Diskusija rezultata

a sh:NodeShape ; sh:targetClass ; sh:property [ sh:path ; sh:class ; sh:maxCount 1 ; ] ; #... . Listing 23. SHACL ograničenja nad CIM DiagramObject.IdentifiedObject propertijem

71-73_0_ADD_DSC21 Listing 24. Izvod iz CGMES EQ dataseta Validacija sa TP grafom oblika je u prvoj iteraciji prijavila 24 narušavanja ograničenja od kojih su sva izazvana sh:ClassConstraintComponent komponentom. Ponovo, kao i u prethodno opisanom slučaju, su nedostajali aksiomi nasleđivanja iz EQ RDFS-a. Kada je EQ RDFS dodat u graf podataka, sledeća iteracija je prijavila 180 narušavanja ograničenja koja su sva izazvana sh:MinCountConstraintComponent komponentom nad Terminal.TopologicalNode propertijem. Daljom ručnom proverom datasetova je utvrđeno da postoji 233 različite instance Terminal-a u EQ datasetu, gde samo 53 od njih ima postavljenu vrednost za Terminal.TopologicalNode properti. Ovom validacijom je potvrđeno da graf podataka datasetova povezanih sa TP ne poštuje ograničenja definisana TP profilom. U praksi to znači da kompletan model nije konzistentan sa definisanim ograničenjima, pošto samo instance Terminal-a koje se pojavljuju u TP datasetu poštuju validaciona pravila zadata TP RDFS-om. Istovremeno ova pravila nisu mogla da budu proverena zbog nepotpunog TP RDFS-a tj. nedostatka aksioma nasleđivanja. Drugi specijalni slučaj predstavlja EQ_BD validacija. U prvoj iteraciji validacija je prijavila 2 narušavanja ograničenja izazvana sh:ClassConstraintComponent komponentom. Ponovo su nedostajali aksiomi nasleđivanja sada za CIM Line klasu. Međutim, EQ_BD profil ne zavisi ni od jednog profila (Slika 44). Nakon provere datasetova i RDFS-ova, otkriveno je da EQ RDFS mora da bude dodat pošto sadrži aksiome nasleđivanja potrebne za razrešavanje Line klase. U ovom slučaju, zaključak je da CGMES EQ_BD profil treba da bude ažuriran kako bi bila omogućena ispravna validacija EQ_BD instanci. Ostatak validacija je urađen bez prijave validacionih grešaka (EQ, SSH) ili slično slučaju DL validacije u dve iteracije (SV, TP_BD).

6.2.8.4 Četvrta faza validacije Za svaki CGMES profil unija svih datasetova zajedno sa minimalnim brojem povezanih profilnih RDF šema je validirana u odnosu na odgovarajući graf oblikovanja (Tabela 9). U slučajevima DL, EQ, SV, SSH i TP validacije u pogledu primenjenih RDFS-ova i validacionih rezultata iskustva su uporediva rezultatima iz prethodne faze.

97 Diskusija rezultata

Tabela 9. Rezultati validacije nad svim datasetova i povezanim RDFS-ovima po profilu

Dataset RDFS

Profil

Sve Sve DL EQ SV SSH TP EQ_BD TP_BD oblika # trojki oblika # trojki # podataka Vreme [ms] validacije narušenih # ograničenja Komponenta ograničenja DL   1 2 48 204 17897 88931 0 EQ  1 684 2773 17312 78081 0 SV   2  1 73 309 18082 21935 0 SSH   1 114 477 12093 13966 0 TP  2  1 31 137 17667 35092 180 min count EQ_BD  2 1 43 203 17879 43535 2036 min count TP_BD  3 2 1 29 153 18163 34557 1417 min count Suprotno, EQ_BD i TP_BD validacije su pokazale da ograničenja definisana profilima ne mogu da se koriste validaciju konzistentnosti celog CGMES modela zato što je za referencirani resurs nemoguće razlučiti iz kog dataseta je potekao. Na primer, instance klase TopologicalNode definisane u TP_BD datasetu imaju postavljen obavezni properti TopologicalNode.fromEndIsoCode dok instance iste klase definisane u TP datasetu uopšte nemaju postavljen taj properti (Tabela 7). Takođe, može se primetiti da TP_BD graf podataka dodatno sadrži EQ RDFS aksiome uvedene da bi se razrešile hijerarhije nasleđivanja u uključenim TP_BD nepovezanim datasetovima. OWL 2 DL rasuđivanje Za demonstraciju izvođenja znanja iz ENTSO-E CGMES artefakata korišćen je Pellet rasuđivač isporučen u okviru Stardog-a. Pellet je sposoban za OWL 2 DL zaključivanje zahtevano složenošću kreiranih ontologija. U Stardog bazu su importovane sve kreirane ontologije i svi CGMES modeli. Baza je konfigurisana da radi sa OWL 2 DL zaključivanjem nad svim definisanim grafovima. Kroz sledeće primere je prikazano OWL 2 DL zaključivanje u rezultatima SPARQL upita. Bez uključenog OWL 2 DL zaključivanja u Stardog bazi, SPARQL upiti bi vratili prazan rezultat.

6.2.9.1 Primer 1. Pronalaženje razlike napona definisanog u SV profilu i nominalnog napona topološkog čvora definisanog u TP profilu. Listing 25 prikazuje SPARQL upit kojim se pronalaze razlike napona definisanog u profilu varijabli stanja i nominalnog napona topološkog čvora definisanog u topološkom profilu sortirane opadajući po razlici napona. Povezivanje ovih profila je postignuto preko bazne CIM ontologije pošto oba profila (SV i TP) definišu odgovarajuće evivalencije klasa i propertija. Rezultat upita prikazan je u Tabeli 10.

PREFIX co: PREFIX mo:

SELECT ?TopologicalNodeName ?Description ?Voltage ?NominalVoltage ((?Voltage - ?NominalVoltage) AS ?Difference) WHERE{ ?SvVoltage rdf:type co:SvVoltage . ?SvVoltage co:SvVoltage.TopologicalNode ?TopologicalNode . ?SvVoltage co:SvVoltage.v ?Voltage . ?TopologicalNode co:TopologicalNode.BaseVoltage ?BaseVoltage . ?BaseVoltage co:BaseVoltage.nominalVoltage ?NominalVoltage . ?TopologicalNode co:IdentifiedObject.name ?TopologicalNodeName . ?TopologicalNode co:IdentifiedObject.description ?Description . } ORDER BY DESC(?Difference) Listing 25. SPARQL upit – razlika između napona

98 Diskusija rezultata

Tabela 10. Rezultat SPARQL upita – razlika između napona u kV

TopologicalNodeName Description Voltage NominalVoltage Difference 4 Node-11 114.31344 110 4.3134384 3 Node-5 114.25818 110 4.2581787 2 Node-3 114.22201 110 4.2220078 5 Node-6 114.2175 110 4.217499 1 Node-1 380.74002 380 0.74002075 6 Node-7 10.381614 10 0.38161373 7 Node-8 10.267801 10 0.26780128 HG2 Node-9 10 10 0 HG1 Node-10 20.922787 21 -0.07721329 H Node-4 28.5555 30 -1.4445 8 Node-2 28.5555 30 -1.4445 XQ2_EQIN OHL_and_CAB 110 kV 0 110 -110 XQ1_EQIN OHL 380 kV 0 380 -380

6.2.9.2 Primer 2. Pronalaženje svih instanci ACLineSegmenta iz EQ profila koje imaju oba svoja terminala isključena u SSH profilu. Listing 26 prikazuje SPARQL upit kojim se pronalaze sve instance klase ACLineSegment iz profila opreme koji imaju oba svoja terminala isključena u profilu hipoteze stabilnog stanja. Rezultat upita prikazan je u Tabeli 11.

PREFIX co: PREFIX mo:

SELECT ?AcLine ( COUNT(?terminal) as ?Terminals ) WHERE{ ?AcLine rdf:type co:ACLineSegment . ?terminal co:Terminal.ConductingEquipment ?AcLine . ?terminal co:ACDCTerminal.connected ?connected . FILTER (?connected = FALSE) } GROUP BY ?acLine HAVING(COUNT(?terminal) = 2) Listing 26. SPARQL upit – ACLineSegmenti sa isključena oba terminala

Tabela 11. Rezultat SPARQL upita – ACLineSegmenti sa isključena oba terminala

AcLine Terminals http://www.example.com/model#_f32baf36-7ea3-4b6a-9452-71e7f18779f8 2

99 Diskusija rezultata

Sistem vrednovanja pet zvezda Tim Berners-Lee, pronalazač web-a i inicijator povezanih podataka je razvio sistem vrednovanja pet zvezda (engl. 5-star Linked Data) za otvorene povezane podatke (engl. Linked Open Data) [114]. Povezani podaci ne moraju nužno da budu otvoreni kako bi dostigli svih pet zvezda. Na primer, nije očekivano da CIM podaci kao povezani podaci budu u potpunosti dostupni na web-u pošto su namenjeni za internu upotrebu u elektroenergetskim preduzećima. Naravno, neki delovi CIM podataka, od opšteg interesa, mogu biti javno dostupni pod određenim uslovima. Usvajanjem principa povezanih podataka u CIM-u, CIM artefakte dobijene po novoj metodologiji možemo da vrednujemo sistemom pet zvezda. Pet zvezda je zadovoljeno kada važe sledeći iskazi:  CIM podaci su dostupni u lokalnom intranetu preduzeća i moguće delimično dostupni na internetu za integraciju sa softverom trećih lica.  CIM podaci su dostupni kao mašinski čitljivi struktuirani podaci – na primer preduzeće može da učini dostupnim CIM podatke u vlasničkom formatu razumljivom internim aplikacijama.  CIM podaci su dostupni u nevlasničkom formatu – standardnoj RDF/XML i novopredloženoj JSON-LD serijalizaciji.  Otvoreni W3C standardi su iskorišćeni za identifikaciju stvari – korišćenjem predloženog JSON-LD pristupa svaki CIM resurs postaje identifikovan sa IRI-jem.  CIM podaci su povezani – JSON-LD se koristi da poveže zavisne modele i ontologije. Prema prethodno navedenom, autorka zaključuje da predloženi pristup za CIM modelovanje ispunjava sve kriterijume sistema vrednovanja pet zvezda.

100 Diskusija rezultata

6.3 Web aplikacije u pametnim mrežama mogu da koriste semantički obogaćene podatke

Metodologija testiranja Inicijalno testiranje je sprovedeno na skupu novih testova za testiranje reverznog API-ja uključenih u JSON-LD paket testova dostupnih sa implementacijom Proširenog frejming algoritma [163]. Ovi testovi validiraju rezultat frejmovanja u odnosu na očekivani rezultat za zadati ulazni JSON- LD dokument i frejm. Testovi su kreirani od strane autorke kako bi demonstrirali sve mogućnosti novog API-ja. Za detaljno testiranje, na složenim primerima iz prakse, iskorišćeni su ENTSO-E CGMES profili i to u dva testna scenarija. U prvom testnom scenariju korišćeni su CIM profili izraženi u CIM RDFS-u. Pošto CIM profili ne sadrže prazne čvorove povezane RDFS propertijima, dodatno testiranje sprovedeno je nad CIM profilima izraženim u OWL 2 jeziku. CIM profili izraženi u OWL 2 jeziku dobijeni su mapiranjem opisanom u poglavlju 5.1.1. CIM profili u oba testna scenarija su transformisani u JSON- LD sintaksu. U oba testna scenarija je korišćen isti ulazni frejm za kreiranje CIM profilne hijerarhije klasa. Testni frejm Testni frejm (Listing 27) oblikuje ulazni CIM profilni JSON-LD dokument u hijerarhiju stabla počevši od ontologije ili klase, grupiše povezane klase i propertije, ugrađuje podklase na osnovu relacije nasleđivanja, i grupiše sve propertije koji pripadaju klasi. On obezbeđuje da rezultujuće stablo nije podstablo nekog drugog stabla, da su samo eksplicitno deklarisani propertiji uključeni u rezultat i da su čvorni objekti ugrađeni na njihovo prvo pojavljivanje. Isti rezultat frejmovanja mogao je da bude postignut i kreiranjem jednostavnijeg frejma za svaki testni scenario posebno. Na primer, u slučaju RDFS test scenarija OWL konstrukcije i rdfs:isDefinedBy properti mogu biti izostavljeni u frejmu. Međutim, zadržan je isti ulazni frejm u oba testna scenarija kako frejm ne bi uticao na frejming proces. Istovremeno, rezultati frejmovanja poslužili su kao potvrda ispravno implementirane konverzije profila.

{ "@context": { // owl, rdf, rdfs, xsd, cim, entsoe, tp, ... "children": { "@reverse": "rdfs:subClassOf", "@container": "@set"}, "properties": { "@reverse": "rdfs:domain", "@container": "@set"}, "defines": { "@reverse": "rdfs:isDefinedBy", "@container": "@set"} }, "@type": ["owl:Ontology", "rdfs:Class", "owl:Class"], "@embed": "@first", "@reverseRoots": true, "@explicit": true, "defines": { "@priority": 1, "@type": ["owl:Class", "owl:DatatypeProperty", "owl:ObjectProperty"]}, "children": { "@priority": 2, "@type": ["rdfs:Class", "owl:Class"]}, "properties": { "@priority": 3, "@type": ["rdf:Property", "owl:ObjectProperty", "owl:DatatypeProperty"]} } Listing 27. CIM profilni frejm Rezultati Testiranje performansi implementacije Proširenog frejming algoritma bazirano na forkovanoj verziji jsonld.js biblioteke je sprovedeno na kompjuteru sa Intel Core i5-4300M/2.60 GHz CPU, 16GB RAM-a i 500GB HDD na Microsoft Windows 8.1 Enterprise (64-bit) operativnom sistemu sa instaliranim Node-om v6.8.1. Dva testna scenarija su sprovedena svaki sa po 1000 iteracija frejmovanja po svakom

101 Diskusija rezultata fajlu, na osnovu kojih su izračunata prosečna vremena frejmovanja. Tabele 12 i 13 prikazuju metriku ulaznih i izlaznih podataka, prosečna vremena frejmovanja u redom RDFS i OWL 2 testnim scenarijima. U cilju boljeg razumevanja rezultata su upoređeni i analizirani ulazni i izlazni fajlovi iz oba testna scenarija. OWL 2 reprezentacija profila ima neznatno manji broj definisanih klasa zbog upotrebe XSD primitivnih tipova podataka kada je upotrebimo sa RDFS reprezentacijom, dok je broj propertija isti. Konverzija reprezenacije CIM profila iz RDFS-a u OWL 2 je imala značajan uticaj na broj trojki u OWL 2 profilima pošto su neke RDFS ekstenzije predstavljene sa po nekoliko trojki u OWL 2 (npr. cims:multiplicity sa OWL 2 restrikcijama). Broj trojki u OWL 2 reprezentaciji je povećan u proseku za ~48.9% u poređenju sa RDFS reprezentacijom, dok je veličina ulaznog fajla povećana u proseku za ~24.9%. Ovi rezultati su očekivani i prihvatljivi i posledica su mapiranja RDFS-a u OWL 2. Listing 7 i Listing 8 prikazuju primer mapiranja cims:multiplicity ograničenja propertija SvPowerFlow.p iz RDFS-a u OWL 2 na owl:Restriction nad propertijem SvPowerFlow.p. Broj trojki u rezultatu u OWL 2 reprezentaciji je povećan u proseku za ~4.2% u odnosu na RDFS reprezentaciju, dok je veličina fajla povećana u proseku za ~14.6%, što je posledica uvedenih rdfs:isDefinedBy propertija i konverzije rdfs:Property propertija u owl:DatatypeProperty i owl:ObjectProperty. Broj stabala hijerarhije u svakom OWL 2 rezultatu je jedan, zato što jedan ontološki korenski objekat definiše sve klasne i properti čvorne objekte za razliku od odgovarajućeg RDFS rezultata u kojem svako stablo hijerarhije ima za korenski objekat klasu. Ovo ilustruje Slika 48 na kojoj je dat prikaz web komponente za vizuelizaciju JSON stabla TP profila u RDFS-u i OWL 2. Istovremeno, ovo je dobar primer kako je JSON-LD frejming iskorišćen za oblikovanje ulaznih podataka kako bi se olakšalo dalje renderovanje JSON-a u DOM. Dužina najduže hijerarhije u stablu frejmovanog OWL 2 profila je za 1 nivo duža od odgovarajućeg u RDFS-u, što je posledica definisane ontologije. Što se tiče prosečnog vremena trajanja frejmovanja, Grafici 1-5 ilustruju kako se ono odnosi prema ostalim merenim vrednostima iz Tabele 12 i Tabele 13. Svi grafici su nacrtani u Microsoft Excel- u. Grafik 1 predstavlja metriku broja ulaznih trojki ontologija, klasa, i propertija (y-osa) prema vremenu frejmovanja (x-osa). Na njemu je prikazana linearna zavisnost vremena frejmovanja (prikazanog u logaritamskoj skali) u odnosu na broj ontoloških, klasnih i properti trojki u oba testna scenarija. Vreme frejmovanja je neznatno duže u OWL 2 slučaju. Razlog za ovakav rezultat je u većem broju drugih vrsta trojki u ulaznom fajlu što potvrđuju rezultati prikazani na Grafiku 2, koji prikazuje metriku broja ulaznih trojki (y-osa) prema vremenu frejmovanja (x-osa). Takođe, Grafik 2 pokazuje da vreme frejmovanja raste sa linearnom zavisnošću u odnosu na broj ulaznih trojki u oba testna scenarija. Grafik 3 predstavlja metriku veličine ulaznog fajla (y-osa) prema vremenu frejmovanja (x-osa). On prikazuje linearnu zavisnost vremena frejmovanja u odnosu na veličinu ulaznog fajla u oba testna scenarija. Grafik 4 predstavlja metriku broja izlaznih trojki (y-osa) prema vremenu frejmovanja (x-osa). Što se tiče broja trojki u izlaznom fajlu u oba testna scenarija on je gotovo identičan pošto RDFS rezultat sadrži trojke koje povezuju primitivne tipove podataka koji su uklonjeni iz OWL 2 ulaza, dok je u OWL 2 ulazu uvedena rdfs:isDefinedBy relacija koja je očuvana u izlaznim trojkama, Grafik 4. Takođe, treba primetiti da postoji linearna zavisnost između podataka prikazanih na Grafiku 1 i Grafiku 4, pošto izlazni fajlovi sadrže ontološke, klasne i properti trojke zajedno sa reverznim properti trojkama. Grafik 5 predstavlja metriku veličine izlaznog fajla (y-osa) prema vremenu frejmovanja (x-osa). Linearna zavisnost je prisutna između veličine izlaznog fajla i vremena frejmovanja u oba testna scenarija, što je posledica veličine ulaznih fajlova Grafik 3.

102 Diskusija rezultata

Tabela 12. Metrika modela podataka po CIM profilu u RDFS-u Ulaz Izlaz

Profil

ala ala ličina ličina ijerarhija ijerarhija klasa klasa propertija trojki trojki hijerarhijskih [ms] [ms] # # # Veličina [bytes] # Ve [bytes] # stab Najduža h [dužina] vreme Prosečno frejmovanja GL 10 23 240 25332 58 5015 6 2 6.981 TP_BD 10 28 284 32533 67 5680 7 2 8.075 TP 18 31 355 36790 88 7085 8 3 10.182 DL 21 46 585 58819 118 8789 14 3 15.769 EQ_BD 25 39 567 59392 116 9517 10 5 15.583 SV 33 63 770 74973 166 11775 24 3 21.362 SSH 75 84 1232 125892 292 24728 24 7 35.453 EQ_CO 177 412 4483 444497 1107 85889 69 7 171.210 EQ_SC 183 399 4417 448550 1093 86127 69 7 154.307 EQ_OP 222 417 4799 480497 1207 90106 69 7 187.640 EQ 226 624 6451 633842 1629 126640 69 7 281.026 DY 252 2802 21655 2057966 6067 440244 39 7 1233.987

Tabela 13. Metrika modela podataka po CIM profilu u OWL 2 Ulaz Izlaz

Profil

klasa klasa propertija trojki trojki hijerarhijskih [ms] [ms] # # # Veličina [bytes] # Veličina [bytes] # stabala Najduža hijerarhija [dužina] vreme Prosečno frejmovanja GL 7 23 334 30019 59 5635 1 3 8.854 TP_BD 7 28 404 36236 69 6389 1 3 10.512 TP 16 31 500 43085 93 8100 1 4 13.612 DL 16 46 867 72747 123 9987 1 4 22.829 EQ_BD 20 39 821 69265 119 10738 1 6 22.477 SV 29 63 1158 95947 183 13744 1 4 32.877 SSH 70 84 1795 155311 307 28066 1 8 54.195 EQ_CO 169 412 6830 574211 1161 98731 1 8 311.856 EQ_SC 175 399 6745 584335 1143 99826 1 8 273.016 EQ_OP 214 417 7235 617918 1261 104570 1 8 343.537 EQ 218 624 9882 854579 1683 148120 1 8 522.892 DY 247 2802 36035 2833795 6097 509551 1 8 2441.795

103 Diskusija rezultata

Slika 48. Prikaz JSON stabla TP profila u RDFS-u (levo) i OWL 2 (desno)

Grafik 1. Metrika broja ulaznih trojki ontologija, klasa i propertija prema vremenu frejmovanja

104 Diskusija rezultata

Grafik 2. Metrika broja ulaznih trojki prema vremenu frejmovanja

Grafik 3. Metrika veličine ulaznog fajla prema vremenu frejmovanja

105 Diskusija rezultata

Grafik 4. Metrika broja izlaznih trojki prema vremenu frejmovanja

Grafik 5. Metrika veličine izlaznog fajla prema vremenu frejmovanja

106 Diskusija rezultata

6.4 Web aplikacije u pametnim mrežama mogu imati modularne arhitekture i koristiti semantički obogaćene podatke

U svrhu kreiranja modularne web arhitekture na klijentskom delu aplikacije biće korišćena Google Polymer JavaScript biblioteka (opisana u poglavlju 2.6.2) kao apstrakcija WebComponents skupa W3C standarda. U ovom radu biće prikazana implementacija semantičke web komponente za prikaz CIM profila. Web komponenta za prikaz CIM profila U praksi, CIM profili mogu da se definišu korišćenjem IEC standardom propisane CIM RDF šeme ili korišćenjem OWL-a pri čemu su oni izraženi u RDF/XML serijalizacionom formatu. Takođe, oni mogu biti definisani u HTML-u i tekstualnoj formi. Iako je CIM u RDF/XML-u čitljiv mašinama, on nije pogodan za razmenu podataka i manipulaciju na savremenom web-u gde je dominantni format za razmenu podataka JSON. Umesto standardne sintakse, CIM profili mogu biti serijalizovani u JSON-LD sintaksu i oblikovani korišćenjem W3C algoritama za procesiranje. S izuzetkom tekstualnog formata, svi ostali formati za prikaz profila (HTML, RDF/XML) su mašinski i sa manje ili više napora čitljivi ljudima. Svakako, prethodno pomenuti formati nisu pogodni za ljude kada se radi analiza velikih CIM profila. Implementacijom rešenja opisanog hipotezom 4, kreirana je web komponenta za transformaciju u vizuelizaciju CIM profila koja olakšava njihovo razumevanje od strane ljudi. Ona koristi nove mogućnosti web platforme koje su u procesu W3C standardizacije. HTML importima se modularizuje projekat, web komponentama se kreiraju elementi koji se mogu ponovo iskoristiti, šabloni za tagove (engl. templates) i Shadow DOM se koriste za renderovanje DOM stabla i stilova i njihovu enkapsulaciju. Web komponenta za transformaciju u vizuelizaciju CIM profila nazvana sg-profile prikazana je na Listingu 28. Komponenta je modularizovana upotrebom HTML importa, tako da koristi tri druge web komponente Polymer-ove polymer-element i iron-ajax komponente i sg-profile-recursive web komponentu razvijenu za potrebe ovog rada. sg-profile web komponenta je zadužena za učitivanje profila i frejma (Listing 29). Neophodni ulazi u komponentu se učitavaju asinhronim HTTP zahtevima (AJAX pozivi) na zadate URL-ove, pomoću iron-ajax Polymer komponente. sg-profile komponenta primenjuje JSON-LD frejming algoritam na učitani profil i frejm, kreirajući hijerarhiju stabla i sažimajući rezultat kako bi bio lakši za obradu. Takav rezultat se prosleđuje ugnježđenoj sg-profile-resursive (Listing 30) web komponeti koja rekurzivno obilazi prosleđeno stablo kreirajući izlazni HTML dokument. Ugnježđivanjem jedne komponente u drugu demonstrirana je kompozitnost arhitekture bazirane na web komponentama. Istovremeno sg-profile komponenta je semantička web komponenta. Ona na osnovu ugrađene sematike ulaznog dokumenta i primenjenog frejma, bez obzira na njegovu strukturu, primenom reči iz rdf i rdfs rečnika zadatih u frejmu ("rdf": "http://www.w3.org/1999/02/22-rdf- syntax-ns#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#") kreira izlazni dokument sa zadatom strukturom kao ulaz u sg-profile-resursive web komponetu napisanu da zadatu strukturu podataka ume da obradi. Obe prikazane web komponente koriste i zadaju svoje HTML šablone (template tag) koje se koriste pri renderovanju DOM stabla i vizuelnog identiteta. Jedan slučaj korišćenja razvijene komponente prikazan je na primeru vizuelizacije ENTSO-E CGMES GeographicLocation profila, Slika 49. Ista komponenta se može iskoristiti za vizuelizaciju drugih ENTSO-E CGMES CIM profila. Slika 50 prikazuje DOM elemente ENTSO-E CGMES GeographicLocation profila u Developer Tools alatki Chrome web pretraživača. Na njoj se može videti primena Shadow DOM-a na instance web komponenti definisane šablonima (sadržaj uokviren crvenim). Polymer pridružuje shadow stablo svakoj instanci web komponente i kopira sadržaj šablona u shadow stablo izolujući i enkapsulirajući DOM stablo i stilove same komponente.

107 Diskusija rezultata

sg-app Listing 28. Web komponenta za vizuelizaciju CIM profila

108 Diskusija rezultata

{ "@context": { "cim": "http://iec.ch/TC57/2013/CIM-schema-cim16#", "cims": "http://iec.ch/TC57/1999/rdf-schema-extensions-19990926#", "entsoe": "http://entsoe.eu/CIM/SchemaExtension/3/1#", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", "xsd": "http://www.w3.org/2001/XMLSchema#", "children": { "@reverse": "rdfs:subClassOf", "@container": "@set" }, "properties": { "@reverse": "rdfs:domain", "@container": "@set" }, "id": "@id", "type": "@type", "value": "@value", "language": "@language" }, "@type": [ "rdfs:Class" ], "@embed": "@first", "@reverseRoots": true, "children": { "@priority": 1, "@type": [ "rdfs:Class" ] }, "properties": { "@priority": 2, "@type": [ "rdf:Property" ] } } Listing 29. Frejm za kreiranje hijerarhije stabla

109 Diskusija rezultata

Listing 30. Rekurzivni deo komponente za vizuelizaciju CIM profila

Slika 49. CIM profil u HTML-u

112 Diskusija rezultata

Slika 50. Prikaz DOM elemenata ENTSO-E CGMES GeographicLocation profila u panelu za prikaz elemenata u Developer Tools alatki Chrome web pretraživača

113 Zaključci i pravci daljih istraživanja

7. ZAKLJUČCI I PRAVCI DALJIH ISTRAŽIVANJA

Malo je reći da je razvoj web-a u proteklih par decenija bio izazovan kako za standardizaciona tela za web, subjekte koji implementiraju web standarde (web servere, web pretraživače i kreatore web okvira), web programere i celokupnu zajednicu koja koristi njihove proizvode. Upravo ova dinamika je dovela do toga da tehnologije i standardi zasnovani na web standardima/preporukama veoma brzo zastarevaju, tako da prilikom svakog novog razvoja treba biti vizionar kako se ne bi izgubio korak sa vremenom ili bar držao korak sa istim u nekom periodu. Posledica ove dinamike razvoja je mnoštvo web okvira i činjenica da su kreatori web aplikacija suočeni sa teškom odlukom kada je u pitanju optimalni izbor web okvira koji odgovara zahtevima za razvoj aplikacija ili vreme potrebno da se razvije okvir prema sopstvenim potrebama. U elektroenergetici s druge strane, iako to na prvi pogled nije uočljivo, web tehnologije se nalaze u srcu CIM elektroenergetskog modela. Odluka da se semantičke web tehnologije odaberu za opis elektroenergetskog modela podataka i budu osnov serije CIM standarda danas, dvadeset godina kasnije, pokazaće se kao dobar izbor imajući na umu novu dimenziju povezivanja infromacija na web-u – povezivanje podataka umesto dugo prisutnog povezivanja dokumenata. Gledano sa tehničke strane korišćenje CIM IEC standarda (61970-501 i 61970-552) uvodi ograničenja za primenu CIM artefakata u semantičkom web-u pa ih je potrebno sagledati u kontekstu savremenih W3C preporuka. Kroz rad na ovoj disertaciji autorka je pokušala da spoji naizgled dva nespojiva sveta, elektroenergetiku i web tehnologije u skladu sa savremenim potrebama. Predmet istraživanja ove disertacije pripada oblasti primenjenog softverskog inženjerstva u elektroenergetskim sistemima. Uža oblast istraživanja se može klasifikovati kao primena savremenih web tehnologija u elektroenergetskim sistemima. Istraživanje na temu disertacije Razvoj modularnih web arhitektura u pametnim mrežama je inicijalno u fokusu imalo modularnost klijentskih web aplikacija u pametnim mrežama. Međutim, kako je istraživanje napredovalo tako je adresirana modularnost različitih činilaca u web elektroenergetskoj aplikaciji počevši od apstraktnog i generičkog modela elektroenergetskog sistema – CIM-a, preko najzastupljenijeg formata za razmenu podataka u modernim web aplikacijama – semantički obogaćenog JSON-a, tj. JSON-LD-a, načina za transformaciju JSON-LD-a – algoritama za procesiranje i API-ja, i na kraju modularizacije web aplikacija vođene web platformom – skupom W3C preporuka za komponentizaciju web aplikacija koji je trenutno u izradi. U doktorskoj disertaciji su definisane su četiri hipoteze. Hipoteza 1 tvrdi da IEC standardi koji se odnose na upravljanje elektroenergetskim sistemima, kao i njihovo modelovanje (IEC 61970-501 i IEC 61970-552) bazirani na RDF arhitekturi nisu u potpunosti usklađeni sa tekućim W3C RDF standardima. RDF arhitektura je omogućila kreiranje aplikacija koje izvode nove podatke na osnovu logičkih pravila učinivši time web modularnijim i proširivijim. Detaljnom analizom IEC 61970-501 – CIM RDF šeme utvrđen je podskup korišćenih RDF koncepata, ekstenzija RDF-a uvedenih da se prevaziđu nedostajući koncepti i konvencija primenjenih pri kreiranju CIM profila pomoću CIM RDFS-a. Takođe, detaljnom analizom IEC 61970-552 – CIMXML-a utvrđene su konvencije uvedene po dizajnu koje posmatrano iz ugla RDF-a narušavaju interpretaciju CIMXML-a. Uočeni nedostaci i konvencije pre svega ograničavaju mogućnosti dobijene upotrebom semantičkih web tehnologija i sprečavaju upotrebu postojećih semantičkih web alata. S druge strane, kako su semantičke web tehnologije evoluirale tokom godina, poslednja generacija ovih tehnologija može da adresira uočena ograničenja. Kao rezultat analize ograničenja i načina za njihovo prevazilaženje dat je predlog nove metodologije za modelovanje u elektroenergetskim sistemima korišćenjem povezanih podatka koristeći pri tome OWL 2 jezik za opis CIM semantike i JSON-LD kao serijalizacioni format dokumenata baziranih na CIM-u. Inicijalno istraživanje je obuhvatilo kreiranje odgovarajućih mapiranja i konstruisanje PoC primera za nove CIM artefakte.

114 Zaključci i pravci daljih istraživanja

Buduća istraživanja u ovom smeru treba da budu usmerena u pravcu poravnavanja CIM standarda baziranih na semantičkim web tehnologijama sa aktuelnim tehnologijama semantičkog web-a i širenja svesti o prednostima koji oni donose. Na taj način će biti omogućeno korišćenje dokazanih web alata, širenje elektroenergetskih podataka od interesa za širu zajednicu i istovremeno povezivanje podataka sa drugim domenima, i na kraju izvođenje novog znanja iz postojećeg. Hipoteza 2 tvrdi da je aktuelne IEC standarde koji se odnose na upravljanje elektroenergetskim sistemima i njihovo modelovanje, kao i njihove primene u semantičkim web aplikacijama u pametnim mrežama moguće proširiti u skladu sa preporukama datim od strane W3C-a. U ovom delu istraživanja analizirane su raspoložive mogućnosti za proširenje IEC CIM standarda 61970-501 i 61970-552 u skladu sa važećim stavovima i prethodnim iskustvima autorke na polju semantičkih web tehnologija. Odabrana je evaluacija metodologije predložene rezultatima hipoteze 1 gde je konkretizacijom CIM ograničenja (iskazanih preko OWL 2 restrikcija) u SHACL grafove oblikovanja omogućena validacija na preporučeni W3C način upotrebom SHACL procesora. Evaluacija je sprovedena na ENTSO-E CGMES profilima i testnoj konfiguraciji kroz faze. Prikazane faze se grubo mogu podeliti na: a) razvoj konvertera potrebnih za mapiranje CIM artefakata iz tekuće metodologije u CIM artefakte nove metodologije; b) validaciju kreiranih artefakata; c) prevođenje ograničenja zadatih u CGMES profilima i OCL-u u SHACL grafove oblikovanja; d) proveru CGMES testne konfiguracije u pogledu RDF validnosti i konzistentnosti; e) validaciju podataka; f) izvođenje znanja iz povezanih podataka. Na kraju je skup kreiranih CIM artefakata ocenjen sistemom vrednovanja pet zvezda gde je zaključeno da predloženi pristup ispunjava sve kriterijume ovog vrednovanja. Na ovaj način CIM artefakti se bez ograničenja mogu koristiti u semantičkim web aplikacijama. Ono što je značajno u ovoj fazi istraživanja pored evaluacije same metodologije je uvođenje novog mehanizma za validaciju CIM datasetova. Ovom vrstom validacije je moguće unificirati proces validacije CIM podataka koji se razmenjuju, i to samih CIM podataka, CIM ekstenzija i podataka koji koriste CIM bazirane standarde (kakav je i slučaj sa CGMES standardom). Ovim se eliminiše potreba za u tu svrhu specijalno napravljenim validacionim alatima i procesima, drugim rečima ovim pristupom se mogu sprovoditi provere pod pretpostavkom zatvorenog sveta nad CIM dokumentima, koje ranije nisu bile moguće sem korišćenjem različitih vlasničkih alata. Takođe, pokazano je da CIM modeli kao RDF datasetovi moraju biti svesni tipova podataka u svojim propertijima i da potreba za striktnom definicijom CIMXML-ova kao dokumenata sa zadatom strukturom više ne postoji. U ovoj fazi istraživanja uočeno je da pojedinačni CIM profili ne mogu biti korišćeni za validaciju kompletnog razmenjenog CIM modela instanci, i da dalja istraživanja treba da budu usmerena u pravcu provere konzistentnosti kompletnog modela. Tokom istraživanja autorka je učestvovala u osmišljavanju implementacije SHACL Core procesora – SHACLib.ts kako bi evaluacija predložene metodologije uopšte bila moguća korišćenjem web alata. Dalja istrаživanja na ovu temu idu u pravcu implementiranja memorijskog RDF skladišta u zavisnoj RDFLib.ts biblioteci, dok je za SHACLib.ts planirana obrada loše formiranih grafova oblika, podrška za RDF/XML sintaksu, SHACL SPARQL procesor i SHACL JavaScript ekstenzije. Upravo kreiranje web alata za SHACL validaciju omogućava proveru validnosti RDF podataka (samim tim i CIM podataka) u web aplikacijama. Hipoteza 3 tvrdi da je moguće proširiti savremene web aplikacije u pametnim mrežama da koriste semantički obogaćene podatke. Kako je prirodna struktura podataka na web-u stablo, neophodno je omogućiti transformaciju grafa podataka u stablo radi lakše obrade. U tom cilju proširena je postojeća JSON-LD frejming specifikacija da podrži rekurzivnu primenu prioritetizovanog reverznog frejmovanja uparenog sa filtriranjem čvornih objekata i uvedene su dodatne ključne reči kako bi se postigli fleksibilniji rezultati. Na ovaj način definisana proširenja dozvoljavaju definisanje frejma koji se može primeniti na proizvoljan broj ulaznih fajlova bez obzira na dužinu lanca obrnute

115 Zaključci i pravci daljih istraživanja hijerarhije za zadate inverzne relacije u frejmu. U suprotnom, za svaki ulazni fajl bi morao da se kreira za njega odgovarajući frejm. Takođe, moguće je u frejmu definisati višestruke inverzne relacije u obrnutim hijerarhijama na osnovu zadatih prioriteta. Ovakve relacije su se pokazale kao pogodan način za grupisanje povezanih čvorova. Skup postojećih pravila ugrađivanja je proširen novim pravilom kojim je omogućeno ugrađivanje čvornih objekata pri svom prvom pojavljivanju. Ovo pravilo, kombinovano sa rekurzivnim reverznim frejmovanjem omogućava kreiranje obrnute hijerarhije stabla pune dužine. Kao dodatak, jedna od predloženih ekstenzija – @reverseRoots omogućava filtriranje samo takvih stablo struktura u rezultatu. Predloženo proširenje JSON-LD frejming algoritma je dizajnirano, implementirano i analizirani su rezultati njegove primene na skup složenih RDFS rečnika i OWL ontologija upotrebom istog frejma. Rezultati su pokazali linearnu zavisnost broja ulaznih trojki u odnosu na vreme frejmovanja kada se u frejmu pojavljuju višestruke inverzne relacije. U testnim scenarijima je istovremeno pokazano kako se proizvoljna ontologija može transformisati u stablo i koristiti u drugim procesima na web-u, kao i da se frejming može koristiti kao jedan od mehanizama za validaciju ispravno implementirane konverzije RDFS-a u OWL 2 na primeru ENTSO-E CGMES profila. Dalja istraživanja u ovom smeru su usmerena ka naprednijem filtriranju baziranom na vrednosti propertija (na primer: properti vrednost jednaka, manja od, veća od neke vrednosti) koji bi se koristio zajedno sa rekurzivnim prioritetizovanim reverznim frejmingom. Takođe, od interesa za buduću primenu je istraživanje na polju ispitivanja mogućnosti frejming i upitnih (poput SPARQL upita) konstrukcija i primena upitnih konstrukcija u JSON-LD frejmingu . Hipoteza 4 tvrdi da je u pametnim mrežama moguće razviti web aplikacije primenljive u pametnim mrežama koje će imati modularne arhitekture i koristiti semantički obogaćene podatke. Kao dokaz ove hipoteze prikazano je rešenje u kome su rezultati prethodnih hipoteza u kombinaciji sa W3C preporukama iskorišćeni za kreiranje modularne arhitekture koja svoje uporište nalazi u nativnim mogućnostima web pretraživača. Ovako kreirani moduli predstavljaju nezavisne jedinice koje se proizvoljno mogu kombinovati i čiji uticaj se kontrolisano preliva van njihovih okvira (nivo interakcije komponente sa okolinom je isključiva odgovornost programera). U tom smislu one predstavljaju nezavisne, ponovno iskoristive, enkapsulirane komponente. Mogućnost daljeg istraživanja i usavršavanja kompletnog rešenja u nekom od domena pametne mreže (potrošača, tržišta, usluga, operacija, proizvodnje, prenosa i/ili distribucije) se pre svega ogleda u implementaciji ciljane smart grid web aplikacije u zadatoj aplikativnoj kategoriji. Kako se domeni pametne mreže preklapaju, komponente jednog takvog rešenja se mogu iskoristiti i u drugim domenima. Rezultati svake od postavljenih hipoteza ove disertacije mogu se nezavisno posmatrati i kao takvi biti primenjivani u praksi u elektroenergetskoj industriji i šire. Kao celina, ovi rezultati predstavljaju novi pogled na razvoj modularnih arhitektura web aplikacija u pametnim mrežama.

116 Literatura

8. LITERATURA

[1] M. Uslar et al., Standardization in Smart Grids, Introduction to IT-Related Methodologies, Architectures and Standards. Springer Berlin Heidelberg, 2013. [2] M. Uslar, M. Specht, S. Rohjans, J. Trefke, and J. M. G. Vasquez, The Common Information Model CIM IEC 61968/61970 and 62325 - A practical introduction to the CIM. Springer, 2012. [3] SCE-Cisco-IBM Sgra Team, Smart Grid Reference Architecture, vol. 1. 2011. [4] M. Schorlemmer, “Ontology Modularity, Information Flow, and Interaction-Situated Semantics,” in Modular Ontologies. Proceedings of the Fourth International Workshop (WoMO 2010), 2010, vol. 210, pp. 5–10. [5] E. D. Varga, S. F. Beretka, C. Noce, and G. Sapienza, “Robust Real-Time Load Profile Encoding and Classification Framework for Efficient Power Systems Operation,” IEEE Trans. Power Syst., vol. 30, no. 4, pp. 1897–1904, 2014. [6] M. Chenine, J. Ullberg, L. Nordström, Y. Wu, and G. Ericsson, “A Framework for Wide Area Monitoring and Control Systems Interoperability and Cyber Security Analysis,” IEEE Trans. Power Deliv., vol. 29, no. 2, pp. 633–641, 2014. [7] S. Schütte, S. Scherfke, and M. Tröschel, “Mosaik: A framework for modular simulation of active components in Smart Grids,” 2011 IEEE 1st Int. Work. Smart Grid Model. Simulation, SGMS 2011, pp. 55–60, 2011. [8] K. Nenadić and M. Gavrić, “Enhancing CIM with Linked Data Capability,” in Proceedings of the 24th Telecommunications Forum (Telfor), 2016. [9] B. Eich et al., “The Extensible Web Manifesto,” 2013. [Online]. Available: https://extensiblewebmanifesto.org/. [Accessed: 01-Jun-2017]. [10] S. F. Bush, Smart Grid: Communication-Enabled Intelligence for the Electric Power Grid. John Wiley & Sons, Ltd, 2014. [11] J. Barron, “THE BLACKOUT OF 2003: The Overview,” New York Times, 2003. [12] “Final Report on the August 14, 2003 Blackout in the United States and Canada: Causes and Recommendations,” U.S.-Canada Power System Outage Task Force, 2004. [13] J. Minkel, “The 2003 Northeast Blackout-Five Years Later,” Scientific American, 2008. [14] M. Amin, “Balancing market priorities with security issues,” IEEE Power Energy Mag., vol. 2, no. 4, pp. 30–38, Jul. 2004. [15] The 111th United States Congress, “American Recovery and Reinvestment Act of 2009,” 111th Congress Public Law 5. 2009. [16] S. Rohjans et al., “Survey of smart grid standardization studies and recommendations,” in 2010 1st IEEE International Conference on Smart Grid Communications, SmartGridComm 2010, 2010, pp. 583–588.

117 Literatura

[17] M. Uslar et al., “Survey of Smart Grid standardization studies and recommendations - Part 2,” in 2010 IEEE PES Innovative Smart Grid Technologies Conference Europe (ISGT Europe), 2010, pp. 1–6. [18] ETP SmartGrids, European technology platform smart grids: vision and strategy for Europe’s electricity networks of the future, vol. 19, no. 3. 2006. [19] Z. Fan et al., “Smart Grid Communications : Overview of Research Activities,” Signal Processing, vol. 15, no. 1, pp. 1–18, 2012. [20] K. Chandy, J. Gooding, and J. McDonald, “Smart Grid System-of-Systems Architectures,” Asset.Sce.Com, 2010. [21] C. Greer et al., “NIST Framework and Roadmap for Smart Grid Interoperability Standards, Release 3.0,” Nist Special Publication, vol. 0. pp. 1–90, 2014. [22] J. C. Nieves, A. Espinoza, Y. K. Penya, M. O. De Mues, and A. Peña, “Intelligence distribution for data processing in smart grids: A semantic approach,” Eng. Appl. Artif. Intell., vol. 26, no. 8, pp. 1841–1853, 2013. [23] IEC, “IEC 62357: TC57 Architecture - Part1: Reference Architecture for Power System Information Exchange,” 2011. [24] M. Uslar, “Semantic Interoperability within the Power Systems Domain,” Proc. first Int. Work. Interoperability Heterog. Inf. Syst. - IHIS ’05, p. 39, 2005. [25] IEC, “Core IEC Standards,” IEC, 2017. [Online]. Available: http://www.iec.ch/smartgrid/standards/. [Accessed: 23-Mar-2017]. [26] J. Trefke, S. Rohjans, M. Uslar, S. Lehnhoff, L. Nordström, and A. Saleem, “Smart Grid Architecture Model use case management in a large European Smart Grid project,” 4th IEEE PES Innov. Smart Grid Technol. Eur., no. 978, pp. 1–5, 2013. [27] CEN-CENELEC-ETSI Smart Grid Coordination Group, “Smart Grid Reference Architecture,” 2012. [28] International Electrotechnical Commision, “IEC TR 62357-1,” 2016. [29] M. Gottschalk, M. Uslar, and C. Delfs, The Use Case and Smart Grid Architecture Model Approach - The IEC 62559-2 Use Case Template and the SGAM Applied in Various Domains. Springer, 2017. [30] E. D. Knapp and R. Samani, “Security Models for SCADA, ICS, and Smart Grid,” Appl. Cyber Secur. Smart Grid, pp. 101–123, 2013. [31] IEC, “IEC TS 62443-1-1:2009, Industrial communication networks - Network and system security - Part 1-1: Terminology, concepts and models,” vol. 3. IEC, pp. 1–86, 2009. [32] C. Mahan, R. E., Burnette, J. R., Fluckiger, J. D., Goranson, C. A., Clements, S. L., Kirkham, H., & Tews, “Secure Data Transfer Guidance for Industrial Control and SCADA Systems,” Rep. to US Dep. Energy, PNNL-20776, no. September, 2011. [33] NIST, “Glossary of key information security terms,” Nist Ir, vol. 7298, no. Revision 2, p. 222, 2013. [34] EPRI, “Information and Communication Technology Program: 2014 Annual Review,” 2015. [35] EPRI, “Common Information Model Primer: Third Edition.” Palo Alto, CA, 2015.

118 Literatura

[36] L. O. Osterlund, K. Hunter, K. Demaree, M. Goodrich, A. Mcmorran, and B. Iverson, “Under the Hood: An Overview of the Comon Information Model Data Exchanges,” IEEE Power Energy Mag., vol. 14, no. 1, pp. 68–82, 2016. [37] EPRI, “Control Center Application Program Interface (CCAPI) Project: API Standard Proposal Requirements for Generic Interface Definition.” p. 50, 2001. [38] CIMug, “CIM Users Group,” 2012. [Online]. Available: http://cimug.ucaiug.org/default.aspx. [Accessed: 15-Apr-2016]. [39] ENTSO-E, “Common Grid Model Exchange Specification (CGMES) - Version 2.5,” no. July. pp. 1–99, 2016. [40] C. Y. Baldwin and K. B. Clark, Design Rules: The Power of Modularity Volume 1. Cambridge, MA, USA: MIT Press, 2000. [41] C. Y. Baldwin and K. B. Clark, “Managing in an age of modularity,” Manag. Modul. age Archit. networks, Organ., vol. 149, pp. 84–93, 2003. [42] M. A. Schilling, “Toward a General Modular Systems Theory and Its Application to Interfirm Product Modularity,” Acad. Manag. Rev., vol. 25, no. 2, pp. 312–334, 2000. [43] A. Osmani, Learning JavaScript Design Patterns. O’Reilly Media, 2012. [44] “Standard ECMA-262 6th Edition, The ECMAScript 2015 Language Specification,” ECMA International, 2015. [Online]. Available: http://www.ecma-international.org/ecma- 262/6.0/. [Accessed: 08-Aug-2017]. [45] J. Burke, “Asynchronous Module Definition API,” GitHub, 2017. [Online]. Available: https://github.com/amdjs/amdjs-api. [Accessed: 09-Aug-2017]. [46] K. Dangoor, “CommonJS.” [Online]. Available: http://www.commonjs.org/. [Accessed: 08-Sep-2017]. [47] A. Rauschmayer, Exploring ES6, Upgrade to the next version of JavaScript. Leanpub, 2017. [48] D. Glazkov and H. Morrita, “HTML Imports, W3C Working Draft 25 February 2016,” W3C, 2016. [Online]. Available: https://www.w3.org/TR/2016/WD-html-imports- 20160225/. [Accessed: 01-May-2016]. [49] Schneider Electric DMS NS, “Advanced Distribution Management System (ADMS),” 2017. [Online]. Available: https://www.schneider-electric-dms.com/media/SEDMS SW Short Overview.pdf. [50] Schneider Electric, “Advanced Distribution Management System: Field Client,” Schneider Electric USA, 2014. [Online]. Available: http://download.schneider- electric.com/files?p_enDocType=Brochure&p_File_Id=670051571&p_File_Name=AD MS+-+Field+Client+Brochure+- +web+%282%29.pdf&p_Reference=ADMS%2BField%2BClient%2BBrochure. [Accessed: 10-Aug-2017]. [51] Open Systems International (OSI), “OSI: Advanced Distribution Management Systems,” 2017. [Online]. Available: http://www.osii.com/solutions/products/distribution- management.asp. [Accessed: 14-Aug-2017]. [52] Open Systems International (OSI), “OSI: Outage Management Systems,” 2017. [Online]. Available: http://www.osii.com/solutions/products/outage-management.asp. [Accessed: 15-Aug-2017].

119 Literatura

[53] GE Digital, “Predix : The Industrial Internet Platform,” no. February. GE Digital, pp. 1– 22, 2016. [54] M. Mikowski and J. Powell, “Single Page Web Applications: JavaScript end-to-end.” Manning Publications, p. 432, 2014. [55] I. Fette and A. Melnikov, “The WebSocket Protocol,” Internet Engineering Task Force, 2011. [Online]. Available: https://tools.ietf.org/html/rfc6455. [Accessed: 26-Aug-2017]. [56] I. Hickson, “Server Sent Events,” Web Hypertext Application Technology Working Group, 2018. [Online]. Available: https://html.spec.whatwg.org/multipage/server-sent- events.html#server-sent-events. [Accessed: 03-Mar-2018]. [57] E. Knudtson, “Predix Seed with Polymer and Express ( Predix Transform 2016),” General Electric Company, 2016. [Online]. Available: https://www.slideshare.net/predixdevelopers/pfe1-predix-seed-with-polymer-and- express-predix-transform-2016. [Accessed: 09-Sep-2017]. [58] J. Resig, “jQuery,” JS Foundation, 2006. [Online]. Available: https://jquery.com/. [Accessed: 07-Jun-2017]. [59] A. Osmani, “The Web’s Declarative, Composable Future,” addyosmani.com, 2014. [Online]. Available: http://addyosmani.com/blog/the-webs-declarative-composable- future/. [Accessed: 10-Nov-2015]. [60] Microsoft, “ API Catalog,” 2017. [Online]. Available: https://developer.microsoft.com/en-us/microsoft-edge/platform/catalog/. [Accessed: 30-Dec-2017]. [61] R. O’Donoghue, “Who wants the Pointer Events API? Everyone, nearly,” mobiForge, 15- Dec-2015. [62] J. Rossi and M. Brubeck, “Pointer Events, W3C Recommendation 24 February 2015,” W3C, 2017. [Online]. Available: https://www.w3.org/TR/pointerevents/. [Accessed: 30- Dec-2017]. [63] “WebAssembly,” WebAssembly Community Group, 2017. [Online]. Available: http://webassembly.org/. [Accessed: 30-Dec-2017]. [64] I. Lendak, S. Vukmirovic, E. Varga, A. Erdeljan, K. Nenadic, and N. Ivancevic, “Client Side Internet Technologies in Critical Infrastructure Systems,” Int. J. Comput. Commun. Control, vol. 7, no. 5, pp. 879–891, 2012. [65] W. Hu, H. Yuan, J. Wang, and L. Wang, “The research and application of power system visualization based on HTML5,” in 2011 4th International Conference on Electric Utility Deregulation and Restructuring and Power Technologies (DRPT), 2011, pp. 1562–1565. [66] N. Bui, A. P. Castellani, P. Casari, and M. Zorzi, “The internet of energy: a web-enabled smart grid system,” IEEE Netw., vol. 26, no. 4, pp. 39–45, Jul. 2012. [67] P. De Ryck, N. Nikiforakis, L. Desmet, F. Piessens, and W. Joosen, “Protected Web Components: Hiding Sensitive Information in the Shadows,” IT Prof., vol. 17, no. 1, pp. 36–43, Jan. 2015. [68] J. Overson and J. Strimpel, Developing Web Components: UI from jQuery to Polymer. O’Reilly Media, 2015. [69] P. F. Patel-Schneider and D. Fensel, “Layering the Semantic Web: Problems and Directions,” in The Semantic Web --- ISWC 2002, 2002, pp. 16–29.

120 Literatura

[70] T. Berners-Lee, J. Hendler, and O. Lassila, “The Semantic Web,” Sci. Am., vol. 284, no. 5, pp. 34–43, May 2001. [71] J. Van Ossenbruggen, L. Hardman, and L. Rutledge, “Smart style : combining RDF semantics with XML document transformations,” Int. J. Web Eng. Technol., vol. 2, no. 2/3, pp. 248–263, 2005. [72] C. Wouters, T. Dillon, W. Rahayu, and E. Chang, “Large scale ontology visualisation using ontology extraction,” Int. J. Web Grid Serv., vol. 1, no. 1, pp. 113–135, 2005. [73] W3C, “RDF Current Status,” 2016. [Online]. Available: https://www.w3.org/standards/techs/rdf#w3c_all. [Accessed: 24-Nov-2016]. [74] J. Weaver and P. Tarjan, “Facebook Linked Data via the Graph API,” Semant. Web, vol. 4, no. 3, pp. 245–250, 2013. [75] M. Sporny, D. Longley, G. Kellogg, M. Lanthaler, and N. Lindström, “JSON-LD 1.0, A JSON-based Serialization for Linked Data, W3C Recommendation 16 January 2014,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/json-ld/. [Accessed: 26-Feb- 2016]. [76] Schema.org, “About Schema.org,” Schema.org, 2014. [Online]. Available: https://schema.org/docs/faq.html. [Accessed: 13-May-2016]. [77] P. Mika, “On Schema.org and Why It Matters for the Web,” IEEE Internet Comput., vol. 19, no. 4, pp. 52–55, Jul. 2015. [78] T. Berners-Lee, “Semantic Web Architecture,” W3C, 2000. [Online]. Available: https://www.w3.org/2000/Talks/1206-xml2k-tbl/slide10-0.html. [Accessed: 03-Mar- 2018]. [79] W3C, “W3C Semantic Web Layer Cake,” 2007. [Online]. Available: https://www.w3.org/2007/03/layerCake.svg. [Accessed: 03-Mar-2018]. [80] K. U. Idehen, “Semantic Web Layer Cake Tweak, Explained,” 2017. [Online]. Available: https://medium.com/openlink-software-blog/semantic-web-layer-cake-tweak- explained-6ba5c6ac3fab. [Accessed: 03-Mar-2018]. [81] A. J. Jara, A. C. Olivieri, Y. Bocchi, M. Jung, W. Kastner, and A. F. Skarmeta, “Semantic Web of Things: an analysis of the application semantics for the IoT moving towards the IoT convergence,” Int. J. Web Grid Serv., vol. 10, no. 2/3, pp. 244–272, 2014. [82] A. Gómez-Goiri, Í. Goiri, and D. López-de-Ipiña, “Energy-aware Architecture for Information Search in the Semantic Web of Things,” Int. J. Web Grid Serv., vol. 10, no. 2/3, pp. 192–217, 2014. [83] S. K. Datta and C. Bonnet, “Describing things in the Internet of Things: From CoRE link format to semantic based descriptions,” 2016 IEEE Int. Conf. Consum. Electron. ICCE- TW 2016, no. i, pp. 0–1, 2016. [84] U. Aguilera, O. Peña, O. Belmonte, and D. López-de-Ipiña, “Citizen-centric data services for smarter cities,” Futur. Gener. Comput. Syst., pp. 1–14, 2016. [85] M. Steen, F. Knibbe, W. Quak, J. Roes, and L. Daniele, “Combining Energy and Spatial Information Standards as Enabler for Smart Grids - D5.1 Cookbook D5.2 State-of-the- art D6.1 Evaluation test-bed,” 2015. [86] IEC, “Energy management system application program interface (EMS-API) - Part 501: Common Information Model Resource Description Framework (CIM RDF) Schema. IEC

121 Literatura

61970-501.” 2006. [87] IEC, “Energy management system application program interface (EMS-API) - Part 552: CIMXML Model exchange format. IEC 61970-552.” 2013. [88] M. Steen, “CERISE CIM Metering Profile,” 2014. [Online]. Available: http://lov.okfn.org/dataset/lov/vocabs/smg/versions/2014-05-22.n3. [89] C. Weng, J. H. Gennari, and D. B. Fridsma, “User-centered semantic harmonization: A case study,” J. Biomed. Inform., vol. 40, no. 3, pp. 353–364, 2007. [90] B. Yoose and J. Perkins, “The Linked Open Data Landscape in Libraries and Beyond,” J. Libr. Metadata, vol. 13, no. 2–3, pp. 197–211, 2013. [91] S. Bechhofer et al., “OWL Web Ontology Language Reference, W3C Recommendation 10 February 2004,” W3C, 2004. [Online]. Available: https://www.w3.org/TR/owl-ref/. [92] M. Steen, F. Knibbe, W. Quak, J. Roes, and L. Daniele, “Combining Energy and Spatial Information Standards as Enabler for Smart Grids - D4.1 Semantic Mappings to Harmonize Energy, Geo and Government-related Information Models,” no. September, pp. 1–34, 2015. [93] M. Steen, F. Knibbe, W. Quak, J. Roes, and L. Daniele, “Combining Energy and Spatial Information Standards as Enabler for Smart Grids - D4.2 Linked Data for Crisis management,” no. September, 2015. [94] R. Roller, J. Roes, and E. Verbree, “Benefits of linked data for interoperability during crisis management,” Int. Arch. Photogramm. Remote Sens. Spat. Inf. Sci. - ISPRS Arch., vol. 40, no. 3W3, pp. 211–218, 2015. [95] R. Santodomingo, M. Uslar, J. A. Rodríguez-Mondéjar, and M. A. Sanz-Bobi, “Rule-based data transformations in electricity smart grids,” Lect. Notes Comput. Sci. (including Subser. Lect. Notes Artif. Intell. Lect. Notes Bioinformatics), vol. 9202, pp. 447–455, 2015. [96] J. P. Britton and A. N. de Vos, “CIM-based standards and CIM evolution,” IEEE Trans. Power Syst., vol. 20, no. 2, pp. 758–764, 2005. [97] A. Crapo, K. Griffith, A. Khandelwal, L. John, M. Abha, and W. Xiaofeng, “Overcoming Challenges Using the CIM as a Semantic Model for Energy Applications,” in Grid-Interop, 2010, pp. 1–8. [98] S. Maligue-Clausse, A. Maizener, and J.-L. Sanson, “CimConteXtor.” Zamiren, 2011. [99] “CIM EA,” 2010. [Online]. Available: http://www.cimea.org/. [Accessed: 07-Jul-2017]. [100] A. deVos, “CIMTool,” 2016. [Online]. Available: http://wiki.cimtool.org/Download.html. [Accessed: 23-Jul-2017]. [101] G. Schreiber and Y. Raimond, “RDF 1.1 Primer,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/rdf11-primer/. [Accessed: 10-Feb-2017]. [102] D. Wood, “What’s New in RDF 1.1, W3C Working Group Note 25 February 2014,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/rdf11-new/. [Accessed: 20-Jan- 2016]. [103] G. Gandon, F., & Schreiber, “RDF 1.1 XML Syntax. W3C Recommendation 25 February 2014,” 2014. [Online]. Available: https://www.w3.org/TR/rdf-syntax-grammar/. [Accessed: 23-Feb-2016].

122 Literatura

[104] D. Beckett, T. Berners-Lee, E. Prud’hommeaux, and G. Carothers, “RDF 1.1 Turtle,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/turtle/. [Accessed: 01-Jan-2017]. [105] EPRI, “The Common Information Model for Distribution: An Introduction to the CIM for Integrating Distribution Applications and Systems,” 2008. [106] D. Longley, G. Kellogg, M. Lanthaler, and M. Sporny, “JSON-LD 1.0 Processing Algorithms and API, W3C Recommendation 16 January 2014,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/json-ld-api/. [Accessed: 24-Feb-2016]. [107] C. Bizer and R. Cyganiak, “RDF 1.1 TriG, RDF Dataset Language. W3C Recommendation 25 February 2014,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/trig/. [Accessed: 24-Feb-2016]. [108] G. Carothers, “RDF 1.1 N-Quads, A line-based syntax for RDF datasets. W3C Recommendation 25 February 2014,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/n-quads/. [Accessed: 24-Feb-2016]. [109] D. Wood, “What’s New in RDF 1.1,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/rdf11-new/. [Accessed: 27-Dec-2017]. [110] D. Brickley and R. V. Guha, “RDF Schema 1.1, W3C Recommendation 25 February 2014,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/rdf-schema/. [Accessed: 11- Jan-2017]. [111] W3C, “OWL 2 Web Ontology Language Document Overview,” W3C, 2012. [Online]. Available: https://www.w3.org/TR/owl2-overview/. [Accessed: 03-Apr-2016]. [112] M. Lanthaler and C. Gütl, “On using JSON-LD to create evolvable RESTful services,” in Third International Workshop on RESTful Design, 2012, no. April, pp. 25–32. [113] D. Brickley and L. Miller, “FOAF Vocabulary Specification 0.99, Namespace Document 14 January 2014 - Paddington Edition,” FOAF Project, 2014. [Online]. Available: http://xmlns.com/foaf/spec/. [Accessed: 03-Jan-2016]. [114] T. Berners-Lee, “Linked Data,” 2006. [Online]. Available: https://www.w3.org/DesignIssues/LinkedData.html. [Accessed: 01-Apr-2016]. [115] L. Dodds and I. Davis, Linked Data Patterns - A pattern catalogue for modelling, publishing, and consuming Linked Data. 2012. [116] L. Sauermann and R. Cyganiak, “Cool URIs for the Semantic Web, W3C Interest Group Note 03 December 2008,” W3C, 2008. [Online]. Available: https://www.w3.org/TR/cooluris/. [Accessed: 03-Apr-2016]. [117] D. Berrueta and J. Phipps, “Best Practice Recipes for Publishing RDF Vocabularies, W3C Working Group Note 28 August 2008,” W3C, 2008. [Online]. Available: https://www.w3.org/TR/swbp-vocab-pub/. [Accessed: 04-Mar-2016]. [118] M. Lanthaler and C. Gütl, “Model Your Application Domain, Not Your JSON Structures,” in Proceedings of the 4th International Workshop on RESTful Design WSREST 2013 at the 22nd International World Wide Web Conference WWW2013, 2013, pp. 1415–1420. [119] M. Sporny, G. Kellogg, D. Longley, and M. Lanthaler, “JSON-LD Framing 1.0, An Application Programming Interface for the JSON-LD Syntax,” W3C Community Group Draft Report, 2012. [Online]. Available: http://json-ld.org/spec/ED/json-ld- framing/20120830/. [Accessed: 03-Mar-2016]. [120] H. Knublauch and D. Kontokostas, “Shapes Constraint Language (SHACL), W3C

123 Literatura

Recommendation 20 July 2017,” 2017. [Online]. Available: https://www.w3.org/TR/2017/CR-shacl-20170411/. [Accessed: 05-May-2017]. [121] S. Hawke, I. Herman, B. Parsia, A. Polleres, and A. Seaborne, “SPARQL 1.1 Entailment Regimes,” W3C, 2013. [Online]. Available: https://www.w3.org/TR/sparql11- entailment/. [Accessed: 27-Dec-2017]. [122] K. Nenadić, M. Gavrić, and V. Đurđević, “Validation of CIM Datasets Using SHACL,” in Proceedings of the 25th Telecommunications Forum (Telfor), 2017. [123] Google, “Polymer,” 2015. [Online]. Available: https://www.polymer-project.org/1.0/. [124] D. Denicola, “Custom Elements, W3C Working Draft 23 May 2016,” W3C, 2016. [Online]. Available: https://www.w3.org/TR/2016/WD-custom-elements-20160523/. [Accessed: 01-May-2016]. [125] I. Hickson et al., “HTML5 A vocabulary and associated APIs for HTML and XHTML. W3C Recommendation 28 October 2014,” W3C, 2014. [Online]. Available: https://www.w3.org/TR/html5/. [Accessed: 01-Apr-2016]. [126] Dimitri Glazkov and H. Ito, “Shadow DOM,” W3C, 2015. [Online]. Available: https://www.w3.org/TR/2015/WD-shadow-dom-20151215/. [127] Webcomponents.org, “Web Component Polyfills,” Webcomponents.org, 2014. [Online]. Available: https://github.com/webcomponents/webcomponentsjs. [Accessed: 01-May-2016]. [128] I. Z. Schlueter, “Node Package Manager,” 2010. [Online]. Available: https://www.npmjs.com/. [Accessed: 09-Aug-2017]. [129] Twitter and GitHub, “Bower,” 2012. [Online]. Available: http://bower.io/. [Accessed: 09-Aug-2017]. [130] J. Ashkenas, “Backbone.js,” 2010. [Online]. Available: http://backbonejs.org/. [Accessed: 09-Aug-2017]. [131] Google, “AngularJS,” 2010. [Online]. Available: https://www.angularjs.org/. [Accessed: 09-Aug-2017]. [132] T. Berners-Lee, “RDF Architecture - W3C Data Formats,” 1997. [Online]. Available: https://www.w3.org/TR/NOTE-rdfarch. [Accessed: 10-Oct-2017]. [133] C. Ivanov, T. Saxton, J. Waight, M. Monti, and G. Robinson, “Prescription for Interoperability: Power System Challenges and Requirements for Interoperable Solutions,” IEEE Power Energy Mag., vol. 14, no. 1, pp. 30–39, 2016. [134] IEC, “Framework for energy market communications - Part 450: Profile and context modelling rules. IEC 62325-450.” 2013. [135] M. Uslar, M. Specht, S. Rohjans, J. Trefke, and J. M. Vasquez Gonzalez, The Common Information Model CIM, vol. 66, no. June. Springer-Verlag Berlin Heidelberg, 2012. [136] D. Beckett, “RDF/XML Syntax Specification (Revised). W3C Recommendation 10 February 2004,” W3C, 2004. [Online]. Available: https://www.w3.org/TR/2004/REC- rdf-syntax-grammar-20040210/. [Accessed: 24-Feb-2016]. [137] D. Allemang and J. Hendler, Semantic web for the working ontologist : modeling in RDF, RDFS and OWL, 2nd ed. Waltham, MA: Morgan Kaufmann Publishers, 2011. [138] J. M. P. Craig Chasseur Yinan Li, “Enabling JSON Document Stores in Relational

124 Literatura

Systems,” Proc. 16th Int. Work. Web Databases 2013, WebDB 2013, New York, NY, USA, June 23, 2013., pp. 1–6, 2013. [139] A. Freeman, Expert ASP.NET Web API 2 for MVC Developers. Apress, 2014. [140] K. Nenadić, M. Letić, M. Gavrić, and I. Lendak, “Rendering of JSON-LD CIM Profile Using Web Components,” in Proceedings of the 14th International Symposium on Intelligent Systems and Informatics (SISY), 2016. [141] G. Kellogg, “More specific frame matching #110,” GitHub, 2012. [Online]. Available: https://github.com/json-ld/json-ld.org/issues/110. [Accessed: 01-Jun-2016]. [142] B. Moschel, “Longevity (or Lack Thereof) in JavaScript Frameworks,” bitovi.com, 2015. [Online]. Available: https://www.bitovi.com/blog/longevity-or-lack-thereof-in- javascript-frameworks. [Accessed: 09-Jan-2017]. [143] P. Hitzler, M. Krötzsch, B. Parsia, P. F. Patel-Schneider, and S. Rudolph, “OWL 2 Web Ontology Language - Primer (Second Edition),” W3C, 2012. [Online]. Available: https://www.w3.org/TR/owl2-primer/. [Accessed: 10-Oct-2017]. [144] K. Nenadić, M. Gavrić, and I. Lendak, “Extending JSON-LD Framing Capabilities,” Acta Polytech. Hungarica, vol. 14, no. 6, 2017. [145] M. Sporny, G. Kellogg, D. Longley, and M. Lanthaler, “JSON-LD Framing 1.1 An Application Programming Interface for the JSON-LD Syntax,” Draft Community Group Report 04 October 2016, 2016. [Online]. Available: http://json-ld.org/spec/latest/json- ld-framing/. [Accessed: 06-Oct-2016]. [146] R. T. Fielding, “Architectural Styles and the Design of Network-based Software Architectures,” UNIVERSITY OF CALIFORNIA, IRVINE, 2000. [147] S. Speicher, J. Arwe, and A. Malhotra, “Linked Data Platform 1.0,” W3C, 2015. [Online]. Available: https://www.w3.org/TR/ldp/. [Accessed: 08-Nov-2017]. [148] M. Lanthaler, “Hydra Core Vocabulary A Vocabulary for Hypermedia-Driven Web APIs,” Hydra W3C Community Group, 2018. [Online]. Available: http://www.hydra- cg.com/spec/latest/core/. [Accessed: 01-Feb-2018]. [149] S. Klabnik, Y. Katz, D. Gebhardt, T. Kellen, and E. Resnick, “JSON API,” 2015. [Online]. Available: http://jsonapi.org/. [Accessed: 08-Nov-2017]. [150] G. Kellogg, “Building JSON-LD APIs: Best Practices,” Linking Data in JSON Community Group, 2018. [Online]. Available: https://json-ld.org/spec/latest/json-ld-api-best- practices/. [Accessed: 01-May-2018]. [151] Stardog Union, “Stardog:The Knowledge Graph Platform for the Enterprise,” 2017. [Online]. Available: https://www.stardog.com/. [Accessed: 01-Mar-2018]. [152] Apache, “Apache Jena,” Apache Software Foundation, 2014. [Online]. Available: https://jena.apache.org/index.html. [Accessed: 06-Jun-2017]. [153] ENTSO-E, “RDFS of the CGMES Profiles,” CGMES, 2016. [Online]. Available: https://www.entsoe.eu/Documents/CIM_documents/Grid_Model_CIM/ENTSOE_CG MES_v2.4.15_16Feb2016_RDFS.zip. [Accessed: 01-Jun-2016]. [154] ENTSO-E, “CGMES v2.4.15 Test Configurations v4.0.3,” 2014. [Online]. Available: https://www.entsoe.eu/Documents/CIM_documents/Grid_Model_CIM/CGMES_v2.4. 15_TestConfigurations_v4.0.3.zip. [Accessed: 09-Sep-2017].

125 Literatura

[155] “The XML Metadata Interchange Specification,” Object Management Group, 2015. [Online]. Available: https://www.omg.org/spec/XMI. [Accessed: 10-Jan-2017]. [156] Open Knowledge Foundation, “Linked Open Vocabularies.” [Online]. Available: http://lov.okfn.org/dataset/lov/. [Accessed: 31-Oct-2017]. [157] M. Horridge, “OWL Validator,” 2009. [Online]. Available: http://visualdataweb.de/validator/. [Accessed: 02-Jul-2017]. [158] Power Info LLC, “CIMSpy.” [Online]. Available: http://www.powerinfo.us/CIMSpyEE.html. [Accessed: 20-Jul-2017]. [159] Power Info LLC, “CIMDesk.” [Online]. Available: http://www.powerinfo.us/CIMdesk.html. [Accessed: 20-Jul-2017]. [160] ENTSO-E, “Common Grid Model Exchange Standard (CGMES),” ENTSO-E, 2014. [161] ENTSO-E, “OCL Documentation of the CGMES,” 2014. [Online]. Available: https://www.entsoe.eu/Documents/CIM_documents/Grid_Model_CIM/ENTSOE_CG MES_v2.4.15_7Aug2014_OCL.zip. [Accessed: 05-May-2017]. [162] J. E. Labra-Gayo, H. Knublauch, and D. Kontokostas, “SHACL Test Suite and Implementation Report,” W3C on Gitbhub, 2017. [Online]. Available: http://w3c.github.io/data-shapes/data-shapes-test-suite/. [Accessed: 05-May-2017]. [163] K. Nenadić, “Fork of jsonld.js with Recursive Prioritized Embedding Using @reverse,” 2016. [Online]. Available: https://github.com/knenadic/jsonld.js. [Accessed: 01-Mar- 2018]. [164] V. Djurdjevic, “SHACLib.ts,” 2017. [Online]. Available: https://bitbucket.org/vladimir_djurdjevic/shaclib.ts. [Accessed: 01-Mar-2018]. [165] V. Djurdjevic, “RDFLib.ts,” 2017. [Online]. Available: https://bitbucket.org/vladimir_djurdjevic/rdflib.ts. [Accessed: 01-Mar-2018].

126 Prilozi

9. PRILOZI

9.1 Biblioteke

SHACLib.ts SHACLib.ts [164] je implementacija W3C-ovog SHACL jezika u TypeScript-u. Biblioteka je kreirana sa namerom da radi u Node.js okruženju i web pretraživačima validirajući lokalne i udaljene RDF dokumente. Biblioteka je još uvek u izradi i trenutno podržava SHACL Core. Bazirana je na SPARQL-u, što znači da su SPARQL 1.1 upiti korišćeni u implementaciji komponenti ograničenja. Podržava sledeće RDF sintakse Turtle, TriG, N-Triples, N-Quads i JSON-LD.

Slika 51. Dijagram komponenti SHACLib.ts biblioteke Slika 51 ilustruje dijagram komponenti SHACLib.ts biblioteke. Kada se koristi SHACL CLI (verzija iz komandne linije, engl. Command Line Interface, skr. CLI), SHACLib.ts omogućava integraciju sa bilo kojim RDF skladištem podataka preko odgovarajućeg adaptera. Trenutno postoji jedan implementirani adapter koji podržava Apache Jena Fuseki SPARQL server verzije 2.5.0. SHACLib.ts se oslanja na RDFLib.ts [165], TypeScript implementaciju osnovnog RDF modela, pomoćnih funkcija i RDF skladište sa SPARQL 1.1 podrškom, takođe razvijeno tokom ovog istraživanja. Na osnovu ulaznih parametara SHACL CLI instancira adapter za specificirano RDF skladište podataka. Ovaj adapter se koristi za kreiranje skladišta za oblike (engl. shape) i podatke (engl. data), gde su ulazni dokumenti (grafovi oblikovanja i podataka) importovani od strane komponente za import RDF podataka (RDF Data Importer komponenta) kreirajući odgovarajuće lokacije za pristup podacima (tzv. endpointe). Potom se udaljena SPARQL lokacija za pristup skladištu oblika prosleđuje SHACL parseru oblika (SHACL Shape Parser komponenta) koji kreira memorijsku reprezentaciju grafova oblika. Memorijska reprezentacija grafa oblika i udaljena SPARQL lokacija za pristup grafu podataka se koristi od strane SHACL validatora za validaciju grafa podataka kreirajući pri tom izveštaj rezultata validacije eksportovan u fajl korišćenjem komponente za RDF eksport podataka (RDF Data Exporter komponenta). SHACLib.ts može da se koristi i programski. U tom slučaju njegove komponente mogu da se koriste direktno. Kada su graf oblikovanja i graf podataka već dostupni iza SPARQL lokacije za pristup, instance komponente za pristup udaljenim SPARQL lokacijama RDFLib.ts biblioteke (Remote SPARQL Endpoint komponenta) mogu delovati kao proksi za njih i biti upotrebljene od strane SHACL parsera oblika i SHACL validatora za validaciju.

127