Канонизация

редактировать

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

Содержание
  • 1 Примеры использования
    • 1.1 Имена файлов
    • 1.2 Unicode
    • 1.3 URL
      • 1.3.1 Использование Google
      • 1.3.2 Интернет
      • 1.3.3 Интранет
      • 1.3.4 Разное
    • 1.4 Поисковые системы и SEO
    • 1.5 XML
    • 1.6 Вычислительная лингвистика
  • 2 См. Также
  • 3 Ссылки
  • 4 Внешние ссылки
Примеры использования

Имена файлов

К файлам в файловых системах в большинстве случаев можно получить доступ через несколько имен файлов. Например, в Unix -подобных системах строка «/./» может быть заменена на «/». В стандартной библиотеке C эту задачу выполняет функция realpath (). Другие операции, выполняемые этой функцией для канонизации имен файлов, - это обработка компонентов /.., относящихся к родительским каталогам, упрощение последовательностей нескольких косых черт, удаление конечных косых черт и разрешение символических ссылок.

Канонизация имен файлов важна для компьютерной безопасности. Например, веб-сервер может иметь ограничение на выполнение только файлов из каталога cgi C: \ inetpub \ wwwroot \ cgi-bin. Это правило применяется путем проверки того, что путь начинается с C: \ inetpub \ wwwroot \ cgi-bin \, и только после этого выполняется. Хотя файл C: \ inetpub \ wwwroot \ cgi-bin \.. \.. \.. \ Windows \ System32 \ cmd.exeизначально кажется находящимся в каталоге cgi, он использует ..указатель пути для просмотра резервной копии иерархии каталогов в попытке выполнить файл за пределами cgi-bin. Разрешение выполнения cmd.exeбудет ошибкой, вызванной невозможностью канонизировать имя файла до простейшего представления, C: \ Windows \ System32 \ cmd.exe, и называется обход каталога уязвимость. Если путь канонизирован, ясно, что файл не должен выполняться.

Unicode

В Unicode многие буквы с диакритическими знаками могут быть представлены более чем одним способом. Например, é может быть представлен в Юникоде как символ Юникода U + 0065 (СТРОЧНАЯ ЛАТИНСКАЯ БУКВА E), за которым следует символ U + 0301 (СОЧЕТАНИЕ ОСТРОГО ДИСКА), но он также может быть представлен как предварительно составленный символ U + 00E9 (ЛАТИНСКИЙ СТРОЧНАЯ БУКВА E С ОСТРЫМ). Это усложняет сравнение строк, поскольку необходимо учитывать все возможные представления строки, содержащей такие глифы. Чтобы справиться с этим, Unicode предоставляет механизм канонической эквивалентности. В этом контексте канонизация - это нормализация Unicode.

Кодировки переменной ширины в стандарте Unicode, в частности, UTF-8, в некоторых ситуациях могут вызвать дополнительную необходимость в канонизации. А именно, по стандарту в UTF-8 есть только одна допустимая последовательность байтов для любого символа Unicode, но некоторые последовательности байтов недопустимы, т.е. е. не может быть получен путем кодирования любой строки символов Unicode в UTF-8. Некоторые неаккуратные реализации декодера могут принимать недопустимые последовательности байтов в качестве входных и выдавать допустимый символ Unicode в качестве выходных данных для такой последовательности. Если использовать такой декодер, некоторые символы Unicode фактически будут иметь более одной соответствующей последовательности байтов: действительную и некоторые недопустимые. Это может привести к проблемам с безопасностью, аналогичным описанным в предыдущем разделе. Следовательно, если кто-то хочет применить какой-либо фильтр (например, регулярное выражение, записанное в UTF-8) к строкам UTF-8, которые позже будут переданы декодеру, который допускает недопустимые последовательности байтов, следует канонизировать строки перед их передачей фильтру.. В этом контексте канонизация - это процесс преобразования каждого строкового символа в его единственную допустимую последовательность байтов. Альтернативой канонизации является отклонение любых строк, содержащих недопустимые последовательности байтов.

URL

