Semantic Mediawiki: разные типы одного property

okolobaxa

Осваивается
Регистрация
23.03.2016
Сообщения
19
Реакции
0
Коротко о самой вики: пытаемся создать лучшую локальную краеведческую энциклопедию. Еще на самом старте пути, но сразу максимально вкладываем силы и время в техническую составляющую. Пытаюсь понять насколько нам нужна будет семантичность данных и играюсь с Semantic Mediawiki.
Адрес - http://wiki.oldsaratov.ru/

Вопрос такой:
Есть какая-то property, например "Отец". Может содержать как простой текст, например "Василий Викулович", так и ссылку на другую страницу, например "[[Гудков Василий Викулович]]", если человек был не простой и достоин отдельной страницы.

Не понимаю, как это хэндлить с помощью семантических свойств. Семантические свойства вставляю в шаблон инфоркарточка "Персона" (http://wiki.oldsaratov.ru/index.php?title=Шаблон:Персона&action=edit промотать вниз)

Опять же, у одной property может быть много текстовых значений (например для property "Дети"), так и смесь из текстовых и ссылочных значений.

Сейчас курю в сторону Parser Functions, но возможно на ложном пути. Если кто уже заморачивался с таким - помогайте.
 
Либо текст, либо ссылка. Можно хранить текст и при показе проверять существует ли страница. Если существует то отображать как ссылку, нет - как текст.

P.S. копаете в правильном направлении, без таких функций не обойтись:
{{#ifexist: page title | value if exists | value if doesn't exist }}

P.P.S для детей:
{{#arraymap:value|delimiter|variable|formula|new_delimiter}}
 
Последнее редактирование:
Semantic Mediawiki вам нужен на пример, если вы хотите указать отца на странице ребенка, и чтобы на странице отца запросом показывать детей. Ну или на оборот... Также можно делать запросами строить списки отцов с детьми и любой другой записанной в Semantic Mediawiki информацией.
Например список всех скульпторов родившихся в Саратове. На самом деле это довольно мощная и интересная штука.
 
Только имейте в виду, что {{#ifexists:...}} — это очень ресурсоемкая функция, не злоупотребляйте.
 
Одному свойству можно присвоить мн-во значений:
[[Сын::иван петров]] и [[сын::петр иванов]]

Неважно, достоин ли человек отдельной страницы, она вам будет служить как минимум для хранения свойств. С другой стороны есть функция {{#set:персона=фамилия имя}} которая позволяет вам задать свойство для страницы явно.

Наравне с четкими датами можно сделать как свойства для года месяца числа, так и для нечетких [[раньше чем::1900]]
 
Назад
Верх