Transcript ppt

Programarea Clientului Web
s.l. dr. ing. Simona Caraiman
mailto: [email protected]
Universitatea Tehnica “Gh. Asachi” din Iasi
Facultatea de Automatica si Calculatoare
Web Semantic
De ce Web Semantic?
Conţinutul
semantic
este accesibil
pentru
oameni dar
nu şi pentru
calculatoare
Ce informaţii vede un calculator?
Soluţia: Web Semantic
 semnificaţiile datelor pot fi
descoperite nu numai de
oameni, dar şi de
calculatoare
 web-ul semantic implică o
viziune în care
calculatoarele (prin
software) ca şi oamenii pot
găsi, citi, înţelege şi utiliza
date din World Wide Web
pentru a realiza obiective
utile oamenilor.
Web Semantic
 Tim Berners-Lee:
Web semantic = ”o rețea de date care pot fi procesate
direct sau indirect de către mașini”
 Web-ul semantic = ”web al datelor”
permite mașinilor să înțeleagă semantica, sensul
informatiilor din spațiul WWW.
extinde rețeaua de pagini web (interpretabile de om)
prin inserarea de metadate (interpretabile de mașini)
 despre pagini
 despre modalitatea prin care acestea relaționează unele
cu celelalte
permite agenților automați să acceseze spațiul web întrun mod mult mai inteligent și să efectueze sarcini în
numele utilizatorilor.
Web Semantic - exemple
 Cautarea semantica
 publicarea datelor structurate extrase din
Wikipedia
 complex queries (Faceted Wikipedia
Search):
 “Rivers that flow into the Rhine and are
longer than 50 kilometers”
 “French scientists who were born in the
19th century”
Web Semantic - exemple
 Administrarea unei deplasari
Rezervare
zbor Geneva
Calenda
r
Nota: “reprogrameaza
sedinta de acupunctura
de marti, 27.03…”
Agent Web
Semantic
Preferinte
Mancare: veggie
Zbor: loc la geam
Hoteluri: Ramada,..
…
Listare
documente
confirmare
Update
aplicatie
contabilitate
Plata card
Rezervare
hotel
Geneva
Plata card
Web Semantic - Caracteristici
Conform Tim Berners‐Lee (2006):
 interoperabilitatea datelor intre aplicatii si organizatii (pt. IT)
 un set de standarde interoperabile pt. interschimbul de cunostinte
 o arhitectura pt. comunitati si vocabulare interconectate
Principii de independenţă a datelor:
 modelarea datelor trebuie să ţină cont de sintaxă, de semantică şi
de pragmatică
 modelarea datelor face implicitul explicit
 modelarea datelor trebuie să se realizeze într‐o manieră
descentralizată & standardizată
 datele sunt mai importante decât aplicaţiile
 valoarea datelor creşte proporţional cu numărul de conexiuni pe
care o resursă le are cu altele
Web Semantic - deziderate
o
asocierea de semantici legăturilor dintre
posibilitatea extinderii acestor semantici;
o
posibilitatea de extindere si clasificare a resurselor Web
o
resurse,
cu
adoptatarea de specificații conceptuale;
o
la nivel programatic, existenta unor entități capabile să
proceseze în manieră inteligentă informațiile și să raționeze,
oferind oamenilor și mașinilor servicii complexe;
o
partajarea de către utilizatori a cunoștințelor, indiferent de
modul de stocare și de reprezentare a acestora.
C9-Plug-ins.Extensii
Stiva Web Semantic
XML
XML este un standard pentru descrierea structurii
documentelor
XML SCHEMA
XML Schema este un limbaj ce impune constrângeri
asupra structurii documentelor XML
RDF
Este model de date pentru obiecte (resurse) şi
relaţiile dintre ele utilizând sintaxa XML
RDF SCHEMA
RDF Schema este un vocabular pentru descrierea
proprietăţilor şi claselor resurselor RDF, cu o
semantică pentru generalizarea/ ierarhizarea
acestora
OWL
OWL adaugă noi elemente de vocabular pentru
descrierea proprietăţilor şi claselor: among others,
relaţii între clase – disjointness, cardinalitate - exactly
one, egalitate, simetrie, etc.
Metadate
”Metadate” – ”date care descriu alte date” (cine le-a produs, când, în
ce format se găsesc etc.)
o
Meta-limbajul XML - nivelul de bază pentru realizarea schimbului
de date în manieră structurată sau semi-structurată, cu concursul
identificatorilor uniformi de resurse și a namespace-urilor;
Utilizări ale XML pentru Web-ul semantic:
o sintaxă serializată pentru alte limbaje de marcare - ”limbajul de
bază” pentru Web-ul semantic;
o separarea formei de conținut – un anumit vocabular XML poate fi
tradus în alte limbaje XML (XHTML) în vederea reprezentării la
nivelul clientului (navigatorului);
o format universal de schimb de date între aplicații distribuite,
aliniate Web-ului semantic, precum agenții software.
Metadate
Microformate
 Extind sintaxa HTML pt. a crea mark-up semantic
 Scop: procesarea automata a informatiilor
 Adauga metadate in paginile web pt. a descrie un
tip specific de informatie
 ex.: persoane, evenimente, produse, locatii
geografice, etc.
 Indicarea prezentei metadatelor:
 atributele (class, rel, id…) elementelor HTML
(<div>, <span>)
 Exemple:
 hCard, hCalendar, hMedia, hResume, hRecipe,
hReview…
<div>
<img src="www.example.com/bobsmith.jpg" />
<strong>Bob Smith</strong>
Senior editor at ACME Reviews
200 Main St Desertville, AZ 12345
</div>
Metadate
Microformate
 class="vcard">
Extind sintaxa HTML pt. a crea mark-up semantic
<div
class="photo"
src="www.example.com/bobsmith.jpg"
/>
<img
Scop:
procesarea
automata
a
informatiilor
<strong class="fn">Bob Smith</strong>
<span
Adauga
metadate in editor</span>
paginile web
a descrie un
class="title">Senior
at pt.
<span
class="org">ACME
tip specificReviews</span>
de informatie
<span
class="adr">
 ex.:
persoane, evenimente, produse, locatii
<span
class="street-address">200
Main St</span>
geografice, etc.
<span class="locality">Desertville</span>, <span

Indicarea
prezentei metadatelor:
class="region">AZ</span>
<span
atributele
(class, rel, id…) elementelor HTML
class="postal-code">12345</span>
(<div>, <span>)
</span>
</div>
 Exemple:
 hCard, hCalendar, hMedia, hResume, hRecipe,
hReview…
RDF – Resource Description Framework
o
o
o
o
meta-limbajul XML nu poate exprima semantici, ci doar
reflectă o manieră sintactică uniformă de structurare a
datelor;
asocierea resurselor cu metadat
Recomandare W3C (www.w3.org/RDF/)
RDF – mecanism de descriere a resurselor independent
de domeniul de folosire a datelor, fără a specifica a priori
vreo semantică.
o
o
descrierea resurselor trebuie să se realizeze într-o manieră
neutră, generală și extensibilă;
folosește limbajul XML pentru reprezentarea sintactică a
metadatelor;
RDF – Resource Description Framework
o
Motivatie: distribuirea datelor pe Web
o
o
Web-ul = o baza de date distribuita
Requirements:
o
o
o
Uzual, datele sunt reprezentate in forma tabelara (modelul
relational)
o
o
o
o
o maniera de a atasa metadate datelor (vocabulare de termeni)
un mod de a specifica relatii intre resurse (structuri de
organizare a datelor)
un rand descrie un obiect specific (“item”)
o coloana reprezinta o proprietate a tuturor item-ilor
o celula desemneaza o valoare particulara a unei proprietati
asociate obiectului de interes
Fragmente de date vor fi disponibile pe calculatoare
diferite, accesate via tehnologii Web actuale
RDF – Resource Description Framework
o
Motivatie: distribuirea datelor pe Web
o
o
Web-ul = o baza de date distribuita
Requirements:
o
o
o
Uzual, datele sunt reprezentate in forma tabelara (modelul
relational)
o
o
o
o
o maniera de a atasa metadate datelor (vocabulare de termeni)
un mod de a specifica relatii intre resurse (structuri de
organizare a datelor)
un rand descrie un obiect specific (“item”)
o coloana reprezinta o proprietate a tuturor item-ilor
o celula desemneaza o valoare particulara a unei proprietati
asociate obiectului de interes
Fragmente de date vor fi disponibile pe calculatoare
diferite, accesate via tehnologii Web actuale
RDF
o
o
o
o
sistem de clase similar celui din programarea orientată obiect;
colecție de clase (dezvoltată pentru un anumit scop specific) =
schemă;
clasele sunt organizate ierarhic – extensibilitate prin rafinarea subclaselor;
pentru crearea de noi scheme, se pleacă de la o schemă de bază
(clasă abstractă) – reutilizarea definițiilor de metadate;
Tipuri de obiecte pentru modelul de bază RDF:
 resurse – datele descrise de expresiile RDF (o pagină Web
completă, o parte a unei pagini sau un obiect care nu este direct
accesibil via Web - o carte tipărită);
 proprietăți – atribute sau relații ce descriu o resursă;
 declarații – resurse împreună cu proprietăți ale sale.
RDF Schema

extinde modelul RDF pentru a oferi posibilitatea interpretării la
nivel semantic a proprietăților exprimate prin intermediul
modelului RDF;

nu impune constrângeri în ceea ce privește modul de
exprimare sintactică a unei descrieri RDF asociate unei resurse.

definește unui vocabular particular privitor la datele exprimate
în RDF;

oferă un sistem de tipuri de bază pentru modelele exprimate în
RDF;

pune la dispoziție o sintaxă standardizată pentru specificarea
de ontologii și a unui set standard de primitive de modelare,
precum relații de tipul subclasă (subclass-of) sau instanță
(instance-of).
RDF - Reguli
 Identificarea resurselor – URI
 Descrierea resurselor – proprietati si valori ale
proprietatilor
 Resursa – orice are asociat un URI
 Proprietate – resursa care are un nume (ex.
“autor”, “homepage”)
 Valoarea proprietatii – ex. “Ion Creanga” (poate
fi o alta resursa)
RDF
o Ofera un model de specificare a triplelor (rand,
coloana, valoare de celula) via identificatori uniformi
de resurse – URI
RDF - Statements
 combinatia dintre o resursa, o proprietate si valoarea
proprietatii formeaza o Declaratie (Statement)

known as the
Statement.
subject,
predicate
and
object
of
a
RDF - Statements
 Subiect = rand: resursa despre care se “spune” ceva
 Predicat = coloana: o proprietate a subiectului
 Obiect = celula: valoare particulara a proprietatii
RDF - Statements
 combinatia dintre o resursa, o proprietate si valoarea
proprietatii formeaza o Declaratie (Statement)

known as the
Statement.
subject,
predicate
and
object
of
a
Statement:
”The author of http://users.cs.tuiasi.ro/~sarustei/ is Simona
Caraiman".



Subiectul este: http://users.cs.tuiasi.ro/~sarustei/
Predicatul este: author
Obiectul este: Simona Caraiman
RDF - Statements
 combinatia dintre o resursa, o proprietate si valoarea
proprietatii formeaza o Declaratie (Statement)

known as the
Statement.
subject,
predicate
and
object
of
a
Title
Artist
Country
Bob Dylan
USA
RDF - Statements
Empire Burlesque
Hide your heart
Bonnie Tyler
UK
Company
Price
Year
Columbia
10.90
1985
CBS Rec.
9.90
1988
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist>
<cd:country>USA</cd:country>
<cd:company>Columbia</cd:company>
<cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
……
</rdf:RDF>
OWL - Web Ontology Language
Necesitate :
 existenţa unui vocabular comun

elementele sintactice (cuvintele, marcatorii etc.) au acelaşi înțeles
atât pentru transmițător, cât şi pentru destinatar
 existenţa unui set comun de constrângeri
 existenţa unui cadru conceptual comun oferind relații între
clase de informații
 înțelegerea informațiilor nu va fi influențată de
cunoştințele inițiale nespecificate
Soluţia :
 Modelarea cunoştinţelor via ontologii
 OWL – proiectat pt. procesarea informatiilor
Ontologii
O ontologie reprezintă conceptualizarea unui domeniu de
cunoaştere într‐un format destinat a fi procesat de
calculator, format modelând entităţi, atribute, relaţii şi
axiome.
Ontologie ≡ catalog de tipuri de lucruri care se presupune că
există într‐un domeniu de interes D (domain) din
perspectiva unei persoane care utilizează un limbaj L cu
scopul de a discuta despre D.
O ontologie cuprinde:
 categoriile, conceptele fundamentale
 proprietăţile conceptelor
 relaţiile si diferenţele dintre concepte
Ontologii
Folosind ontologii, asociem semantici “lucrurilor”
despre care “vorbim”,
descrierile semantice “ajută ” calculatoarele să
pară “smart”.
Un program “smart” ar trebui sa fie capabil să
realizeze aceleaşi inferente pe care le fac (unii)
oameni.
Ontologiile pot fi folosite pentru a conecta
informatiile la context intr-o maniera neambigua
Ontologii: exemple
A human is a living thing.
A person is a human.
A person may have a first name.
A person may have a last name.
A person must have one and only one date of birth.
A person must have a gender.
A person may be socially related to another person.
A friendship is a kind of social relationship.
A romantic relationship is a kind of friendship.
A marriage is a kind of romantic relationship.
A person may be in a marriage with only one other person at a time.
A person may be employed by an employer.
An employer may be a person or an organization.
An organization is a group of people.
An organization may have a product or a service.
A company is a type organization.
Ontologii: exemple
There exists a person x.
Person x has a first name “Sue”
Person x has a last name “Smith”
Person x has a full name "Sue Smith"
Sue Smith was born on June 1, 2005
Sue Smith has a gender: female
Sue Smith has a friend: Jane, who is another person.
Sue Smith is married to: Bob, another person.
Sue Smith is employed by Acme, Inc, a company.
Acme Inc. has a product, Widget 2.0.
Setul de declaratii de mai sus impreuna cu ontologia cu care sunt
conectate formeaza o baza de cunostinte care, daca este
reprezentata formal in limbaj OWL, poate fi inteleasa de orice
aplicatie care “vorbeste” OWL.
Ontologii: exemple
Crocodil reprezintă un concept ai cărui membri sunt animale de un
anumit tip.
Ierbivor este un concept ai cărui membri sunt acele animale care
consumă doar plante ori părţi de plante.
Orice membru al clasei Crocodil este vorace (gurmand).
Un animal nu poate fi simultan Ierbivor si Carnivor.
Ontologii: exemple
Ontologii specializate:
-Biologie (GO – Gene Ontology)
-Comert electronic (GoodRelations)
-Muzica (MO – Music Ontology)
-Ontologia proceselor (serviciilor Web) – OWL-S
-Etc.
Niveluri OWL

OWL Lite (poate face o clasificare ierarhică şi simplă a
caracteristicilor de constrângere)

OWL DL (DL – Description Logic – oferă maximum de
expresivitate, fără pierderea completitudinii &
decidabilităţii)

