Markup language

Markup language ( text ) i datorterminologi - en uppsättning tecken eller sekvenser av tecken som infogas i texten för att förmedla information om dess visning eller struktur. Tillhör klassen datorspråk . Ett textdokument som är skrivet med ett märkningsspråk innehåller inte bara själva texten (som en sekvens av ord och skiljetecken), utan även ytterligare information om dess olika avsnitt - till exempel en indikation på rubriker, markeringar, listor etc. I mer komplexa fall Ett märkningsspråk låter dig infoga interaktiva element och innehåll från andra dokument i ett dokument.

Det bör noteras att märkningsspråket är Turing ofullständigt och normalt inte anses vara ett programmeringsspråk .

Logisk och visuell markering

Skilja mellan logisk och visuell markering. I det första fallet talar vi bara om vilken roll den här delen av dokumentet spelar i dess allmänna struktur (till exempel "den här raden är rubriken"). Den andra definierar hur exakt detta element kommer att visas (till exempel "denna rad ska visas i fetstil"). Tanken bakom märkningsspråk är att den visuella representationen av ett dokument automatiskt ska härledas från den logiska märkningen och vara oberoende av dess omedelbara innehåll. Detta förenklar den automatiska bearbetningen av ett dokument och dess visning under olika förhållanden (till exempel kan samma fil visas olika på en datorskärm, mobiltelefon och utskrift, eftersom egenskaperna hos dessa utdataenheter skiljer sig avsevärt). Den här regeln överträds dock ofta: till exempel när du skapar ett dokument i en redigerare som MS Word , kan användaren göra rubriker fetstilta, men ingenstans indikerar att denna rad är en rubrik.

Exempel på märkningsspråk

Markup-språk används överallt där det krävs för att få rik text från enbart text : i typografi SGML , TeX , PostScript , RTF ), datoranvändargränssnitt ( Microsoft Word , OpenOffice ) , World Wide Web ( HTML , XHTML ) , XML , WML , VML , PGML , SVG , XBRL ).

För att skriva källtexterna till Wikipedia använder dess medlemmar ett speciellt märkningsspråk (se Wikipedia: Hur man redigerar artiklar ), och för att visa komplexa matematiska formler, TeX- språket .

Lätta märkningsspråk

Språk som är utformade för att enkelt och snabbt lägga till formatering till textdata kallas lättvikts ( en:Lightweight markup language ). Funktioner hos sådana språk:

De används där en person ska förbereda text i en vanlig textredigerare ( bloggar , forum , wikis ), eller där det är viktigt att en användare med en vanlig textredigerare också kan läsa texten. Här är några allmänt använda lätta märkningsspråk:

Historik

Termen "markup" (som ett resultat av processen med samma namn, eng. markup ) kom från den engelska frasen " marking up " ("markering (som en process)", lit. "marking, marking"), taget från den traditionella publiceringspraxisen att sätta särskilda villkorsmärken på marginaler och i manuskriptets text eller korrekturläsning innan det skickas till tryck. Således angav "markup men" typsnitt, stil och teckenstorlek för varje del av texten. Nuförtiden hanteras textuppmärkning av redaktörer, korrekturläsare, grafiska formgivare och, naturligtvis, författarna själva.

GenCode

Idén om att använda märkningsspråk i datorordbehandling publicerades troligen först av William  W. Tunnicliffe vid en konferens 1967 . Han kallade själv sitt förslag "universell kodning" ( eng.  "generisk kodning" ). På 1970 -talet ledde Tunnicliffe utvecklingen av GenCode- standarden för förlagsbranschen och blev senare ordförande i en av International Organization for Standardization (ISO) kommittéer som skapade SGML , det första beskrivande märkningsspråket. Brian Reid ( eng. Brian Reid (datavetare) ) genomförde i sin avhandling, som han försvarade 1980 vid Carnegie University ( eng. Carnegie Mellon University ), i utvecklingen av det föreslagna konceptet en praktisk implementering av deskriptiv uppmärkning.    

Men IBM- forskaren Charles Goldfarb kallas numera vanligen för "fadern" till märkningsspråk .  Grundkonceptet kom till honom 1969 när han arbetade på ett primitivt dokumenthanteringssystem designat för advokatbyråer. Samma år deltog han i skapandet av IBM GML- språket , som först introducerades 1973 .

1975 flyttade Goldfarb från Cambridge, Massachusetts till Silicon Valley , där han blev utvecklare vid IBM Almaden Research Center. Där, 1978, övertygade han IBM-ledningen att använda GML för kommersiella ändamål som en del av företagets Document  Composition Facility , varefter GML användes flitigt i affärer under flera år.

1978 började den första utvecklingen, vilket så småningom ledde till skapandet av SGML- standarden , baserad på GML och GenCode. Goldfarb själv var senare ordförande för SGML-kommittén, som antogs av ISO som standard i oktober 1986 .

Vissa tidiga implementeringar av datormarkeringsspråk kan hittas i UNIX typografiverktyg som troff och nroff . De låter dig infoga formateringskommandon i texten i ett dokument för att formatera det enligt redaktörens krav.

Tillgängligheten av WYSIWYG ( det du ser är vad du får) publiceringsmjukvara  har  ersatt de flesta av dessa språk bland vanliga användare, även om seriöst publiceringsarbete fortfarande använder uppmärkning för specifika icke-visuella strukturer. text och WYSIWYG-redigerare sparar nu oftast dokument i format baserade på märkningsspråk.

Τ Ε Χ

En annan viktig publiceringsstandard är Τ Ε Χ , skapad och senare förbättrad av Donald Knuth på 70- och 80-talen av 1900-talet. Τ Ε Χ har samlat stora möjligheter för textformatering och teckensnittsbeskrivningar, speciellt för matematikböcker av professionell kvalitet. För närvarande är Τ Ε Χ de facto standarden inom många vetenskapliga discipliner. Förutom Τ Ε Χ finns LaTeX , som är ett allmänt använt beskrivande uppmärkningssystem baserat på Τ Ε Χ .

Scribe, GML och SGML

Det första språket med en tydlig och distinkt distinktion mellan strukturen och typen av ett dokument var Scribe , som skapades och beskrevs av Brian Reids doktorsavhandling 1980. Scribe var revolutionerande i antalet sätt som det bearbetades på, inte minst på grund av introduktionen av idén om stilar som är separata från den faktiska texten och grammatiken och kontrollerar användningen av beskrivande element. Scribe var inflytelserik i utvecklingen av GML-språket (senare SGML) och är också den direkta förfadern till HTML- och LaTeX- språken .

I början av 80 -talet ledde tanken att uppmärkning skulle fokusera på de strukturella aspekterna av ett dokument och skulle lämna den externa representationen av dokumentet till tolken till skapandet av SGML. Språket utvecklades av en kommitté ledd av Goldfarb. Han kombinerade idéer från många källor, inklusive Tunnikofflick-projektet, GenCode. Sharon Adler, Anders Berglund och James A. Marke var också nyckelmedlemmar i SGML-kommittén.

SGML definierade exakt syntaxen för att inkludera markeringar i text, och beskrev även separat vilka taggar som är tillåtna och var (DTD - Document Type Definition). Detta gjorde det möjligt för författare att skapa och använda vilken uppmärkning de ville, välja vilka taggar de skulle använda och ge dem namn på det vanliga språket. Därför bör SGML betraktas som ett metaspråk ; flera speciella märkningsspråk har härstammat från det. Det sena 80-talet var mest betydelsefullt i uppkomsten av nya märkningsspråk baserade på SGML, som TEI och DocBook .

1986 publicerades SGML som en internationell standard av ISO under nummer 8879. SGML har fått bred acceptans och har använts i stor utsträckning i mycket stora projekt. Det visade sig dock i allmänhet vara krångligt och svårt att lära sig, en bieffekt av språket var att det försökte göra för mycket och vara för flexibelt. Till exempel skapade SGML sluttaggar (eller starttaggar, eller till och med båda) som inte alltid behövdes eftersom man trodde att denna markering skulle läggas till manuellt av projektsupportpersonalen, som skulle uppskatta besparingarna i tangenttryckningar.

HTML

År 1991 var användningen av SGML begränsad till affärsprogram och databaser, medan WYSIWYG-verktyg (som sparade dokument i proprietära binära format) användes för andra dokumentbehandlingsprogram. Det ändrades när Sir Tim Berners-Lee , efter att ha lärt sig om SGML av sin kollega Anders Berglund och andra på CERN , använde SGML-syntaxen för att skapa HTML .  Språket hade likheter med andra märkningsspråk baserade på SGML-syntaxen, men det var mycket lättare att komma igång, även för utvecklare som aldrig hade gjort det. Steven DeRose hävdade att HTML som använder beskrivande uppmärkning (och från SGML i synnerhet) var en viktig faktor i utvecklingen av webben eftersom den var designad för att vara flexibel och utbyggbar (liksom andra faktorer inklusive konceptet med webbadresser och fri användning av webbläsare ).

HTMLs status som märkningsspråk har dock ifrågasatts av vissa datavetare. Deras huvudargument är att HTML begränsar placeringen av taggar genom att kräva att båda taggarna är kapslade i andra taggar eller i dokumentets huvudtaggar. Som ett resultat anser dessa forskare att HTML är ett containerspråk enligt en hierarkisk modell.

XML

