Extension:Semantic Drilldown/ru

Semantic Drilldown это расширение для MediaWiki которое предоставляет страницу для drill down детализации (drilling down) данных сайта, используя категории и фильтры на основе семантических свойств. Оно сильно связанно с расширением [://semantic-mediawiki.org/wiki/Semantic_MediaWiki Semantic MediaWiki] и используется для структурированных данных которые имеют семантические пометки. У вас должно быть установлено расширение Semantic MediaWiki (версия 1.6 или позднее) для работы данного расширения.

Страница "Browse data" это сердце расширения. Это список всех категорий верхнего уровня в Wiki (т.е. категорий которые не являются подкатегориями другой категории) с числом страниц в этой категории. Каждое имя категории это ссылка для выделения страниц входящих в эту категорию. Расширение дает возможность пользователям выбирать дополнительные ограничения для уменьшения числа результатов детализации. Эти ограничения бывают двух типов:


 * Подкатегории - если категория имеет подкатегорию, она будет показываться в строке "Подкатегория" ("Subcategory"). Каждая из них будет представлять собой ссылку позволяющую пользователю показать страницы только внутри это подкатегории. Конечная страница детализация будет включать ссылки для всех фильтров для категории верхнего уровня и любой подкатегорий выбранной подкатегории. Таким образом, вы можете использовать страницу "Browse data" для навигации через всё дерево категорий.


 * Фильтры - фильтры основанные на семантических свойствах могут быть установленны для любой категории верхнего уровня. Каждый такой фильтр получает свою собственную строчку в области ограничений, давая пользователю ограничивать результаты только теми страницами, которые имеют определенные значения семнтического свойства. Существуют специальные способы фильтрации которые соответствуют свойствам типа Date или Number - для фильтров Date временной диапазон, с помощью которого группируются значения (годы, месяцы, дни) зависит от распределения текущего набора значений, и для фильтра Number число значений группируется в установленном диапазоне приблизительно равном размеру, снова зависищим от текущего набора значений.



При отображении фильтра в детализации, значения свойства которые не имеют никаких результатов для них не будут показанны. Фильтр покажет также два дополнительных значения: "Другие" ("Other") и "Нет" ("None"). Страницы которые показываются как "Другие" есть те, которые имеют значение для этого свойства фильтра, но оно другое чем одно из предустановленных значений. Страницы которые показываются как "Нет" есть те, которые не имеют значения для данного свойства. "Другие" и "Нет", подобно другим значениям фильтра, не будут показанны если нет результатов для них.

После любого количества нажатий на различные подкатегории и фильтры, пользователь сможет увидеть, в заголовке страницы рядом с верхним краем, установленные подкатегории и фильтры нажатые им, которые в данный момент ограничивают результаты. Пользователь может избавиться от любого ограничения с помощью нажатия на "х" следующий за именем категории или фильтра в заголовке.

Результат детализации, т.е. набор страницы показываемый в любой момент времени в течении детализации, по умолчанию, показывается так же как и на странице категорий MediaWiki. Этот внешний вид, однако, может быть настроен пользователем, что бы показывать дополнительные значения для каждой страницы или что бы показывать результаты в других форматах, таких как таблицы, карты, временные шкалы.

Код и загрузка
Вы можете загрузить код Semantic Drilldown в .zip-формате [://github.com/wikimedia/mediawiki-extensions-SemanticDrilldown/archive/2.1.zip здесь].

Вы можете также загрузить код непосредственно через Git из репозитория исходного кода MediaWiki. Из командной строки, вы можете вызвать следующую команду: Для просмотра кода онлайн, включая историю версий для каждого файла, перейдите по [://phabricator.wikimedia.org//r/p/mediawiki/extensions/SemanticDrilldown;browse/master/ ссылке].

Установка
После того, как вы получите директорию SemanticDrilldown (либо распаковыванием архива, либо загрузкой через Git), поместите эту директорию внутрь основной директории MediaWiki для расширений (/extensions}. Затем, в файле LocalSettings.php добавьте следующую строчку в любом месте ниже строчки вызова расширения Semantic MediaWiki (как главную строчку 'include_once', так и строчку 'enableSemantics' ): Замечание: Это расширение требует что бы аккаунт базы данных используемый MediaWiki имел доступ для создания и удаления временных таблиц, а также для создания таблиц индексов.

Авторы
Semantic Drilldown было, в основном, написанно и поддерживалось Yaron Koren (yaron57@gmail.com). Код для показа результатов детализации был написан David Loomer. 'combo box' jQuery input был создан Sanyam Goyal как часть [://code.google.com/soc/ 2010 Google Summer of Code]. Код для взаимодействия с расширением Page Schemas был создан Ankit Garg как часть 2011 Google Summer of Code. Полезный вклад был сделан MWJames, Joel Natividad и другими.

История версий
Текущая версия 2.1. Посмотреть историю версий можно здесь.

Начало использования
До того, как вы установите Semantic Drilldown, вы должны иметь всю структуру данных на вашем сайте - свойства, категории, шаблоны и, если вы используете их, то и формы. Смотрите раздел Page Forms "Getting started" для большей информации.

После того, как вы сделаете все это и добавите некоторые реальные данные, вы должны перейти на страницу "Special:BrowseData" и увидеть что структура категорий выглядит подобно установленной на вашем сайте. Здесь вы можете видеть что фильтры необходимы или были бы полезны для каждой категории.

В данный момент, у вас есть два возможных пути развития событий, в зависимости от того установлено или нет у вас расширение Page Schemas. (Если коротко, то оно представляет собой единый интерфейс для создания шаблонов, форм и фильтров). Если вы используете Page Schemas, тогда вы можете перейти обратно в схему страниц, которую вы уже создали (или, если вы не создавали, то создайте новую) и добавить фильтры на каждое важное свойство через интерфейс.

Если вы не используете это расширение, вы должны использовать парсер-функцию #drilldowninfo, которая записывается на страницу требуемой категории. На каждую категорию можно записывать свою, соответствующую данной категории функцию.

#drilldowninfo

 * 1) drilldowninfo имеет следующие параметры:


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


 * Для примера, здесь представлена важная часть исходного кода для страницы категории [://discoursedb.org/wiki/Category:Items 'Items'] в Discourse DB:


 * Фильтры показываются в Special:BrowseData в порядке в котором они записаны в #drilldowninfo


 * - устанавливает заголовок для страницы детализации для данной категории (опционально).


 * - этот параметр позволяет вам настроить отображение результатов как и в случае использования встроенных запросов Semantic MediaWiki. Он включает как дополнительных свойства, которые вы хотели бы видеть, так и формат в котором результаты будут представленны (такой как карта или календарь). "display parameters=" содержит набор параметров подобно тем, что есть в строковых запросах, но разделенных с помощию точки с запятой, а не двоеточия. Таким образом, для примера, для отображения результатов детализации категории на карте Google вы должны иметь следующее в коде: "|display parameters=? Has coordinates;format=googlemaps3".

Вы можете посмотреть пример простого использования этой функции [://smw.referata.com/wiki/Special:BrowseData/Events здесь]. Соответсвующий вызов #drilldowninfo находится [://smw.referata.com/w/index.php?title=Category:Events&action=edit здесь].


 * Существует несколько проблем связанны с использованием "display parameters=":
 * К сожалению, в настоящее время один формат разрешен для любой одной категории.
 * Параметры sort=" и "order=" для строковых запросов не будут работать - страницы будут всегда сортироваться по их имени.
 * Так как в Semantic Mediawiki версии 1.8 и позднее, wiki-метки и HTML в свойствах типа text показываются как простой текст в различных табличных форматах (table, broadtable, datatables), то для обхода этого необходимо использовать [://smw.referata.com/wiki/Use_the_ask_template_format_to_create_tabular_output format template to create tabular output].

Парсер-функция #drilldowninfo должна добавляться только во что-то одно - либо в категорию верхнего уровния, либо в категорию, чья страница содержит "__SHOWINDRILLDOWN__". См. раздел Включение и исключение категорий из списка.

Стиль облака тэгов для показа значений фильтра
Вы можете установить страницу детализации для показа значений каждого фильтра и каждой подкатегории в стиле облака тэгов, в котором размер каждого имени значения зависит от числа результатов, которое оно выдаст. Для того, что бы сделать это вам необходимо добавить два значения в ваш файл LocalSettings.php, например:

Первый параметр обозначает размер шрифта для наименее популярного тэга, а второй для наиболее популярного (в пикселя).

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

Настройка показа значений фильтра
Для фильтров, которые имеют более установленного числа значений, значения показываются в combo box, вместо показа отдельных значений. По умолчанию, это число 40. Для изменения этого числа, добавте в ваш LocalSettings.php что-то вроде: Вы можете установить это значение как 1 или 0, если вы хотите всегда показывать значения фильтров в виде combo box, в порядке повышения значимости.

Для фильтров, которые соответствуют свойствам типа Number, значения автоматически группируются в диапазоны, пытаясь создать диапазоны примерно одинаковых размеров, при этом имеющих "изящное число" в качестве границы (например 1200 вместо 1234). По умолчанию, значения группируются в 6 диапазонов. Для изменения этого значения добавьте в ваш LocalSettings.php что-то вроде:

Показ категорий
По умолчанию, список всех категорий верхнего уровня показывается сбоку страницы "Browse data", давая пользователям возможность навигации по категориям при выделении старниц. Однако, представление категорий можно в значительной мере изменить.

Удаление списка категорий
Вы можете иметь необходимость выделять страницы показывая данные только из одной категории и не показывать список остальных категорий. Что бы сделать это, просто добавьте последовательность "?_single" где угодно в последовательности URL-запроса, это удалит список категорий. В качестве примера такого запроса можно привести   (см. пример [://discoursedb.org/wiki/Special:BrowseData/Sources?_single здесь] ).

Показ имен категорий как вкладок
Если добавить в LocalSettings.php строчку:

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

Включение и исключение категорий из списка
Может потребоваться чтобы определенные категории не показывались в списке категорий верхнего уровня. Вы можете легко удалить категорию добавлением в любом месте страницы категории следующего кода: __HIDEFROMDRILLDOWN__

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

Обратно, вы можете также установить для категорий что бы они показывались только если они специально включенны, т.е имеют установку "opt-in" вместо "opt-out". Вы можете сделать это добавив в LocalSettings.php строчку:

Если вы сделаете это, то только категории отмеченные с помощью "__SHOWINDRILLDOWN__" будут показаны. (В этом случае "__HIDEFROMDRILLDOWN__" окажется не нужным)

Ссылка на страницу детализации
Лучший способ связаться с Special:BrowseData это парсер-функция #drilldowninfo. Она имеет следующий синтаксис:

Параметры определяют:
 * - имя категории
 * - подкатегория
 * - если этот параметр добавляется, то список категорий на показывается
 * - текст ссылки (по умолчанию имя категории)
 * - текст, который появляется когда курсор наезжает на ссылку
 * - набор фильтров для применения в формате "a=b&c=d&..."

Сайты которые используют Semantic Drilldown
Здесь приведен небольшой перечень сайтов которые используют Semantic Drilldown:

For a much more comprehensive listing, see the [://smw.referata.com/wiki/Special:BrowseData/Sites?Semantic_extensions=Semantic_Drilldown Semantic MediaWiki Community Wiki] (which itself uses Semantic Drilldown to show the list).
 * [://dicoado.ch/dico/Sp%C3%A9cial:BrowseData/Classe_grammaticale Le Dico des Ados] - A French wiktionary-like website for 8-13 years old
 * [://domotiki.eu/index.php/Sp%C3%A9cial:BrowseData Domotiki] - A French wiki about home automation including a collaborative prices comparator
 * [://www.epsa-projects.eu/index.php?title=Special:BrowseData/Projects EPSA] - European Public Sector Award winners and nominees
 * [://foodfinds.referata.com/wiki/Special:BrowseData Food Finds]
 * [://www.skybrary.aero/index.php/Special:BrowseData/Accidents_and_Incidents?_single SKYbrary] - wiki for Aviation Safety, browser for Accidents and Incidents in Civil Aviation
 * [://solutions-web.eu/index.php/Sp%C3%A9cial:BrowseData/Wiki Solutions-web.eu], lists and compares commercial offers about web sites benefits : hosting, conception...
 * [://www.structuralwiki.org/en/Special:BrowseData/Software?_single Structural Wiki] - wiki for structural engineers
 * UNDP Inter-Municipal Cooperation
 * [://www.verwaltungskooperation.at/index.php?title=Spezial:Daten_browsen/Kooperationsprojekte Verwaltungskooperation] - Cooperation in Public Administration
 * [://www.wecowi.de/wiki/Spezial:BrowseData/Person WeCoWi]

Список контактов
Вы можете использовать список контактов Semantic MediaWiki ( [://lists.sourceforge.net/lists/listinfo/semediawiki-user semediawiki-user] ) для любых вопросов, предложений или сообщений об ошибках касательно Semantic Drilldown. Если возможно, добавляйте "[SD]" в начало темы сообщения.

Ошибки и особенные требования
Вы можете представит сообщения об ошибках и требования к новым особенностям в ://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-SemanticDrilldown Wikimedia's bug tracker].

Текущий список известных ошибок и требований к новым особенностям для Semantic Drilldown можно найти ://phabricator.wikimedia.org/maniphest/query/esYivXb__Fxu/#R здесь].

Вклад патчей в проект
Если вы нашли ошибки и исправили её или вы написали код для новой функции, пожайлуста, создайте Git-coomit с этим изменением или содайте патч перейдя в основной каталог "SemanticDrilldown" и напечатайте:

Затем, перейдите к соответствующему отчету об ошибке в Bugzilla (или создайте его при необходимости) и дайте ссылку в Git-coomit или прикрепите к нему этот файл.

Если вы не хотите использовать Bugzilla, то просто отправте электронное письмо Yaron Koren.

Перевод
Перевод Semantic Drilldown осуществляется через translatewiki.net. Перевод для этого расширения может быть найден [://translatewiki.net/w/?title=Special:Translate&group=ext-semanticdrilldown здесь]. Для добавления языкового значения или изменения его, вы должны создать аккаунт на translatewiki.net, получить разрешение от администраторов для перевода на определенный язык или языки на этой странице (это очень просто). Как только вы получит разрешение для данного языка, вы можете зайти в аккаунт и добавить или редактировать любые сообщения какие хотите в этом языке.

Смотри также

 * Cargo - дает интерфейс похожий на интерфейс Drilldown, поверх другой системы хранения.