Послушайте эту статью
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Пример RecipeBook, простого языка на основе XML для создания рецептов. Разметку можно преобразовать в HTML , PDF и Rich Text Format с помощью языка программирования или XSL .

При обработке текста компьютером, язык разметки представляет собой систему для аннотирования в документ таким образом , что является синтаксически отличить от текста, [1] это означает , когда документ обрабатывается для отображения, язык разметки не показан, и используется только для отформатируйте текст. [2] Идея и терминология возникли из «разметки» бумажных рукописей (т. Е. Инструкций редакторов по редактированию), которые традиционно пишутся красной ручкой или синим карандашом на авторских рукописях. [3] Такая «разметка» обычно включает в себя как исправления содержимого (например, орфографию, пунктуацию или перемещение содержимого), так и типографские инструкции, например, сделать заголовок больше или полужирным шрифтом.

В цифровых СМИ , этот «синий текст инструкции карандаш» был заменен на тегах , которые идеально указывают на то , что части документа являются , а не детали того , как они могут быть показаны на некотором дисплее. Это позволяет авторам избегать избыточного (и, возможно, непоследовательного) форматирования каждого экземпляра одного и того же объекта. Он также избегает указания шрифтов и размеров, которые могут не относиться к многим пользователям (например, с дисплеями разного размера, с ослабленным зрением и программным обеспечением для чтения с экрана).

Ранние системы разметки обычно включали инструкции набора, как это делают troff , TeX и LaTeX , в то время как Scribe и большинство современных систем разметки именуют компоненты, а затем обрабатывают эти имена для применения форматирования или другой обработки, как в случае XML .

Некоторые языки разметки, такие как широко используемый HTML , имеют предопределенную семантику представления - это означает, что их спецификация предписывает некоторые аспекты того, как представлять структурированные данные на определенных носителях. HTML, как и DocBook , Open eBook , JATS и многие другие, является особым приложением метаязыков разметки SGML и XML . То есть SGML и XML позволяют пользователям указывать определенные схемы , которые определяют, какие элементы, атрибуты и другие функции разрешены и где.

Одна чрезвычайно важная характеристика большинства языков разметки заключается в том, что они позволяют смешивать разметку непосредственно в текстовых потоках. В документах это происходит постоянно: несколько слов в предложении должны быть выделены или идентифицированы как собственное имя, определенный термин или другой особый элемент. Структурно это сильно отличается от традиционных баз данных, где по определению невозможно иметь данные, которые (например) находятся в записи, но не в каком-либо поле. Точно так же разметка для текстов на естественном языке должна поддерживать порядок: было бы недостаточно превратить каждый абзац книги в запись «параграфа», если эти записи не поддерживают порядок.

Этимология [ править ]

Существительное разметка является производной от традиционной издательской практики под названием «разметка» рукопись , [4] , который включает в себя добавление рукописных аннотаций в виде обычного символического принтера «s инструкции - в полях и тексте документа или печатной рукописи . Это жаргон, используемый в доказательстве кодирования . На протяжении веков эта задача выполнялась в основном опытными типографами, известными как «разметчики» [5] или «d-маркеры» [6], которые размечали текст, чтобы указать, какой шрифт , стиль и размер следует применить к каждой части, а затем передал рукопись другим на наборвручную или машиной. Разметка также обычно применялась редакторами, корректорами, издателями и графическими дизайнерами, а также авторами документов, каждый из которых также мог отмечать другие вещи, такие как исправления, изменения и т. Д.

Типы языков разметки [ править ]

Существует три основных категории электронной разметки, сформулированные в Coombs, et al. (1987), [7] и Брей (2003). [8]

