The Resource Description Framework (RDF) W3C (World Wide Web Consortium) Primer: http://www.w3.org/TR/2004/REC-rdf-primer-20040210/ Concepts, Syntax, Semantics, Vocabulary, Test Cases
The Resource Description Framework (RDF)
W3C (World Wide Web Consortium)
Primer: http://www.w3.org/TR/2004/REC-rdf-primer-20040210/
Concepts, Syntax, Semantics, Vocabulary, Test Cases
Definicije
• The Resource Description Framework (RDF) je okvir (sistem, model) za predstavljanje informacija na Web-u.
• RDF je jezik za predstavljanje informacija o resursima na Web-u
• RDF modeluje metapodatke o resursimana Web-u
Motivacija• RDF treba da omogući da se preko Web-a
programski obrañuju podaci na isti način na koji se u konvencijalnom Web-u obrañuje hipertekst. Time se omogućuje distribuirana obrada podataka preko Web-a.
• Konvencionalni Web podržava korisnički pristup dokumentima, "stranicama" tekstova i slika, dok Semantic Web, zasnovan na RDF-u, treba da podrži pristup bazama struktuiranih podataka. RDF omogućuje softversko procesiranje Web informacija.
RDF Model podatakaRDF omogućuje formiranje iskaza o RDF resursima. RDF iskaz se formalno opisuje preko ureñenih trojki
<subjekat, osobina, objekat>
sa značenjem da resurs subjekat ima osobinu čija jevrednost resurs objekat.
Predmet
Nastavnik
Predaje
Zvanje
Naziv
Broj^as
1,1
1,M
[ifraPredm
NastId NastIme
Osnovni Model objekti-veze
Apstrakcija klasifikacije: Skup objekata iste vrste predstavlja se preko KLASE
Šema i Pojavljivanja
Dijagram pojavljivanja (RDF)
"Branko" "BazePod"Predaje
103
BrankoRed.Prof 2 + 2
03
BazePod
Zvanje NastIme
NastId
BrojCas Naziv
SifraPredm
RDF Model podataka- Identifikacija subjekata, objekata i osobina
• Identifikacija se vrši preko Uniform Resource Identifiers(URIs), odnosno URIrefs.
– Uniform Resource Locator(URL) pretstavlja osnovi mehanizam pristupa mrežnim lokacijama
– URI treba da identifikuje bilo šta, entitete koji nisu "network accesible" – neke realne i abstaraktne koncepe. URL je podskup
– RDF koristi i URI reference (URIref) –URI#identifikator fragmenta
http://www.example.org/index.html#section2
RDF MODEL
RDF Model podataka – "trojke" notacija"
<http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/staffid/85740> .
<http://www.example.org/index.html><http://www.example.org/terms/creation-date> "August 16, 1999" .
<http://www.example.org/index.html> (3) <http://purl.org/dc/elements/1.1/language> "en" .
(1)
(2)
Namespaces, Qualified name (QName) and Vocabulary
Da bi se skratilo pisanje uvodi se notacija koja se naziva kvalifikovano imersursa:
prefix : lokalno-imePrefix označava prostor imena:
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#rdfs: http://www.w3.org/2000/01/rdf-schema#dc: http://purl.org/dc/elements/1.1/owl: http://www.w3.org/2002/07/owl#ex: http://www.example.org/xsd: http://www.w3.org/2001/XMLSchema#
Namespaces, Qualified name (QName) and Vocabulary
exterms: URI:http://www.example.org/terms/exstaff: URI: http://www.example.org/staffid
ex:index.html dc:creator exstaff:85740.ex:index.html exterms:creation-date "August 16,
1999" ex:index.html dc:language "en"
Namespaces, Qualified name (QName) and Vocabulary
Skup URIref proko kojih se imenuje elementi iskaza u RDF-u na ziva se Rečnik (Vocabulary). Ovde se URIref prikazuju preko kvalifikovanih imena, pa se na taj ančin dobija skup kvalifikovanih imena sa istim prefiksom.
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#rdfs: http://www.w3.org/2000/01/rdf-schema#dc: http://purl.org/dc/elements/1.1/owl: http://www.w3.org/2002/07/owl#xsd: http://www.w3.org/2001/XMLSchema#
U jednom RDF modelu se mogu kombinovati različiti rečnici
Zašto URIref a ne literal
RDF Model podataka
• Zašto se ne koriste jednostavni nazivi za osobine (ime, starost i slično), već URIref?
• Razlog je precizno definisanje sematike pojedinih ososbina.
Semantika sledeće dve osobine je različita:
http://www.example.org/terms/namehttp://www.domain2.example.org/genealogy/terms/
name
Struktuirane vrednosti i "blank node"
• Svaka struktuirana vrednost (datum, adresa) može da se terira kao poseban resurs sa svojim URI. Umesto toga, pošto takve vrednosti same za sebe nemaju značenje može se uvesti koncept "blank node"
Struktuirane vrednosti i "blank node"
Imenovani blank node (može da postoji više blank nodova)
Neidentifikovani subjekat i "blank node"
• Neidentifikovani subjekat: "Postoji resurs tipa exterms:Person čija je e-mejl adresa mailto:[email protected], čije je ime Jane Smith, ..."
Tipovi literala
<http://www.example.org/staffid/85740> <http://www.example.org/terms/age> "27"^^<http://www.w3.org/2001/XMLSchema#integer> .
exstaff:85740 exterms:age "27"^^xsd:integer .ex:index.html exterms:creation-date "1999-08-16"^^xsd:date .
Rečnik XMLšeme je izvor tip. lit.
Tip resursa
Graf
Trojka
RDF/XMLsintaksa
XML sintaksa za RDF: RDF/XML
XML sintaksa za RDF: RDF/XML
1. XML declaration, sa datom verzijom XML-a
2. rdf:RDF pokazuje da sadržaj koji sledi, do kraja, pretstavlja RDF.
3. XML namespace deklaracije
4. Sledi opis (description) o (about) navedenom subjetu.
5. osobina
6. kraj opisa subjekta
XML sintaksa za RDF: Primer
XML sintaksa za RDF: Primer
rdf:ID pretstavlja identifikator fragmenta( fragment identifier)umesto
URIref http://www.example.com/2002/04/products#item10245
RDF Containers
• rdf:Bag - (neureñena grupa resursa ili literala sa mogućim duplikat.)
• rdf:Seq - (ureñena grupa resursa ili literala sa mogućim duplikatima)
• rdf:Alt – (grupa resursa ili literala od kojih se bira jedan)
RDF Containers
• Da bi se pretstvilo da resurs pretstavlja kontejner, dodeljuje mu se osobina rdf:type čija je vrednost neki od navedenih kontejnera
• Elementi kotejnera se eksplicitno navode u modelu preko container membership property. Nazivi ovih osobina imaju oblik
rdf:_ngde je n ceo broj veći od nule, bez vodećih nula.
• Ne moraju svi element kontejnera da budu navedeni.
RDF Containers
RDF/XML reprezentacija RDF kontejnera
rdf:li je mnemoničko ime uzeto zbog "list item" iz HTMLIz rdf:li redni brojevi, kao nazivi osobine člansta, se automatski
generišu
RDF Collections
• Za razliku od kontejnera u kome pojedini može da postoji još elemenata, pored navedenih, u kolekciji se navode svi elementi.
• Ako je resurs kolekcija on ima predefinisani tip
rdf:list, predefinisane ososbine za kretanje kroz listu rdf:firstrdf:firstrdf:firstrdf:first i rdf:restrdf:restrdf:restrdf:rest, i predefinisani resurs resursrdf:nilrdf:nilrdf:nilrdf:nil.
RDF Collections
RDF Collections- RDF/XML
RDF Reification
• Ponekad je potrebno opisati neki RDF iskaz. Opis RDF iskaza preko RDF rečnika se naziva reification. Definiše se poseban resurs, sa posebnim trojkama se opisuju njegov subjekat, predikat i objekat, pa se može dodati jošneka trojka za opis ovakvog iskaza.
RDF SchemaRDF Vocabulary Description Language 1.0:
RDF Schema[RDF-VOCABULARY],
• Specifikacija nekog specifičnog rečnika čiji će se elementi koristiti za specifikaciju RDF iskaza, odnosno specifikacija:
– vrste ili klase resursa koji će se koristiti
– specifične ososbine koje će se koristiti
– dodatna ograničenja na vrednosti pojedinih osobina
RDF Schema
• RDF Schema je sistem za definisanje tipova u RDF-u, sličan takvim sistemima u OO jezicima.
• Klasa: ekvivalentan koncept konceptu klase u OO jezicima. Klasa je bilo koji resurs koji ima osobin rdf:type čija je vrednost resurs rdfs:class.
ex:MotorVehicle rdf:type rdfs:Class .Preko osobinerdf:type iskazuje se da je neki resurs
pojavljivanje neke klase
exthings:companyCar rdf:typeex:MotorVehicle
Relacija specijalizacije imeñu rdfs klasa:
ex:Van rdfs:subClassOf ex:MotorVehicleex:MiniVan rdfs:subClassOf ex:Van
Tranzitivnost
Osobine
• U RDF šemi osobine se opisuju korišćenjem RDF
klase rdf: Property. Bilo koja osobina u RDF-u je
pojavljivanje klase rdf: Property
exterms:weightInKg rdf:type rdf:Property• RDF daje i mogućnost opisvanja veza imeđu
klase i osobine preko deve specifične osobine rdfs: rangerdfs: rangerdfs: rangerdfs: range (klasa iz koje neka ososbina može da uzme vrednost)rdfs: domainrdfs: domainrdfs: domainrdfs: domain (klasa koja ima datu osobinu)
Osobine i klase
ex:Person rdf:type rdfs:Classex:author rdf:type rdf:Propertyex:author rdfs:range ex:Person.
(Osobina Author dobija kao vredost pojavljivanje klase Person)
ex:age rdf:type rdf:Propertyex:age rdfs:range xsd:integer .
(Osobina ageuzima kao vrednost pojavljivanjetipa integer iz XMLSchema-e)
Osobine i klaseex:Book rdf:type rdfs:Classex:author rdf:type rdf:Propertyex:author rdfs:domain ex:Book .
(Osobina author je osobina klase Book)
Specijalizacija osobina
ex:driver rdf:type rdf:Property . ex:primaryDriver rdf:type rdf:Property . ex:primaryDriver rdfs:subPropertyOfex:driver .
Nastavnik Predmet
NastId NastIme SifraPred Naziv
Osobina(Property)
Class(Klasa)
Type
Type
Type
Type
Type Type
Predaje
Type
Domain Range
String
Integer
DomainRange
Range
Domain DomainDomain
IntegerRange
String
Range
"Branko"
Type
"BazePod"
Type
Drugačija sintaksa za šemuRDF šema
Ostali koncepti šeme
• Osobina rdfs:comment služi za verbalni opis nekog resursa.
• Osobina rdfs:label daje čoveku čitljivije ime resursa
• Osobina rdfs:seeAlso daje resurs koji može detaljnije da opiše subjekat.
• Osobina rdfs:isDefinedBy je podosobina rdfs:seeAlso i ukazuje na resurs koji je definisao posmatrani subjekat.
Primer RDF/XML šeme opis klasa
Primer RDF/XML šeme opis osobina
Primer RDF/XML – Pojavljivanje šeme ex:PassengerVehicle
RDF šema i drugi modeli (jezici)• U drugim modelima osobina (property, atribut) je u
"slab" u odnosu na klasu, opseg (scope) naziva osobine je klasa.
• U RDF-u osobina je "jak entitet" ("entitet prvog reda"). Osobina ima globalni opseg u modelu. Može se definisati i bez vezivanja sa klasom preko osobina "range" i "domain"
• U drugim modelima specifikacija šeme je propis. Ne može se kreirati klasa koja nema sve zahtevane atribute.
• U RDF-u specifikacija šeme je dodatni opis,objašnjene navedenih iskaza čija je interpretacija slobodna.
OWL (Web Ontology Language)
• Pored RDFschema mogu da postoje i drugi, semantički bogatiji, rečnici pojmova koji čiji će se koristiti za specifikaciju RDF iskaza
• Skup pojmova, njihovih meñusobnih odnosa i njihovih veza naziva se ontologija. Pojam ontologije je ekvivalentan pojmu meta modela u modelovanju podataka.
• Definišu se ontologije za mnoge oblasti. Sa te tačke gledišta pojam ontologije je ekvivalentan pojmu "analitičkog paterna"
ObjekatPosmatranja
TipObjekatPosmatranja Fenomen
0,M
0,M
JedinicaMere
Konverzija
DatoU1,1 0,M
Iz (0,M) U (0,M)
KonverzioniOdnos
Protokol
Merenja
IznosImaPojavlj
0,M
VremeMer
Vreme
0,M
1,1
S
VrstaVJ(1,1)
Trenutak PeriodPo~
Kraj
Vrednost
Vrednost
PratiSe
1,M 0,M
Po
1,1
0,M
Ontologija "Merenja"
OWL (Web Ontology Language)• OWL je semantički bogatiji i specijalizovan model,
vezan za RDF i XML, odnosno za "semantiči Web"
• OWL je jezik za iskazivanje značenja pojmova koji se koriste u Web dokumentima, da bi se Web dokumenti mogli "računarski" (programski) obrañivati.– OWL Lite podržava klasifijkacionu hijererhiju i
jednostavna ograničenja.
– OWL DL (Description Logic) maksimalna izražajnost i garantovana iračunljivost i odlučivost
– OWL Full mksimalna izražajnost, sintaksna sloboda, izračunljivost nije garantovana.
Relacione baze za Semantic Web
• Jena[JENA] je Java semantic web toolkit koji sadrži API za JDBC pristup različitim bazama podataka
• KAON [KAON] RDF Server koji koristi Enterprise Java Beans (EJB) za pristup relacionim bazama podataka
• Parka Database
• RDFSuite
• .....
JENA struktura relacione baze
JENA struktura relacione baze