SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1431 Semantička web-aplikacija za iznajmljivanje smještaja Marin Božinović Zagreb, lipanj 2017. Sadržaj Uvod ...................................................................................................................................... 1 1. Sematički Web ............................................................................................................... 2 1.1. Formati RDF i RDFS ............................................................................................. 4 1.2. Format OWL i ontologija ...................................................................................... 7 1.3. SPARQL .............................................................................................................. 10 2. Apache Jena Fuseki ..................................................................................................... 13 3. Arhitekturalni stil Redux ............................................................................................. 15 3.1. Stanje ................................................................................................................... 16 3.2. Korisničko sučelje ............................................................................................... 16 3.3. Radnja .................................................................................................................. 16 3.4. Reducer ................................................................................................................ 17 3.5. Spremište ............................................................................................................. 18 4. Radni okvir React.js .................................................................................................... 19 4.1. Container ............................................................................................................. 20 4.2. Component .......................................................................................................... 21 4.3. Arhitekuralni stil Redux s radnim okvirom React.js ........................................... 22 5. Semantička web-aplikacija .......................................................................................... 24 5.1. Funkcionalni zahtjevi .......................................................................................... 24 5.1.1. Opis obrazaca uporabe................................................................................. 24 5.1.2. Sekvencijski dijagrami ................................................................................ 29 5.2. Ontologija aplikacije............................................................................................ 32 5.3. Konfiguracija poslužitelja Fuseki ........................................................................ 34 5.4. Generiranje SPARQL upita ................................................................................. 35 5.5. Korisničko sučelje ............................................................................................... 39 Zaključak ............................................................................................................................. 44 Literatura ............................................................................................................................. 45 Sažetak ................................................................................................................................. 46 Summary .............................................................................................................................. 47 Skraćenice ............................................................................................................................ 48 Privitak A ............................................................................................................................. 49 Privitak B ............................................................................................................................. 50 Privitak C ............................................................................................................................. 63 Uvod Semantička analiza Internet sadržaja otežava pretraživanje web-a i povezivanje znanja koje web nudi. Semantički web je nadogradnja klasičnog web-a koji uz pomoć ontologija, odnosno, uz pomoć „znanja o znanju“ olakšava stroju obradu web sadržaja. Zadatak ovog rada je objasniti semantički web i ontologiju te definirati vlastitu ontologiju za iznajmljivanje smještaja. Uz to, potrebno je i izraditi samantičku web- aplikaciju koja omogućava korisnicima filtriranje ponude smještaja uz pomoć semantičkog rasuđivanja, rezerviranje, ažuriranje i brisanje postojećeg smještaja i stvaranje novih ponuda. Prilikom razvoja aplikacije potrebno je, za semantičko rasuđivanje, koristiti programski okvir Apache Jena s poslužiteljem Fusekikomponentom za semantičko rasuđivanje. Prvo poglavlje objašnjava ideju i teoriju semantičkog web-a i komponenti koje omogućuju opisivanje ontologije. U drugom poglavlju je ukratko opisan Fuseki, komponenta radnog okvira Apache Jena. Treće poglavlje opisuje arhitekturalni stil Redux koji se koristio prilikom razvoja aplikacije. Tema četvrtog poglavlja je opis radnog okvira React.js koji se koristio prilikom izrade korisničkog sučelja aplikacije. Peto poglavlje opisuje procesni tok aplikacije i prikazuje krajnje rješenje rada. 1 1. Sematički Web World Wide Web je sustav međusobno povezanih hipertekst dokumenata kojem se pristupa putem Interneta. Tim Berners-Lee je razvio WWW 1989. godine, a 1991. godine je pušten u javnost. Glavna ideja WWW-a je bilo povezivanje hipertekst dokumenata s jedinstvenim URL (engl. Uniform Resource Locators) adresama kako bi se korisnicima omogućio jednostavan pristup tim dokumentima. Brz tehnološki razvoj je doveo do sve veće potrebe komunikacije između strojeva, a ne ljudi, za što je WWW bio predviđen. Tim Barners-Lee je definirao semantički web. Semantički web je nadogradnja klasičnom WWW-u koji sadržaj Internet-a definira pomoću XML (engl. Extensible Markup Language) dokumenata[1]. XML svojom strukturom elemenata i atributa omogućava jednostavno opisivanje i povezivanje sadržaja Interneta, što pojednostavljuje strojnu obradu tih informacija. Osnovne prednosti semantičkog web-a nad WWW-om su mogućnost višekratnog korištenja informacija u različitim aplikacijama i bolja strojna obrada semantike informacija što povećava točnost web tražilica (engl. search engine). Slika 1.1 prikazuje stog semantičkog web-a[2] koji sadrži: • URI (engl. Uniform Resource Identifier) – jedinstveni niz znakova koji se koristi za identificiranje sadržaja • Unicode – standard za kodiranje, obradu i prikazivanje teksta • XML – skup pravila za strukturiranje dokumenata u formatu razumljivom i ljudima i strojevima • RDF (engl. Resource Description Framework) – metoda konceptualnog opisivanja i modeliranja informacija u trojke • RDFS (engl. Resource Description Framework Schema) – opisni jezik za definiranje rječnika pojmova • RIF (engl. Rule Interchange Format) – skup pravila za prijelaze iz jednog formata pravila u drugi 2 • OWL (engl. Web Ontology Language) – skup pravila za opisivanje znanja ontologije • SPARQL (engl. SPARQL Protocol and RDF Query Language) – upitni jezik za dohvaćanje i obradu informacija pohranjenih u RDF formatu. Slika 1.1 Stog semantičkog web-a U nastavku poglavlja definirane su ontologije te su opisani glavni dijelovi stoga semantičkog weba i primjenjivanje semantičkog reasoner-a. 3 1.1. Formati RDF i RDFS RDF je temeljni format za opisivanje i obradu metapodataka. Aplikacijama koje izmjenjuju informacije pruža interoperabilnost potrebnu za strojnu obradu. RDF se bazira na objektima koji omogućuju automatiziranu obradu web sadržaja. Automatizirana obrada može imati različite primjene kao što su poboljšanje rezultata search engine-a, kategorizacija sadržaja i opis povezanosti sadržaja. Glavni cilj RDF-a je definiranje mehanizama za opisivanje sadržaja bez stvaranja pretpostavki o domeni ili semantici aplikacija koje koriste taj sadržaj[3]. Iako mehanizmi trebaju biti neovisni o domeni, moraju je moći opisati. Osnove RDF-a su principi preuzeti iz različitih modela za opisivanje podataka. RDF svojstva i vrijednosti pridružene tim svojstvima mogu se jednostavno shvatiti kao ključ-vrijednost par i zbog toga sliče entitet-relacijskom modelu relacijskih baza podataka, odnosno atributima objekata objektno-orijentiranih programskih jezika. Osnovni model se sastoji od tri tipa objekata: 1. sadržaj 2. svojstvo 3. izjava. Sadržaj predstavlja sve što se opisuje RDF-om. Sadržaj može biti cijelo web sjedište, samo jedna web stranica ili dio web stranice. Sadržaj može biti i objekt koji nije direktno dostupan putem Interneta. Sadržaj je uvijek definiran URI-em i opcionalno dodatnim identifikatorom. Svojstvo je aspekt, karakteristika, atribut ili relacija koja se koriti za opisivanje sadržaja. Svako svojstvo ima specifično značenje koje definira dozvoljene vrijednosti i tip sadržaja koji je opisan odnosima s drugim svojstvima. Sadržaj s pridruženim svojstvom i vrijednošću pridruženu tom svojstvu tvori RDF izjavu. Sadržaj predstavlja subjekt, svojstvo predikat, a vrijednost svojstva objekt izjave. Objekt izjave može biti ili drugi sadržaj definiran vlastitim URI-em ili literal. Prilikom stvaranja RDF izjava, svaka izjava se kreira po modelu <subjekt> ima <predikat> <objekt>. U modelu, <subjekt> označava sadržaj, odnosno resurs 4 koji opisuje RDF i pridružen mu je URI. Svojstvo pridruženo sadržaju je <predikat>, a <objekt> je vrijednost svojstva. Slika 1.2 prikazuje vizualizaciju trojke za primjer „Ora Lassila is the creator of the resource http://www.w3.org/Home/Lassila“ [3]. Primjer rečenice može se podijeliti na subjekt http://www.w3.org/Home/Lassila, predikat Creator i objekt Ora Lassila. Slika 1.2 Vizualizacija RDF trojke Kôd 1.1 prikazuje RDF reprezentaciju prikazanog primjera. <rdf:RDF> <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator> Ora Lassila </s:Creator> </rdf:Description> </rdf:RDF> Kôd 1.1 RDF primjer Prilikom vizualizacije RDF izjava, subjekt se prikazuje kružnicom, predikat strelicom, a objekt, ovisno o tipu, kružnicom ili pravokutnikom. Ako se objekt definira drugim resursom, odnosno, ako je definiran URI-em, prikazuje ga se kružnicom, ako je definiran literalomm, prikazuje ga se pravokutnikom. Smjer strelice je važan i uvijek ide od subjekta prema objektu izjave. Jedan od problema RDF-a je što ne nudi mehanizme za deklariranje svojstava ni mehanizme za definiranje odnosa između svojstava i drugih sadržaja. Kako bi se riješio taj problem, definira se RDFS kao nadogradnja RDF-u. RDFS je definiran kao RDF sadržaj koji se može koristiti za opisivanje svojstava drugih RDF sadržaja koji opisuju vokabulare specifične za pojedine aplikacije. Kako bi se osiguralo konzistentno korištenje svojstava i klasa, RDFS uvodi niz RDF sadržaja za stvaranje izjava o ograničavanju RDF podataka. 5
Description: