Web Information Systems Geert-Jan Houben Hypermedia hypertext + multimedia – informatie-objecten (tekst, plaatjes, animaties, audio, video) – alles in één keer tonen gaat niet: • layout • timing • navigatie – presentatie ontwerpen of genereren, voor Web, Wap, PDAs, etc. Evolutie in Hypermedia • vroeger: stand-alone specialpurpose systemen • nu: alles is Web-based – van authoring naar designing en dan naar generating – van statisch naar dynamisch – van single site naar portals – van read-only naar interactief en vaak ook collaboratief Drie Generaties Web • 1: door auteur geschreven HTML – eenvoudig, eenvormig interface – grote onderhoudsinspanning – niet geschikt voor veranderende info • 2: automatisch genereren van info – eerst met templates (en databases) – later met XML en XSLT transformaties • 3: automatische verwerking van info – expliciete meta-data (RDF) – afspraken over betekenis (ontologieën) Web-based IS • Web-browser als front-end • Database als back-end • Ontwerp van: – datastructuren (vgl. ER-modelleren) – presentatie (layout) – navigatie • Implementatie: – on-line (directe database toegang) – off-line (uit database gegenereerd) RMM Relationship Management Methodology – basis: entity-relationship modellering – transformatie van datamodel naar een data+navigatiemodel – RMDM: Relationship Management Data Model geeft objecten en navigationele verbanden weer RMDM • (applicatie)domein model primitieven – entiteiten – attributen – verbanden • slices om grote objecten (met vele attributen) op te splitsen in kleinere eenheden met (samenhangende) attributen Volledig RMDM Schema Toekomst van het Web 1. gemeenschappelijke syntax • • HTML: een vaste set tags maakt het moeilijk om informatie-elementen te benoemen XML: laat toe datastructuren te definiëren: • • • • tags met vrij te kiezen namen vrij te kiezen attributen eenvoudige definitie: DTD uitgebreide definitie: XML-Schema <skills> <people> <person> <name>Bob</name> <know-how>Quilt</know-how> </person> <person> <name>Peter</name> <know-how>Quilt</know-how> <know-how>XML-GL</know-how> </person> </people> <seminars> <seminar> <topic>Quilt</topic> <participant> <name>Karin</name> <name>Alice</name> </participant> </seminar> </seminars> </skills> Toekomst van het Web 2. beschrijving van betekenis:RDF • • • resource: verwijst naar een informatie-item, vb. via een URL property type: naam van een eigenschap van de resource value: waarde voor die eigenschap voorbeeld: resource=URL van webpage, property type=“author”, value=“John Smith” <?xml:namespace ns = "http://www.w3.org/RDF/RDF/" prefix = "RDF" ?> <?xml:namespace ns = "http://purl.oclc.org/DC/" prefix = "DC" ?> <?xml:namespace ns = "http://person.org/BusinessCard/" prefix = "CARD" ?> <RDF:RDF> <RDF:Description RDF:HREF = "http://uri-of-Document-1"> <DC:Creator RDF:HREF = "#Creator_001"/> </RDF:Description> <RDF:Description ID="Creator_001"> <CARD:Name>John Smith</CARD:Name> <CARD:Email>[email protected]</CARD:Email> <CARD:Affiliation>Home, Inc.</CARD:Affiliation> </RDF:Description> </RDF:RDF> Toekomst van het Web 3. betekenis: ontologieën • • • ontologie = een woordenschat met daaraan verbonden betekenis mogelijkheid om synoniemen, specialisaties en andere verbanden te definiëren gebruik van dezelfde ontologie = overeenkomst over wat de woorden (tags, attributen) betekenen Toekomst van het Web 4. Logica: om conclusies te trekken • nodig bijv. in electronic commerce (wat betekenen berichten die klant en leverancier uitwisselen?) 5. Einddoel: vertrouwen in de betekenis van communicatie tussen Web-systemen, en daardoor mogelijkheid tot automatisering met agents XML Querying (in XQL): //person/name[../know-how="Quilt"] $union$ //seminar[topic="Quilt"]/participant/name Hera project • doel: ondersteun ontwerp (specificatie) van WIS met “hypermedia access” • data afkomstig uit heterogene legacy informatiesystemen of het WWW • multimedia-data • customization + personalization • nadruk op navigatie en relaties partners: CWI en Philips Hera applicaties • • • • • • onroerend-goed verkoop medewerkers-databases museum-databases post-order-catalogi veilingen EPG (elektronische TV-gids) Voorbeeld EPG (Philips) Voorbeeld EPG (Philips) Hera architectuur XML querytaal • XML voor data-uitwisseling op het Web • W3C probeert standaard te ontwikkelen: XML Query Working Group • XML Query Data Model XML data <dbgroup> <member> <name>Smith</name> <age>28</age> <office><building>A</building> <room>6</room></office> </member> .. <member> <name>Clark</name> <age>35</age> <office><building>A</building> <room>7</room></office> </member> </dbgroup> XML-QL • • • • Graph-based SELECT-WHERE like SQL Features from semistructured data Regular path expressions WHERE <member> <name> $n </name> <age> $a </age> <office><building> $b </building><room> $r </room></office> </member> ELEMENT_AS $m IN “www.a.b.c./dbgroup.xml” a < 30 CONSTRUCT $m Lorel • Literal trees • Extension of OQL SELECT db.member FROM dbgroup db WHERE db.member.age < 30 XQL • Extension of XSL pattern language (now XPath) • Origin in document processing community • Result always preserves document ordering and hierarchy member [age < 30] Quilt • Small implementable language for W3C • For data from various sources • XML-QL, XQL, SQL, OQL • Tree-like data model FOR $m IN document (“www.a.b.c/dbgroup.xml”)//member WHERE $m/age < 30 RETURN $m Other XML query languages • XML-GL • XQuery • XPointer • XML Algebras XPath • Path expressions in OO databases /Students/Student/Status • Semistructured: – missing parts /Students//Status – conditions /Students/Student[Status=“U4”] • Indexing, wildcards • Selection, string manipulation, aggregation, attribute existence, union XQuery • http://www.w3.org/XML/Query • “the” standard for XML querying RDF Query Language • Querying RDF metadata – SQL/XQL style approach, viewing RDF metadata as relational or XML database [RDF Query Specification (IBM)] – viewing Web descr. by RDF metadata as knowledge base, applying knowledge representation and reasoning techniques [W3C related] Web programming • Fixed (HTML) pages • Style sheets • Client-side programming (javascript, applets) • Server-side programming: – CGI – JAVA servlets – HTML++ / XML++ (SSI: php, asp, jsp, xsp)