3. О чем доклад?
Миссия W3C: «Полностью раскрыть потенциал
Всемирной паутины, путѐм создания
протоколов и принципов, гарантирующих
долгосрочное развитие Сети».
W3C разрабатывает для Интернета единые принципы и стандарты,
называемые «рекомендациями», которые затем внедряются
производителями программ и оборудования. Таким образом достигается
совместимость между программными продуктами и аппаратурой
различных компаний, что делает Всемирную сеть более совершенной,
универсальной и удобной.
Рекомендации консорциума Всемирной паутины открыты, то есть не
защищены патентами и могут внедряться любым человеком без всяких
финансовых отчислений консорциуму.
Wikipedia
4. Кто за всем этим стоит?
• Возможность редактировать информацию
Паутины не менее важна, чем возможность
просто лазать по ней.
В этом смысле Бернерс-Ли очень рассчитывает
на концепцию WYSIWYG, хотя Wiki — это тоже
шаг в нужном направлении.
• Компьютеры могут быть использованы для
«фоновых процессов», помогающих людям
работать сообща.
• Каждый аспект Интернета должен работать
как паутина, а не как иерархия. В этом
смысле очень неприятным исключением
Тим Бернерс-Ли является система имѐн доменов (англ. Domain
Name System, DNS), управляемая
Известен как:
изобретатель WWW и
организацией ICANN.
действующий глава W3C • Учѐные-компьютерщики несут не только
техническую ответственность, но и
моральную.
5. Статистика
• 599 документов в различных статусах от черновика до
действующей рекомендации
• 110 технологий, которые можно разбить на 7 разделов
• Миссия консорциума базируется на 2 принципах:
• Web for All
Всемирная паутина должна быть доступна для
всех, независимо от языка, способностей или
ограничений здоровья.
• Web on Everything
Всемирная паутина должна быть доступна на
любых устройствах, подключенных к Интернет.
6. Видение W3C
• Web for Rich Interaction
Web был изобретен как инструмент коммуникации и он должен позволить
всем обмениваться информацией. В течение многих лет, веб был "только
для чтения". Сейчас ситуация меняется. Стандарты W3C поддерживают
эту эволюцию благодаря четким принципам архитектуры и дизайна.
• Web of Data and Services
Некоторые люди считают, что Интернет – это гигантское хранилище
данных, а другие – что это гигантский набор сервисов, которые
обмениваются сообщениями. Оба представления являются
взаимодополняющими.
• Web of Trust
Web превратился в инструмент общения. При этом он также изменил
характер наших общественных отношений. Люди сейчас «встречаются в
Интернете», осуществляют коммерческие и личные отношения, в
некоторых случаях даже без личной встречи. W3C признает, что доверие
является социальным явлением, но технологии должны способствовать
укреплению доверия между людьми.
7. 7 разделов W3C
• Web Architecture
Описывает базовое устройство Internet
• Web Design and Applications
Описывает принципы отображения и функционирования привычного нам гипертекстового
Web
• XML Technology
Все, что относится к XML
• Semantic Web
Новое поколение Web – сеть данных, наполненных смыслом
• Web of Services
Описывает принципы взаимодействия сервисов в сети
• Web of Devices
Описывает правила по которым Web должен взаимодействовать с разнообразными
устройствами от привычных нам мобильных телефонов до систем голосового управления и
синтеза речи
• Browsers and Authoring Tools
Описывает правила по которым агенты пользователя (браузеры) должны с ним
взаимодействовать, а также правила для вебмастеров по организации взаимодействия с
пользователями
10. Архитектура Web
• HTTP • URI
• HTTPS • URN
• URL
• PURL
• IRI
Транспортный
Адресация
уровень
11. HTTP
Запрос клиента:
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
(пустая строка)
Ответ сервера:
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: ru
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
(пустая строка)
(далее следует запрошенная страница в HTML)
12. URI, URL, URN, IRI, PURL
• URI является либо URL, либо URN, либо одновременно обоими.
• URN указывает неизменное имя ресурса без указания его местонахождения и
способа обращения. В результате URN-имена совершенно постоянны, они не зависят
от конкретных серверов и протоколов. Другими словами, URN концептуально
обозначает сам ресурс, а не место, где находится какой-то ресурс (а может, уже не
находится), как это делает URL. Например, допустим, есть человек по имени Михаил
Петров, который живѐт в Москве по адресу ул. Земляной вал, 14. Если кто-то спросит
его: «Вы кто?». Он, разумеется, ответит «Я — Михаил Петров». Он ведь не скажет:
«Я человек, живущий на Земляном валу, 14». Так вот URN идентифицирует человека
как «Михаил Петров», а URL лишь сообщает, что кто-то живѐт по адресу ул.
Земляной вал, 14 (а может там находится и организация… URL этого не сообщает).
URI = [ схема ":" ] иерархическая-часть [ "?" запрос ] [ "#" фрагмент ]
URL = <схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь>
URN = "urn:" <пространство> ":" <Строка зависимая от пространства>
IRI : http://ru.wikipedia.org/wiki/Кириллица
PURL : http://purl.org/somepath -> 301 -> http://concretedomain.com/path
14. HTML
HTML – первое описание (1991-1992)
• <TITLE> ... </TITLE>
• <NEXTID 27>
• <A NAME=xxx HREF=XXX TYPE=XXX> ... </A>
• <ISINDEX>
• <PLAINTEXT>
• <LISTING> ... </LISTING>
• <P>
• <H1>, <H2>, <H3>, <H4>, <H5>, <H6>
• <ADDRESS> text ... </ADDRESS>
• <HP1>...</HP1> <HP2>... </HP2> etc.
• <DL>
<DT>Term<DD>definition paragraph
<DT>Term2<DD>Definition of term2</DL>
• <UL>
<LI> list element
<LI> another list element ...
</UL>
15. HTML
Стандарт HTML 2.0
можно назвать своего
рода классикой жанра.
Он содержал только
нужные элементы для
структурирования
данных.
Но имиджевым сайтам компаний потребовалось яркое оформление
страниц. HTML 2.0 никак не мог обеспечить всего этого.
Компания Netscape, почувствовав конъюнктуру рынка, пожертвовала
логической стройностью HTML в угоду сиюминутным тенденциям. Чуть
позже «подсуетилась» вездесущая Microsoft, и между этими двумя
компаниями разгорелась нешуточная «гонка вооружений».
16. HTML
Чтобы как-то повлиять на ситуацию и
привести к общему знаменателю
порочные инициативы Netscape и
Microsoft, в 1997 г. W3C в спешке, под
существенным нажимом
Microsoft, утвердил рекомендацию
HTML 3.2, вобравшую в себя, что
называется, «по факту» введенные в
оборот участниками состязания
элементы визуального
форматирования.
Работа HTML-кодеров к середине — концу 1990-х гг. свелась, по сути, к
сизифову труду — им приходилось долгие часы биться над каждым сколько-
либо сложным макетом сайта, чтобы обеспечить более-менее предсказуемый
внешний вид сверстанных на его основе страниц в нескольких
распространенных на тот момент браузерах.
17. HTML
В 1997 г. официальной рекомендацией W3C становится HTML
уровня 4.0, явившийся плодом множества компромиссов. HTML 4
вобрал в себя все визуальные возможности HTML 3.2, но в
большинстве своем они были провозглашены как deprecated.
Определены 3 типа языка:
• Strict - строгий, предписывающий четкое соблюдение идеологии
структурной, логической разметки и подразумевающий отказ от
большинства возможностей визуального представления данных.
• Transitional - переходный, намного более
либеральный, оставляющий право пользоваться сомнительным
наследием эпохи HTML 3.2.
• Frameset - предназначенный для страниц, использующих фреймы
— слабоактуальную ныне придумку компании Netscape.
Наиболее предпочтительным, разумеется, является использование
типа документов Strict.
18. CSS Level 1
• Параметры шрифтов. Возможности по заданию гарнитуры и размера шрифта, а
также его стиля — обычного, курсивного или полужирного.
• Цвета. Спецификация позволяет определять цвета текста, фона, рамок и других
элементов страницы.
• Атрибуты текста. Возможность задавать межсимвольный интервал, расстояние
между словами и высоту строки (то есть межстрочные отступы)
• Выравнивание для текста, изображений, таблиц и других элементов.
• Свойства блоков, такие как высота, ширина, внутренние (padding) и внешние
(margin) отступы и рамки. Так же в спецификацию входили ограниченные средства
по позиционированию элементов, такие как float и clear.
19. CSS Layer 2
• Блочная вѐрстка. Появились относительное, абсолютное и
фиксированное позиционирование. Позволяет управлять размещением
элементов по странице без табличной вѐрстки.
• Типы носителей. Позволяет устанавливать разные стили для разных
носителей (например монитор, принтер, КПК).
• Звуковые таблицы стилей. Определяет голос, громкость и т. д. для
звуковых носителей (например для слепых посетителей сайта).
• Страничные носители. Позволяет, например, установить разные стили
для элементов на чѐтных и нечѐтных страницах при печати.
• Расширенный механизм селекторов.
• Указатели. Переопределение указателей мыши.
• Генерируемое содержимое. Позволяет добавлять содержимое, которого
нет в исходном документе, до или после нужного элемента.
20. CSS Layer 3
• Media Queries. Технология позволяет подключать к HTML страницам различные
стилевые таблицы, основываясь на различных данных об устройстве отображения.
• Namespaces. Определяет правила определения стилей для элементов разных
пространств имен в XHTML.
• Selectors Level 3. Очередная порция дополнительных синтаксических
возможностей селекторов.
• Color Level 3. Определяет дополнительные цветовые модели для разметки.
• …
21. SVG, PNG
• SVG (Scalable Vector Graphics) — PNG (Portable network graphics) —
язык разметки масштабируемой растровый формат хранения
векторной графики, созданный W3C графической
и входящий в подмножество информации, использующий
расширяемого языка разметки сжатие без потерь по алгоритму
XML, предназначен для описания Deflate. Формат PNG
двумерной векторной и смешанной спроектирован для замены
векторно/растровой графики в устаревшего и более простого
формате XML. Поддерживает как формата GIF, а также, в некоторой
неподвижную, так и анимированную степени, для замены значительно
интерактивную графику. более сложного формата TIFF.
23. XML – что может быть проще?
<?xml version="1.0" encoding="UTF-8"?>
<recipe name="хлеб" preptime="5" cooktime="180">
<title>Простой хлеб</title>
<composition>
<ingredient amount="3" unit="стакан">Мука</ingredient>
<ingredient amount="0.25" unit="грамм">Дрожжи</ingredient>
<ingredient amount="1.5" unit="стакан">Тѐплая вода</ingredient>
<ingredient amount="1" unit="чайная ложка">Соль</ingredient>
</composition>
<instructions>
<step>Смешать все ингредиенты и тщательно замесить.</step>
<step>Закрыть тканью и оставить на один час в тѐплом помещении.</step>
<!-- <step>Почитать вчерашнюю газету.</step> - это сомнительный шаг... -->
<step>Замесить ещѐ раз, положить на противень и поставить в духовку.</step>
</instructions>
</recipe>
25. XHTML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head xml:lang="en">
<title dir="ltr" lang="en">XHTML Sample File</title>
</head>
<body><h1>Welcome to XHTML</h1><p>
<b>XHTML</b> stands for <b>W3C</b>
<i>Extensible HyperText Markup Language</i>. <b>XHTML</b> is aimed to replace
<b>HTML</b>. While almost identical to <b>HTML</b> 4.01, <b>XHTML</b> is a stricter
and cleaner version of <b>HTML</b>. <b>XHTML</b> is <b>HTML</b>
defined as an <b>XML</b>
</p>
</body>
</html>
26. Что такое DTD?
<!ELEMENT html (head, body)>
<!ATTLIST html
%i18n;
id ID #IMPLIED
xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
>
<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
<!ELEMENT head (%head.misc;,
((title, %head.misc;, (base, %head.misc;)?) |
(base, %head.misc;, (title, %head.misc;))))>
<!ATTLIST head
%i18n;
id ID #IMPLIED
profile %URI; #IMPLIED
>
28. XPath
• para выбирает все дочерние элементы para по отношению к текущему
• * выбирает все дочерние элементы текущего
• text() выбирает все текстовые элементы, дочерние для текущего
• @name выбирает атрибут с именем name для текущего элемента
• para[1] выбирает первый дочерний элемент para для текущего элемента
• para[fn:last()] выбирает последний дочерний элемент para для текущего
• */para выбирает все элементы-потомки para через уровень от текущего
• chapter//para выбирает все элементы para, дочерние ко всем элементам
chapter, непосредственным дочкам текущего
• chapter[title="Introduction"] выбирает все дочерние для текущего
элементы chapter, которые имеют один или более непосредственный
потомок title, чье тело эквивалентно строке Introduction
• ancestor::div выбирает всех предков div для текущего элемента
32. XQuery
<html><head/><body>
{
for $volume in doc("xpath.xml")//volume
let $chapters := distinct-values($volume//chapter)
return
<span>
<h1>{ $volume/@title }</h1>
<ul>
{
for $chapter in $chapters
return <li>{ $chapter }</li>
}
</ul>
</span>
}
</body>
</html>
33. XPointer
• XML Pointer Language (XPointer) — расширяемая
спецификация, определяющая способы адресации
фрагментов документов в формате XML.
• В настоящее время существуют три таких схемы:
element(), xmlns() и xpointer(), предназначенные для
поиска элементов по их расположению, на основе
пространства имѐн и при помощи языка
XPath, соответственно.
Пример:
personal.xml#xpointer(//person[@id='five.worker'])
(не работает в браузере )
39. Resource Description Framework (RDF)
Триплет RDF
Утверждение «небо голубого <?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
цвета» в RDF-терминологии xmlns:props="http://example.org/phisicalProperties#">
можно представить следующим <rdf:description rdf:about="urn:Universe:Earth:Heaven">
<props:hasColor rdf:resource="urn:Universe:Colors:Blue"/>
образом: субъект — </rdf:description>
«небо», предикат — «имеет цвет», </rdf:RDF>
объект — «голубой».
40. RDFS / OWL / SKOS
• RDF описывает факты
• RDF Schema – базовый набор
свойств отношений для
триплетов RDF
• Web Ontology Language – набор
свойств отношений RDF для
описания объектов и отношений
между ними, а также для
возможности дальнейшего
расширения словарей смыслов
• Simple Knowledge Organization
System описывает набор свойств
отношений RDF для описания
абстракций и понятий
43. SPARQL
Следующий запрос возвращает имена и адреса каждого
человека в мире:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?email
WHERE {
?person rdf:type foaf:Person.
?person foaf:name ?name.
?person foaf:mbox ?email.
}
Этот запрос может быть распределен на несколько конечных точек
SPARQL, разных компьютеров, и сбор результатов осуществляется
процедурой, известной как федеративный поиск.
47. Web-сервисы
SOAP (Simple Object Access
Protocol) — первоначально SOAP
предназначался в основном для
реализации удалѐнного вызова
процедур (RPC). Сейчас протокол
используется для обмена
произвольными сообщениями в
формате XML.
WSDL (Web Services Description Language) — язык описания веб-сервисов и
доступа к ним, основанный на языке XML.
SAWSDL (Semantic Annotated Web Services Description Language) –
расширение WSDL с возможностью указывать смысловые ограничения
SML (Service Modeling Language) – технология, позволяющая описать сложные
IT-сервисы и системы.
48. Multimodal interaction
• EMMA (Extensible MultiModal Annotation) – стандарт, описывающий
взаимодействие между системами ввода и подсистемами обработки
взаимодействия с пользователем
• InkML – XML-язык для описания цифровых линий, оставляемых
электронным пером
• VoiceXML – стандарт, описывающий правила построения речевых
диалогов между компьютером и человеком
• CCXML (Voice Browser Call Control) – стандарт обработки асинхронных
событий для VoiceXML
• EmotionML – язык описания эмоций
• SSML (Speech Synthesis Markup Language) – язык, описывающий правила
синтезирования речи
• PLS (Pronunciation Lexicon Specification) – рекомендация, определяющая
правила описания произношения для синтезатора речи
• SISR (Semantic Interpretation for Speech Recognition) – технология описания
семантической грамматики для систем распознавания речи
49. Accessibility Guidelines
Специальная группа Web Accessibility Initiative
занимается разработкой стандартов, которые помогают
людям с ограниченными здоровьем возможностями
полноценно использовать Web.
Вот набор рекомендаций, которые они уже зарелизили:
• User Agent Accessibility Guidelines
• Authoring Tool Accessibility Guidelines
• QA Framework: Specification Guidelines
• Web Security Context: User Interface Guidelines
• Web Content Accessibility Guidelines
• …
50. Другое
• XKMS (XML Key Management Specification) – протокол обмена ключами для ассиметричного
шифрования на базе XML
• ITS (Internationalization Tag Set) – набор тегов, который позволяет указывать правила
перевода документа
• EXI (Efficient XML Interchange) – стандарт, описывающий бинарную упаковку XML для
минимизации размера при передаче по сети
• DDR (Device Description Repository) – стандарт, определяющий репозиторий описания
различных устройств (в первую очередь мобильных), для того, чтобы было проще
предоставлять клиентам подходящий им контент
• PICS (Platform for Internet Content Selection) – правила описания возрастных и других
ограничений для ресурсов, был заменен на POWDER (использует
OWL и RDF).
• SMIL (Synchronized Multimedia Integration Language) – язык, описывающий комбинацию
мультимедийных документов, используется в MMS
• TTML (Timed Text Markup Language) – XML-конструкция, позволяющая описывать события во
времени
• WebCGM (Computer Graphics Metafile) – профиль, описывающий текстовую репрезентацию
двумерных графических векторных форматов, является подмножеством по отношению к SVG
• P3P (Platform for Privacy Preferences (P3P) Project) – это протокол, позволяющий веб-сайтам
информировать браузер о предполагаемом получении личных данных пользователя