Презентационная разметка
Разметка, используемая в традиционных системах обработки текстов: двоичные коды, встроенные в текст документа, которые производят эффект WYSIWYG (« то, что вы видите, то и получаете »). Такая разметка обычно скрыта от пользователей-людей, даже от авторов и редакторов. Собственно говоря, такие системы используют процедурную и / или описательную разметку внизу, но преобразуют ее в «настоящее» для пользователя как геометрическое расположение шрифтов.
Процедурная разметка
Разметка встроена в текст и содержит инструкции для программ по обработке текста. Хорошо известные примеры включают troff , TeX и PostScript . Ожидается, что процессор будет просматривать текст от начала до конца, следуя инструкциям, которые встречаются. Текст с такой разметкой часто редактируется так, чтобы разметка была видна и непосредственно изменена автором. Популярные системы процедурной разметки обычно включают программные конструкции, а макросы или подпрограммы обычно определяются таким образом, что сложные наборы инструкций могут быть вызваны простым именем (и, возможно, несколькими параметрами). Это намного быстрее, менее подвержено ошибкам и удобнее в обслуживании, чем повторение тех же или подобных инструкций во многих местах.
Описательная разметка
Разметка специально используется для обозначения частей документа, что они есть, а не того, как их следует обрабатывать. Хорошо известные системы, которые предоставляют множество таких меток, включают LaTeX , HTML и XML . Цель состоит в том, чтобы отделить структуру документа от какой-либо конкретной обработки или его представления. Такую разметку часто называют «семантической». Примером описательной разметки может служить <cite>тег HTML , который используется для обозначения цитаты. Описательная разметка - иногда называемая логической разметкой или концептуальной разметкой - побуждает авторов писать таким образом, чтобы описывать материал концептуально, а не визуально. [9]

Границы между типами разметки сильно размыты. В современных системах обработки текстов презентационная разметка часто сохраняется в системах, ориентированных на описательную разметку, таких как XML , а затем обрабатывается процедурно реализациями. Программирование в системах процедурной разметки, таких как TeX , может использоваться для создания систем разметки более высокого уровня, которые являются более описательными по своей природе, таких как LaTeX .

В последние годы был разработан ряд небольших и в значительной степени нестандартизированных языков разметки, позволяющих авторам создавать форматированный текст с помощью веб-браузеров, таких как те, которые используются в вики и на веб-форумах. Иногда их называют облегченными языками разметки . Markdown , BBCode и язык разметки, используемый Википедией, являются примерами таких языков.

История языков разметки [ править ]

GenCode [ править ]

Первое широко известное публичное представление языков разметки в компьютерной обработке текста было сделано Уильямом У. Танниклиффом на конференции в 1967 году, хотя он предпочитал называть это общим кодированием. Это можно рассматривать как ответ на появление таких программ, как RUNOFF , каждая из которых использовала свои собственные контрольные обозначения, часто специфичные для целевого устройства набора. В 1970-х годах Танниклифф руководил разработкой стандарта под названием GenCode для издательской индустрии, а позже стал первым председателем комитета Международной организации по стандартизации, который создал SGML , первый стандартный язык описательной разметки. Книжный дизайнер Стэнли Райс опубликовал подобные предположения в 1970 году.[10]

Брайан Рид в своей диссертации 1980 года в Университете Карнеги-Меллона разработал теорию и рабочую реализацию описательной разметки в реальных условиях. Однако сегодня исследователя IBM Чарльза Гольдфарба чаще считают «отцом» языков разметки. Гольдфарб понял основную идею, работая над примитивной системой управления документами, предназначенной для юридических фирм в 1969 году, и помог изобрести IBM GML позже в том же году. Впервые GML был обнародован в 1973 году.

В 1975 году Гольдфарб переехал из Кембриджа, штат Массачусетс, в Кремниевую долину и стал планировщиком продуктов в исследовательском центре IBM Almaden . Там он убедил руководителей IBM коммерчески развернуть GML в 1978 году как часть продукта IBM Document Composition Facility, и в течение нескольких лет он широко использовался в бизнесе.

SGML, основанный как на GML, так и на GenCode, был проектом ISO, над которым Гольдфарб работал с 1974 года. [11] Гольдфарб в конечном итоге стал председателем комитета SGML. SGML был впервые выпущен ISO в качестве стандарта ISO 8879 в октябре 1986 года.

troff и nroff [ править ]

Некоторые ранние примеры компьютерных языков разметки, доступные за пределами издательской индустрии, можно найти в инструментах набора в системах Unix , таких как troff и nroff . В этих системах команды форматирования вставлялись в текст документа, чтобы программное обеспечение для набора текста могло форматировать текст в соответствии со спецификациями редактора. Это был итеративный процесс проб и ошибок, чтобы правильно напечатать документ. [12] Доступность WYSIWYG («то, что вы видите, то и получаете») программное обеспечение для публикации вытеснило широкое использование этих языков обычными пользователями, хотя серьезные издательские работы по-прежнему используют разметку для определения невизуальной структуры текстов, а редакторы WYSIWYG теперь обычно сохраняют документы в разметке. -языковой формат.

TeX для формул [ править ]

Еще один важный стандарт публикации - TeX , созданный и усовершенствованный Дональдом Кнутом в 1970-х и 80-х годах. TeX сконцентрировался на детальной компоновке текста и описаний шрифтов для набора математических книг. Это потребовало от Кнута потратить много времени на изучение искусства набора . TeX в основном используется в академических кругах , где он де-факто является стандартом во многих научных дисциплинах. Макропакет TeX, известный как LaTeX, обеспечивает описательную систему разметки поверх TeX и широко используется как в научном сообществе, так и в издательской индустрии. [13]

Scribe, GML и SGML [ править ]

Первым языком, который провел четкое различие между структурой и представлением, был Scribe , разработанный Брайаном Рейдом и описанный в его докторской диссертации в 1980 году. [14] Scribe был революционным во многих отношениях, не в последнюю очередь потому, что он ввел идею разделения стилей из размеченного документа и грамматики, контролирующей использование описательных элементов. Scribe оказал влияние на разработку Generalized Markup Language (позже SGML) [15] и является прямым предком HTML и LaTeX . [16]

В начале 1980-х годов идея о том, что разметка должна фокусироваться на структурных аспектах документа и оставлять визуальное представление этой структуры интерпретатору, привела к созданию SGML . Язык был разработан комитетом под председательством Гольдфарба. В него были включены идеи из множества различных источников, в том числе из проекта Танниклиффа GenCode. Шэрон Адлер, Андерс Берглунд и Джеймс А. Марке также были ключевыми членами комитета SGML.

SGML определил синтаксис для включения разметки в документы, а также один для отдельного описания того, какие теги были разрешены и где (определение типа документа ( DTD ), позже известное как схема ). Это позволяло авторам создавать и использовать любую разметку по своему усмотрению, выбирая наиболее понятные для них теги и названные на их собственных естественных языках, а также позволяя автоматическую проверку. Таким образом, SGML является метаязыком , и многие конкретные языки разметки являются производными от него. С конца 80-х годов наиболее существенные новые языки разметки были основаны на системе SGML, включая, например, TEI и DocBook.. SGML был провозглашен международным стандартом Международной организацией по стандартизации ISO 8879 в 1986 году [17].

SGML нашел широкое признание и использование в областях с очень крупномасштабными требованиями к документации. Однако многие сочли его громоздким и трудным для изучения - побочный эффект его дизайна, который пытается сделать слишком много и быть слишком гибким. Например, SGML сделал конечные теги (или начальные теги, или даже и то, и другое) необязательными в определенных контекстах, потому что его разработчики думали, что разметка будет выполняться вручную перегруженными работой сотрудниками службы поддержки, которые были бы признательны за сохранение нажатий клавиш [ необходима ссылка ] .

HTML [ править ]

В 1989 году компьютерный ученый сэр Тим Бернерс-Ли написал меморандум, в котором предлагал основанную на Интернете систему гипертекста [18], затем определил HTML и написал программное обеспечение браузера и сервера в последней половине 1990 года. Первым общедоступным описанием HTML было документ под названием «HTML-теги», впервые упомянутый в Интернете Бернерсом-Ли в конце 1991 года. [19] [20] Он описывает 18 элементов, составляющих первоначальный, относительно простой дизайн HTML. За исключением тега гиперссылки, на них сильно повлиял SGMLguid , собственный SGML.основанный на формате документации в CERN и очень похожий на образец схемы в стандарте SGML. Одиннадцать из этих элементов все еще существуют в HTML 4. [21]

