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