Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Ограничения: максимум вложений в сообщении — 3 (3 осталось), максимальный размер всех файлов — 300 КБ, максимальный размер одного файла — 100 КБ
Снимите пометку с вложений, которые необходимо удалить
Перетащите файлы сюда или используйте кнопку для добавления файлов
Вложения и другие параметры
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр

Сообщения в этой теме

Автор Тайльнемер
 - марта 3, 2013, 17:12
 :=
Автор vfaronov
 - марта 3, 2013, 15:05
Жил да был сильно флективный язык XML. И была у него такая морфологическая категория, называлась неймспейсы. Все существительные элементы и прилагательные атрибуты могли (опционально) маркироваться неймспейсами. Показателем неймспейса служил префикс, который приставлялся к имени через двоеточие. И префикс этот согласовывался с объявлением где-то выше по предложению документу.


<contact xmlns:family="http://example.org/vocab/family/">
    <name>John Doe</name>
    <age>58</age>
    <family:son family:ord="1">
        <name>John Doe Jr.</name>
        ...
    </family:son>
</contact>


Поскольку XML на тот момент был важным лингва-франка стандартом, под его влиянием такая же конструкция возникла в нескольких других литературных языках. В конечном счёте она доползла до XHTML+RDFa — диалекта HTML, на котором говорили в маленькой но гордой никому не нужной стране Семвебии.


<body xmlns:foaf="http://xmlns.com/foaf/0.1/">
    <p about="#me" typeof="foaf:Person">
        Hi, my name is <span property="foaf:name">Vasya</span>...
    </p>
</body>


Так бы и сгинула сия категория в пучине лет, если бы однажды в Семвебию не пришли завоеватели. Причём не абы какие, а Цукерберг суровые воины, которые знали толк в ратном деле, но были обделены высокой культурой. Они радостно переняли язык покорённых семвебианцев, затем пошли покорять дальше и тем самым разнесли его на большую территорию. Естественно, язык поменялся, и стал он называться OpenGraph.

Что случилось в OpenGraph? Во-первых, уже в литературном OpenGraph категория неймспейса утратила продуктивность. Она оставалась всего у нескольких лексических единиц, таких как og:site_name 'название сайта' и og:description 'описание'. Префикс у них у всех был одинаковый og:-. Разнообразие синтаксических позиций, в которых дозволялись неймспейсы в XHTML+RDFa, было сведено к одной-единственной — на элементе meta 'всякий вздор; чепуха' в голове документа. Но это всё ещё было грамматично в XHTML+RDFa.

Ну а дальше, как вы уже догадались, случилась деградация дефлексия. Поскольку надобность в согласовании по неймспейсу отпала, в разговорном OpenGraph стали просто дропать объявление префикса og:-. Он был реанализирован как неотъемлемая часть имени с прикольными точечками. И вот, сегодня я увидел вот такое:


<meta property="email:action" content="Grab $100 off this deal!" />
<meta property="email:action:web_url" content="http://fab.com/deal/2342342" />


С точки зрения RDFa, вот это email:action:web_url это что-то вроде -щехом во Влескниге.

И всё это не за сотни лет, а за единицы. Не понимаю, зачем лингвисты раскапывают всякую романскую диахронию, когда у них под носом такое веселье творится.
Автор Bhudh
 - декабря 20, 2011, 14:33
Ну дядя. В общем, достаточно близкий родственник...
XMLXHTML
SGML
HTMLHTML5

Будем ɕːитать, что под XML разумелся его ближайший предок. :eat:
Автор arseniiv
 - декабря 20, 2011, 14:15
Предок HTML не XML!
Автор Bhudh
 - декабря 20, 2011, 13:59
Цитата: vfaronov от Отдельная эпопея — элемент TABLE. Сперва это таблица, потом им пользуются для вёрстки всего подряд, потом в 00-х возникает чуть не целое движение против презентационных таблиц (табу?).
Даже не только презентационных, иные выступают за отмену тэгов table tr td и подобных вообще.
Вот, например: «Таблицы CSS лучше таблиц HTML?».
Это можно уже назвать «проникновением конкурирующего диалекта/арго», если за «диалектный континуум» принять связку HTML+CSS+JavaScript.

Цитата: vfaronov от Словообразование в HTML бедное: только априорным придумыванием.
Не всё так печально.
В HTML5 можно объявлять пользовательские атрибуты (specs), что, собственно, является запоздалым влиянием предка — XML, в котором объявляется всё что угодно. Впрочем, через DOM можно создать тэг с произвольным именем и работать с ним как с обычными (по крайней мере в Опере). Оно, канешна, уже не столь валидно, но может быть полезно.
А о юзер-атрибутах здесь:
Автор Alone Coder
 - декабря 20, 2011, 12:57
О да, когда я составил сайт в точности по методу, которому нам учили в 2000 году, W3C в 2010 году нашёл в нём с десяток ошибок. Исправил.
Автор vfaronov
 - декабря 19, 2011, 21:19
Программные интерфейсы (= протоколы, форматы, языки, API...) подвержены естественному (ненамеренному) изменению со временем, «дрейфу». Я давно хочу провести параллели между диахронией интерфейсов и диахронией естественных языков (далее NL). Как минимум это занятно. Как максимум — а вдруг удастся, отталкиваясь от методов и результатов лингвистики, намутить что-то предсказательное для интерфейсов?

Сваливаю некоторые мысли сюда, вдруг кто-то захочет развить. Это моя первая попытка выделить в языке HTML уровни, соответствующие уровням NL, и на каждом привести примеры диахронии. Чистая спекуляция и handwaving.

Почему именно HTML. Навскидку, из знакомых мне интерфейсов, HTML быстрее всех «дрейфует». Я вижу тому несколько причин, но о них потом.


«Фонетика» и «фонология». «Звуковой» уровень HTML — это его синтаксис. Пусть вас не смущает, что у NL тоже есть синтаксис, это ложный друг. То что происходит на уровне лексера (поток токенов) — это «фонетика», а на уровне парсера — «фонология». Автор HTML-кода видит токены-«фонемы» /</, /div/, />/, но его не волнуют символы, из которых состоит токен /div/. Опечатки можно не рассматривать, поскольку, в отличие от других ошибок, юзер-агенты ничего с ними сделать не могут.

Пример «звукового закона» HTML (в левой части пробелы лишние, ну вы поняли):

   /& amp;/ > /&/
   /& quot;/ > /"/
   /& lt;/ > /</
   /& gt;/ > />/
Иными словами, есть тенденция не экранировать амперсанд и т. д. в виде character references, как положено, а оставлять в тексте как есть. Вы скажете: где же тут диахрония, так было испокон веку. И вы вероятно правы. Но, если раньше это было однозначно ошибочно, то сейчас в HTML5 даются чёткие правила, как это распарсить, то есть это вроде как уже норма.

Ещё один «звуковой закон»:

   /"/ > ∅ вокруг некоторых значений атрибутов (грубо говоря — достаточно простых, например целых чисел)
То есть, вместо border="0" пишут border=0. Опять же, так делали всегда, и в HTML4 это валидно. Но в середине-конце 00-х оборачивать всё в кавычки было best practice, в XHTML это обязательно, а сейчас, как мне кажется, в HTML5 стало модно кавычки убирать. (Жаль, нет данных. Надо идти в поле ;D)

Тенденция опускать закрывающие теги, даже там, где по норме этого делать нельзя (например в XHTML), — это, типа, упрощение геминации получается. Опять же, в HTML5 этого уже не стесняются.


«Грамматика». Пока точно не знаю, что является «грамматикой» («морфологией» и «синтаксисом») HTML. Наверное нелокальные структурные связи внутри документа и между документами. Например, если в одном месте есть <a href="#foo">, а в другом месте <div id="foo">, то это что-то типа согласования.

Тут можно рассмотреть «утрату продуктивности» HTML как приложения SGML. Версии HTML со второй по четвёртую определялись через SGML DTD. Но юзер-агентов, которые бы парсили HTML по этому DTD, были единицы, все остальные работали с HTML как с вещью в себе. В результате в HTML5 (в его не-XML варианте) от ссылок на SGML отказались, весь парсинг описан прямо в спеке. Остались угловые скобки, слэши, да жупел <!DOCTYPE html> — fossilized конструкция, не несущая функциональной нагрузки.

Мне это больше всего напоминает ИЕ аблаут. Он был ключевой морфонологической чертой ПИЕ, потом он умер, но в языках-потомках осталось множество следов, которые сегодня осмысливаются как просто нерегулярности.


«Лексика» и «семантика». «Лексика» HTML — это его элементы и атрибуты. У них есть «семантика» — то, чего хотят добиться авторы HTML-кода с помощью данных элементов/атрибутов. Не нужно путать эту «семантику» с той, что прописана в спеке, которую имеют в виду, когда говорят «semantic HTML». Эта нормативная семантика — частный случай нашей «семантики».

«Семантические» сдвиги в «лексике» HTML в основном по оси «смысл—представление» (ср. др.-греч. καλός 'красивый' > новогреч. καλός 'хороший'). Пример — элемент BLOCKQUOTE, исходное значение которого — «блоковая цитата», но в народном HTML (vulgar HTML) он приобрёл значение «блок текста с отступом по левому краю». Натуральная метонимия. С элементами B и I произошло обратное: начинались как чисто презенатционные, но в HTML5 из них выжали какое-то (хоть и расплывчатое) логическое значение.

Отдельная эпопея — элемент TABLE. Сперва это таблица, потом им пользуются для вёрстки всего подряд, потом в 00-х возникает чуть не целое движение против презентационных таблиц (табу?).

Словообразование в HTML бедное: только априорным придумыванием. Заимствований из других языков сходу не назову, хотя в принципе они возможны (случаи встраивания в HTML других пространств имён, вроде SVG или MathML, разумеется, за заимствования не считаем, — это code-switching).

Рождение микроформатов — возникновение идиоматики + некого жаргона.


«Письменность» HTML — это DOM. Код HTML-документа — линейный поток токенов — это «устное высказывание»: вылетит — не поймаешь. DOM же поддерживает random access, как и NL-письменность (особенно если это письменность на компьютере). DOM аккуратненько обрубает нам как раз «звуковой» уровень, оставляя всё остальное.

Про диахронию тут сказать пока нечего, кроме того, что «письменность» возникла (не сразу — как и у NL) и прошла через несколько стадий: DOM1→DOM3 (клинопись→алфавит?).


«Социолингвистика». Это очень благодатная тема. Тут есть и литературный язык, и безграмотная речь низших сословий, и граммар-наци, и проекты реформ... Надо изучать.


TODO. Рассматривать не только HTML, но и другие компоненты открытой веб-платформы — CSS, JavaScript, HTTP. Исследовать историю этих интерфейсов, составить базу фактов.