Предложения по разметке mediawiki Сообщение DenisKoronchik » 13 ноя 2011, 14:00 На выходных выдалось время поэкспериментировать и вот во что это вылилось. Предложение заключается в следующих пунктах: разметка scn статей осуществляется средствами шаблонов mediawiki при наборе статьи, пользователь не указывает никакой дополнительной информации (информация необходимая для отображения), кроме фактов шаблоны реализуются таким образом, что могут визуализировать статьи, выдавать их в другом виде (scs, xml, и т.д.) Реализовать такой подход получилось, для этого использовалась mediawiki 1.18 (но можно и любую другую ибо ее отличительные особенности не использолвались). В mediawiki были установлены следующие расширения: variables (http://www.mediawiki.org/wiki/Extension:Variables) parser functions (http://www.mediawiki.org/wiki/Extension:ParserFunctions) array extension (http://www.mediawiki.org/wiki/Extension:ArrayExtension) url get parameters (http://www.mediawiki.org/wiki/Extension:UrlGetParameters) На поиск решения, установку нужного по и расширений ушло 3-4 часа и вот что получилось. Кусок статьи описывающий треугольник в старой разметке: Код: выделить все {{SCnBegin}} {{SCnFieldConcept|треугольник}} {{SCnFieldSpecConSyn|1|Класс треугольников}} {{SCnFieldSpecConSyn|1|плоский треугольник}} {{SCnFieldSpecConSyn|1|Понятие треугольника}} {{SCnFieldSpecConSyn|1|Множество всевозможных треугольников}} {{SCnFieldSpecConSyn|1|Множество знаков всевозможных треугольников}} {{SCnFieldSpecConSyn|1|многоугольник с тремя сторонами}} {{SCnFieldSpecConSyn|1|triangle}} {{SCnFieldSpecConPropSuperset|1|[[Геометрия:Многоугольник|многоугольник]]}} {{SCnFieldSpecConPropSuperset|1|[[Геометрия:Планарная фигура|планарная фигура]]}} {{SCnFieldSpecConPropSuperset|1|[[Геометрия:Непрерывная геометрическая фигура|непрерывная геометрическая фигура]]}} {{SCnFieldSpecConPropSuperset|1|[[Геометрия:Поверхность|поверхность]]}} {{SCnFieldSpecConPropSuperset|1|[[Геометрия:Геометрическая фигура, имеющая граничные точки|геометрическая фигура, имеющая граничные точки]]}} {{SCnFieldSpecConPropSuperset|1|[[Геометрия:Геометрическая фигура, в состав которой входят все граничные точки|геометрическая фигура, в состав которой входят все граничные точки]]}} {{SCnFieldSpecConPropSuperset|1|[[Геометрия:Геометрическая фигура ограниченного размера|геометрическая фигура ограниченного размера]]}} {{SCnFieldSpecConPart|1|конгруэнтности сторон}} {{SCnFieldCompEnum|2|1|[[Геометрия:Разносторонний треугольник|разносторонний треугольник]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Строго равнобедренный треугольник|строго равнобедренный треугольник]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Равносторонний треугольник|равносторонний треугольник]]}} {{SCnFieldSpecConPart|1|величины углов}} {{SCnFieldCompEnum|2|1|[[Геометрия:Остроугольный треугольник|остроугольный треугольник]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Прямоугольный треугольник|прямоугольный треугольник]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Тупоугольный треугольник|тупоугольный треугольник]]}} {{SCnFieldSpecRelDomainSet|1}} {{SCnFieldCompEnum|2|1|[[Геометрия:Конгруэнтность|конгруэнтность*]]}} {{SCnFieldSpecRelDomainSuperSet|1}} {{SCnFieldCompEnum|2|1|[[Геометрия:Медиана|медиана*]]}} {{SCnFieldSpecRelDomainIntersSet|1}} {{SCnFieldCompEnum|2|1|[[Геометрия:Высота|высота*]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Биссектриса|биссектриса*]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Граница|граница*]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Площадь|площадь*]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Периметр|периметр*]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Сторона|сторона*]]}} {{SCnFieldCompEnum|2|1|[[Геометрия:Внутренний угол|внутренний угол*]]}} {{SCnFieldCompEnum|2|1|[[Язык множеств:Включение|включение множества*]]}} {{SCnFieldCompEnum|2|1|[[Язык множеств:Пересечение|пересечение множеств*]]}} {{SCnFieldCompEnum|2|1|[[Язык множеств:Объединение|объединение множеств*]]}} {{SCnFieldCompEnum|2|1|[[Язык множеств:Разность|разность множеств*]]}} {{SCnFieldCompEnum|2|1|[[Язык множеств:Разбиение|разбиение множества*]]}} {{SCnFieldSpecConDef|1}} {{SCnFieldCompEnum|2|1|[[Геометрия:Опр.(треугольник)|Опр.(треугольник)]]}} Тот же самый кусок описанный в новой разметке выглядит так (поле Link может быть исключено, если используются только основные идентификаторы): Код: выделить все {{Article}} {{Identification| Класс треугольников; плоский треугольник; Понятие треугольника; Множество всевозможных треугольников; Множество знаков всевозможных треугольников; многоугольник с тремя сторонами; triangle}} {{Superset| Многоугольник; Планарная фигура; Непрерывная геометрическая фигура; Поверхность; Геометрическая фигура, имеющая граничные точки; Геометрическая фигура, в состав которой входят все граничные точки; Геометрическая фигура ограниченного размера}} {{Subdivision|конгруэнтность сторон| {{Link|разносторонний треугольник}}; {{Link|строго равнобедренный треугольник}}; {{Link|равносторонний треугольник}}}} {{Subdivision|конгруэнтность сторон| {{Link|остроугольный треугольник}}; {{Link|прямоугольный треугольник}}; {{Link|тупоугольный треугольник}}}} {{SpecRel|{{Link|Отношения, области определения которых являются надмножеством описываемого множества и каждая связка которых связывает элементы описываемого множества между собой|отнош1}}| конгруэнтность*}} {{SpecRel|{{Link|Отношения, области определения которых являются надмножеством описываемого множества и связки которых, в общем случае, связывают элементы описываемого множества с другими объектами|отнош2}}| медиана*}} {{SpecRel|{{Link|Отношения, области определения которых строго пересекаются с описываемым множеством|отнош3}}| {{Link|высота*}}; {{Link|биссектриса*}}; {{Link|граница*}}; {{Link|площадь*}}; {{Link|периметр*}}; {{Link|сторона*}}; {{Link|внутренний угол*}}; {{Link|включение множества*}}; {{Link|пересечение множеств*}}; {{Link|объединение множеств*}}; {{Link|разность множеств*}}; {{Link|разбиение множества*}}}} {{SpecRel|Определение| {{Definition|{{Link|Опр.(треугольник)}}| comment = См. пояснение оформления данного sc.n-поля по [[ссылке]] }} }} Без шаблона Link это выглядит примерно так: Код: выделить все {{Identification| Класс треугольников; плоский треугольник; Понятие треугольника; Множество всевозможных треугольников; Множество знаков всевозможных треугольников; многоугольник с тремя сторонами; triangle}} {{Superset| Многоугольник; Планарная фигура; Непрерывная геометрическая фигура; Поверхность; Геометрическая фигура, имеющая граничные точки; Геометрическая фигура, в состав которой входят все граничные точки; Геометрическая фигура ограниченного размера}} {{Subdivision| конгруэнтности сторон | разносторонний треугольник; строго равнобедренный треугольник; равносторонний треугольник}} {{Subdivision| конгруэнтности сторон | остроугольный треугольник; прямоугольный треугольник; тупоугольный треугольник}} {{SpecRel|Отношения, области определения которых являются надмножеством описываемого множества и каждая связка которых связывает элементы описываемого множества между собой | конгруэнтность*}} {{SpecRel|Отношения, области определения которых являются надмножеством описываемого множества и связки которых, в общем случае, связывают элементы описываемого множества с другими объектами | медиана*}} {{SpecRel|Отношения, области определения которых строго пересекаются с описываемым множеством | высота*; биссектриса*; граница*; площадь*; периметр*; сторона*; внутренний угол*; включение множества*; пересечение множеств*; объединение множеств*; разность множеств*; разбиение множества*}} {{SpecRel| Определение | {{Definition|Опр.(треугольник)}} | comment = См. пояснение оформления данного sc.n-поля по [[ссылке]]}} Данная статья может отображаться в трех видах: Первый - в виде обычной размеченной страницы SCn-текста - смотреть (http://img266.imageshack.us/img266/315/scnb.png) (scnb.png) Второй - в виде scs текста - смотреть (http://img856.imageshack.us/img856/260/scsk.png) (scsk.png) Третий - в виде xml документа смотреть (http://img189.imageshack.us/img189/448/xmls.png) (xmls.png) Кроме этих видов могут быть добавлены новые. DenisKoronchik Сообщение Burov Alexander » 13 ноя 2011, 23:03 Добрый вечер! Да, безусловно, по сравнению с текущей версией, изменения в лучшую сторону очевидны. Однако, есть некоторые моменты: Как было отмечено (Владимиром Васильевичем) в ходе дискуссий по поводу.. по этому поводу, одной из важнейших задач SCn является предоставление экспертам возможности самостоятельно, на своем домашнем компьютере, взять и создать прототип базы знаний. Безо всяких подготовительных мероприятий и, тем более, без привлечения технических специалистов или специалистов в области инженерии знаний. В предлагаемом же варианте для начала работы необходимо создать некоторое множество шаблонов для последующего описания предметной области. Что делает невозможным самостоятельное начало работы экспертов. Подобное имеет место и в текущей версии разметки, но это ее безусловный (большой) минус. Исходя из этого возникает потребность в визуальном редакторе, где эксперт мог бы редактировать SCn-текст 1 к 1. К этому, в принципе, уже пришли все (или почти все) в ходе минувших дискуссий. Кроме того, есть потребность в возможности редактирования SCn-кода в любом текстовом редакторе (таком как блокнот). Исходя из этой потребности, пришли к выводу, что нужен некоторый язык (SCnML), который был бы максимально схож с результирующим представлением, но не требовал использования специальных символов (символов, отсутствующих на стандартных раскладках клавиатуры). Вариация такого языка была предложена Дмитрием Григорьевичем. Так как этот язык практически идентичен результирующему представлению, то мы избавим экспертов от необходимости изучения двух языков. И этот язык в любом случае будет наглядней и понятней для эксперта. Кроме того, нам совершенно не нужна эта связь с MediaWiki и ее движком. Она нам не нужна в принципе, ибо ограничивает нас. И, кроме того, система шаблонизации MediaWiki далека от идеала и у нас уже не раз возникали сложности при разработке шаблонов. В пользу шаблонов MediaWiki я услышал всего два аргумента: Совместимость с Википедией; Быстрота перехода. На мой взгляд, аргументы весьма сомнительные. Если это все так быстро реализовать, то не составит никаких проблем поддержать синтаксис MediaWiki при необходимости интеграции с Википедией. Однако, предположим, что мы подошли к моменту интеграции, и авторы статей Википедии начинают переделывать свои статьи для соответствие некоторым стандартам. Им ведь все равно придется разобраться с SCn. Так в чем для них тогда будет заключаться сложность в наборе статей с помощью предложенного нами SCnML, который будет на 90+% идентичен SCn? Что касается быстроты перехода, то это, конечно, стоит учесть. Но все ведь понимают, что нельзя делать подобные выборы по подобному критерию? Burov Alexander Сообщение DenisKoronchik » 14 ноя 2011, 00:16 Ну начнем по порядку, если инженер хочет создать с нуля базы знаний, ему все равно придется ставить какое-то ПО, которые уже будет включать в себя заранее заготовленные шаблоны, так везде и это нормально. Ему ничего делать своего не надо будет. Что касается визуального редактора вот он: ссылка (http://www.mediawiki.org/wiki/Extension:TemplateFormEditor). Конечно его надо подпилить под наши нужды, но не надо изобретать велосипед. Редактирование в блокноте по прежнему возможно. Удобство зависит лишь от названий шаблонов. А суть редактирования сводится к тому, что мы пишем отношение, а потом перечисляем объекты. Однообразно и понятно и не требует сильных измышлений на эту тему. Что касается медиавики, окей не нужна, аргументы. В пользу есть один очень важный аргумент, я лично не знаю более расширяемого и удобного средства для распределенного редактирования исходных текстов, которые состоят из множества частей (статей), если есть такие, то предлагайте. А если нет альтернатив, то не надо из имеющейся делать неведомо что, при том, что мы сейчас и на 10% не используем весь её потенциал. При переходе википедии на scn, им не надо ничего менять в большинстве своих статей. Привожу примеры: шаблон для описания расширений (http://www.mediawiki.org/wiki/Template:Extension) шаблон описания планет (http://en.wikipedia.org/wiki/Template:Infobox_planet) шаблон описания фильмов (http://en.wikipedia.org/wiki/Template:Infobox_film) и так далее... все шаблоны начинающиеся с Infobox Нужно будет лишь заменить их начинку, и мы получаем доступ к огромной базе знаний, которая уже наполнена. Это же безумно большое количество знаний, к которым мы уже получаем доступ. Уже можно искать фильмы, книги, музыку, людей и так далее. Одно это многого стоит. И речь не идет о переделке десятков тысяч статей, речь идет о переделке сотни шаблонов. DenisKoronchik Сообщение Burov Alexander » 14 ноя 2011, 01:04 DenisKoronchik писал(а):Ну начнем по порядку, если инженер хочет создать с нуля базы знаний, ему все равно придется ставить какое-то ПО, которые уже будет включать в себя заранее заготовленные шаблоны, так везде и это нормально. Ему ничего делать своего не надо будет. Во-первых, не инженер, а эксперт. Обратите внимание на перечень шаблонов различных систем (например, Геометрия и География). Пересечения, конечно, есть, но и различия весьма существенные. Подобный редактор удобен если вся статья описывается одним шаблоном, в нашем случае это не так. То, что можно "малой кровью", так сказать, получить много знаний (я про формализованную информацию, находящуюся в Википедии), так это хорошо. И никто ж этому не препятствует - если встанет вопрос, то воспользуемся предложенным вариантом - шаблоны поправим и будет нам сразу SCs. Но при чем тут остальные статьи? Предлагаемый вариант ярко иллюстрирует, что проблем с получением тех знаний что уже формализованы не будет, так что не надо на это постоянно ссылаться - оно никуда не денется в любом случае. Что касается MediaWiki, то может все-же кто-нибудь прояснит эту загадочную распределенность, которую она предоставляет? Я уже пытался это узнать, но как-то безрезультатно. Burov Alexander Сообщение DenisKoronchik » 14 ноя 2011, 13:13 Эксперт никогда не разрабатыает систему один. Он в проекте, чтобы передать знания по предметной области, а не заниматься техническими вещами. Редактор в чистом виде да, а вот доделаный. Речь и не идет о том, что он уже полностью готов Что касается визуального редактора вот он: ссылка. Конечно его надо подпилить под наши нужды, но не надо изобретать велосипед. Что касается распределенности, то это помоему весьма очевидно, огромное количество людей работая над разными частями, делаю что-то общее и великое. Помоему успех википедии в этом плане очевиден. Если есть аналогичные иструменты, позволяющие делать тоже самое но более удачно, будем только рады. Поделитесь. DenisKoronchik