Documente Academic
Documente Profesional
Documente Cultură
- ...limbajul natural
- ...XML
1
Comparaie cu limbajul natural
:Robert :worksAt :UniVie.
:Razvan :hasHairColor :Black.
:Patrik :likes :Beer.
:Susana :hasChild :Robert.
:Robert :hasChild :Razvan, :Patrik.
2
Comparaie cu limbajul
natural
Termenii din RDF sunt asemntori "cuvintelor" din limbajul natural, dar ceva mai
rigizi
nu au reguli gramaticale, morfologice, timpuri, declinri, acorduri etc.
au o form rigid impus de regulile de bun formare RDF i de structura URI
forma unui termen RDF nu variaz, pentru a permite calculatoarelor s formeze grafuri pe baza
reutilizrii (sunt permise totui sinonimele!)
nu sunt legai de o limb anume, nu se supun gramaticii vreunei limbi
O afirmaie (fapt) se aseamn cu o "propoziie" din limbajul natural, ceva mai rigid
se formeaz din trei termeni, conform bunei formri RDF subiect, predicat, obiect
se pot mbina n fraze mai complexe, cu ajutorul unor de "semne de punctuaie" (de ex.,
gruparea afirmaiilor cu acelai subiect din exemplul precedent)
O descriere se formeaz din mai multe afirmaii cu privire la acelai lucru (acelai
termen, sau sinonime ale aceluiai termen)
oricine poate face orice i oricte afirmaii cu privire la un acelai lucru, stocate oriunde
descrierile evolueaz n timp, pe msur ce se fac noi afirmaii
o descriere va conine diveri termeni, care la rndul lor au propriile descrieri
descrierile din surse diferite se pot completa reciproc sau pot fi contradictorii
descrierile complementare se pot conecta i mbogi reciproc
e vorba aici de "baze de cunotine distribuite"
interogrile "federative" vor colecta afirmaii din surse diferite, de pe servere diferite
descrierile contradictorii pot coexista n Web
"clienii" interogrilor vor decide asupra credibilitii sau a punctul de vedere preferat
Comparaie cu limbajul
natural
Unele descrieri sunt "controlate" (stocate ntr-un
vocabular/ontologie/terminologie) pentru a
fixa semnificaia unor termeni. Un astfel de
vocabular e asemntor cu un "dicionar
explicativ" care fixeaz semnificaia cuvintelor:
stimuleaz adoptarea pe scar larg a unui termen, cu o
anumit semnificaie
conine descrieri publice i controlate, ce trebuie s poat fi
interogate de oricine
e format din axiome (afirmaii ce indic proprietile
definitorii ale unui termen)
axiomele folosesc termeni standardizai i ali termeni
crora li s-a fixat n prealabil semnificaia (n acelai
vocabular sau n altele!)
Cum evolueaz termenii?
Faza 1. Un termen "se creeaz" prima dat cnd e folosit ntr-o afirmaie:
Am mncat mere.
Cum s-a creat cuvntul "mr"?
Atenie, cuvintele limbii romne nu a fost create de dicionarul limbii romne! Dicionarele doar colecteaz cuvinte care
s-au creat deja, pentru a permite i altora s le reutilizeze n acelai mod, cu aceeai semnificaie!
Faza 2. Ulterior crerii, diverse persoane pot adopta acel termen fcnd diverse afirmaii cu
acesta:
Am vzut nite mere. Merele sunt roii. Merele cresc n copac. Merele cost 3 lei/kilogram...
O mulime de afirmaii despre acelai lucru formeaz o descriere (altfel spus, o "descriere" = o enumerare de
proprieti). Fiecare nou afirmaie contribuie la mbogirea descrierii acelui lucru
Faza 3. Persoane diferite pot face descrieri diferite, cu termeni preluai din surse diferite:
Merele sunt roii. Merele sunt verzi. Merele cresc n copac. Merele cresc n ap.
Descrierile se pot completa reciproc, dar pot fi i contradictorii!
Faza 4. Cnd mai multe persoane se pun de acord asupra unei descrieri stabile, acea descriere
devine semnificaia termenului i, pentru a putea fi reutilizat, trebuie s inclus ntr-un dicionar
(vocabular, terminologie, ontologie). Aadar semnificaia e o descriere format din proprieti definitorii:
Merele sunt fructe, rotunde, comestibile, cresc n copaci din familia rozacee etc.
(acestea sunt exemple de proprieti definitorii, care mpreun dau semnificaia conceptului de Mere;
dac eliminm una, e posibil s nu mai vorbim de Mere!
astfel de afirmaii sunt considerate axiome i n RDF se bazeaz pe termeni standardizai)
Merele cost 3 lei/kilogram.
(aceasta e o proprietate nedefinitorie - mbogete descrierea, dar nu contribuie la semnificaia
conceptului de "Mere";
astfel de afirmaii nu trebuie s apar ntr-un vocabular, dar pot apare ntr-o baz de cunotine pentru a
fi interogate!)
Comparaie RDF-XML
Aa cum XML nu impune ce marcatori i atribute s folosim, RDF nu impune ce termeni
s folosim n afirmaii. Putem utiliza orice termeni, dar (deosebire de XML!) trebuie
s indicm obligatoriu proveniena fiecrui termen
"proveniena"="spaiul de nume"= o adres de domeniu pe care o deine creatorul termenul
n aceeai afirmaie putem mbina termeni de provenien diferit:
@prefix : <http://johnsmith.ro#>.
@prefix b: <http://buchmann.ro#>.
:Mary b:daughterOf :John.
(prin asta am indicat c termenii prefixai cu b: au fost creai de deintorul adresei de domeniu
buchmann.ro, iar termenii prefixai cu : au fost creai de deintorul adresei johnsmith.ro; deoarece
adresele de domeniu sunt unice n Internet, ele ofer o garanie de identificare a creatorilor cunotinelor)
Beneficiu major: Preluarea de termeni din alte surse permite conectarea grafurilor din baze
de cunotine diferite!
Observaii:
n exemplele din curs/seminar, se va presupune c deinem adresa http://expl.at (iar cnd sunt
necesare mai multe, http://other.at, poate i altele)
n diverse cri i tutoriale, se folosete adresa http://example.org (sau o adres cumprat de autorul
crii)
n exemplele voastre (inclusiv proiect) folosii o adres pe care o deinei deja sau folosii una fictiv,
cu numele vostru de familie
pentru a realiza exerciiile, adresa nu e obligatoriu s existe, ci doar s indice fr ambiguitate
"proprietarul termenilor" pe care i folosii
Comparaie RDF-XML
Ca i n cazul XML, termenii se scriu cu caractere UNICODE, deci pot fi
scrii n orice limb. Prin urmare este corect i afirmaia:
:Mary :fiicaLui :John .
(totui, e recomandat s folosim mereu acelai termen cnd ne referim la acelai
lucru... deci s nu scriem :fiicaLui ntr-o afirmaie, apoi :daughterOf n alta, cci
conectarea afirmaiilor n grafuri i interogarea lor se bazeaz pe reutilizarea
consistent a termenilor!)
Sintaxa RDF/XML:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://expl.at#">
<rdf:Description rdf:about="http://expl.at#Mary">
<ex:daughterOf rdf:resource="http://expl.at#John">
</rdf:Description>
</rdf:RDF>
(iat chiar un vocabular XML specializat pe afirmaii RDF!)
Comparaie RDF-XML
Aa cum vocabularele XML permit unor organizaii
s se pun de acord asupra unor structuri XML,
mai multe organizaii se pot pune de acord
asupra semnificaiilor unor termeni prin
definirea unui vocabular RDF (ontologie,
terminologie) :
Termenii unui vocabular vor indica prin prefix nu doar
creatorul, ci i vocabularul n care li s-a fixat
semnificaia
Semnificaia se fixeaz prin afirmaii definitorii cu
termeni standardizai ("axiome")
Termenii standardizai se preiau din terminologiile
standard oferite de W3C (OWL, RDF/S). Exemple de
termeni standardizai:
rdf:type (verbul "a fi")
Exemplu de fixare a semnificaiei (pentru
termenul b:rudCu)
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix b: <http://buchmann.ro/vocabularul-meu#>.
b:rudCu rdf:type owl:SymmetricProperty.
Relaia de "rudenie" e definit aici ca fiind o relaie reciproc, deci are
ntotdeauna loc n ambele sensuri (n mod implicit relaiile RDF sunt
unidirecionale!)
Aceasta e o semnificaie vag, ar trebui mbogit i cu alte axiome pentru
a detalia c relaia de rudenie poate nsemna frate, printe, bunic etc...
(pstrm totui exemplul minimal, cci trebuie s studiem mai nti toi
termenii standardizai)
Axioma trebuie stocat ntr-un vocabular on-line pe care oricine s l poat
consulta, la adresa indicat prin prefix (http://buchmann.ro/vocabularul-
meu)
Prefixele rdf: i owl: corespund terminologiilor standardizate de ctre W3C
Oricine va adopta termenul astfel definit va indica prin prefix vocabularul n care s-
a fixat semnificaia:
@prefix b: <http://buchmann.ro/vocabularul-meu#>.
@prefix : <http://organizatie-oarecare.ro#>.
:Mary b:rudCu :John.
Pe baza vocabularului, orice calculator va deduce n mod automat i afirmaia
Cum se folosesc
vocabularele/ontologiile?
Clienii vor consulta vocabularul pentru a construi interogri
fiind vorba de baze de cunotine distribuite n Web, trebuie s permitem interogarea lor de ctre
oricine, nu doar de ctre cei care le-au creat
clienii nu sunt neaprat umani, pot fi motoare de cutare, browsere, aplicaii desktop sau Web,
ageni software inteligeni
analogie cu MySQL: nu poi interoga preurile unor produse dac nu tii cum se numete cmpul
n care sunt stocate
Axiomele unui vocabular permit calculatoarelor s realizeze deducii logice automatizate
deduciile automate vor mbogi bazele de cunotine fr intervenie uman
unele deducii permit detectarea de contradicii (afirmaii ce contravin cu semnificaia fixat a
unor termeni)
afirmaiile contradictorii pot fi tolerate, dar trebuie detectate
Tipuri de resurse
Resurse adresabile = orice se poate accesa n Web printr-un URL
(fiiere, conturi e-mail, servicii Web, paragrafe din pagini HTML);
Resurse neadresabile = orice altceva (persoane, concepte, locuri
etc.), ceva ce exist n afara Web-ului, fiind identificabil printr-un URI
Resursele neadresabile pot fi "reprezentate" n Web de unele
adresabile:
O persoan (neadresabil) poate avea un cont de e-mail, o pagin Facebook, un CV
(adresabile)
Un ora (neadresabil) poate avea un site, o pagin Wikipedia, o imagine etc. (adresabile)
Noiunea de "frate" (neadresabil) poate avea o pagin Wikipedia, o pagin de dicionar
explicativ etc. (adresabile)
13
Resurse
Trebuie s fie clar cnd vorbim despre o resurs
adresabil i cnd despre una neadresabil:
@prefix : <http://buchmann.ro#>.
:MichaelJackson :frateCu :JanetJackson. (afirmaie despre persoan)
<http://www.michaeljackson.com> :creatCu :PHP.(afirmaie despre site)
<http://www.michaeljackson.com> :paginaLui :MichaelJackson. (afirmaie ce conecteaz persoana cu site-
ul)
Presupunnd c site-ul exist i nu putem modifica URL-urile fiierelor, vom realiza distincia n unul din modurile:
a) La nivel de termen:
@prefix : <http://www.michaeljackson.com#>.
:MichaelJackson :paginaLui :persoanaMichaelJackson.
b) La nivel de prefix:
@prefix : <http://www.michaeljackson.com#>.
@prefix t: <http://www.michaeljackson.com/termeni#>.
:MichaelJackson t:paginaLui t:MichaelJackson.
14
Relaia URL-URI
Atenie la posibila confuzie ntre URI i URL! Ambele ncep cu un protocol i o adres (de
domeniu sau IP):
URL sunt adrese, ele indic unde s-a gzduit un anumit fiier i cum poate fi accesat
n Web:
http://buchmann.ro/cv#experienta
(a se nelege: exist pe site-ul buchmann.ro o pagin cv cu un paragraf cu ID="experienta", ce
poate fi deschis cu browserul)
URI sunt identificatori (ca CNP-urile din buletin sau ISBN-urile la cri), ei indic doar
identitatea unui lucru i proveniena identificatorului:
http://buchmann.ro/voc#frate
(a se nelege: proprietarul domeniului buchmann.ro a definit termenul "frate", a crui semnificaie e
descris n vocabularul "voc" i poate fi folosit n orice afirmaii de ctre cei care l adopt)
Dileme:
16
RDF
RDF ofer*:
Un model de date, cu semantic formal i sintax
abstract (bazat pe grafuri)
Multiple sintaxe concrete (pentru serializarea grafurilor)
Un limbaj de interogare a grafurilor (SPARQL)
O terminologie standard de utilizat n axiome
Bune practici pentru publicarea grafurilor n Web
La origini, RDF a fost o tehnic de ataare de
metadate la diverse resurse Web (similar tagului
META pentru pagini Web)
A evoluat ntr-un model pentru reprezentarea
cunotinelor
*http://www.w3.org/2001/sw/wiki/Main_Page
*http://www.w3.org/standards/techs/rdf#w3c_all 17
RDF are
Sintaxele RDF
o sintax abstract (pentru proiectarea cunotinelor) = se refer la structura general
a grafurilor, nu la delimitatori, de aceea exemplele abstracte se dau adesea n form
grafic
mai multe sintaxe concrete (pentru serializare, adic scrierea cunotinelor ca text) =
se refer la delimitatori, iar unele sintaxe impun i cteva cuvinte cheie
http://expl.at#isMotherOf http://expl.at#isFatherOf
20
http://expl.at#Andrew
_:x
http://expl.at#hasAge
http://expl.at#isMotherOf http://expl.at#years
http://expl.at#Anna
http://expl.at#Peter
http://expl.at#isMotherOf http://expl.at#measuredIn
http://expl.at#Andrew http://expl.at#isFatherOf
http://expl.at#hasAge
te cuvinte: 20
_:X
prietatea poate deveni subiect (sau obiect!)
proprietate poate avea la rndul su proprieti
proprietile pot fi descrise (de obicei descrierile de proprieti apar n vocabulare 20
Exemplu n sintaxa
abstract
Prin gruparea unor afirmaii ntr-un graf identificat (cu
propiu URI), graful n ansamblul su poate deveni termen
al altor afirmaii:
Mary believes that Anna is the mother of Andrew and Peter.
http://expl.at#years
http://expl.at#isMotherOf
http://expl.at#Anna http://expl.at#Peter
http://expl.at#isMotherOf http://expl.at#measuredIn
e liefs
eB
# som
http://expl.at#Andrew xp l.at http://expl.at#isFatherOf
://e
http
http://expl.at#believes http://expl.at#hasAge
20
http://expl.at#Mary _:X
http://expl.at#isMotherOf http://expl.at#isFatherOf
20
http://expl.at#Andrew
_:x
http://expl.at#hasAge
Sintaxa Turtle:
@prefix : <http://expl.at#> .
:Anna :isMotherOf :Andrew, :Peter.
:Peter :hasAge 40; :isFatherOf [:hasAge 20].
Sintaxa N-triples:
<http://expl.at#Anna> <http://expl.at#isMotherOf> <http://expl.at#Andrew> .
<http://expl.at#Anna> <http://expl.at#isMotherOf> <http://expl.at#Peter> .
<http://expl.at#Peter> <http://expl.at#isFatherOf> _:x .
_:x <http://expl.at#hasAge> "20"^^<http://www.w3.org/XMLSchema#integer> . 22
<http://expl.at#Peter> <http://expl.at#hasAge>
Exemple n sintaxe concrete
Sintaxa N-triples:
<http://expl.at#Anna> <http://expl.at#isMotherOf> <http://expl.at#Andrew> .
<http://expl.at#Anna> <http://expl.at#isMotherOf> <http://expl.at#Peter> .
<http://expl.at#Peter> <http://expl.at#isFatherOf> _:x .
_:x <http://expl.at#hasAge> "20"^^<http://www.w3.org/XMLSchema#integer> .
<http://expl.at#Peter> <http://expl.at#hasAge>
"40"^^<http://www.w3.org/XMLSchema#integer> .
@prefix : <http://expl.at#> .
<http://expl.at#Anna> <http://expl.at#isMotherOf>
<http://expl.at#Andrew> .
<http://expl.at#Anna> <http://expl.at#isMotherOf>
<http://expl.at#Peter> .
:Peter :hasAge 40; :isFatherOf [<http://expl.at#hasAge> 20].
Exemplu cu graf identificat n
sintaxa abstract
Mary believes that Anna is the mother of Andrew and Peter.
http://expl.at#years
http://expl.at#isMotherOf
http://expl.at#Anna http://expl.at#Peter
http://expl.at#isMotherOf http://expl.at#measuredIn
lie fs
eBe
om
http://expl.at#Andrew l. at# s
xp http://expl.at#isFatherOf
://e
http
http://expl.at#believes http://expl.at#hasAge
20
http://expl.at#Mary _:X
25
Exemple cu graf identificat n
sintaxe concrete
Sintaxa TriG:
extensie Turtle ce permite gruparea afirmaiilor n grafuri (cu sau fr
identificator)
@prefix : <http://expl.at#> . Graf implicit, neidentificat
{:Mary :believes :someBeliefs.
:Peter :fatherOf [:hasAge 20].
:hasAge :measuredIn :years.} Graf identificat
Sintaxa N-quads:
extensie N-triples ce permite gruparea afirmaiilor n grafuri (cu sau fr
Graf implicit,
identificator) neidentificat
<http://expl.at#Peter> <http://expl.at#isFatherOf> _:x .
_:x <http://expl.at#hasAge> "20"^^<http://www.w3.org/XMLSchema#integer> .
<http://expl.at#hasAge> <http://expl.at#measuredIn> <http://expl.at#years> .
<http://expl.at#Mary> <http://expl.at#believes> <http://expl.at#someBeliefs> .
<http://expl.at#Anna> <http://expl.at#isMotherOf> <http://expl.at#Andrew>
<http://expl.at#someBeliefs> .
<http://expl.at#Anna> <http://expl.at#isMotherOf> <http://expl.at#Peter>
<http://expl.at#someBeliefs> . Graful identificat apare ca al
patrulea termen!