DASP107 Innføring i språk og data DASP108 Språk og data Tekstkoding 09.09.08 Claus Huitfeldt I dag: Kort repetisjon SGML, HTML, XML TEI Kap 2: Tekstkodingens problemer Neste gang: Øving Epost: Claus.Huitfeldt@fof.uib.no 02.09.2008 2 Kort repetisjon: Tekstkoding og SGML HTML, summa summarum Tekstkoding Hva? - Metainformasjon Hvordan? - Reserverte tegnstrenger Hvorfor standardisere? - Gjenbruk av tekster - Gjenbruk av programvare SGML: Et sett av regler for formulering av regler for dokumentstruktur SGML Document = SGML Declaration + Document Type Definition (DTD) + Document Instance Viktig i SGML: -Alle dokumenter må ha en DTD - <a> : punkt eller start? - forenkling og utelatelse av tagger - Alle dokumenter må være gyldige - Alle dokumenter må være hierarkiske (overlapping ulovlig) En suksess for SGML eller verdens største samling ugyldige SGML-dokumenter? Vanligvis ingen validering Nettlesere tolererer feil Andre svakheter: hver nettleser sin dialekt brukeren bindes til nettleseren bare HTML aksepteres (bare <B> eller <H1>, ikke <overskrift> eller <tittel>) Men: Enkelt, lett å lære 02.09.2008 3 02.09.2008 4 XML, summa summarum Et subsett av SGML Ønsker å kombinere: HTMLs enkelhet SGMLs fleksibilitet og styrke Forskjeller fra SGML: Forkorting eller utelatelse av tagger er ikke tillatt Tomme elementer er syntaktisk distinkte SGML-deklarasjonen kan ikke endres Konsekvenser: Enklere syntaks Dokumenter kan parses uten DTD Skille mellom gyldighet og velformethet 02.09.2008 5 Text Encoding Initiative (1987-1994, 2000...) Guidelines for Electronic Text Encoding and Interchange http://www.tei-c.org/ 02.09.2008 6 1
TEIs målsetting En standard for koding og utveksling av tekst Plattformuavhengig Dekke et stort utvalg tekster ( alle teksttyper) Fleksibelt: Modulært, modifiserbart, utvidbart Utviklet av brukermiljøene ACH, ALLC, ACL m.fl. TEI består av: TEI Guidelines en omfattende veiledning Et sett av TEI DTD-moduler (evt. schemas) En organisasjon (TEI-C) for vedlikehold og videreutvikling 02.09.2008 7 02.09.2008 8 The TEI Guidelines forslag om hva som bør kodes forslag til hvordan dette bør kodes Oppbyggingen av en TEI DTD Core tag set + ett base tag set + 0 eller flere additional tag sets TEI P1 1990 TEI P2 TEI P3 1994 (1999) TEI P4 2002 (første XML-versjon) TEI P5 2006 TEI Lite (SGML/XML) Core tag set: TEI header, samt noen få generelle elementer og attributter Base tag sets: prose, verse, drama transcribed speech dictionaries terminological databases Additional tag sets: Linking and alignment Analysis Feature structures Certainty Physical transcription Textual criticism Names and dates Graphs and trees Figures and tables Language corpora... 02.09.2008 9 02.09.2008 10 Forholdet mellom SGML, XML, HTML og TEI SGML er en metagrammatikk ("et sett av regler for formulering av regler") XML er en delmengde av reglene i SGML. Også XML er altså en metagramatikk. Mens alt som er lov i XML også er lov i SGML, gjelder det omvendte ikke: Ikke alt som er lov i SGML er lov i XML. HTML og TEI er anvendelser av denne grammatikken, dvs. kodesystemer bestående av regler definert i samsvar med SGML. (Resten av) dagens tekst Kap 2, Tekstkodingens problemer: 2.1 Definisjoner av tekstkoding 2.3 Er all tekst kodet? 2.5 Overlapp (Det finnes XML-versjoner av både HTML og TEI (hhv. XHTML og TEI P4+).) 02.09.2008 11 02.09.2008 12 2
1. Definisjoner av tekstkoding ISO 8879-1986 markup: text that is added to the data of a document in order to convey information about it. text: characters data: the characters of a document that represent the inherent information content; characters that are not recognized as markup document: a collection of information that is processed as a unit character: atom of information with an individual meaning 02.09.2008 13 markup: [[atom{s} of information with an individual meaning]] that {are} added to the [[atom{s} of information with an individual meaning] of a [collection of information that is processed as a unit] that represents the inherent information content] of a [collection of information that is processed as a unit] in order to convey information about it. markup: atoms of information that are added to a collection of information in order to convey information about it. markup: information that is added to information in order to convey information about it. Konklusjon: Koding er meta-informasjon. 02.09.2008 14 2.3 Er all tekst egentlig kodet? Sperberg-McQueen definerer "markup" som...all the information in a document other than the "contents" of the document itself, viewed as a stream of characters. Any information present about formatting... All structural information... All analytic or interpretive information to be included in an electronic text is by definition expressed as markup. Lou Burnard: we define markup, or (synonymously) "encoding", as any means of making explicit an interpretation of a text. Sperberg-McQueen: no text is entirely free of markup... with the possible exceptions of some older Hebrew and Greek manuscripts written in "scriptio continua". Scriptio continua: Scriptio continua finnes først og fremst i gamle greske og hebraiske tekster, der det ikke finnes setningstegn eller ordmellomrom, og linjer skrives helt ut uten hensyn til orddeling. scriptiocontinuafinnesførstogfremstigamlegreskeoghebraisketeks terderdetikkefinnessetningstegnellerordmellomromoglinjerskrivesh eltututenhensyntilorddeling 02.09.2008 15 02.09.2008 16 Scriptio continua Burnard: at a banal level, all printed texts are encoded... Encoding a text for computer processing is, in principle, like transcribing a manuscript from "scriptio continua", a process of making explicit what is conjectural or implicit, of directing the user as to how the contents of the text should be interpreted. 4-5 årh., Vatikanbiblioteket 02.09.2008 17 I så fall er alle disse kodet, Per sa at klokken er ti. Per sa: "klokken er ti". Per sa at <q type=is>klokken er ti</q>. Per sa: <q type=ds>"klokken er ti"</q>. Per sa <q type=ds>klokken er ti</q>. mens persaatklokkenerti ikke er kodet. 02.09.2008 18 3
2.5 Overlapp (Har alle tekster hierarkisk struktur?) Eksempel på overlappende elementer DeRose, Durand, Mylonas, Renear 1990: "What is Text, Really?" Renear, Durand, Mylonas 1996: "Overlapping Hierarchies of Text Objects: Refining Our Notion of What Text really is OHCO-tesen I Alle tekster er OHCOs (OHCO = Ordered Hierarchy of Content Objects) Contra: Sider, kollonner, linjer vs. kapitler, avsnitt, setninger 02.09.2008 19 02.09.2008 20 OHCO-tesen II OHCO-tesen gjelder bare den logiske strukturen, ikke den fysiske. At to elementer overlapper, er et kriterium på at det ene av dem hører til den logiske og det andre til den fysiske strukturen. (Jfr. skillet mellom dybdestruktur og overflatestruktur.) Contra: Drama på verseform. (Replikker og scenehenvisninger vs. metriske linjer og setninger.) 02.09.2008 21 02.09.2008 22 OHCO-tesen III Tekster kan ha flere sameksisterende hierarkier. Til hvert hierarki svarer forskjellige og uavhengige analytiske eller teoretiske perspektiver. At to elementer overlapper, er et kriterium på at de tilhører forskjellige analytiske perspektiver. Contra: Enjambment. Metrisk og narrativ struktur ikke uavhengige. 02.09.2008 23 OHCO-tesen IV Teoretiske perspektiver kan ha subperspektiver. At to elementer fra samme analytiske perspektiv overlapper, er et kriterium på at de tilhører forskjellige analytiske sub-perspektiver Contra: Elementer av samme type kan overlappe. (Overstrykninger, setninger, ankere/pekere) 02.09.2008 24 4
OHCO-tesen V I de fleste tekster er det en eller flere hierarkiske strukturer. Contra: Intet å anføre. Motstrategi: "Overlapping kan kodes i SGML" * <d> ord1 <u> ord2 </d> ord3 </u> Dette er ikke lovlig i SGML. Men det finnes mange andre måter å håndtere overlapping på i SGML! 02.09.2008 25 02.09.2008 26 CONCUR <(d-dtd)d> ord1 <(u-dtd)u> ord2 </(d-dtd)d> ord3 </(u-dtd)u> Milepæler <d> ord1 <u-start> ord2 </d> ord3 <u-slutt> Fragmentering <d> ord1 <u> ord2 </u></d><u> ord3 </u> Lenkede milepæler <d> ord1 <u id=u1> ord2 </d> ord3 <u id=u2>... <u-span from=u1 to=u2> Lenkede fragmenter (virtuelle elementer ) <d> ord1 <u id=u1 next=u2> ord2 </u></d>... <u id=u2 prev=u1> ord3 </u> 02.09.2008 27 02.09.2008 28 Det finnes altså mange måter å kode overlapping på i SGML. Så hva er problemet? 1. Nettopp metodenes antall 2. Samtlige er tungvinte og indirekte 3. Samtlige * bryter en-til-en-forholdet mellom objekt (egenskap) og element. 4. Samtlige * metoder "lyver til parseren": Standard SGML-programvare kan ikke behandle virtuelle elementer, milepæler etc. som elementer. Følgelig: samme ulemper som med MECS ingen datastruktur eller kontrollmekanismene kan håndtere disse mekanismene i samsvar med hensikten med bruken av dem. * unntatt CONCUR - men CONCUR er problematisk og støttes ikke av vanlig SGMLprogramvare MECS (Multi-Element Code System) 02.09.2008 29 02.09.2008 30 5
MECS (Multi-Element Code System) Forskjeller fra SGML: Utelatelse av tagger er ikke tillatt. Tomme elementer er syntaktisk distinkte. Ingen DTD. Diverse andre forenklinger. Et MECS-dokument: < > < / / > [ / \ / / ] { " \ } <text/ <front/... /front> <body/ <title/... /title> <p/.../p> <p/.../p> /body> <back/... /back> /text> 02.09.2008 31 02.09.2008 32 Overlapp er tillatt i MECS: <a/... <b/... /a>... /b> Tilsvarende i SGML ville være: <a>... <b>...</a>...</b> men i SGML er dette altså ikke tillatt. Hvorfor ikke? Hvorfor tillater ikke SGML overlapp? Dersom SGML tillot overlappende elementer, måtte man gi slipp både på den enkle datastrukturen og den kraftige kontrollmekanismen. SGML baserer seg på en kontekstfri grammatikk, som er vel forstått og enkel å implementere. Overlappende strukturer lar seg ikke representere med kontekstfrie grammatikker. Til slike formål kreves kontekstsensitive grammatikker, som ikke er like godt forstått. Det vil dermed bli vanskeligere å oppnå en like effektiv kontrollmekanisme. 02.09.2008 33 02.09.2008 34 Hvilken pris betaler MECS for overlapp? MECS har: En enkel notasjon MECS har ikke: noe som tilsvarer SGML/XMLs enkle datastruktur» (Dokumenter må leses fra start for parsing) Ingen kraftig kontrollmekanisme på linje med SGML/XMLs DTD. (Men det arbeides med sakene ) 02.09.2008 35 6