Бернерс-Ли считал HTML приложением SGML. Engineering Task Force Интернет (IETF) официально определил ее как таковой с публикацией в середине 1993 года первого предложения об HTML спецификации: «Hypertext Markup Language (HTML)» Интернет-проект по Бернерс-Ли и Дэн Коннолли , который включал Определение типа документа SGML для определения грамматики. [22] Многие из текстовых элементов HTML можно найти в техническом отчете ISO 1988 года TR 9537 « Методы использования SGML» , который, в свою очередь, охватывает особенности ранних языков форматирования текста, таких как тот, который использовался командой RUNOFF, разработанной в начале 1960-х годов для CTSS(Совместимая система разделения времени) операционная система. Эти команды форматирования были заимствованы из команд, используемых наборщиками для ручного форматирования документов. Стивен ДеРоуз [23] утверждает, что использование описательной разметки в HTML (и, в частности, влияние SGML) было основным фактором успеха Интернета из-за гибкости и расширяемости, которые он обеспечивал. HTML стал основным языком разметки для создания веб-страниц и другой информации, которая может отображаться в веб-браузере, и, скорее всего, сегодня является наиболее часто используемым языком разметки в мире.

XML [ править ]

XML (Extensible Markup Language) - это очень широко используемый язык мета-разметки. XML был разработан Консорциумом World Wide Web в комитете, созданном и возглавляемом Джоном Босаком . Основная цель XML состояла в том, чтобы упростить SGML, сосредоточив внимание на конкретной проблеме - документах в Интернете. [24] XML остается метаязыком, подобным SGML, позволяя пользователям создавать любые необходимые теги (следовательно, «расширяемые»), а затем описывать эти теги и их разрешенное использование.

Принятию XML помогло то, что каждый XML-документ может быть написан таким образом, что он также является документом SGML, а существующие пользователи SGML и программное обеспечение могут довольно легко переключиться на XML. Однако XML устранил многие из более сложных функций SGML, чтобы упростить среды реализации, такие как документы и публикации. Казалось, что это золотая середина между простотой и гибкостью, а также поддержка очень надежных инструментов определения схемы и проверки, и была быстро принята для многих других целей. В настоящее время XML широко используется для обмена данными между приложениями, для сериализации данных программ, для протоколов аппаратной связи, векторной графики и многих других применений, а также документов.

XHTML [ править ]

С января 2000 года все Рекомендации W3C для HTML были основаны на XML , а не SGML, с помощью аббревиатуры XHTML (Е х tensible Н Yper Т внутр M arkup L anguage). Спецификация языка требует, чтобы веб-документы XHTML были правильно сформированными документами XML. Это позволяет создавать более строгие и надежные документы при использовании тегов, знакомых по HTML.

Одним из наиболее заметных различий между HTML и XHTML является правило, согласно которому все теги должны быть закрыты : пустые теги HTML, такие как, <br>должны быть либо закрыты обычным конечным тегом, либо заменены специальной формой: <br />(пробел перед символом ' /' в конце тега является необязательным, но часто используется, поскольку он позволяет некоторым веб-браузерам до XML и синтаксическим анализаторам SGML принимать тег). Другой - необходимость заключать в кавычки все значения атрибутов в тегах. Наконец, все имена тегов и атрибутов в пространстве имен XHTML должны быть в нижнем регистре, чтобы быть действительными. HTML, с другой стороны, нечувствителен к регистру.

Другие приложения на основе XML [ править ]

Сейчас существует множество приложений на основе XML, включая структуру описания ресурсов как RDF / XML , XForms , DocBook , SOAP и язык веб-онтологий (OWL). Неполный их список см. В разделе Список языков разметки XML .

Особенности языков разметки [ править ]

Общей особенностью многих языков разметки является то, что они смешивают текст документа с инструкциями разметки в одном потоке данных или файле. В этом нет необходимости; можно отделить разметку от текстового содержимого, используя указатели, смещения, идентификаторы или другие методы для их согласования. Такая «разметка противостояния» типична для внутренних представлений, которые программы используют для работы с размеченными документами. Однако встроенная или «встроенная» разметка гораздо более распространена в других местах. Вот, например, небольшой фрагмент текста, размеченный в HTML:

< h1 > Anatidae </ h1 > < p >
Семейство < i > Anatidae </ i > включает уток, гусей и лебедей,но < em > не </ em > близкородственные крикуны.</ p >

Коды, заключенные в угловые скобки, <like this>представляют собой инструкции по разметке (известные как теги), а текст между этими инструкциями является фактическим текстом документа. Коды h1, pи emявляются примерами семантической разметки, поскольку они описывают предполагаемую цель или значение текста, который они включают. В частности, h1означает «это заголовок первого уровня», pозначает «это абзац» иemозначает «это подчеркнутое слово или фраза». Программа, интерпретирующая такую ​​структурную разметку, может применять свои собственные правила или стили для представления различных фрагментов текста, используя разные гарнитуры, жирность, размер шрифта, отступ, цвет или другие стили по желанию. Например, такой тег, как "h1" (уровень заголовка 1), может быть представлен в статье крупным жирным шрифтом без засечек или подчеркнут в моноширинном документе (в стиле пишущей машинки) - или это может просто не быть изменить презентацию вообще.

Напротив, iтег в HTML 4 является примером презентационной разметки, которая обычно используется для указания конкретной характеристики текста без указания причины такого появления. В этом случае iэлемент диктует использование курсива. Однако в HTML 5 этот элемент был перепрофилирован с более семантическим использованием: для обозначения диапазона текста другим голосом или настроением или иным образом смещения от обычной прозы таким образом, чтобы указать другое качество текста . Например, этот iэлемент уместно использовать для обозначения таксономического обозначения или фразы на другом языке. [25] Это изменение было сделано для того, чтобы максимально упростить переход от HTML 4 к HTML 5, чтобы устаревшие виды использования презентационных элементов сохранили наиболее вероятную предполагаемую семантику.

Text Encoding Initiative (TEI) опубликовала подробные руководящие принципы [26] о том , как закодировать текстов , представляющих интерес в области гуманитарных и социальных наук, разработанных за годы совместной международной работы. Эти руководящие принципы используются проектами кодирования исторических документов, работ определенных ученых, эпох или жанров и т. Д.

Альтернативные способы использования [ править ]

Хотя идея языка разметки возникла в текстовых документах, все чаще используются языки разметки для представления других типов информации, включая списки воспроизведения , векторную графику , веб-службы , распространение контента и пользовательские интерфейсы . Большинство из них являются приложениями XML, поскольку XML - это четко определенный и расширяемый язык.

Использование XML также привело к возможности объединения нескольких языков разметки в один профиль, например XHTML + SMIL и XHTML + MathML + SVG . [27]

См. Также [ править ]

  • Легкий язык разметки
  • Сравнение языков разметки документов
  • Curl (язык программирования)
  • HTML
  • Латекс
  • Список языков разметки
  • Уценка
  • Язык программирования
  • Простой текст
  • Форматированный текст
  • ReStructuredText
  • Язык стиля
  • Тег (разметка)
  • WYSIWYG
  • XML

