Новости

В конкурсе "Диссертации", посвящённого 50-летию научного направления "Искусственный интеллект" и памяти выдающегося российского учёного Л.Т.Кузина, наш сотрудник А.А.Липатов был награждён первым призом и дипломом за недавно защищенную диссертацию к.т.н.

Е.А.Сидорова защитила диссертацию на тему «Методы и программные средства для анализа документов на основе модели предметной области»

Прочитать подробнее...

Интервью
3.05.2014 - Ллорет де Мар – жемчужина испанского побережья Коста Брава

13.04.2014 - Орехи – любимое лакомство для всех

Ознакомиться со всеми интервью...

Примеры применения

Прайс-листы.

С помощью технологии Alex возможно решение такой задачи: занесение в базу данных цен на товары определенных категорий из прайс-листов на Web-страницах. Настройка при этом заключается в создании банка шаблонов, отражающего строение типичных прайс-листов.

Вот фрагмент прайс-листа, содержащий цифровые фотоаппараты:

Название Цена
Olympus C-2000zoom 870
Olympus C-1400XL 780
Agfa ePhoto CL50 700
Agfa ePhoto CL30 470
Agfa ePhoto 1680 730
Canon PowerShot A50 440

На первый взгляд, прайс-лист устроен довольно просто: таблица, в одной колонке которой — название товара, в другой — цена. Какие шаблоны нужны для того, чтобы прайс-лист в формате HTML можно было опознать как прайс-лист и занести в базу данных? Прежде всего, необходимы шаблоны [Товар] и [Цена]. И если [Цена] может быть устроена довольно просто:

 [Цена] =
[число]

где «число» — это предопределенный системный шаблон,

то название товара — более сложная конструкция, которая может включать категорию товара («цифровой фотоаппарат»), название фирмы-производителя («Agfa»), марку товара («ePhoto 1680»), а часто — и некоторые характеристики товара.

Итак, определим название товара так:

 [Товар] =
([Категория]) ([Производитель]) [Марка] ([Характеристики])

Круглые скобки обозначают опциональность элементов шаблона.

Строка прайс-листа может иметь следующий вид:

 [Прайс-строка] =
[Товар] [Разделитель] [Цена] .

где [Разделитель] — это вспомогательный шаблон, который позволяет учитывать различные способы отделения одного поля от другого, а . — произвольный контекст.

Наконец, сам прайс-лист — это множество строк, первая строка — заголовок:

 [Прайс-лист] =
[Первая строка] [Прайс-строка]=

Здесь = — это признак повторения произвольное число раз.

Первую строку можно определить так:

[Первая строка] =
[Заголовок товара] [Разделитель] [Заголовок цены] (.)

Шаблоны [Производитель], [Категория] и т.д. заполняются уже названиями конкретных производителей, категорий. Определив таким образом всего 12 шаблонов, связанных со структурой прайс-листа, и наполняя шаблоны нижнего уровня, мы можем найти все традиционные прайс-листы, независимо от их стиля и способа кодирования в HTML, и занести их в базу данных уже в нормализованном виде. Такой подход аналогичен восприятию человека — человек выделяет базовые структурные элементы, абстрагируясь от способов реализации этой структуры.

Выше мы рассмотрели довольно простой случай. Однако на практике встречаются и такие строки прайса:

Compaq Armada M700 470006-459 PIII-850/20GB/128MB/14.1″ TFT/DVD/LAN/W98

Здесь в одной строке приведены все значимые характеристики товара (ноутбука). Для того, чтобы эти свойства выделить в отдельные поля, потребуется чуть больше работы (порядка 20 шаблонов). Вот пример устройства шаблона Размер экрана:

[Размер экрана] =
[число]»
[число]»
[число](_)tft

После создания таких шаблонов каждой строке в прайсе мы получим заполненной такую структуру:

CD-привод DVD
Диск 20
Марка Armada
Модификация M700
ОС W98
Память 128
Производитель Compaq
Размер экрана 14.1
Сетевая карта Есть
Тип процессора PIII
Частота процессора 850

Таким образом, прайс-лист может быть преобразован в таблицу с параметрами товаров. Создание банка шаблонов для качественного покрытия данной категории товаров (ноутбуки) занимает несколько часов в визуальной оболочке Алекс.