Страница 3 из 5 Теперь необходимо найти соответствующие страницы. Применимая для этого стратегия состоит в том, чтобы начать с начальной страницы некоторого оперативного магазина и рассмотреть все страницы, которых можно достичь, следуя по соответствующим ссылкам6. Агент должен обладать знаниями о многих магазинах, например, в таком виде: В этих магазинах товары классифицируются по категориям товаров, а на начальной странице предоставляются ссылки на основные категории товаров. К младшим категориям можно перейти, следуя по цепочке соответствующих ссылок, что позволяет в конечном итоге проложить путь к требуемым предложениям. Иными словами, страница соответствует запросу, если ее можно достичь, проследовав по цепочке соответствующих ссылок на категории от начальной страницы магазина, а затем пройдя еще по одной ссылке к предложению товара: Здесь предикат Link(from, to) означает, что имеется гиперссылка от URL from к URL to (см. упр. 10.13); чтобы определить, какая цепочка ссылок может рассматриваться как соответствующая запросу, RelevantChain, необходимо следовать не просто по любым существующим гиперссылкам, а только по таким ссылкам, связанный с которыми текст анкера указывает, что эта ссылка соответствует данному запросу на приобретение товара. Для этого используется предикат LinkText(from, to, text), который означает, что имеется ссылка между URL from и to, текстом анкера которой является text. Цепочка ссылок между двумя URL, start и end, соответствует описанию d, если текст анкера каждой ссылки представляет собой соответствующее имя категории для d. Существование самой цепочки определяется с помощью рекурсивной формулировки, в которой в качестве базового случая используется пустая цепочка (start=end): Теперь необходимо определить, что подразумевается под высказыванием, будто текст text является соответствующим именем категории RelevantCategoryName для запроса query. Прежде всего необходимо связать строки с категориями, именуемыми с помощью этих строк. Такую задачу можно решить с использованием предиката Name(s, с), который сообщает, что строка s является именем категории с, например, чтобы можно было сформулировать утверждение, что Name{ "laptops", LaptopComputers). Некоторые дополнительные примеры применения предиката Name приведены в табл. 10.1, б. Затем определим понятие соответствия. Допустим, что запросом query является "laptops" (Портативные компьютеры). В таком случае предикат RelevantCategoryName (query, text) принимает истинное значение, когда выполняется одно из приведенных ниже условий. Таблица 10.1. Примеры обозначений категорий • Строки text и query именуют одну и ту же категорию, например "laptop computers"и"laptops". • В строке text именуется надкатегория, такая как " computers". • В строке text именуется подкатегория, такая как "ultralight notebooks". Логическое определение предиката RelevantCategoryName состоит в следующем: (10.1)
|