OWL Full ( maximum de expresivitate şi flexibilitate, fără
a se pune problema completitudinii)
OWL Lite ⊂ OWL DL ⊂ OWL Full
OWL - Sintaxa
O clasă este:
 o colecţie de indivizi (obiecte, things,...)
 o modalitate de a descrie o lume
 reprezinta un “obiect” (“thing”) al lumii
O clasă se specifică prin owl:Class
Cea mai generală clasă va fi owl:Thing
Relaţia de derivare a claselor se exprimă prin rdfs:subClassOf
<owl:Class rdf:ID="Audio">
<rdfs:subClassOf rdf:resource="#Multimedia" />
</owl:Class>
OWL - Sintaxa
Expresii de clasă:










reuniune <owl:unionOf>
intersecţie <owl:intersectionOf>
complementara <owl:complementOf>
echivalenta<owl: equivalentClass>
un element <owl:oneOf>
toate elementele <owl:allValuesFrom>
unele elemente <owl:someValuesFrom>
cardinalul maxim <owl:maxCardinality>
cardinalul minim <owl:minCardinality>
disjuncţie <owl:disjointWith>
OWL - Sintaxa
Elefantul nu este nici carnivor, nici omnivor
<owl:Class rdf:ID=“Elefantul">
<rdfs:subClassOf rdf:resource="#Ierbivor" />
<owl:disjointWith rdf:resource="#Carnivor />
<owl:disjointWith rdf:resource="#Omnivor" />
</owl:Class>
Semantica operaţiilor e conformă cu teoria multimilor
Expresiile de clasa sunt asemenea constructorilor claselor
Sintaxa OWL
OWL - Sintaxa
Proprietăţile



relaţii binare care pot specifica fapte privitoare la membrii
unei clase sau la indivizi
se refera la tipurile de date (datatype property)
se refera la obiecte (object property) văzute drept colecţii de
relaţii între indivizi (şi date)
Elefantul mananca frunze,flori,iarba
<owl:ObjectProperty rdf:ID=“mananca frunze,flori,iarba">
<rdfs:domain rdf:resource="#Ierbivor" />
</owl:ObjectProperty>
OWL - Sintaxa
Un individ (membru) al unei clase se declară ca aparţinând
clasei respective şi reprezintă un obiect al lumii (Thing).
Este “înrudit” cu alte obiecte sau valori de date via Proprietăţi.
<!-- definim individul -->
<owl:Thing rdf:ID=“Simfonia 9">
<rdfs:comment>Compusa de Beethoven</rdfs:comment>
</owl:Thing>
<!-- ulterior, specificăm tipul lui (eventual proprietăţi/metadate) -->
<owl:Thing rdf:about=”#Simfonia 9 ">
<rdf:type rdf:resource="#Audio" />
</owl:Thing>
OWL – Sintaxa abstracta
 Ontologie – o secventa de adnotari, axiome si
fapte.
 Adnotari – contin meta-date atat orientate-masina cat si
oameni.
 Informatiile despre clasele, proprietatile si indivizii ce compun
o ontologie sunt continute doar in axiome si fapte.
 Fiecare clasa, proprietate sau individ este fie anonim fie
identificat printr-un URI
 Faptele exprima date fie despre un individ sau despre o
pereche de identificatori ai indivizilor
 Axiomele specifica caracteristicile claselor si ale
proprietatilor
Exemple –Altova SemanticWorks
Concluzii



Web-ul semantic ar trebui să permită ca datele,
localizate oriunde pe web, să fie accesibile şi înţelese
atât de oameni, cât şi de calculatoare.
Folosind ontologii, asociem semantici “lucrurilor” despre
care “vorbim”, descrierile semantice “ajuta”
calculatoarele să pară “smart”. Un program “smart” ar
trebui sa fie capabil să realizeze aceleaşi inferenţe pe
care le fac (unii) oameni.
Owl cuprinde:
- categoriile, conceptele fundamentale
- proprietăţile conceptelor
- relaţiile si diferenţele dintre concepte