XML (Extensible Markup Language) är ett meta-markup-språk som används flitigt idag. XML utvecklades av World Wide Web Consortium i en kommitté ledd av Jon Bosak. Huvudsyftet med XML är att vara enklare än SGML och att fokusera på ett specifikt problem – dokument på webben. XML är ett metaspråk som SGML, användare får skapa vilka taggar de vill (därav "extensible"). Det som hjälpte uppkomsten av XML var att varje XML-dokument kunde skrivas på samma sätt som ett SGML-dokument, och program och användare som använder SGML kunde migrera till XML ganska enkelt.

Men XML förlorade många av de mänskligt centrerade funktionerna i SGML som gjorde det lättare att använda (tills mängden uppmärkning ökade och läsbarheten och redigerbarheten återställdes till samma nivå). Andra förbättringar fixade vissa SGML-problem internationellt och gjorde det möjligt att analysera ett dokument hierarkiskt även om ingen DTD var tillgänglig.

XML designades främst för semistrukturerade miljöer som dokument och publikationer. Det resulterade dock i en sweet spot mellan flexibilitet och enkelhet, och det anammades snabbt av många användare. Nuförtiden används XML flitigt för att överföra data mellan program. Liksom HTML kan det beskrivas som ett "container"-språk.

XHTML

Sedan januari 2000 har alla rekommendationer till W3C varit baserade på XML snarare än SGML , och förkortningen XHTML (Extensible HyperText Markup Language) har föreslagits. Språkspecifikationerna krävde att XHTML-dokument skulle formateras som XML-dokument, detta gör att XHTML kan användas för tydligare och mer exakta dokument med taggar från HTML.

En av de mest anmärkningsvärda skillnaderna mellan HTML och XHTML är regeln att alla taggar måste stängas: tomma taggar, som < br /> , måste båda stängas med en standard avslutningstagg eller en speciell notation: < br /> (mellanslag före "/" i den avslutande taggen är valfri, men används ofta eftersom vissa pre-XML-webbläsare (även SGML-tolkare) använder den). Andra attribut i taggarna måste stå inom citattecken. Slutligen måste alla taggar och attributnamn skrivas med gemener för att kunna läsas korrekt; HTML är skiftlägeskänsligt.

Andra XML-baserade utvecklingar

Många utvecklingar baserade på XML används nu , till exempel RDF (Resource Description Framework - Resource Description Environment) , XFORMS, DocBook , SOAP och OWL (Web Ontology Language) .

Funktioner

Gemensamt för alla märkningsspråk är att de blandar dokumenttext med märkningsinstruktioner i en dataström eller fil. Det är inte nödvändigt, det är möjligt att isolera uppmärkning från text med hjälp av pekare, etiketter, identifierare eller andra koordinationsmetoder. Denna "separerade uppmärkning" är typisk för den interna representationen av program som arbetar med uppmärkningsdokument. Dock är inbäddad eller "interline"-markering mer accepterad på andra håll. Till exempel, här är en liten bit text markerad med HTML:

< h1 > Anatidae </ h1 > < p > Familjen < i > Anatidae </ i > inkluderar ankor, gäss och svanar, men < em > inte </ em > de närbesläktade skrikarna. </ p >

Markeringsinstruktionskod (känd som taggar ) är omgiven av vinkelparenteser <så här>. Texten mellan dessa instruktioner är texten i dokumentet. H1 , p och em- koderna  är exempel på strukturell uppmärkning, de beskriver positionen, syftet eller innebörden av texten som ingår i dem.

Mer specifikt betyder h1 "det här är en rubrik på första nivån", p betyder "det här är ett stycke" och em betyder "det här ordet eller frasen har särskild betoning." Tolken kan tillämpa dessa regler eller stilar för att visa olika delar av texten med olika typsnitt, teckenstorlekar, indrag, färg eller andra stilar efter behov. Så en tagg, h1 , till exempel, kan renderas med stora fetstilar, eller, i ett dokument med monospace-text (som en skrivmaskin), kan den vara understruken eller inte ändra utseende alls. Och innehållet i em-taggen visas vanligtvis i kursiv stil.

Däremot är i -taggen i HTML  ett exempel på visuell markering; det används vanligtvis för att identifiera specifika egenskaper i text (använd kursivt typsnitt i detta block) utan förklaring.

TEI (Tex Encoding Initiative) har publicerat omfattande vägledningsdokument som specificerar hur man kodar text till gagn för mänskligheten och vetenskapliga samhällen. Dessa manualer användes för att koda historiska dokument, specifika verk av forskare, tidskrifter och så vidare.

Alternativ användning

Medan idén om att använda märkningsspråk med textdokument har utvecklats, har detta ökat användningen av märkningsspråk i andra områden. De har föreslagits att användas för att representera olika typer av information, inklusive spellistor , vektorgrafik, webbtjänster, användargränssnitt. De flesta av dessa applikationer är baserade på XML, eftersom det är ett mycket strukturerat och utbyggbart språk.

Användningen av XHTML -språket visar också att det kan kombineras med olika märkningsspråk av samma profil, som XHTML+SMIL eller XHTML+MathML+SVG.