30. August 2004 Inf 329 Kapittel 3 Hypertekstmodell Arianna Kyriacou Eskil Saatvedt
Introduksjon Kapittel 3 omhandler WebML, (hypertext moduling language), som er basert på notasjon av enheter, sider og linker. Enheter beskriver innholdselementene som skal vises, sider indikerer hvordan enheter skal settes sammen og linker beskriver forbindelsen mellom enheter og/eller sider. Flere hypertekster, kalt nettsteds oversikt, kan defineres over samme innhold, og tilby flere forskjellige presentasjoner. Kapittelet tar for seg notasjonen og modellen bit for bit. 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 2
30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 3
30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 4
Enheter / Units Enhetene er byggesteinene for en nettside. Enheter er betegnelsen WebML bruker for å spesifisere innholdet til en nettside. WebML spesifiserer hvor innholdet stammer fra eller hvordan det hentes. WebML har fem forskjellige typer enheter: Dataenheter Multidataenheter Indeksenheter Skrollbare enheter Inntastinsenheter For mer informasjon om notasjon og WebML grafisk syntaks se appendiks A og B i boka. 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 5
Enheter WebML har to konsepter for å vise hvor innhol stammer fra Kilden er navnet på entiten som enhetens innhold hentes fra. Entiteten forteller hvilken type objekt som brukes for å generere enhetens innhold. En enhet kan assosieres med en eller flere entiteter. En velger (selector) er et predikat som brukes til å finne det eller de objektene og entitetene som brukes for å generere enhetens innhold. 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 6
Enheters syntaks Entiteter er grafisk fremstil som et navngitt rektangel. Enhetens navn står inni rektangelet over ikonet. Ikonet sier noe om typen enhet. Kilden og velgeren settes under rektangelet. Data unit Entity [conditions] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 7
Dataenheter Dataenheter publiserer et enkelt objekt fra en gikk kilde. Dataenheter karakteriseres ved: Navn: brukergitt navn på enheter Kilde: entiteten innholdet hentes fra Velger(valgfri): et predikat som identifiserer et unikt objekt, som blir vist av enheten. Inkluderte atributter: settet av atributter fra entiten som skal vises. DataUnit Navn(source Kilde; selector Velger; attributes InkluderteAtributter) DataUnit Artist(source Artist; selector FirstName= Celine, LastName= Dion ; attributes FirstName, LastName, Photo) Data unit Entity [conditions] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 8
Artists Artists [FirstName= Celine ] [LastName= Dion ] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 9
Multidataenhet Multidataenheter presenterer flere objekter fra en entitet sammen ved å presentere flere dataenheter. Multidataenheter karakteriseres ved: Navn: Brukerdefinert navn Kilde: Entiteten innholdet hentes fra Velger (valgfri): Et predikat som identifiserer et unikt objekt, som blir vist av enheten. Atributter: Settet av atributter fra entiteten som skal vises. Rekkefølge(valgfri): Rekkefølgen som objektene skal vises i. MultidataUnit <MultidataUnitName> ( source <EntityName> ; [ selector <SelectorDef>] ; [attributes <Attrname>] ; [orderby <OrderByDef> ] ) Multidata unit Entity [conditions] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 10
Eksempel på multidataenhet MultiArtist Artist 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 11
Indeksenhet Indeksenheter presenterer flere objekter som en liste Indeksenheter blir karakterisert ved: Navn: Brukerdefinert navn Kilde: Entiteten som innholdet hentes fra Velger (valgfri): Et predikat som identifiserer et unikt objekt, som blir vist av enheten. Atributter: Settet av atributter fra entiteten som skal vises. Rekkefølge (valgfri): Rekkefølgen objektene skal vises. Indeksenheter brukes typisk til å lage lister av linker. Det finnes tre typer indeksenheter: Indeksenhet Flervalgsindeksenhet Hierarkiskindeksenhet Index unit Entity [conditions] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 12
Flervalgsenheter og Hierarkiske enheter HierarchicalIndex Multichoice Index Entity1 [Selector1] NEST Entity2 [Selector2] Entity [conditions] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 13
Skrollbare enheter Skrollbare enheter gir mulighet til å gå igjennom objekter et (eller flere) av gangen. Skrollbare enheter blir karakterisert ved: Navn: Brukerdefinert navn Kilde: Entiteten innholdet hentes fra Velger(valgfri): Et predikat som identifiserer et unikt objekt, som blir vist av enheten. Blokkeringsfaktor (valgfri): Antallet objekter som skal skrolles av gangen, normalt en. Atributter: Settet av atributter fra entiteten som skal vises. Rekkefølge (valgfri): I hvilken rekkefølge objektene skal skrolles igjennom. Eksempel: visning av bilde nr 7 av 34. Scroller unit Entity [conditions] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 14
Inntastingsenhet Inntastingsenheter er enheter som lar bruker skrive inn data, vi kjenner dette som html <forms> Inntastingsenheter blir karakterisert ved: Navn: brukerdefinert navn Felter: Et sett av felter for input verdier. Felter blir karakterisert ved: Navn: Brukerdefinert navn Type: Datatypen til feltet, integer, date, string etc Standardverdi (valgfri): Verdien som står i feltet ved første visning. Forandrbar: Om det er lov til å endre feltet. Korekthetspredikat: Bolsk verdi som forteller om verdien skal sjekkes eller ikke. Eksempler: Inntasting av brukernavn og passord ved innlogging. Entry unit 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 15
Sider Sider er en abstrakt versjon av den siden som blir sendt til bruker. Består av en eller flere enheter eller sider. Enhetene er fote gruppert sammen for å danne et fungerende grensesnitt. WebML er abstrakt og spesifiserer ikke hvordan siden ser ut eller hvordan objekter ligger i forhold til hverandre. Sider spesifiseres ved navn og hvilke undersider og enheter den inneholder. Page AlbumPage(units AlbumIndex, ArtistIndex) Page Index unit Entity [conditions] Data unit Entity [conditions] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 16
Linker Sider eksisterer ikke alene, vi lever i en nettverden med massevis av linkete sider som inneholder relaterte biter av innhold, dette krever at brukeren gies mulighet til å samspille med programmet som genererer sidene. For å utrykke dette samspillet, kan sider og enheter linkes, vi ønsker å spesifisere den tillatte navigasjonen mellom sider, de valg gitt bruker og effekten av de valg bruker gjør sammen med det innholdet som vises. 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 17
Linker En link har følgende konsepter: Link: En rettet forbindelse mellom to enheter eller sider. Parameter: En spesifikasjon av en bit informasjon som linken transporterer med seg. Parametrisk velger: En enhetsvelger der predikatet inneholder en referanse til en link-parameter. Eksempler på hva som kan oppfattes som en link: En link som refererer fra en side til en annen side. En link som refererer fra et sted på en side til et annet sted på en side. En link som sender informasjon. Essensen av en link: De lar brukeren navigere ved å flytte fokus fra en kilde på en side til en destinasjon. Transport av informasjon fra en enhet til en annen. 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 18
Linker Flere-side-link: En link som går fra en side til en annen. Intern-link: En link som går fra et sted på en side til en destinasjon på samme side. Kontekstuelle link: En link som transporterer informasjon. Ikke-kontekstuelle link: En link som ikke transporterer informasjon 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 19
Linker i WebML En link representeres som en rettet pil fra kilde til destinasjon. Notasjon: Link <LinkName> ( from <LinkSource> to <LinkDest> [ ; parameters <ParamDef>] [ ; type (automatic manual)] [ ; newwindow : (True False)] Params 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 20
Automatiske linker I tillegg til navigasjon kan linker bli brukt til å spesifisere en bestemt informasjonsstrøm mellom enheter, som skjer uten brukers innblanding. Automatiske linker vises med en rettet pil med en innbokset A på. Params A 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 21
Eksempel på automatisk link Albums AlbumIndex AlbumDetails Album Album Albums AlbumIndex AlbumDetails A Album Album 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 22
Transportlinker Transportlinker er linker som brukes til å sende informasjon fra en enhet til en annen, uten at de har et anker. De tegnes som en stiplete rettet pil. Params 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 23
Globale parametre Dette er parametere som er globale for hele nettstedet. Verdien til paramtereren er assosiert med brukerens session. Informasjonene sendes ikke fra enhet til enhet men kan nåes globalt på nettstedet. En global parameter inneholder: Navn: Brukerdefinert navn Type: Datatype Standardverdi (ikke påkrevd) Typisk eksempel på globale parameter er språk og innlogging. 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 24
Set- og get-enhet Linker til set-enheten er normalt en Transportlink. En bruker set- og getenhet for å sette og hente globale linker. Set unit Parameter Get unit Parameter 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 25
Eksempel på setting av land Link CountryDataToSetCountry transport (from CountryData to SetCountry) Country CountryData SetCountry setunit SetCountry (parameter CurrentCountry) getunit getcountry (parameter CurrentCountry) Country Country GetCountry CurrentCountry CurrentCountry CountryData Country 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 26
Hypertekst Organisering Spesifikasjonen av store og komplekse hypertekster kan organiseres hierarkisk ved å bruke modulariseringskonstruksjoner. Eksempler på slike er oversikter(views) områder(areas) nøstede sider 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 27
Nettstedsoversikt (Site-Views) Er et sett med sider og/eller områder som utformer en enhetlig oversikt over nettstedet. Multible nettstedsoversikter kan utformes over samme datamodell. Forskjellige typer nettstedsoversikter kan publiseres for forskjellige typer brukere. En Nettstedsoversikt kan være public (tilgang for alle) eller private(krever brukernavn og passord for å få tilgang). Siteview 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 28
Hjemmesider, Landmerker og Områder Hjemmesiden er hovedsiden til et nettsted og må være unik innen nettstedsoversikten. Grafisk notasjon er en innbokset H. Det er normalt at hjemmesiden kan nåes fra hele nettstedet. Homepage H 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 29
Landmerker Et landmerke er en side som kan nåes fra alle sidene innen en nettstedsoversikt eller et superområde. Landmerke er globalt synlig innenfor nettstedsoversikten / området. Et landmerke tilsvarer en ikkekontekstuell link implisitt definert fra alle sider, og reduserer betydelig antallet av slike linker som må tegnes opp i skjemaet. Grafisk notasjon er en innbokset L. Landmark page 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 30 L
Områder Områder er et sett med logisk homogene sider. Områdene kan være nøstet slik at subområder kan defineres inni områdene. Hvert område bør ha en default side eller et default område. En default side må være unik innen et område. Grafisk notasjon en inbokset D. Company siteview Area Customer information area Contact us D Support L 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 31
Eksempel Company siteview CustomerInformation area L Area CorporateNews area Area Home H L L 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 32
Nøstede sider Nøstede sider er en hierarkisk struktur av sidene. Ved å dele dem inn i sub-sider. Vi har to typer: Conjunktive sider: AND-sub-sider, vises samtidig på supersiden. Disjunktive sider: OR-sub-sider, erstatter hverandre (kun en vises av gangen) 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 33
Mønstre for innholds publisering Organiseringen av nettsider følger ofte typiske mønstre som dukker opp i mange sammenhenger og på mange sider. Boken nevner noen: Fordypende indeks: Fra en indeks til en underindeks. Eks bøker-kapitlerunderkapitler Filtrert indeks: Et søk gir flere svar, hvorav et følges opp. Filtrert skrollet indeks: et søk gir mange svar som vises side for side. Typisk for søkemotorer. Gaidete turer: En forhåndsoppsatt rekkefølge å se på sidene. Indekserte gaidete turer: En forhåndsoppsatt rekkefølge på hvordan man skal se sidene med mulighet til å forflytte seg i indeks. Objektvisninger. En rekke av flere linkete dataenheter hvor hver dataenhet gir en annen visning av objektet. Nøstet data. En hierarkisk indeks bestående av to entiteter, slik at hvert toppnivå er linket til andre nivå i en til en relasjoner. Hierarkisk indeks med alternerende subside. En hierarkisk indeks med linker som peker på forskjellige entiteter som vises i samme vindu. 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 34
Fordypende indeks Fra en indeks til en annen over en bestemt entitet. Author Book [author2book] Book 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 35
Filtrert indeks Et søk gir en utlisting som svar. AlbumSearch Albums Album Serach conditions AlbumTitle PublYear AlbumINdex AlbumData Album [Title contains AlbumTitle] implied [Year = PublYear] implied Album 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 36
Samme som filtrert indeks bare søket gir så mange funn at de listes ut side for side. Typisk eksempel er søkemotorer. Filtrert skrollet indeks 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 37
Gaidet tur /Guided tours En gaidet tur er en forhåndsbestemt sekvens av sider. Settes opp ved bruk av automatiske linker. 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 38
Indeksert gaidet tur En indeksert gaidet tur er en gaidet tur som støtter forflytning i sekvensen. Artist ArtistDetails Albums AlbumScroller AlbumData A Artist Album [ArtistToAlbum] Album 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 39
Objektvisning Objektvisning er å vise et objekt på forskjellige måter. Typisk eksempel er et vindu som viser essensiell informasjon og et vindu som viser utdypende informasjon. 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 40
Nøstet data En hierarkisk indeks bestående av to entiteter, slik at elementet på toppnivå er linket til andre nivå i en til en eller mange til mange relasjoner. Albums AlbumIndex Album NEST Artist [AlbumToArtist] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 41
Hierarkisk indeks med alternerende subside En hierarkisk indeks med linker som peker på forskjellige entiteter som vises i samme vindu. I eksempelet bytter høyere vindu på å vise album og artistinformasjon Outermost Lefmost AlbumIndex Artist NEST Album [ArtistToAlbum] Art:Artist.OID Alb:Album.OID Rightmost Rightmost1 ArtistInfo Artist [OID=Art] Rightmost2 AlbumInfo Album [OID=Alb] 30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 42
30. august. 2004 Arianna Kyriacou og Eskil Saatvedt 43