Ссылки [ править ]

  1. ^ "язык разметки" . Словарь Мерриама-Вебстера .
  2. ^ «Язык разметки § Объяснение» . Глоссарий данных Science Europe .
  3. ^ Сихерт, Карл; Ботт, Эд (2013). Microsoft Office Inside Out: 2013 издание . Pearson Education. п. 305. ISBN 978-0735669062. ... Некоторые обозреватели предпочитают следовать старой школе, используя красную ручку при печати ....
  4. ^ ЧЭНЬ, Xinying (2011). «Центральные узлы китайских синтаксических сетей». Китайский научный бюллетень . 56 (10): 735–740. DOI : 10.1360 / 972010-2369 . ISSN 0023-074X . 
  5. Аллан Вудс, « Современное газетное производство» (Нью-Йорк: Harper & Row, 1963), 85; Стюарт Харрал, « Прибыльные связи с общественностью для газет» (Анн-Арбор: Дж. У. Эдвардс, 1957), 76; и Чиарелла против Соединенных Штатов , 445 U.S. 222 (1980).
  6. ^ С ноутбуками HJH & DHA в композиции , Kingsport Press Inc., без даты (1960).
  7. ^ Кумбс, Джеймс Х .; Renear, Allen H .; ДеРоуз, Стивен Дж. (Ноябрь 1987 г.). «Системы разметки и будущее научной обработки текстов» . Коммуникации ACM . 30 (11): 933–947. CiteSeerX 10.1.1.515.5618 . DOI : 10.1145 / 32206.32209 . S2CID 59941802 .  
  8. Брей, Тим (9 апреля 2003 г.). «О семантике и разметке, систематике разметки» . www.tbray.org/ongoing . Дата обращения 9 июля 2015 .
  9. ^ Майкл Даунс. "TEX и LATEX 2e"
  10. ^ Райс, Стэнли. «Редакционные текстовые структуры (с некоторыми отношениями к информационным структурам и элементам управления форматом в компьютеризированной композиции)». Американский национальный институт стандартов, 17 марта 1970 г.
  11. ^ "Интервью 2009 года с создателем SGML Чарльзом Ф. Гольдфарбом" . Журнал доктора Добба . Проверено 18 июля 2010 .[ постоянная мертвая ссылка ]
  12. ^ Дэниел Гилли. Коротко о Unix: Глава 12. Nroff и Troff . O'Reilly Books, 1992. ISBN 1-56592-001-5. 
  13. ^ "Окончательное, нетехническое введение в LaTeX, профессиональный набор и научные публикации" . Математическое хранилище . 2015-09-05 . Проверено 18 июля 2019 .
  14. ^ Рид, Брайан. «Писец: язык спецификации документов и его компилятор». Кандидат наук. защитил диссертацию в Университете Карнеги-Меллона, Питтсбург, Пенсильвания. Также доступен как технический отчет CMU-CS-81-100.
  15. ^ "документы" . xml.coverpages.org . Проверено 18 июля 2019 .
  16. ^ HTML является частным экземпляром SGML, тогда как LaTeX разработан с учетом философии Scribe разделения контента и дизайна.
  17. ^ 14: 00-17: 00. «ISO 8879: 1986» . ISO . Проверено 18 июля 2019 .CS1 maint: числовые имена: список авторов ( ссылка )
  18. ^ Тим Бернерс-Ли, «Управление информацией: предложение». ЦЕРН (март 1989 г., май 1990 г.). W3.org
  19. ^ «Теги, используемые в HTML» . Консорциум World Wide Web. 3 ноября 1992 . Проверено 16 ноября 2008 года .
  20. ^ «Первое упоминание HTML-тегов в списке рассылки www-talk» . Консорциум World Wide Web. 29 октября 1991 . Проверено 8 апреля 2007 года .
  21. ^ «Указатель элементов в HTML 4» . Консорциум World Wide Web. 24 декабря 1999 . Проверено 8 апреля 2007 года .
  22. Тим Бернерс-Ли (9 декабря 1991 г.). "Re: документы SGML / HTML, X Browser (заархивированная запись списка рассылки www-talk)" . Проверено 16 июня 2007 года . SGML очень общий. HTML - это конкретное приложение базового синтаксиса SGML, применяемое к гипертекстовым документам с простой структурой.
  23. ^ ДеРоуз, Стивен Дж. «Книга часто задаваемых вопросов SGML». Бостон: Kluwer Academic Publishers, 1997. ISBN 0-7923-9943-9 
  24. ^ «Расширяемый язык разметки (XML)» . W3.org . Проверено 28 июня 2014 .
  25. ^ Хиксон, Ян. «Уровень жизни HTML» . WHATWG - HTML . Проверено 13 сентября 2020 .
  26. ^ "Рекомендации TEI по кодированию и обмену электронными текстами" . Tei-c.org. Архивировано из оригинала на 2014-07-03 . Проверено 28 июня 2014 .
  27. ^ Профиль XHTML + MathML + SVG ". W3C, 9 августа 2002 г. Проверено 17 марта 2007 г.

Внешние ссылки [ править ]

Послушайте эту статью ( 20 минут )
Разговорный значок Википедии
Этот аудиофайл был создан на основе редакции этой статьи от 6 мая 2006 г. и не отражает последующих правок. ( 2006-05-06 )