Język znaczników
Język znaczników lub język znaczników to sposób kodowania dokumentu, który wraz z tekstem zawiera znaczniki lub znaczniki zawierające dodatkowe informacje o strukturze tekstu lub jego prezentacji.
Najbardziej rozpowszechnionym językiem znaczników jest HTML ( HyperText Markup Language ), fundament World Wide Web (globalnej sieci komunikacyjnej).
Języki znaczników są często mylone z językami programowania . Jednak nie są one takie same, ponieważ język znaczników nie ma funkcji arytmetycznych ani zmiennych, jak robią to języki programowania. W przeszłości znaczniki były i są używane w branży wydawniczej i komunikacyjnej, a także między autorami , wydawcami i drukarniami .
Przykład działania języka znaczników można zobaczyć w dyktowaniu głosowym dokumentu osobie, która przepisuje go na maszynie do pisania :
- Wstaw styl litery, wstaw cudzysłów, wstaw wielkie litery, Drogi Juanie, odłóż dwukropek, na bok, wcięcie, wstaw pierwszą wielką literę, Piszę do Ciebie ten list, pogrubiony, bardzo pilnie, pogrubiony, ponieważ nie wysłałeś ja... itd.
Zajęcia z języka znaczników
Powszechnie rozróżnia się trzy klasy języków znaczników, chociaż w praktyce w jednym dokumencie można połączyć kilka klas. Na przykład HTML zawiera znaczniki czysto proceduralne, takie jak B dla pogrubienia , a także znaczniki czysto opisowe ( BLOCKQUOTE , atrybut HREF ). HTML zawiera również element PRE , który wskazuje, że tekst powinien być renderowany tak, jak jest napisany.
Oznaczenia prezentacji
Znacznik prezentacji to taki , który wskazuje formatowanie tekstu . Ten rodzaj znaczników jest przydatny do układania prezentacji dokumentu do czytania, ale nie wystarcza do automatycznego przetwarzania informacji. Znaczniki prezentacji są łatwiejsze do zbudowania, szczególnie w przypadku niewielkich ilości informacji. Jest jednak trudny do utrzymania lub modyfikacji, dlatego jego użycie zostało ograniczone w dużych projektach na rzecz innych rodzajów bardziej ustrukturyzowanych znaczników.
Możesz spróbować rozgryźć strukturę takiego dokumentu, szukając wskazówek w tekście. Na przykład tytuł może być poprzedzony kilkoma końcami wiersza (lub wierszem) i znajdować się wyśrodkowany na stronie internetowej . Kilka programów potrafi wydedukować strukturę tekstu na podstawie tego rodzaju danych, chociaż wynik jest zwykle dość niedoskonały. Przykładem znaczników prezentacji może być RTF .
Znaczniki proceduralne
Znaczniki proceduralne skupiają się na prezentacji tekstu, ale są również widoczne dla użytkownika edytującego tekst. Program, który renderuje dokument, musi interpretować kod w tej samej kolejności, w jakiej się pojawia. Na przykład, aby sformatować tytuł, bezpośrednio przed danym tekstem musi znajdować się seria dyrektyw, które zawierają instrukcje oprogramowania, takie jak wyśrodkowanie, zwiększenie rozmiaru czcionki lub zmiana na pogrubienie . Bezpośrednio po tytule powinny znajdować się znaczniki odwrotne, które odwracają te efekty. W bardziej zaawansowanych systemach używa się makr lub stosów , aby ułatwić pracę.
Niektóre przykłady znaczników proceduralnych to nroff , troff , TeX . Ten rodzaj znaczników jest szeroko stosowany w profesjonalnych aplikacjach do edycji, obsługiwanych przez wykwalifikowanych typografów , ponieważ może stać się niezwykle złożony.
Opisowe znaczniki
Opisowe lub semantyczne znaczniki używają znaczników do opisywania fragmentów tekstu, ale bez określania, jak mają być renderowane ani w jakiej kolejności. Językami specjalnie zaprojektowanymi do generowania opisowych znaczników są SGML i XML .
Tagi mogą służyć do dodawania do treści dowolnego rodzaju metadanych . Na przykład standard Atom , język syndykacji , udostępnia metodę sygnatury czasowej „zaktualizowano”, czyli informacje dostarczone przez wydawcę o ostatniej modyfikacji określonych informacji. Norma nie określa, jak powinna być reprezentowana, ani nawet czy powinna być reprezentowana. Oprogramowanie może wykorzystywać te dane na wiele sposobów, w tym także te, które nie są zamierzone przez projektantów standardu.
Jedną z zalet znaczników opisowych jest ich elastyczność: fragmenty tekstu są oznaczane tak, jak są , a nie tak, jak powinny . Te fragmenty można wykorzystać do większej liczby zastosowań, niż początkowo zamierzano. Na przykład hiperłącza zostały pierwotnie zaprojektowane do kliknięcia przez użytkownika czytającego tekst. Wyszukiwarki używają ich jednak do znajdowania nowych stron z powiązanymi informacjami lub do oceny popularności określonej witryny .
Opisowe znaczniki upraszczają również zadanie ponownego formatowania tekstu, ponieważ informacje o formatowaniu są oddzielone od samej treści. Na przykład fragment oznaczony kursywą (<i>tekst</i>) może być użyty do zaznaczenia wyróżnienia lub wskazania słów w innym języku . Tej niejednoznaczności, obecnej w oznaczeniach prezentacyjnych i proceduralnych, można uniknąć jedynie dzięki żmudnemu ręcznemu przeglądowi. Gdyby jednak oba przypadki zostały opisowo zróżnicowane za pomocą różnych etykiet, można by je bez trudu przedstawić w inny sposób.
Opisowe znaczniki ewoluują w ogólne znaczniki . Nowe opisowe systemy znaczników strukturyzują dokumenty w formie drzewa , z możliwością dodawania odsyłaczy . Dzięki temu można je traktować jako bazy danych , w których sam magazyn jest świadomy struktury, a nie jako binarne duże obiekty ( bloby ), jak w przeszłości. Systemy te nie mają ścisłego schematu, takiego jak relacyjne bazy danych , dlatego często uważa się je za częściowo ustrukturyzowane bazy danych .
Mapa języków znaczników
To jest lista głównych języków znaczników uporządkowanych według dziedziny ich zastosowania. Zwróć uwagę, że języki o ogólnym zakresie mogą być używane do bardziej szczegółowych aplikacji (ale nie odwrotnie).
Major
Dokumenty ogólnie
| języki opisowe | Języki prezentacji | jasne języki | Języki instrukcji |
|
Technologie internetowe
| WWW | Interfejs użytkownika | Syndykacja | usługi internetowe |
|
|
Języki specjalistyczne
- Grafika 2D: SVG , CGM , VML , InkML .
- Grafika 3D: VRML / X3D , STEP .
- Matematyka : MathML i OpenMath .
- Muzyka : LilyPond i MusicXML .
- Taksonomia : DITA
- Rachunkowość finansowa : rozszerzalny język sprawozdawczości biznesowej .
- Geomatyka : Geografia ML .
- Aeronautyka : statek kosmiczny ML .
- Multimedia : zsynchronizowany język integracji multimediów .
- Głos: VoiceXML .
- Wiadomości błyskawiczne : XMPP .
- Gry wideo: BulletML , COLLADA .
Historia
Języki znaczników są nazwane od tradycyjnej praktyki oznaczania rękopisów instrukcjami drukowania na marginesach. W czasach prasy drukarskiej zadanie to spadło na markery, które wskazywały krój , styl i rozmiar, a także korektę błędów, aby inni ludzie mogli ustawiać krój . Doprowadziło to do powstania grupy ustandaryzowanych marek. [ 1 ] Wraz z wprowadzeniem komputerów , podobna koncepcja została przeniesiona do świata informatyki .
Początki
Koncepcja języka znaczników została po raz pierwszy przedstawiona przez Williama W. Tunnicliffe w 1967 roku . [ 2 ] Największą nowością było oddzielenie prezentacji od struktury tekstu. Tunnicliffe, który wolał odnosić się do tej koncepcji jako kodowania generycznego , później kierował opracowaniem standardu, który nazwał GenCode dla branży wydawniczej. Podobne pomysły przedstawił także wydawca Stanley Fish pod koniec lat sześćdziesiątych . Brian Reid w swojej pracy magisterskiej z Uniwersytetu Carnegie Mellon z 1980 r. przedstawił swoją teorię i praktyczną implementację wciąż używanego języka opisowego.
Za ojca języków znacznikowych uważany jest jednak Charles Goldfarb , badacz firmy IBM . Goldfarb był zaangażowany w tworzenie języka GML , a później kierował komitetem, który stworzył standard SGML , kamień węgielny języków znaczników. W każdym razie, pomimo kontrowersji dotyczących jego pochodzenia, powszechnie przyjmuje się, że pomysł powstał niezależnie kilka razy w latach 70 -tych , a rozpowszechnił się w latach 80 -tych .
Języki prymitywne
Pierwszym językiem, który wyraźnie różnicował strukturę prezentacji, był z pewnością Scribe, opracowany przez Briana Reida i opisany w 1980 roku w rozprawie doktorskiej . [ 3 ] Scribe był rewolucyjny z wielu powodów, nie tylko dlatego, że oddzielał styl od samych znaczników dokumentu, ale także z powodu kontroli gramatycznej nad użyciem elementów opisowych. Scribe wpłynął na rozwój późniejszych języków.
Innym ważnym standardem wydawniczym jest TeX , stworzony i utrzymywany przez Donalda Knutha w latach 70. i 80. XX wieku . TeX skupia się na szczegółowej strukturze tekstu i opisie czcionek , przede wszystkim z zakresu specjalistycznych czasopism matematycznych. Zmusiło to Knutha do poświęcenia znacznej ilości czasu na studiowanie typografii . TeX wymaga jednak dużej wiedzy, dlatego zaadoptował się dopiero w środowisku akademickim, gdzie jest de facto standardem w kilku dyscyplinach naukowych. Najbardziej rozpowszechnionym oprogramowaniem do wykorzystania TeX-a jest LaTeX .
Poza branżą wydawniczą pojawiły się również pewne inicjatywy, takie jak języki troff i nroff , języki używane do tworzenia layoutu w systemach UNIX . Jego funkcjonalność była ograniczona, ponieważ zmuszała do pracy metodą prób i błędów , aż znaki wstawione w tekście dawały pożądany efekt. Języki te nie przyjęły się w środowiskach profesjonalnych, są używane przez okazjonalnych użytkowników. Pojawienie się edytorów tekstu typu WYSIWYG zepchnęło te systemy w zapomnienie.
Uogólnienie języków znaczników
Inicjatywa, która położy podwaliny pod obecne języki, wyszłaby od firmy IBM, która szukała nowych rozwiązań do przechowywania dużej ilości dokumentów. Prace powierzono Charlesowi F. Goldfarbowi , który wraz z Edwardem Mosherem i Raymondem Lorie zaprojektował Generalized Markup Language czyli GML (należy zwrócić uwagę, że są to również inicjały jego twórców). Język ten odziedziczył po projekcie GenCode ideę oddzielenia prezentacji od treści. Markup skupia się zatem na określeniu struktury tekstu, a nie jego wizualnej prezentacji.
Język GML okazał się wielkim sukcesem i szybko rozprzestrzenił się na inne dziedziny, adoptowany przez rząd Stanów Zjednoczonych , dając tym samym początek konieczności jego standaryzacji . Na początku lat 80. powstał komitet kierowany przez Goldfarba. Członkami komitetu byli również Sharon Adler , Anders Berglund i James D. Mason . Włączono pomysły z różnych źródeł, w których uczestniczyła duża liczba osób. Po długim procesie, w 1986 roku Międzynarodowa Organizacja Normalizacyjna opublikowała Standard Generalized Markup Language w randze Normy Międzynarodowej z kodem ISO 8879 . [ 4 ]
SGML określa składnię umieszczania znaczników w tekście, a także składnię dokumentu określającą, które znaczniki są dozwolone i gdzie: Definicja typu dokumentu lub schemat . Dzięki temu autor mógł używać dowolnych znaczników, wybierając nazwy znaczników, które miały sens zarówno ze względu na tematykę dokumentu, jak i język . SGML jest więc, ściśle rzecz biorąc, metajęzykiem , z którego wywodzi się kilka języków specjalistycznych. Od końca lat 80. pojawiły się nowe języki oparte na SGML, takie jak TEI czy DocBook .
SGML został powszechnie zaakceptowany i jest obecnie używany w dziedzinach, w których wymagana jest dokumentacja na dużą skalę. Mimo to był kłopotliwy i trudny do nauczenia, ze względu na ambicję stawianych celów. Jego wielka moc była zarówno zaletą, jak i wadą. Na przykład niektóre etykiety mogą mieć tylko początek lub tylko koniec, a nawet zostać zignorowane, myśląc, że teksty zostaną napisane ręcznie i że zaoszczędziłoby to naciśnięć klawiszy . Był to jednak kluczowy punkt w rozwoju obecnych języków znaczników, ponieważ zdecydowana większość z niego wywodzi się.
Popularyzacja: HTML
W 1991 roku wydawało się, że edytory WYSIWYG (które przechowują dokumenty w zastrzeżonych formatach binarnych ) obejmują prawie cały edytor tekstu , sprowadzając SGML do bardzo specyficznych zastosowań profesjonalnych lub przemysłowych. Jednak sytuacja zmieniła się dramatycznie, gdy Sir Tim Berners-Lee , który nauczył się SGML od swojego kolegi z CERN Anders Berglund, użył składni SGML do tworzenia HTML .
Język ten był podobny do wszystkich innych stworzonych z SGML, jednak był niezwykle prosty, tak bardzo, że DTD powstało dopiero później. DeRose [ 5 ] twierdzi , że elastyczność i skalowalność znaczników HTML była jednym z głównych czynników sukcesu sieci WWW , obok wykorzystania adresów URL i darmowej dystrybucji przeglądarek .
HTML jest obecnie najczęściej używanym typem dokumentu na świecie. Jego prostota była taka, że każdy mógł pisać dokumenty w tym formacie, bez konieczności posiadania umiejętności obsługi komputera. Był to jeden z powodów jego sukcesu, ale też doprowadził do pewnego chaosu . Wykładniczy rozwój sieci w latach 90. spowodował powstanie ogromnych, ale słabo ustrukturyzowanych dokumentów, co dodatkowo pogarsza brak poszanowania standardów przez projektantów stron internetowych i dostawców oprogramowania.
Dojrzałość: XML
Odpowiedź na problemy, które pojawiły się wokół HTML, wyszła z ręki XMLa ( eX tensible Markup Language ) . XML to metajęzyk, który umożliwia tworzenie etykiet dostosowanych do Twoich potrzeb (stąd określenie „rozszerzalny”). Norma określa, jak te tagi mogą wyglądać i co można z nimi zrobić. Jest również szczególnie rygorystyczny co do tego, co jest dozwolone, a co nie, każdy dokument musi spełniać dwa warunki: być ważny i dobrze uformowany .
XML został opracowany przez Konsorcjum World Wide Web [ 6 ] za pośrednictwem komitetu utworzonego i kierowanego przez Jona Bosaka . Głównym celem było uproszczenie [ 7 ] SGML w celu dostosowania go do bardzo precyzyjnej dziedziny: dokumentów w Internecie.
Nowy język szybko się rozprzestrzenił, ponieważ każdy dokument XML sam w sobie jest SGML. Programy i dokumenty stworzone dla iz SGML mogą być niemal automatycznie konwertowane na nowy język. XML radykalnie uprościł złożoność SGML, ułatwiając naukę i wdrażanie nowego standardu. Rozwiązano również stare problemy, takie jak te wynikające z internacjonalizacji i niemożliwości walidacji dokumentu bez schematu . Podstawowym sukcesem tego języka jest zachowanie równowagi między prostotą a elastycznością.
XML był pierwotnie przeznaczony dla środowisk częściowo ustrukturyzowanych, takich jak teksty i publikacje. Jednym z najjaśniejszych przykładów jest XHTML , redefinicja HTML w kluczu XML, z wynikającymi z tego korzyściami. Szybko jednak zauważono, że jego zalety mogą być przydatne w bardzo różnych dziedzinach. Języki oparte na XML mają niezliczone zastosowania, takie jak transakcje danych między serwerami , wymiana informacji finansowych , formuły chemiczne i reakcje oraz wiele innych.
Trendy
Nowe trendy porzuciły dokumenty o strukturze drzewiastej . Teksty literatury antycznej mają zwykle strukturę prozatorską lub poetycką : wersety , akapity itp. Dokumenty referencyjne są zwykle podzielone na księgi , rozdziały , wersety i wiersze . Często przenikają się ze sobą, więc struktura drzewa nie odpowiada Twoim potrzebom. Nowe systemy modelowania przezwyciężają te wady, takie jak MECS , zaprojektowany do pracy Wittgensteina , czy wytyczne TEI , LMNL i CLIX .
Text Encoding Initiative ( TEI ) opublikowała wiele przewodników [ 8 ] dotyczących kodowania interesujących dokumentów z zakresu nauk humanistycznych i społecznych , opracowanych przez lata międzynarodowej współpracy. Wytyczne te zostały wykorzystane w niezliczonych projektach katalogowania dokumentów historycznych, artykułów naukowych itp.
Sieć semantyczna
Języki znaczników są podstawowym narzędziem w projektowaniu sieci semantycznej , takim, które nie tylko umożliwia dostęp do informacji , ale także definiuje jej znaczenie, tak aby jej automatyczne przetwarzanie było łatwiejsze i można było ją ponownie wykorzystać do różnych zastosowań. [ 9 ] Osiąga się to poprzez dodanie dodatkowych danych do dokumentów, za pomocą dwóch wyraźnie stworzonych języków: RDF ( Framework opisu zasobów - Platforma opisu zasobów) i OWL ( Język Ontologii Sieciowej - Język Ontologii dla sieci ), oba oparte na XML.
Funkcje
Zwykły tekst
Jedną z głównych zalet tego typu kodowania jest to, że znakomita większość może być interpretowana bezpośrednio, ponieważ są to zwykłe pliki tekstowe , z wyjątkiem niektórych języków prezentacji, które przechowują informacje w plikach binarnych, takich jak „ .doc ” MS Word , gdzie tylko niewielka część informacji jest czytelna. Jest to oczywista przewaga nad binarnymi systemami plików, które zawsze wymagają programu pośredniczącego do pracy. Dokument napisany w językach znaczników może być edytowany przez użytkownika za pomocą prostego edytora tekstu , bez uszczerbku dla użycia bardziej wyrafinowanych programów ułatwiających pracę.
Ponieważ są tylko tekstem, dokumenty są niezależne od platformy, systemu operacyjnego lub programu, za pomocą którego zostały utworzone. Była to jedna z przesłanek twórców GML w latach 70. , aby nie wprowadzać zbędnych ograniczeń w wymianie informacji. Jest to jeden z podstawowych powodów wielkiej akceptacji, jaką cieszyli się w przeszłości i wspaniałej przyszłości, która jest dla nich przewidziana.
Zwartość
Instrukcje znaczników są przemieszane z samą treścią w pojedynczym pliku lub strumieniu danych. To jest przykład w różnych językach znaczników:
| przykłady | HTML | Lateks | Wikitekst |
|---|---|---|---|
| Tytuł | <h1>Tytuł</h1> | \Tytuł sekcji} | == Tytuł == |
| Gotowy |
<ul> |
\begin{itemize} |
* Punkt 1 |
| pogrubiony tekst | <b>tekst</b> | \bf{tekst} | '''tekst''' |
| tekst kursywą | <i>tekst</i> | \it{tekst} | ''tekst'' |
Kod w nawiasach ostrych, takich jak <ul> lub z \section tags , to instrukcje znaczników, zwane również tagami. Te specyficzne znaczniki opisują strukturę dokumentu i mogą być jego wizualną prezentacją na różne sposoby. Z kolei znacznik i (od i talics , italics) określa, że tekst powinien być wyświetlany kursywą, bez podania przyczyny tego rozróżnienia: jest to znacznik prezentacyjny. Tekst pomiędzy tymi instrukcjami jest rzeczywistą treścią dokumentu.
Łatwość przetwarzania
Organizacje normalizacyjne opracowują specjalistyczne języki dla typów dokumentów poszczególnych społeczności lub branż. Jednym z pierwszych był CALS , używany przez wojsko USA do ich instrukcji technicznych. Inne branże, które wymagają dużej ilości dokumentacji, takie jak aeronautyka , telekomunikacja , motoryzacja czy hardware , rozwinęły języki dostosowane do ich potrzeb. Doprowadziło to do tego, że ich podręczniki są publikowane wyłącznie w wersji elektronicznej, a następnie są z nich uzyskiwane wersje drukowane, online lub na CD . Godnym uwagi przykładem była firma Sun Microsystems , która zdecydowała się na pisanie dokumentacji swoich produktów w języku SGML , co pozwoliło zaoszczędzić znaczne koszty . Odpowiedzialny za tę decyzję był Jon Bosak, który później założył komitet XML.
Elastyczność
Chociaż języki znaczników zostały pierwotnie opracowane dla dokumentów tekstowych, weszły do użytku w takich obszarach, jak grafika wektorowa , usługi sieciowe , syndykacja internetowa lub interfejsy użytkownika . Te nowe aplikacje wykorzystują prostotę i moc języka XML. Umożliwiło to połączenie kilku różnych języków znaczników w jednym pliku, jak w przypadku XHTML+SMIL i XHTML+MathML+SVG. [ 10 ]
Referencje
- ^ „Oznaki korekty” . Zarchiwizowane z oryginału w dniu 10 sierpnia 2006 . Pobrano 4 sierpnia 2006 .
- ↑ Konferencja pt . Oddzielenie treści informacyjnych dokumentów od ich formatu , która odbyła się w Ottawie we wrześniu 1967 r.
- ↑ Reid, Brian. Scribe: język specyfikacji dokumentów i jego kompilator . Pittsburgh :Dr. praca dyplomowa na Uniwersytecie Carnegie-Mellona. , dostępny również jako raport techniczny, CMU-CS-81-100.
- ↑ Odniesienie do normy 8879 w sieci ISO
- ↑ DeRose, Steven J. ( 1997 ). TheSGMLFAQBook . Boston : Wydawnictwo Akademickie Kluwer. ISBN 0-7923-9943-9 .
- ↑ Odniesienie do języka xml, wersja 1.1
- ↑ Uwaga W3C na temat różnic między SGML i XML
- ↑ Strona internetowa konsorcjum TEI
- ↑ Sieć semantyczna w W3C
- ↑ XHTML+MathML+SVG na stronie W3C .
Bibliografia
- James H. Coombs, Allen H. Renear, Steven J. DeRose ( 1995 ). „Systemy znaczników i przyszłość naukowego przetwarzania tekstu” . Detroit , USA : Uniwersytet Michigan . Źródło 2006 . Pierwotnie opublikowana w 1987 r., wprowadziła pojęcia, które są obecnie szeroko stosowane i położyła podwaliny pod rozwój języków opisowych.
- Carolina García Cataño i David Arroyo Menéndez ( 2002 ). „Biblioteka cyfrowa i sieć semantyczna” ( wydanie BiblioWeb SinDominio ) . Źródło 2006 . Zastosowanie języków znaczników dla biblioteki cyfrowej . Dostępne na licencji GFDL .
- Goldfarb, Charles F. ( 1996 ). „Korzenie SGML – osobiste wspomnienie” . Źródło 2006 .
- Goldfarb, Charles F. (1990). Podręcznik SGML . Wydawnictwo Uniwersytetu Oksfordzkiego . ISBN 0-19-853737-9 .
Linki zewnętrzne
- Organizacje normalizacyjne:
- Artykuły:
- Wydarzenia: