Markup sprog

Markup language ( tekst ) i computerterminologi - et sæt tegn eller sekvenser af tegn indsat i teksten for at formidle information om dens visning eller struktur. Tilhører klassen af ​​computersprog . Et tekstdokument skrevet ved hjælp af et opmærkningssprog indeholder ikke kun selve teksten (som en sekvens af ord og tegnsætningstegn), men også yderligere information om dets forskellige sektioner - for eksempel en indikation af overskrifter, fremhævelser, lister osv. I mere komplekse sager Et opmærkningssprog giver dig mulighed for at indsætte interaktive elementer og indhold fra andre dokumenter i et dokument.

Det skal bemærkes, at opmærkningssproget er Turing ufuldstændigt og generelt ikke betragtes som et programmeringssprog .

Logisk og visuel opmærkning

Skelne mellem logisk og visuel opmærkning. I det første tilfælde taler vi kun om, hvilken rolle denne del af dokumentet spiller i dets generelle struktur (for eksempel "denne linje er overskriften"). Den anden definerer præcis, hvordan dette element vil blive vist (f.eks. "denne linje skal vises med fed skrift"). Ideen bag markup-sprog er, at den visuelle repræsentation af et dokument automatisk skal stamme fra den logiske markup og være uafhængig af dets umiddelbare indhold. Dette forenkler den automatiske behandling af et dokument og dets visning under forskellige forhold (for eksempel kan den samme fil vises forskelligt på en computerskærm, mobiltelefon og print, da egenskaberne for disse outputenheder er væsentligt forskellige). Denne regel bliver dog ofte overtrådt: for eksempel, når du opretter et dokument i en editor som MS Word , kan brugeren gøre overskrifter fed, men ingen steder angive, at denne linje er en overskrift.

Eksempler på markup-sprog

Markup-sprog bruges overalt, hvor det er nødvendigt for at få rig tekst fra tekst alene : i typografi SGML , TeX , PostScript , RTF ), computerbrugergrænseflader ( Microsoft Word , OpenOffice ) , World Wide Web ( HTML , XHTML ) , XML , WML , VML , PGML , SVG , XBRL ).

Til at skrive Wikipedias kildetekster bruger dens medlemmer et særligt opmærkningssprog (se Wikipedia: Sådan redigeres artikler ), og til at vise komplekse matematiske formler, TeX -sproget .

Letvægts markup-sprog

Sprog designet til nemt og hurtigt at tilføje formatering til tekstdata kaldes lightweight ( en:Lightweight markup language ). Funktioner ved sådanne sprog:

De bruges, hvor en person skal forberede tekst i en almindelig teksteditor ( blogs , fora , wikier ), eller hvor det er vigtigt, at en bruger med en almindelig teksteditor også kan læse teksten. Her er nogle udbredte letvægts markup-sprog:

Historie

Udtrykket "markup" (som et resultat af processen af ​​samme navn, eng. markup ) kom fra den engelske sætning " marking up " ("markering (som en proces)", lit. "marking, marking"), taget fra den traditionelle udgivelsespraksis med at sætte særlige betingede mærker på marginer og i manuskriptets tekst eller korrekturlæsning, inden det sendes til tryk. Således angav "markup men" skrifttype, stil og skriftstørrelse for hver del af teksten. I dag håndteres tekstmarkering af redaktører, korrekturlæsere, grafiske designere og selvfølgelig forfatterne selv.

GenCode

Ideen om at bruge markup-sprog i computertekstbehandling blev højst sandsynligt først offentliggjort af William  W. Tunnicliffe på en konference i 1967 . Han kaldte selv sit forslag "universel kodning" ( eng.  "generisk kodning" ). I 1970'erne ledede Tunnicliffe udviklingen af ​​GenCode- standarden til forlagsindustrien og blev senere formand for en af ​​International Organization for Standardization (ISO) komiteer , der skabte SGML , det første beskrivende markup-sprog. Brian Reid ( eng. Brian Reid (datamatiker) ) i sin afhandling, som han forsvarede i 1980 ved Carnegie University ( eng. Carnegie Mellon University ), i udviklingen af ​​det foreslåede koncept, gennemførte en praktisk implementering af deskriptiv markup.    

Men IBM -forsker Charles Goldfarb omtales nu almindeligvis som "faderen" til markup-sprog .  Det grundlæggende koncept kom til ham i 1969 , mens han arbejdede på et primitivt dokumenthåndteringssystem designet til advokatfirmaer. Samme år deltog han i skabelsen af ​​IBM GML -sproget , som først blev introduceret i 1973 .

I 1975 flyttede Goldfarb fra Cambridge, Massachusetts til Silicon Valley , hvor han blev udvikler ved IBM Almaden Research Center. Der, i 1978, overbeviste han IBM-ledelsen om at bruge GML til kommercielle formål som en del af virksomhedens Document  Composition Facility , hvorefter GML i flere år blev meget brugt i erhvervslivet.

I 1978 begyndte den første udvikling, som til sidst førte til skabelsen af ​​SGML -standarden , baseret på GML og GenCode. Goldfarb selv var senere formand for SGML-udvalget, som blev vedtaget af ISO som standard i oktober 1986 .

Nogle tidlige implementeringer af computermarkeringssprog kan findes i UNIX -typografiværktøjer såsom troff og nroff . De giver dig mulighed for at indsætte formateringskommandoer i teksten i et dokument for at formatere det i overensstemmelse med redaktørens krav.

Tilgængeligheden af ​​WYSIWYG ( det du ser er, hvad du får) udgivelsessoftware  har  fortrængt de fleste af disse sprog blandt almindelige brugere, selvom seriøst udgivelsesarbejde stadig bruger markup til specifikke ikke-visuelle strukturer. tekst, og WYSIWYG-redaktører gemmer nu oftest dokumenter i formater baseret på markup-sprog.

Τ Ε Χ

En anden vigtig udgivelsesstandard er Τ Ε Χ , skabt og efterfølgende forbedret af Donald Knuth i 70'erne og 80'erne af det tyvende århundrede. Τ Ε Χ har samlet høje muligheder for tekstformatering og skrifttypebeskrivelser, især for matematikbøger af professionel kvalitet. I øjeblikket er Τ Ε Χ de facto standarden i mange videnskabelige discipliner. Udover Τ Ε Χ er der LaTeX , som er et meget brugt beskrivende markup-system baseret på Τ Ε Χ .

Scribe, GML og SGML

Det første sprog med en klar og tydelig skelnen mellem strukturen og typen af ​​et dokument var Scribe , som blev skabt og beskrevet af Brian Reids doktorafhandling i 1980. Scribe var revolutionerende i antallet af måder, hvorpå det blev behandlet, ikke mindst på grund af introduktionen af ​​ideen om stilarter, der er adskilt fra den faktiske tekst og grammatik og kontrollerer brugen af ​​beskrivende elementer. Scribe var indflydelsesrig i udviklingen af ​​GML-sproget (senere SGML) og er også den direkte forfader til HTML- og LaTeX -sprogene .

I begyndelsen af ​​80'erne førte ideen om, at markup skulle fokusere på de strukturelle aspekter af et dokument og skulle overlade den eksterne repræsentation af dokumentet til tolken, til oprettelsen af ​​SGML. Sproget blev udviklet af et udvalg ledet af Goldfarb. Han kombinerede ideer fra mange kilder, herunder Tunnikofflick-projektet, GenCode. Sharon Adler, Anders Berglund og James A. Marke var også centrale medlemmer af SGML-udvalget.

SGML definerede præcist syntaksen for at inkludere markup i tekst, og også separat beskrevet hvilke tags der er tilladt og hvor (DTD - Document Type Definition). Dette gjorde det muligt for forfattere at oprette og bruge enhver opmærkning, de ønskede, ved at vælge hvilke tags de skulle bruge og give dem navne på det normale sprog. Derfor bør SGML betragtes som et metasprog ; flere specielle markup-sprog er nedstammet fra det. De sene 80'ere var mest betydningsfulde i fremkomsten af ​​nye markup-sprog baseret på SGML, såsom TEI og DocBook .

I 1986 blev SGML udgivet som en international standard af ISO under nummer 8879. SGML har fundet bred accept og er blevet meget brugt i meget store projekter. Det viste sig dog generelt at være besværligt og svært at lære, en bivirkning af sproget var, at det forsøgte at gøre for meget og være for fleksibelt. For eksempel oprettede SGML slut-tags (eller start-tags, eller endda begge dele), som ikke altid var nødvendige, fordi det mente, at denne markering ville blive tilføjet manuelt af projektsupportpersonalet, som ville sætte pris på besparelserne ved tastetryk.

HTML

I 1991 var brugen af ​​SGML begrænset til forretningsprogrammer og databaser, mens WYSIWYG-værktøjer (som gemte dokumenter i proprietære binære formater) blev brugt til andre dokumentbehandlingsprogrammer. Det ændrede sig, da Sir Tim Berners-Lee , efter at have lært om SGML fra sin kollega Anders Berglund og andre på CERN , brugte SGML-syntaksen til at skabe HTML .  Sproget havde ligheder med andre markup-sprog baseret på SGML-syntaksen, men det var meget nemmere at komme i gang, selv for udviklere, der aldrig havde gjort det. Steven DeRose hævdede, at HTML ved hjælp af beskrivende markup (og fra SGML i særdeleshed) var en vigtig faktor i udviklingen af ​​internettet, fordi det var designet til at være fleksibelt og udvidelsesmuligheder (såvel som andre faktorer, herunder begrebet URL'er og gratis brug af browsere ).

HTMLs status som opmærkningssprog er dog blevet bestridt af nogle dataloger. Deres hovedargument er, at HTML begrænser placeringen af ​​tags ved at kræve, at begge tags skal indlejres i andre tags eller i dokumentets hovedtags. Som et resultat betragter disse lærde HTML for at være et containersprog efter en hierarkisk model.

XML

XML (Extensible Markup Language) er et meta-markup-sprog, der er meget udbredt i dag. XML blev udviklet af World Wide Web Consortium i et udvalg ledet af Jon Bosak. Hovedformålet med XML er at være enklere end SGML og at fokusere på et specifikt problem - dokumenter på nettet. XML er et metasprog som SGML, brugere har lov til at oprette hvilke tags de ønsker (derfor "udvidelige"). Det, der hjalp med fremkomsten af ​​XML, var, at hvert XML-dokument kunne skrives på samme måde som et SGML-dokument, og programmer og brugere, der bruger SGML, kunne migrere til XML forholdsvis nemt.

XML mistede dog mange af de menneskecentrerede funktioner i SGML, der gjorde det nemmere at bruge (indtil mængden af ​​markup steg og læsbarheden og redigerbarheden blev gendannet til samme niveau). Andre forbedringer løste nogle SGML-problemer internationalt og gjorde det muligt at parse et dokument hierarkisk, selvom ingen DTD var tilgængelig.

XML blev primært designet til semistrukturerede miljøer såsom dokumenter og publikationer. Det resulterede dog i et sweet spot mellem fleksibilitet og enkelhed, og det blev hurtigt adopteret af mange brugere. I dag er XML meget brugt til at overføre data mellem programmer. Ligesom HTML kan det beskrives som et "container"-sprog.

XHTML

Siden januar 2000 har alle anbefalinger til W3C været baseret på XML frem for SGML , og akronymet XHTML (Extensible HyperText Markup Language) er blevet foreslået. Sprogspecifikationerne krævede, at XHTML-dokumenter skulle formateres som XML-dokumenter, dette gør, at XHTML kan bruges til klarere og mere præcise dokumenter ved hjælp af tags fra HTML.

En af de mest bemærkelsesværdige forskelle mellem HTML og XHTML er reglen om, at alle tags skal lukkes: tomme tags, såsom < br /> , skal begge lukkes med et standard lukketag eller en speciel notation: < br /> (mellemrum) før "/" i det afsluttende tag er valgfrit, men bruges ofte, fordi nogle pre-XML-browsere (også SGML-parsere) bruger det). Andre attributter i tags skal stå i anførselstegn. Endelig skal alle tags og attributnavne skrives med små bogstaver for at blive læst korrekt; HTML er ufølsom mellem store og små bogstaver.

Andre XML-baserede udviklinger

Mange udviklinger baseret på XML bruges nu , for eksempel RDF (Resource Description Framework - Resource Description Environment) , XFORMS, DocBook , SOAP og OWL (Web Ontology Language) .

Funktioner

Fælles for alle markup-sprog er, at de blander dokumenttekst med markup-instruktioner i en datastrøm eller fil. Det er ikke nødvendigt, det er muligt at isolere markup fra tekst ved hjælp af pointere, etiketter, identifikatorer eller andre koordineringsmetoder. Denne "separerede markup" er typisk for den interne repræsentation af programmer, der arbejder med markup-dokumenter. Indlejret eller "interline"-markering er dog mere accepteret andre steder. For eksempel er her et lille stykke tekst markeret med HTML:

< h1 > Anatidae </ h1 > < p > Familien < i > Anatidae </ i > omfatter ænder, gæs og svaner, men < em > ikke </ em > de nært beslægtede skrigere. </ p >

Opmærkningsinstruktionskode (kendt som tags ) er omgivet af vinkelparenteser <som denne>. Teksten mellem disse instruktioner er teksten i dokumentet. h1 , p og em- koderne  er eksempler på strukturel opmærkning, de beskriver positionen, formålet eller betydningen af ​​den tekst, der er inkluderet i dem.

Mere specifikt betyder h1 "dette er en overskrift på første niveau", p betyder "dette er et afsnit", og em betyder "dette ord eller denne sætning har særlig vægt." Fortolkeren kan anvende disse regler eller typografier til at vise forskellige dele af teksten ved hjælp af forskellige skrifttyper, skriftstørrelser, indrykning, farver eller andre typografier efter behov. Så et tag, h1 , for eksempel, kan gengives med stor fed skrift, eller i et dokument med monospaced tekst (som en skrivemaskine), kan det være understreget, eller det kan slet ikke ændre udseende. Og indholdet af em-tagget vises normalt i kursiv.

I modsætning hertil er i -tagget i HTML  et eksempel på visuel markup; det bruges normalt til at identificere specifikke træk ved tekst (brug kursiv skrifttype i denne blok) uden forklaring.

TEI (Tex Encoding Initiative) har udgivet omfattende vejledningsdokumenter, der specificerer, hvordan tekst indkodes til gavn for menneskeheden og videnskabelige samfund. Disse manualer blev brugt til at kode historiske dokumenter, specifikke værker af lærde, tidsskrifter og så videre.

Alternativ anvendelse

Mens ideen om at bruge markup-sprog med tekstdokumenter har udviklet sig, har dette øget brugen af ​​markup-sprog på andre områder. De er blevet foreslået brugt til at repræsentere forskellige typer information, herunder afspilningslister , vektorgrafik, webtjenester, brugergrænseflader. De fleste af disse applikationer er baseret på XML, da det er et meget struktureret og udvidelsesvenligt sprog.

Brugen af ​​XHTML -sproget viser også, at det kan kombineres med forskellige markup-sprog af samme profil, såsom XHTML+SMIL eller XHTML+MathML+SVG.