440 likes | 660 Views
Programarea Clientului Web. s.l. dr. ing. Simona Caraiman mailto : sarustei@cs.tuiasi.ro. Universitatea Tehnica “ Gh. Asachi ” din Iasi Facultatea de Automatica si Calculatoare. Web Semantic. De ce Web Semantic?. Conţinutul semantic
E N D
Programarea Clientului Web s.l. dr. ing. Simona Caraiman mailto: sarustei@cs.tuiasi.ro Universitatea Tehnica “Gh. Asachi” din Iasi Facultatea de Automatica si Calculatoare
De ce Web Semantic? Conţinutul semantic este accesibil pentru oameni dar nu şi pentru calculatoare
Soluţia: Web Semantic • semnificaţiile datelor pot fidescoperite nu numai de oameni, dar şi decalculatoare • web-ulsemantic implică o viziune în care calculatoarele(prin software) ca şi oamenii pot găsi,citi, înţelege şi utiliza date din World Wide Webpentru 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 într-un 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 Calendar Rezervare zbor Geneva 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 siorganizatii (pt. IT) • un set de standarde interoperabile pt. interschimbul de cunostinte • o arhitectura pt. comunitatisi vocabulare interconectate Principii de independenţă a datelor: • modelarea datelor trebuie să ţină contde 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 deconexiuni pe care o resursă le are cu altele
Web Semantic - deziderate • asocierea de semantici legăturilor dintre resurse, cu posibilitatea extinderii acestor semantici; • posibilitatea de extindere si clasificare a resurselor Web • adoptatarea de specificații conceptuale; • 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; • partajarea de către utilizatori a cunoștințelor, indiferent de modul de stocare și de reprezentare a acestora.
Metadate ”Metadate”– ”date care descriu alte date” (cine le-a produs, când, în ce format se găsesc etc.) • 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: • sintaxă serializată pentru alte limbaje de marcare - ”limbajul de bază” pentru Web-ul semantic; • 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); • 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 • 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 class="vcard"> <img class="photo" src="www.example.com/bobsmith.jpg" /> <strong class="fn">Bob Smith</strong> <span class="title">Senior editor</span> at <span class="org">ACME Reviews</span> <span class="adr"> <span class="street-address">200 Main St</span> <span class="locality">Desertville</span>, <span class="region">AZ</span> <span class="postal-code">12345</span> </span> </div>
RDF – Resource Description Framework • 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ă. • 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 • Motivatie: distribuirea datelor pe Web • Web-ul = o baza de date distribuita • Requirements: • o maniera de a atasa metadate datelor (vocabulare de termeni) • un mod de a specifica relatii intre resurse (structuri de organizare a datelor) • Uzual, datele sunt reprezentate in forma tabelara (modelul relational) • 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 • Motivatie: distribuirea datelor pe Web • Web-ul = o baza de date distribuita • Requirements: • o maniera de a atasa metadate datelor (vocabulare de termeni) • un mod de a specifica relatii intre resurse (structuri de organizare a datelor) • Uzual, datele sunt reprezentate in forma tabelara (modelul relational) • 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 • 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 sub-claselor; • 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 • Ofera un model de specificare a triplelor (rand, coloana, valoare de celula) via identificatori uniformi de resurse – URI
RDF - Statements • combinatiadintre o resursa, o proprietatesivaloareaproprietatiiformeaza o Declaratie (Statement) • known as the subject, predicateand object of a Statement.
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 subject, predicateand object of a Statement. 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 • combinatiadintre o resursa, o proprietatesivaloareaproprietatiiformeaza o Declaratie (Statement) • known as the subject, predicateand object of a Statement.
RDF - Statements <?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 • elementelesintactice(cuvintele, marcatorii etc.) au acelaşiînțeles atâtpentru transmițător, cât şipentru destinatar • existenţa unui set comun de constrângeri • existenţa unui cadru conceptual comun oferind relații între clase deinformaț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 ontologiereprezintă 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ă realizezeaceleaş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 aceleanimale 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: • ocolecţ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 fiowl:Thing Relaţia de derivare a claselorse exprimă prinrdfs: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 teoriamultimilor Expresiile de clasa sunt asemenea constructorilorclaselor
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 clasesedeclară caaparţinând clasei respective şireprezintă un obiect al lumii (Thing). Este “înrudit” cu alte obiecte sau valori de dateviaProprietăţ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/meta-date) --> <owl:Thing rdf:about=”#Simfonia 9 "> <rdf:type rdf:resource="#Audio" /> </owl:Thing>
OWL – Sintaxa abstracta • Ontologie– o secventa de adnotari, axiomesi 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 • Fapteleexprima date fie despre un individ sau despre o pereche de identificatori ai indivizilor • Axiomelespecifica caracteristicile claselor si ale proprietatilor
Concluzii • Web-ul semantic ar trebui să permită ca datele, localizate oriunde peweb, 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ă realizezeaceleaşi inferenţe pe care lefac (unii) oameni. • Owlcuprinde: - categoriile, conceptele fundamentale - proprietăţile conceptelor - relaţiile si diferenţele dintre concepte