A канонический URL - это URL для определения единого источника правды для дублированного содержания.

Использование Google

Канонический URL-адрес - это URL-адрес страницы, которая, по мнению Google, является наиболее репрезентативной из набора повторяющихся страниц на вашем сайте. Например, если у вас есть URL-адреса для одной и той же страницы (например, example.com?dress=1234 и example.com/dresses/1234), Google выберет один из них как канонический. Обратите внимание, что страницы не обязательно должны быть абсолютно идентичными; незначительные изменения в сортировке или фильтрации страниц списка не делают страницу уникальной (например, сортировка по цене или фильтрация по цвету элемента).

Канонический домен может находиться в другом домене, чем дубликат.

Интернет

С помощью канонических URL-адресов поисковая система знает, какая ссылка должна быть предоставлена ​​в запросе. результат.

A элемент канонической ссылки можно использовать для определения канонического URL.

Интранет

В интрасетях преобладает ручной поиск информации. В этом случае канонические URL-адреса также могут быть определены в не машиночитаемой форме. Например, в директиве .

Разное

канонические URL-адреса обычно представляют собой URL-адреса, которые используются для.

Поскольку канонический URL-адрес используется в результатах поиска поисковых систем, они в большинстве случаев являются целевой страницей.

Поисковыми системами и SEO

в веб-поиске и поисковая оптимизация (SEO), канонизация URL имеет дело с веб-контентом, имеющим более одного возможного URL. Наличие нескольких URL-адресов для одного и того же веб-содержимого может вызвать проблемы для поисковых систем, особенно при определении того, какой URL-адрес должен отображаться в результатах поиска. Большинство поисковых систем поддерживают элемент канонической ссылки в качестве подсказки, URL-адрес которого следует рассматривать как истинную версию. Как указал Джон Мюллер из Google, наличие на странице других директив, таких как элемент noindex robots, может давать поисковым системам противоречивые сигналы о том, как обрабатывать канонизацию

Пример:

Все эти URL-адреса указывают на домашнюю страницу Википедии, но поисковая система будет рассматривать только один из них как каноническую форму URL-адреса.

XML

A Канонический XML документ по определению является XML-документом в канонической форме XML, определенной в Спецификации канонического XML. Вкратце, канонизация удаляет пробелы в тегах, использует определенные кодировки символов, сортирует ссылки на пространства имен и удаляет избыточные, удаляет объявления XML и DOCTYPE и преобразует относительные URI в абсолютные URI.

Простым примером могут служить следующие два фрагмента XML:

  1. DataData
  2. DataData

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

Полный список изменений канонизации приведен ниже:

  • Документ закодирован в UTF-8
  • Разрывы строк нормализованы до #xA при вводе перед анализом
  • Значения атрибутов нормализованы, как если бы проверяющим процессором
  • ссылки на символы и проанализированные сущности заменялись
  • Разделы CDATA заменялись их символьным содержимым
  • Объявление XML и тип документа объявления удалены
  • Пустые элементы преобразуются в пары начальных и конечных тегов
  • Пробелы вне элемента документа и внутри начального и конечного тегов нормализуются
  • Все пробелы в содержании символа сохраняется (за исключением символов, удаленных во время нормализации перевода строки)
  • разделители значений атрибутов устанавливаются в кавычки (двойные кавычки)
  • Специальные символы в значениях атрибутов и содержании символов заменяются ссылками на символы
  • Излишние объявления пространств имен удаляются из каждого элемента
  • Атрибуты по умолчанию - ad для каждого элемента
  • Выполняется исправление атрибутов xml: base
  • Лексикографический порядок налагается на объявления пространств имен и атрибуты каждого элемента

Вычислительная лингвистика

В морфологии и лексикографии, лемма является канонической формой набора слов. В английском языке, например, run, running, ran и running являются формами одной и той же лексемы , поэтому мы можем выбрать одну из них, например. запустить, чтобы представить все формы. Лексические базы данных, такие как Unitex, используют этот вид представления.

Лемматизация - это процесс преобразования слова в его каноническую форму.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-14 05:45:06
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте