Help:Логический вывод
С помощью семантического поиска можно легко находить нужные страницы, задавая определенные критерии. Заметим, однако, что вся информация об этих страницах должна быть предварительная вручную введена в систему. Часто хочется, чтобы вики вики была чуть «умнее» и автоматически выводила новые факты из уже имеющихся. И в некоторых случаях SMW умеет осуществлять такого рода логический вывод! Этому и посвящена данная статья.
Contents
Вывод по иерархии категорий [ edit ]
В MediaWiki есть возможность создавать вложенные категории, для того, чтобы облегчить пользователям классификацию статей. Рассмотрим пример: пусть в нашей вики есть категории Категория:Мужчина, Категория:Женщина и Категория:Персона. Понятно, что всякая страница, помеченная категорией «Женщина», обязательно должна быть также в категории «Персона». Однако категория «Женщина» более специфична, и во многих вики (наример в Википедии) действует соглашение, по которому принято помечать страницы только наиболее точными и специфичными категориями. Чтобы обозначить, что одна категория является частной по отношению к другой, в MediaWiki –системах используется т.н. иерархия категорий. На странице Категория:Женщина мы просто помещаем текст
и отныне категория «Женщина» вложена в категорию «Персона». Для дальнейших подробностей вы можете обратиться к справочнику по MediaWiki.
Semantic MediaWiki может использовать информацию о вложенности категорий для улучшения семантического поиска. Если вы запросите список страниц, относящихся к категории «Персона», на самом деле этот запрос будет интерпретирован как «выдай мне страницы, относящиеся к Категория:Персона ИЛИ Категория:Мужчина ИЛИ Категория:Женщина».
В случае более глубокой иерархии категорий, SMW продолжит вывод и будет учитывать также категории, вложенные в категории, которые вложены в запрашиваемую категорию и т.д. В нашем примере если категория Категория:Женщина содержит вложенную категорию Мать, наш запрос на все персоны выдаст также и странички матерей.
Механизм вывода по категориям может быть ограничен администратором вики или же его можно отключить. Обычно задана глубина иерархии, в пределах которой производится логический вывод, поэтому в случае очень глубоких иерархий некоторые страницы могут быть не учтены. В руководстве по настройке SMW вы можете найти подробную справку о том, как сконфигурировать вывод по категориям.
Заметим, что не всегда нам выгодно описанное выше поведение. Порой категории используются несколько иначе: к примеру в Википедии в категорию [[wp:ru:Категория:Город|Город] входят не только статьи о городах, но и статьи об объектах, так или иначе связанных с городом. Внутри категории Город могут быть вложены категории «Жилищно-коммунальное хозяйство», «Улицы» и т.п. Если вам кажется, что запросы работают не интуитивно, вам следует либо реорганизовать иерархию категорий, либо отключить вывод по категориям.
Другая серьёзная проблема заключается в том, что при отсутствующем или неполном описании категории, разные вики-авторы могут интерпретировать её по-разному. Это тесно связано с омонимией и многозначными словами в языке. Предположим, в вики есть категория «Церковь». Один пользователь может создать подкатегорию «Римская католическая церковь», рассматривая слово «церковь» в значении религиозного течения. Однако в отсутствии пояснений и подробного описания вполне может возникнуть ситуация, когда категорию «Церковь» включат в качестве подкатегории «Культового сооружения», и тогда запрос таких сооружений будет включать в себя римскую католическую, православную и протестантскую церкви, что никак не соответствует нашим ожиданиям. В этой связи обязательно документируйте ваши категории. Та же рекомендация относится и к создаваемым семантическим свойствам, которые тоже могут участвовать в логическом выводе.
Иерархия семантических свойств [ edit ]
Между семантическими свойствами также могут существовать отношения спецификации (иными словами, отношения «более общее-более частное»). К примеру, между свойствами «является столицей» и «находится в» определенно существует связь «общее-частное». Если город является столицей страны, то он с необходимостью в этой стране находится. В этих случаях говорят, что свойство «является столицей» является подсвойством свойства «находится в» и на странице Свойство:является столицей пишут следующее
[[subproperty of::Property:находится в]]
Как только мы организуем семантические свойства в иерархию, SMW начнет использовать её при ответе на запросы. Рассмотри, например, следующий запрос страниц о городах, расположенных на территории России:
Он выдаст нам в качестве результата в том числе и Москву, на странице которой написано, что она является столицей России. Свойства также обязательно подробно документировать, чтобы избежать неправильных интерпретаций.
Учет эквивалентных страниц. Перенаправления [ edit ]
Часто бывает, что предмет называется разными именами. Например, в русскоязычной Википедии нет двух отдельных страниц для Родинки и Папилломы, однако если попытаться зайти на страницу Родинка, нас немедленно перенаправят на Папиллому. Это осуществляется при помощи механизма перенаправлений (также называемых редиректами, от англ. redirect), имеющегося в MediaWiki. В семантических вики очень важно правильно работать с такими синонимами, а потому SMW учитывает перенаправления между страницами при выдаче ответов на запросы.
Приведем пример. Пусть требуется получить все страницы о людях, родившихся на территории СССР. Соответствующий запрос будет включать [[место рождения::СССР]]. Если одна из страниц СССР или Союз Советских Социалистических Республик является перенаправлением, то в результате запроса будут учтены как страницы с аннотацией [[место рождения::СССР]], так и [[место рождения:: Союз Советских Социалистических Республик]].
Этот механизм обладает большой мощью – отныне сокращение и наименование страны считаются полностью эквивалентными страницами. SMW поддерживает также эквивалентность категорий и семантических свойств, начиная версии 1.2.
Обратите внимание на следующие ограничения вывода по перенаправлениям:
- не перенаправляйте на страницы перенаправлений! Перенаправление в SMW не транзитивно – если страница А имеет перенаправление на Б, а Б имеет перенаправление на В, то из этого не следует, что А перенаправляет на В.
- перенаправления, идущие со страниц категорий на страницы вики-статей, со страниц статей на страницы свойств – иными словами любые перенаправления между разными пространствами имен – никак не обрабатываются SMW и не учитываются при вычислении ответов на семантические запросы. Создать подобные редиректы можно, однако обрабытываться они будут только движком MediaWiki.
Логический вывод и параметры выдачи результатов [ edit ]
Параметры выдачи результатов не участвуют в процессе логического вывода, то есть они лишь возвращают поля, указанные в запросе явным образом и явно заданные на страницах. Это поведение может быть желательным в одних ситуациях и может казаться недостаточным в других. Проиллюстрируем это на нашем примере с Москвой как столицей России. Пусть мы задали запрос:
[[Категория:Город]] ?находится в
Увы, несмотря на то, что свойство столица является подчиненным по отношению к находится в, мы не увидим России в столбце Находится в . Можно обойти это поведение, прибегнув к помощи шаблонов для явной аннотации. В нашем случае можно использовать такой шаблон:
[[является столицей::находится в::Россия]]
Этот шаблон назначит значение Россия сразу двум свойствам ([[является столицей::Россия]] и [[находится в::Россия]]), однако при сохранении страницы пользователям, просматривающим статью будет видна только одна надпись Россия.
На данный момент Semantic MediaWiki поддерживает только перечисленные выше возможности логического вывода. SMW не поддерживает:
- транзитивность, рефлексивность, инверсию свойств
- ограничения на область определения и область значения семантических свойств
- численные ограничения, функциональные свойства
Даже если какие-то участники вики вводят семантические свойства, которые ссылаются на ресурсы RDFS, OWL, SKOS и т.п. Semantic MediaWiki не использует эти метаданные для логического вывода. Есть тем не менее пути обхода этих ограничений. На данной вики страницы Germany и Demo:California содержат свойства, ведущие себя как инверсные. Транзитивность тоже можно до некоторой степени симулировать вложенными запросами – на странице Germany есть такой пример.
Источник
CategoryTree
CategoryTree позволяет внедрять в текст страницы показ списка категорий в виде иерархического дерева. Для использования «дерева» необходимо чтобы используемый браузер поддерживал AJAX. Если версия браузера старая или отключен JavaScript, показ подкатегорий в виде дерева будет недоступен.
Установка
В Debian squeeze данное расширение интегрировано в пакет mediawiki-extensions. Для установки CategoryTree выполняем команду
# apt-get install mediawiki-extensions
На этом установка расширения завершена.
Для того чтобы сделать CategoryTree доступным в данной википедии
$wgUseAjax = true; require_once( "/extensions/CategoryTree/CategoryTree.php" );
Использование
Для использования CategoryTree добавляем в текст страницы строчку вида
Для навигации по дереву следует нажать на значок «+» слева от названия рубрики — раскроется перечень подразделов данной рубрики. Название любой рубрики является гиперссылкой, перейдя по которой, можно увидеть перечень страниц, включённых в эту тему.
Если значок «+» не появляется в подразделах то
строчку: $linkattr['style'] = 'display: none;'; // Unhidden by JS на : $linkattr['style'] = 'display: inline;'; // Unhidden by JS
Литература
Справочная информация
- 07.05.2011: CategoryTree: создание статьи в википедии, описание установки, настройки и использования расширения
Источник