RDF Resource Description Framework kratak uvod Cvetana Krstev

  • Slides: 31
Download presentation
RDF – Resource Description Framework – kratak uvod Cvetana Krstev

RDF – Resource Description Framework – kratak uvod Cvetana Krstev

Šta je RDF? n n Vezan je za pojam Semantički veb (Semantic Web) Sasvim

Šta je RDF? n n Vezan je za pojam Semantički veb (Semantic Web) Sasvim ukratko, šta bi bio semantički veb (izvor Wikipedia): q q To je proširenje veba koje koristi standarde W 3 C, pre svega RDF Prema W 3 C: "The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries" Termin je skovao ser Tim Berners-Li Prema podacima iz 2013. godine više od 4 miliona domena na vebu je koristilo obeležja semantičkog veba (tj. RDF).

Podaci organizovani u obliku grafa n Organizacija podataka u obliku grafa znači, pre svega,

Podaci organizovani u obliku grafa n Organizacija podataka u obliku grafa znači, pre svega, da među podacima ne postoji hijerahijska struktura, tj. podaci nisu hijerarhijski organizovani preko relacija podređeni/nadređeni, kao što je, na primer, slučaj sa podacima koji su u obliku XML dokumenta (uvek postoji koreni element koji je na vrhu hijerarhije).

Primer grafa podataka n n Pogledajmo niz iskaza o tome kako su neke stvari

Primer grafa podataka n n Pogledajmo niz iskaza o tome kako su neke stvari povezane međusobom, a zatim kako se ti iskazi mogu vizuelizovati preko grafa. Pogledajmo sledeće iskaze o kučetu koje se zove Bengie i maci koja se zove Bonni: q q q Bengie is a dog. Bonnie is a cat. Bengie and Bonnie are friends.

Predstavljanje iskaza preko grafa Identifikuju se dve stvari: Thing 1 i Thing 2, koje

Predstavljanje iskaza preko grafa Identifikuju se dve stvari: Thing 1 i Thing 2, koje imaju svaka tri svojstva: name, animal. Type i Friends. With

Kako se tumači ova slika? n n Strelice na slici su svojstva (properties) koja

Kako se tumači ova slika? n n Strelice na slici su svojstva (properties) koja se u RDF terminologiji nekada zovu i predikati (predicates) Dakle, termini svojstvo i predikat označavaju iste stvari, a pomoću strelica se opisuje svojstvo grafa.

Uvodni primer RDF Ovo je tzv. RDF/XML, tj. RDF zapisan korišćenjem XML formata. Postoje

Uvodni primer RDF Ovo je tzv. RDF/XML, tj. RDF zapisan korišćenjem XML formata. Postoje i druge mogućnosti, mi ćemo se zadržati na ovoj. <? xml version="1. 0" encoding="UTF-8"? > <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: dc="http: //purl. org/dc/elements/1. 1/" xmlns: region="http: //www. country-regions. fake/"> Definišu se tri prostora imena: rdf, dc, region <rdf: Description rdf: about="http: //en. wikipedia. org/wiki/Oxford"> <dc: title>Oxford</dc: title> <dc: coverage>Oxfordshire</dc: coverage> <dc: publisher>Wikipedia</dc: publisher> <region: population>10000</region: population> <region: principaltown rdf: resource="http: //www. countryregions. fake/oxford"/> </rdf: Description> </rdf: RDF>

RDF iskaz ili trojka n n n RDF/XML iz prethodnog primera (između etiketa <rdf:

RDF iskaz ili trojka n n n RDF/XML iz prethodnog primera (između etiketa <rdf: Description>, uključujući i njih) naziva se RDF iskaz, ili RDF trojka. Trojka se odnosi na podelu iskaza u tri važna sastavna dela: subjekat, predikat i objekat iskaza. U ovom primeru graf opisuje boju majce: majca (T-shirt) je subjekat, je boje (is the color) je predikat, a bela (white) je objekat

Kako ova trojka izgleda u obliku RDF/XML <? xml version="1. 0" encoding="UTF-8"? > <rdf:

Kako ova trojka izgleda u obliku RDF/XML <? xml version="1. 0" encoding="UTF-8"? > <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: feature="http: //www. linkeddatatools. com/clothingfeatures#"> subjekat <rdf: Description rdf: about="http: //www. linkeddatatools. com/clothes#t-shirt"> predikat <feature: color rdf: resource="http: //www. linkeddatatools. com/colors#white"/> </rdf: Description> objekat </rdf: RDF>

Kako se gradi RDF/XML dokument Osnovni je RDF koreni element <rdf: RDF xmlns: rdf="http:

Kako se gradi RDF/XML dokument Osnovni je RDF koreni element <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#"> <!-- Body Code Omitted --> </rdf: RDF> n Ovde je najvažniji atribut xmlns: rdf korenog elementa koji identifikuje prostor imena rdf u okviru W 3. org n Prostor imena govori svakoj aplikaciji da se radi o RDF dokumentu i da se etiketa rdf: RDF nalazi u ovom prstoru imena n

Od čega se sastoji RDF iskaz? n n Svaki RDF dokument može da ima

Od čega se sastoji RDF iskaz? n n Svaki RDF dokument može da ima više iskaza (tj. da govori o više tema, da ima više “subjekata”). To se postiže dodavanjem jedne ili više rdf: Description etiketa, koje, pak, u okviru RDF/XML mogu da sadrže jedan ili više iskaza o istoj temi. <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#"> <rdf: Description rdf: about="http: //www. linkeddatatools. com/clothes#t-shirt"> <!-- Statement Code Omitted --> </rdf: Description> </rdf: RDF> n Etiketa rdf: Description praktično znači “sada ću da opišem nešto (subjekat) što će jednoznačno identifikovati preko http: //www. linkeddatatools. com/clothes#t-shirt, što je sadržaj atributa rdf: about

Dodavanje predikata <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: feature="http: //www.

Dodavanje predikata <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: feature="http: //www. linkeddatatools. com/clothing-features#"> <rdf: Description rdf: about="http: //www. linkeddatatools. com/clothes#t-shirt"> <feature: size>12</feature: size> <feature: color rdf: resource="http: //www. linkeddatatools. com/colors#white"/> </rdf: Description> </rdf: RDF> 1. 2. Subjekat (t-shirt, skraćeno) ima svojstvo feature: size a vrednost tog svojstva je 12. Subjekat (t-shirt, skraćeno) ima svojstvo feature: color a vrednost tog svojstva se referiše na subjekat (preko ID) nekog iskaza – objekti iskaza mogu da referišu subjekte drugih iskaza.

Opšti oblik iskaza <rdf: Description rdf: about="subject"> <predicate rdf: resource="object" /> <predicate>literal value</predicate> <rdf:

Opšti oblik iskaza <rdf: Description rdf: about="subject"> <predicate rdf: resource="object" /> <predicate>literal value</predicate> <rdf: Description> n Odavde se vidi šta je subjekat iskaza (to jest, o čemu iskaz govor) i dve vrste predikata: bukvalne vrednosti i resursi koji referišu druge RDF iskaze.

Šta su ovde subjekti, prediakti i Predikat s referisanim vrednostima Predikati s navedenim vrednostima

Šta su ovde subjekti, prediakti i Predikat s referisanim vrednostima Predikati s navedenim vrednostima su: • Iz prostora imena region objekti • iz prostora imena Dablinskog jezgra • principaltown referiše subjekat s <? xml version="1. 0" encoding="UTF-8"? > Id=http: //www. country-regions. fake/oxford"/ • title = Oxford <rdf: RDF • coverage = Oxfordshire • publisher = Wikipedia xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" • Iz prostora imena “region” xmlns: dc="http: //purl. org/dc/elements/1. 1/" • population = 10000 xmlns: region="http: //www. country-regions. fake/"> <rdf: Description rdf: about="http: //en. wikipedia. org/wiki/Oxford"> <dc: title>Oxford</dc: title> <dc: coverage>Oxfordshire</dc: coverage> <dc: publisher>Wikipedia</dc: publisher> <region: population>10000</region: population> <region: principaltown rdf: resource="http: //www. countryregions. fake/oxford"/> Subjekat je: Oxford </rdf: Description> (referisan preko </rdf: RDF> http: //en. wikipedia. org/wiki/Oxford)

Podsećanje na URI i Namespaces n n URI se koriste da bi se dala

Podsećanje na URI i Namespaces n n URI se koriste da bi se dala jedinstvena imena subjektima, predikatima i objektima. Zašto se imena ovim trima delovima RDF iskaza zadaju preko URI-a? Oni omogućavaju da se podaci zadati RDF-om (dakle, na vebu) mogu globalno razumenjivati U jednom od prethodnih primera smo imali: <feature: size>12</feature: size> Dok smo u okviru rdf: RDF deklaracije definisali prostor imena feature sa: q xmlns: feature="http: //www. linkeddatatools. com/clothing-features# q n n Ovim se izbegavaju konflikti između etiketa s istim imenom – na primer može se u istom dokumentu pojaviti etiketa <size> za označavanje nečeg sasvim drugog, a onda bi i vrednost 12 značila nešto sasvim drugo.

Dva RDF iskaza sa potpuno kvalifikovanim URI (sa zamenjenim prostorima imena)

Dva RDF iskaza sa potpuno kvalifikovanim URI (sa zamenjenim prostorima imena)

Kako sada izgleda neki zapis u Dablinskom jezgru korišćenjem RDF/XML <? xml version="1. 0"?

Kako sada izgleda neki zapis u Dablinskom jezgru korišćenjem RDF/XML <? xml version="1. 0"? > <!DOCTYPE rdf: RDF PUBLIC "-//DUBLIN CORE//DCMES DTD 2002/07/31//EN" "http: //dublincore. org/documents/2002/07/31/dcmes-xml/dcmesxml-dtd. dtd"> <rdf: RDF xmlns: rdf=http: //www. w 3. org/1999/02/22 -rdf-syntax-ns# xmlns: dc="http: //purl. org/dc/elements/1. 1/"> <rdf: Description rdf: about="http: //www. ilrt. bristol. ac. uk/people/cmdjb/"> <dc: title>Dave Beckett's Home Page</dc: title> <dc: creator>Dave Beckett</dc: creator> <dc: publisher>ILRT, University of Bristol</dc: publisher> <dc: date>2002 -07 -31</dc: date> </rdf: Description> </rdf: RDF>

Još jedan primer <? xml version="1. 0"? > <!DOCTYPE rdf: RDF PUBLIC "-//DUBLIN CORE//DCMES

Još jedan primer <? xml version="1. 0"? > <!DOCTYPE rdf: RDF PUBLIC "-//DUBLIN CORE//DCMES DTD 2002/07/31//EN" "http: //dublincore. org/documents/2002/07/31/dcmes-xmldtd. dtd"> <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: dc ="http: //purl. org/dc/elements/1. 1/"> <rdf: Description rdf: about="http: //dublincore. org/"> <dc: title>Dublin Core Metadata Initiative - Home Page</dc: title> <dc: description>The Dublin Core Metadata Initiative Web site. </dc: description> <dc: date>2001 -01 -16</dc: date> <dc: format>text/html</dc: format> <dc: language>en</dc: language> <dc: contributor>The Dublin Core Metadata Initiative</dc: contributor> <dc: title xml: lang="fr">L'Initiative de métadonnées du Dublin Core</dc: title> <dc: title xml: lang="de">der Dublin-Core Metadata-Diskussionen</dc: title> </rdf: Description> </rdf: RDF>

Uključivanje semantike u podatke – integracija znanja n Primer: recimo da postoje dve nezavisno

Uključivanje semantike u podatke – integracija znanja n Primer: recimo da postoje dve nezavisno razvijene baze podataka: q q n Baza podataka o filmovima koji su dobili nekog oskara (sa detaljnim podacima o svakom filmu, uključujući i listu glumaca, ali bez detaljnih podataka o njima) Baza podataka o holivudskim glumcima, sadašnjim i bivšim (sa detaljnim biografskim podacima o glumcima, uključujući i listu filmova u kojima su glumili, ali bez detaljnih podataka o njima). Obe su baze relacione (više sledeće godine u okviru Baza podataka), razvijene na različitim sistemima i ne mogu da kooperiraju (tj. mogu, ali je za to potrebno da se uloži dodatni napor, ljudski i mašinski).

Deljenje korišćenjem modela semantičkog veba n Za to su potrebne dve stvari: q q

Deljenje korišćenjem modela semantičkog veba n Za to su potrebne dve stvari: q q n Rečnik (Vocabulary) – kolekcija termina koji su dobili precizno definisano značenje koje je konzistentno u različitim kontekstima; Ontologija (Ontology) – dozvoljava da se definištu kontekstualne veze (contextual relationships) iza definisanog rečnika, preko čega se definiše domen znanja. Formalna sintaksa za definisanje ontologija je OWL (Web Ontology Language) koji je proširenje RDFS (RDF Schema).

U čemu se sada sastoji semantičko modeliranje? n n Pre svega, dva sajta treba

U čemu se sada sastoji semantičko modeliranje? n n Pre svega, dva sajta treba da primenjuju zajednički, standardan rečnik za opisivanje svojih podataka koji je konzistentan. Na primer, termin ‘film title’ treba da znači isto za oba sajta, kao i termini ‘actor name’ i ‘actor birthdate’. To se može učiniti ako oba sajta usvoje istu baznu ontologiju, ili zajednički rečnik, za iskazivanje značenja podataka koje poseduju, a zatim da objave te podatke na takav način da omoguće postavljanje upita, čime se omogućava da oba sajta među sobom komuniciraju.

Konkretno, šta omogućava zajednička ontologija? n n Dva sajta mogu uzajamno postavljati upite korišćenjem

Konkretno, šta omogućava zajednička ontologija? n n Dva sajta mogu uzajamno postavljati upite korišćenjem istih termina; q Na primer, sajt o filmovima koji su osvojili Oskara može da postavlja upite preko imena glumaca sajtu s biografijama glumaca da bi prikupio detaljnije ifnormacije o glumcima koji su igrali u nekom filmu. q Sajt s biografijama glumaca može da postavlja upite o sadržaju filmova na sajtu o filmovima koji su osvojili Oskara da bi dobio detaljnije informacije o filmu u kome je glumac igrao. Sa vezama koje su definisane u formalnoj veb ontologiji, dalje povezane informacije o glumcima i filmovima se mogu pribaviti a da korisnik ne mora znati da takve informacije uopšte postoje (gde je sniman film, filmovi istog režisera, šta se još dešavalo na dan premijere filma, itd. ).

Metadata Initiatives – Inicijative za metapodatke n Mnogi standardni rečnici, ili formalne ontologije koje

Metadata Initiatives – Inicijative za metapodatke n Mnogi standardni rečnici, ili formalne ontologije koje predstavljaju termne unutar nekog domena znanja su već slobodno dostupne – kreiraju ih organizacije za razne teme, kao što su medijski termini, biomedicinski termini ili naučni termini. Neki primeri su: q q q Dublin Core Metadata Initiative (DCMI) – Kreira ontologije za niz tema, posebno za teme važne u svakodnevnom životu i za medije Friend Of A Friend (FOAF) – fokusira se na standardni rečnik/ontologiju za potrebe durštvenog umrežavanja; Open. Cyc – Ontologija svakodnevnog, zdravorazumskog znanja.

Kreiranje ontologije n Koristi se: q q RDFS (RDF Schema, http: //www. w 3.

Kreiranje ontologije n Koristi se: q q RDFS (RDF Schema, http: //www. w 3. org/2000/01/rdfschema#) OWL (Web Ontology Language, http: //www. w 3. org/2002/07/owl#)

Izražavanje ontologije preko OWL i RDFS specifikacije – početni primer <rdf: RDF xmlns: rdf="http:

Izražavanje ontologije preko OWL i RDFS specifikacije – početni primer <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: rdfs="http: //www. w 3. org/2000/01/rdf-schema#" xmlns: owl="http: //www. w 3. org/2002/07/owl#" xmlns: dc="http: //purl. org/dc/elements/1. 1/"> Uvode se dva nova prostora imena: rdfs i owl Ontologija je takođe jedan RDF dokument <!-- OWL Header Example --> <owl: Ontology rdf: about="http: //www. linkeddatatools. com/plants"> <dc: title>The Linked. Data. Tools. com Example Plant Ontology</dc: title> <dc: description>An example ontology written for the Linked. Data. Tools. com RDFS & OWL introduction tutorial</dc: description> Zaglavlje identifikuje ontologiju </owl: Ontology> za to se koriste termini iz Dablinskog jezgra <!-- OWL Class Definition Example --> <owl: Class rdf: about="http: //www. linkeddatatools. com/plants#planttype"> <rdfs: label>The plant type</rdfs: label> <rdfs: comment>The class of plant types. </rdfs: comment> </owl: Class> </rdf: RDF>

Klase, podklase, individue n n n Prvenstvena uloga ontologije je da klasifikuje stvari prema

Klase, podklase, individue n n n Prvenstvena uloga ontologije je da klasifikuje stvari prema semantici, odnosno značenju. U OWL to se postiže korišćenjem klasa i podklasa, čiji primerci se nazivaju individue (pojedinci). Pojedinci koji se članovi date OWL klase se nazivaju proširenje klase. Klasa u OWL-u predstavlja svrstavanje pojedinaca u grupe koje dele iste karakteristike. Ako pojedinac pripada klasi, to govori nekoj mašinskoj aplikaciji da spada u semantičku kategoriju datu tom OWL klasom.

Klase i podklase - primer <rdf: RDF <!– prethodni prostori imena --> xmlns: plants="http:

Klase i podklase - primer <rdf: RDF <!– prethodni prostori imena --> xmlns: plants="http: //www. linkeddatatools. com/plants#"> <!-- OWL Header Omitted For Brevity --> <!-- OWL Class Definition - Plant Type --> <owl: Class rdf: about="http: //www. linkeddatatools. com/plants#planttype"> <rdfs: label>The plant type</rdfs: label> <rdfs: comment>The class of all plant types. </rdfs: comment> </owl: Class> <!-- OWL Subclass Definition - Flower --> <owl: Class rdf: about="http: //www. linkeddatatools. com/plants#flowers"> <!-- Flowers is a subclassification of planttype --> <rdfs: sub. Class. Of rdf: resource="http: //www. linkeddatatools. com/plants#planttype"/> <rdfs: label>Flowering plants</rdfs: label> <rdfs: comment>Flowering plants, also known as angiosperms. </rdfs: comment> </owl: Class>

Klase i podklase – primer (nastavak) <!-- OWL Subclass Definition - Shrub --> <owl:

Klase i podklase – primer (nastavak) <!-- OWL Subclass Definition - Shrub --> <owl: Class rdf: about="http: //www. linkeddatatools. com/plants#shrubs"> <!-- Shrubs is a subclassification of planttype --> <rdfs: sub. Class. Of rdf: resource="http: //www. linkeddatatools. com/plants#planttype"/> <rdfs: label>Shrubbery</rdfs: label> <rdfs: comment>Shrubs, a type of plant which branches from the base. </rdfs: comment> </owl: Class> <!-- Individual (Instance) Example RDF Statement --> <rdf: Description rdf: about="http: //www. linkeddatatools. com/plants#magnolia"> <!-- Magnolia is a type (instance) of the flowers classification --> <rdf: type rdf: resource="http: //www. linkeddatatools. com/plants#flowers"/> </rdf: Description> </rdf: RDF>

Šta se definiše ontologijom? n n n Prethodni RDFS i OWL “kod” definiše semantičke

Šta se definiše ontologijom? n n n Prethodni RDFS i OWL “kod” definiše semantičke termine, ili klase, u hijerarhiju. U semantičkom vebu, ova hijerarhija termina se naziva taksonomija. Grafički, taksonomija definisana preko RDFS i OWL je predstavljena slikom.

OWL svojstva n Pojedinci se u OWL povezuju preko svojstava. Postoje dva tipa svojstava

OWL svojstva n Pojedinci se u OWL povezuju preko svojstava. Postoje dva tipa svojstava u OWL: q Object properties (owl: Object. Property) povezuju indvidue (pojave) iz dve OWL klase; n q U prethodnom primerku individuu majca iz klase odeća sa indviduom bela iz klase boje. Datatype properties (owl: Datatype. Property) povezuju indvidue (pojave) iz OWL klasa sa konkretnim vrednostima. n U prethodnom primerku individuu majca iz klase odeća sa vrednošću 12 za veličinu.

Čemu sve ovo služi? n n n Podacima koji su predstavljeni preko ontologija i

Čemu sve ovo služi? n n n Podacima koji su predstavljeni preko ontologija i objavljeni na vebu, mogu se postavljati upiti preko standardnog jezika (SPARQL); Odgovori koji se dobijaju nalikuju “ljudskom zaključivanju” http: //www. linkeddatatools. com/introducing-rdf