Таксономия привязанная не к ноде, а к якорю в тексте ноды

Главные вкладки

Аватар пользователя gasloff@drupal.org gasloff@drupal.org 18 апреля 2007 в 16:40

Возник следующий вопрос.

Традиционно термины таксономии привязаны к ноде в целом. Для небольших текстов это хорошо.
А вот можно ли как нибудь привязывать термин таксономии не к ноде в целом, а к определенному месту в этой ноде? Обозначенному например каким нибудь якорем?

В объемных текстах это было бы на мой взгляд довольно удобно (с точки зрения навигации).

Комментарии

Аватар пользователя Ромка Ромка 18 апреля 2007 в 17:56

В таблице term_node хранятся чисто nid и tid, то есть ид ноды и термина, по этому стандартными средствами сделать это не получится. Возможно получится наколдовать свой хак, но только как ты представляешь админский интерфейс привязки тремина к конкретному участку текста?

Аватар пользователя gasloff@drupal.org gasloff@drupal.org 18 апреля 2007 в 18:10

Что нужно делать отдельный модуль понятно Sad Хоть я и надеялся что кто то этим вопросом озадачивался.

Вопрос интерфейса - второй Smile Первый вопрос - нужен ли такой функционал вообще?

На мой взгляд для сайтов с объемными текстами такое могло бы пригодиться Smile

Аватар пользователя Toologic Toologic 18 апреля 2007 в 23:10

Мне кажется решение где-то рядом...

попробуйте поэкпериментировать с книгами (пошивками или как их там еще можно назвать) - стандартный модуль books.
Позволяет собирать разные ноды в одно логическое целое.

Аватар пользователя gasloff@drupal.org gasloff@drupal.org 19 апреля 2007 в 9:11

Нет, это как раз не решение. Подшивка - это все таки несколько нод объединенных в подшивку. И тут как раз получается у ноды свои таксономии. То есть пришли туда откуда начинали Smile

Не совсем правильно "резать" на несколько нод длинные тексты. А в таких текстах встречаются разные темы и определения Sad

Назначение термина таксономии на длинный текст не решает проблемы Sad Так как в тексте ещё найти надо где интересующий вопрос поднят и рассматривается. Особенно если мы сталкиваемся с текстом разделённом на несколько pages Sad

На мой взгляд это вообще проблема для традиционных средств навигации. они по сути предназначены для сайтов с краткими сообщениями, заметками и т.д. Выходит что при помощи таксономии мы можем организовать навигацию только "по вертикали". А вся навигация "по горизонтали" в нодах строится на основании стандартного поиска. Максимум что можно в такой ситуации сделать - добавить в начале текста оглавление. Что не решает проблему, так как не содержит одной из главных возможностей таксономии - назначения нескольких терминов (из одного или нескольких словарей) на один объект.

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 19 апреля 2007 в 9:51

Имхо, то, о чем вы говорите, это - семантическая разметка. Т.е. возможность организовать присвоение тегов отдельному фрагменту текста.

В каком-то смысле Toologic прав - по сути дела, мы можем считать "нодой" не длинный текст, а, например, абзац или законченный смысловой кусок текста. "Материал" (нода) - и есть такой "инфоблок" (размер его не существенен). Прагматически, конечно, модуль books может быть неудобен.

Я вижу в проблеме семантической разметки 2 концептуальные сложности:
во-1-х, проблема границ в "измельчении" ноды. Т.е. проще говоря, если мы от тегирования (смысловой разметки) текстов переходим к тегированию кусков текста, то почему бы на не пойти дальше - тегировать абзацы, фразы, а затем и отдельные слова? С практической точки зрения - это вопрос, как нам понять, что является самодостаточным смысловым куском текста?
во-2-х, проблема, кто будет расставлять теги. Пока единицей разметки остается отдельный материал (документ, нода) эта задача ложится на автора (или того, кто размещает текст в системе), да и то - делается не всегда и это довольно затруднительная процедура. Что будет, если надо будет вручную размечать многочисленные фрагменты текста?
Выход - либо организационный (формировать в сообществе группу редакторов, занимающихся семантической разметкой вводимых текстов), либо технический - попытаться алгоритмизировать и автоматизировать этот процесс. Каков алгоритм?
Об этом - в следующей серии. Smile

Аватар пользователя Dan Dan 19 апреля 2007 в 17:58

При чём здесь термины и при чём здесь ноды?
Опиши, что необходимо, а мы подумаем как сделать. А то я не вижу функционала.

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 20 апреля 2007 в 9:01

Не совсем в тему, но интересно, поскольку про смысловую обработку: "автоматическое составление пресс-портрета по материалам сообщений" - http://news.yandex.ru/people-search-tech.html
Получается, например, "Чебурашка Геннадий" Smile - http://news.yandex.ru/people/cheburashka_gennadij.html

Аватар пользователя Shelendor Shelendor 20 апреля 2007 в 11:31

я вот тоже думаю о чём-то подобном... только никак не могу сложить в голове как это должно быть. Я всё со своим сайтом по истории Таганки вожусь. Так вот, на многих домах есть памятные таблички о всяческих событиях и известных жильцах, это все знают. Идея такая - в ноде, в которой находится статья про конкретную улицу, в самом низу под статьёй хочу ставить список памятных табличек на этой улице. И, естественно, сделать общий их список по району и вывести его в меню. В этом списке, соответственно, надо дать ссылки на те места статей, где идёт описание табличек. Вручную всё это делать - геморрой жуткий. Автоматизировать как-то реально? как раз что-то типа таксономии по якорям надо...

Аватар пользователя gasloff@drupal.org gasloff@drupal.org 21 апреля 2007 в 0:27

У меня несколько иная задача, но из той же оперы Smile

Берём любой юридический текст, например 4-я часть ГК РФ

Статья 1232. Государственная регистрация результатов интеллектуальной деятельности и средств индивидуализации
1. В случаях, предусмотренных настоящим Кодексом, исключительное право на результат интеллектуальной деятельности или на средство индивидуализации признается и охраняется при условии государственной регистрации такого результата или такого средства.
2. В случаях, когда результат интеллектуальной деятельности или средство индивидуализации подлежит в соответствии с настоящим Кодексом государственной регистрации, отчуждение исключительного права на такой результат или на такое средство по договору, залог этого права и предоставление права использования такого результата или такого средства по договору, а равно и переход исключительного права на такой результат или на такое средство без договора, также подлежат государственной регистрации, порядок и условия которой устанавливаются Правительством Российской Федерации.
(и далее по тексту...)

Чтобы было удобно читать и понимать данный текст необходимо давать ссылки на формулировки в том же ГК или в других законах и подзаконных актах вот какого числа терминов:
а. случаи, предусмотренные настоящим Кодексом (в части госрегистрации результатов ИД)
б. исключительные права (вообще)
в. результат интеллектуальной деятельности
г. средство индивидуализации
д. отчуждение исключительного права по договору
е. залог права
ж. предоставление права использования по договору
з. переход права без договора
и. государственная регистрация

Причём здесь зачастую требуются не однозначные ссылки (что можно просто сделать), а ссылки многозначные - то есть ссылка и на определение в кодексе, и на судебную практику, и на обычаи делового оборота.

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

Аватар пользователя Dan Dan 20 апреля 2007 в 23:38

Задача ясна.
Вижу несколько проблем.

Первая - пометка блоков информации тэгами. Вариант - сделать фильтр и писать что-то вроде %%словарь==категория==описание%%, фильтр после обработки текста вставит в это место автоякорь и занесёт инфу о теге в БД. Другой вариант - что-то на jQuery в теле редактирования материала. Ещё вариант - стандартный Drupal'овский сворачивающийся бокс с перечнем якорей в тексте материала, у каждого якоря опция - задать словарь-категорию-описание.

Вторая проблема - хранение информации. Можно сделать свою таблицу в БД - не проблема, но хотелось бы поиметь стандартную таксономию в расширенном исполнении. Может задействовать синонимы?

Аватар пользователя kiev1 kiev1 11 мая 2007 в 10:10

а я видел на многих сайтах сделано так что некоторые словосочетания автоматически делаются ссылкой на описание этого словосочетания, наверно в wiki даже такое есть, а в друпале какой модуль?

Аватар пользователя Dan Dan 11 мая 2007 в 12:41

Это фигня. Это можно реализовать просто фильтром: ищем слова (словосочетания) из списка и заменяем их на ссылки.

Здесь задача сложнее: надо сделать ссылочность туда - обратно.

Если проводить аналогию, то первый вариант - это обычный гипертекст: на странице есть ссылки на другие страницы, но другие страницы об это не знают; второй вариант - web 2: когда ставишь ссылку на сайт, этот сайт об этом узнаёт и может построить список страниц, ссылающихся на него. Согласись, разница очевидна.