650 likes | 743 Views
7. Nyelvi paradigmák trendek - adatábrázolás megvalósítása. Dr. Bilicki Vilmos Szegedi Tudományegyetem Informatikai Tanszékcsoport Szoftverfejlesztés Tanszék. Tartalom. RUP – absztrakciós szintek Adatábrázolás Relációs OO Szemantikus Web. RUP – absztrakciós szintek. RUP.
E N D
7. Nyelvi paradigmák trendek - adatábrázolás megvalósítása Dr. Bilicki Vilmos Szegedi Tudományegyetem Informatikai Tanszékcsoport Szoftverfejlesztés Tanszék
Programrendszerek fejlesztése Tartalom • RUP – absztrakciós szintek • Adatábrázolás • Relációs • OO • Szemantikus Web
Programrendszerek fejlesztése RUP – absztrakciós szintek • RUP
Programrendszerek fejlesztése Nyelvek fejlődése
Programrendszerek fejlesztése Programozási nyelvek - adatkezelés • Logikai adatmodell • Fizikai adatmodell • Relációs • OO • Szemantikus Web
Programrendszerek fejlesztése A Web fejlődése • Web 1.0 • Web 2.0 • Web 3.0
Programrendszerek fejlesztése Web 1.0 • Az 1.0-ás web sikerénke hátterében az alábbi három technológia állt: • Egyszerű és egységes címzési séma az infomráció darabkák címzésére: Uniform Resource Identifiers (URIs) • Egyszerű és egységes reprezentációs formalizmus az információ darabkák struktúrálására annak érdekében, hogy a böngészők meg tudják jeleníteni Hyper Text Markup Language (HTML) • Egyszerű és egységes protokoll az információ darabkák eléréséreHyper Text Transfer Protocol (HTTP)
Programrendszerek fejlesztése Web 2.0 fontosabb eredményei • Négy fontosabb terület: • A tartalom fogyasztók és a tartalom gyártók közötti megkülönböztetés elmosása • Az egyedek számára készített médiától elmozdult a közösségek számára készített média felé • A szolgáltatás gyártók és a szolgáltatás fogyasztók közötti különbség elmosása • A humán és a gépi számítástechnika újszerű integrálása
Programrendszerek fejlesztése 1. A tartalom fogyasztók és a tartalom gyártók közötti megkülönböztetés elmosása Wiki, Blog-ok, és a Twiter a szöveges publikálást tömeges jelenséggé tették a flickr és a youtube hasonló eredményt ért el a multimédia területén
Programrendszerek fejlesztése 2. Az egyedek számára készített médiától elmozdult a közösségek számára készített média felé A szociális web oldalak: del.icio.us, facebook, FOAF, linkedin, myspace és Xing lehetővé teszik a közösségeknek, hogy gördülékenyen információt cseréljenek és együttműködjenek
Programrendszerek fejlesztése 3. A szolgáltatás gyártók és a szolgáltatás fogyasztók közötti különbség elmosása Mashups-ok segítségével a felhasználók mások által készített szolgáltatásokat integrálhatnak weboldalaikba
Programrendszerek fejlesztése 4. A humán és a gépi számítástechnika újszerű integrálása Amazon Mechanikus Török (Mechanical Turk)- lehetővé teszi humán szolgáltatások igénybevételét webszolgáltatás interfészen keresztül programok számárára elmosva ezzel a humán és a gépi szolgáltatás határát
A mostani Web korlátai • A mai Web technológia az alábbi területeken gyengén teljesít: • Megfelelő információ fellelése • Megfelelő információ kinyerése • Az infomráció összefűzése és újrafelhasználása Programrendszerek fejlesztése
A megfelelő információ fellelése • A mai webes keresés kulcs alapú keresésen alapul • Korlátozott pontosság: • Szinonímák: • Autókra keresve nem kapjuk meg a gépjárművekkel kapcsolatos oldalakat is • Homonímák: • Jaguárra keresve megkapjuk az autót és a vadon éllő állatot is. Egyikre lettünk volna kíváncsiak Programrendszerek fejlesztése
Megfelelő információk kinyerése • A weboldalból történő információ kinyerésre nincs általánosan használható megoldás • Sok különböző formátum, nyelv, kódolás, …. Melyik könyv szól a webről? Mennyibe kerül a könyv? Programrendszerek fejlesztése
Az XSLT nem megoldás • Weboldalanként lehetnének burkolók WEB HTML oldal Layout Struktúrált adat, Adatbázisok, XML Struktúra Burkoló kinyer annotál struktúrál Programrendszerek fejlesztése
Meg kell növelni az automatikus összeköttetések mennyiségét/képességét az adatok között Meg kell növelni a pontosságot Meg kell növelni az adat integrálás automatizáltságát A megoldás: szemantikát kell adni az adatokhoz, szolgáltatásokhoz! Hogyan léphetünk ezeken túl? Programrendszerek fejlesztése
„A szemantikus web a mai web egy kiegészítése amely segítségével az információnak jól definiált jelentése van, ezzel segíti elő a számítógépek és az emberek együttműködését” “The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation.”T. Berners-Lee, J. Hendler, O. Lassila, “The Semantic Web”, Scientific American, May 2001 Összefoglalva: A WWW következő generációja Az információnak van egy gépek által feldolgozható, megérthető szemantikája Nem különül el a mostani webtől, hanem kiegészíti azt A szemantikus web alapjait az ontológiák jelentik Mi a szemantikus web? Programrendszerek fejlesztése
Ontológia A tartomány konceptuális modellje (ontológiaelmélet) egy közös koncepció formális, egyértelmű specifikálása Egyértelmű terminológia definíciók Közösen elfogadott jelentés Gépek számára érthető Programrendszerek fejlesztése
Példa Koncepció A tartomány egy koncepcionális entitása Tulajdonság A koncepció egy leíró tulajdonsága Viszony A koncepció és a tulajdonságai közötti viszony Axióma Koherencia leírás a Koncepció/Tulajdonság/Viszony között logikai kifejezések formájában name email Person matr.-nr. research field isA – hierarchy (rendszertan) Student Professor attends holds Lecture lecture nr. topic holds(Professor, Lecture) => Lecture.topic = Professor.researchField Programrendszerek fejlesztése
Ontológia típusok Felső szintűO., Általános O. Alap O., Mag O., Magas szintű O, Felső O. Nagyon általános koncepciókat ír le, ezek nem függnek az adott probléma tartománytól. Idő, esemény, tér, … Általános feladattal, tevékenységgel kapcsolatos szótár a felső szintű ontológiában definiált koncepció specializálása Terület Ontológia Feladat & Probléma megoldásontológia Egy adott területtől függő szótárat ír le a magasabb szintű ontológiában található koncepciók specializációjával A legspecifikusabb. A koncepciók gyakran az adott terület konkrét szerepköreihez és az általuk végzett tevékenységekhez köthetőek Alkalmazás Ontológia Programrendszerek fejlesztése
Szemantikus web verem Rules: RIF Adapted from http://en.wikipedia.org/wiki/Semantic_Web_Stack Programrendszerek fejlesztése
RDF, RDF séma • RDF • Resource Description Framework • Adat modell • Szintaxis (XML) • Terület független • A szótárat az RDF séma határozza meg • RDF Séma • RDF Szótár Leíró Nyelv • Az adott terület szemantikus modelljét írja le Programrendszerek fejlesztése
Programrendszerek fejlesztése RDF alapok • RDF segítségével állításokat tudunk megfogalmazni az erőforrásokra vonatkozóan: • Jóska apja Balázs • Hármas adat modell <subject,predicate,object > • Alany: erőforrás vagy üres csomópont • Állítmány: tulajdonság • Tárgy: erőforrás, vagy erőforrás csoport, literális vagy üres csomópont • Csak bináris állítmányok
Erőforrások • Az erőforrás lehet • Web oldal (pl.:http://www.w3.org) • Egy személy (pl.:http://www.fensel.com) • Egy könyv (pl.:. urn:isbn:0-345-33971-1) • Minden URI-val jelölhető entitás! • Az URI egy azonosító és nem egy hely a weben • Az RDF segítségével állításokat írhatunk le az erőforrásokról • http://www.w3.orga formátuma text/html • http://www.fensel.coma keresztneve Dieter • urn:isbn:0-345-33971-1a szerzője Tolkien Programrendszerek fejlesztése
URI, URN, URL • A Uniform Resource Identifier (URI) egy karakterlánc amely egy név vagy egy erőforrás azonosítására szolgáll az interneten • A URI lehet URL vagy URN • A Uniform Resource Name (URN) egy entitás identitását definiálja • A URN urn:isbn:0-395-36341-1egy URI mely megadja az azonosító rendszert pl.: International Standard Book Number (ISBN), és az egyedi azonosítót ezen rendszeren belül • Az Uniform Resource Locator (URL) egy metódust ad e fellelésére • a URL http://www.inf.u-szeged.hu/~bilickiv/ azonosítja az erőforrást hozzáférhető, elérhető formában Programrendszerek fejlesztése
Szavak • Egyszerű szavak • Pl.:”BÁRMILYEN SZÖVEG” • A nyelv címke opcionális, pl.:”Hello, how are you?”@en-GB • Típusos szavak • Pl.:"hello"^^xsd:string, "1"^^xsd:integer • Ajánlott adattípusok: • XML séma adattípusok <http://example.org/#john>, <http://example.org/#hasName>, ”John Smith”ˆˆxsd:string Programrendszerek fejlesztése
Üres csomópontok • URI nélküli csomópontok • Névtelen erőforrások • Komplex konstrukciók • Az üres csomópontok reprezentálásá szintaxis függő • Üres csomópont azonosító • Például: <#john>, <#hasName>, _:johnsname _:johnsname, <#firstName>, ”John”ˆˆxsd:string _:johnsname, <#lastName>, ”Smith”ˆˆxsd:string Programrendszerek fejlesztése
RDF tárolók • A tulajdonság értékek csoportosítására: Programrendszerek fejlesztése
RDF gráf reprezntáció • Az AI területen az ilyen gráfokat szemantikus gráfoknak hívják (hármas) • Címkézett, irányított gráf • Csomópontok: erőforrások, szavak • Címkék: tulajdonságok • Élek: állítások Programrendszerek fejlesztése
RDF: közvetlenül csatol irányított gráf Programrendszerek fejlesztése
RDF Tárolók gráf ábrázolás: Bag “The lecture is attended by John, Mary and Chris” Programrendszerek fejlesztése
RDF Tárolók gráf ábrázolás : Seq “[RDF-Concepts] is edited by Graham and Jeremy (in that order)” Programrendszerek fejlesztése
RDF Tárolók gráf ábrázolás: Alt “The source code for the application may be found at ftp1.example.org, ftp2.example.org, ftp3.example.org” Programrendszerek fejlesztése
Szemantikus Web Verem Adapted from http://en.wikipedia.org/wiki/Semantic_Web_Stack Programrendszerek fejlesztése
Ontológia nyelvel szemben támasztott követelmények • Jól definiált szintaxis • Jó kifejezőképesség • Formális szemantika • Amire szükség van a következtetésnél, pl.: • Class membership • Equivalence of classes • Consistency • Classification • Hatékony követekzetetés támogatás Programrendszerek fejlesztése
OWL • Az ontólógiák objektumok a weben, saját verziózással, meta adatokkal, …. • Az ontológiák bővíthetőek • Tartalmaznak osztályokat, tulajdonságokat, adattípusokat, tartományokat, egyedeket • Egyenlőséget (osztály, egyed) • Osztályokat int példányokat • Számossági kényszereket • XML szintaxist Programrendszerek fejlesztése
Lite A tanulási idő rövidítése érdekében korlátolt DL • DL = Description LogicDescription Logics a First Order Logic (FOL) része, lehet következtetni lite Full unrestricted use of OWL constructs, but cannot reason DL Full OWL dialektusok Programrendszerek fejlesztése
OWL dialektusok • OWL Lite • (sub)classes, individuals • (sub)properties, domain, range • conjunction • (in)equality • cardinality 0/1 • datatypes • inverse, transitive, symmetric properties • someValuesFrom • allValuesFrom • OWL DL • Negation • Disjunction • Full cardinality • Enumerated types • hasValue • OWL Full • Meta-classes • Modify language Programrendszerek fejlesztése
OWL Syntax: Abstract Syntax • One of the clearer human-readable syntaxes Class(SpicyPizza complete annotation(rdfs:label "PizzaTemperada"@pt) annotation(rdfs:comment "Any pizza that has a spicy topping is a SpicyPizza"@en) Pizza restriction(hasToppingsomeValuesFrom(SpicyTopping)) ) Programrendszerek fejlesztése
OWL Syntax: N3 • Recommended for human-readable fragments default:SpicyPizza a owl:Class ; rdfs:comment "Any pizza that has a spicy topping is a SpicyPizza"@en ; rdfs:label "PizzaTemperada"@pt ; owl:equivalentClass [ a owl:Class ; owl:intersectionOf (default:Pizza [ a owl:Restriction ; owl:onPropertydefault:hasTopping ; owl:someValuesFromdefault:SpicyTopping ]) ] . Programrendszerek fejlesztése
OWL Syntax: RDF/XML • Recommended for serialisation <owl:Classrdf:ID="SpicyPizza"> <rdfs:labelxml:lang="pt">PizzaTemperada</rdfs:label> <rdfs:commentxml:lang="en">Any pizza that has a spicy topping is a SpicyPizza</rdfs:comment> <owl:equivalentClass> <owl:Class> <owl:intersectionOfrdf:parseType="Collection"> <owl:Classrdf:about="#Pizza"/> <owl:Restriction> <owl:onProperty> <owl:ObjectPropertyrdf:about="#hasTopping"/> </owl:onProperty> <owl:someValuesFromrdf:resource="#SpicyTopping"/> </owl:Restriction> </owl:intersectionOf> </owl:Class> </owl:equivalentClass> </owl:Class> Programrendszerek fejlesztése
Programrendszerek fejlesztése Osztályok/Példányok
Programrendszerek fejlesztése Osztály hierarchia
Programrendszerek fejlesztése Egyébb viszonyok
Programrendszerek fejlesztése Egyébb viszonyok
Programrendszerek fejlesztése Egyébb viszonyok (halmaz)
Programrendszerek fejlesztése Szűrések
Programrendszerek fejlesztése Szűkítések
Programrendszerek fejlesztése Felsorolások/inverz