Quantcast
Channel: Блог VladSavitsky
Viewing all articles
Browse latest Browse all 52

Реализация идеальной "кармы"

$
0
0

На основании обсуждения поста "Сравнение модулей кармы, репутации и рейтинга", делаю выводы про то, какой должна быть толковая реализация "кармы". Кроме того, Теоретические измышления, толкование понятий и разницу между ними читайте в этом самом посте ("Сравнение модулей кармы, репутации и рейтинга"), а здесь я хочу собрать все идеи и предложения, которые относятся именно к карме.

Кроме кармы, выделились ещё такие направления как "опыт"и "репутация", но об этом позже...

Напомню, что карма - это отношения пользователя и системы. За плохие деяния пользователя наказывают, за хорошие - поощряют.

Назначение системы "кармы"

Наказание за плохие дела

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

Что такое "хорошо"и что такое "плохо"?

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

Плохие поступки:

  • публикация спама. Оценка: система и пользователи.
  • публикация бессмысленных комментов или статей. Оценка: только пользователи.
  • вредные действия по отношению к системе (сайту). Например, попытки взлома или разрушения. Оценка: система и пользователи.

Хорошие поступки:

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

Правила сайта

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

  1. можно использовать модуль Legal, который показывает правила сайта при регистрации и вынуждает согласиться с ними. При внесении изменений он опять же требует каждого пользователя согласиться с ними снова.
  2. Можно сделать простую текстовую страницу, где будут приведены правила сайта и обновлять эту страницу в случае необходимости.

Первый вариант более человечный, а второй стоит на позиции "незнание закона не освобождает от ответственности".

Наказание и поощрение

Здесь мы ограничены не воображением, а реальными возможностями движка:

  • автоматическая смена ролей (как это делает User Karma).
     Krotty@drupal.org">Krotty@drupal.orgпредложил сделать роли, которые будут исключаться из автоматического назначения:

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

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

Методы анализа действий пользователя

Автоматическая оценка силами системы

Некоторые действия система может отслеживать сама. Вот они:
Плохие поступки

  • публикация спама
  • вредные действия по отношению к системе - полностью учесть не удастся, нужно использовать также оценку пользователей.

Хорошие поступки

  • участие в развитии системы (например, сообщения о спаме, участие в улучшении сайта и др.) - полностью учесть не удастся, нужно использовать также оценку пользователей.

Не так уж и много, к сожалению. Может быть я что-то упустил?..

Оценка действий другими пользователями системы

Оценка других пользователей является субъективной, но они тоже часть системы и нужно это мнение учитывать. Список того, что пользователи могут оценивать:
Плохие поступки

  • публикация спама.
  • публикация бессмысленных комментов или статей.
  • вредные действия по отношению к системе (сайту). Например, попытки взлома или разрушения.

Хорошие поступки

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

Корректировка субъективности оценок пользователей
Для снижения субъективности оценки действий других пользователей нужно как-то учесть личность того, кто оценивает.

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

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

Проблема в том, что со временем эти оценки могут меняться...
Как все это можно реализовать?

Например, можно при регистрации показывать не правила в виде текста, а под каждым пунктом показывать голосовалку, где пользователь должен поставить свою оценку этому действию (но не мере наказания или поощрения!).
Но как учесть то, что со временем пользоваля, ранее лояльного к спаму, начнет это доставать и он станет ярым борцом против спама?...

Виджет для оценок

 Danпредложил использовать разные шкалы для оценок:

1. Сделать многомерную шкалу. Делить все оценки на хорошие и плохие, и ещё хуже, смотреть разницу - дело бесполезное, на мой взгляд. Например человек может писать хорошие статьи в свой блог, но сильно флудить в форумах. "Хорошо"это или "плохо"? Нет, это просто две разные оценки: "полезные статьи", "флуд в коментах". Как их будет интерпретировать админ - его сугубо личное дело.
Другими словами, модуль должен позволять создавать несколько шкал оценок и "привязывать"начисление очков дополнительными модулями к разным шкалам.

 ingumsky@drupal.org">ingumsky@drupal.orgнаписал:

Обычно читатель готов воспользоваться только одной шкалой и только для того сообщения (комментария, видеофайла и так далее), которое его зацепило. Причём, по сути, не так важно, какова градация это шкалы — реально используется около пяти значений, не больше. И то читатель поставит оценку только в том случае, если объект оценивания вызвал у него сильную реакцию.

Причём, если смотреть по комментариям на всяких фотосайтах, охотнее голосуют те, кто хочет похвалить, а не поругать (ещё одно «узкое место»!) И, кстати, оценки обычно ставят, отталкиваясь от максимальных значений. Возмущённый читатель, не раздумывая, поставит «минус пять», восхищённый — «плюс пять», а вот тройки и двойки ставить будут вряд ли. По опыту могу сказать так же, что на оценку материала может большое влияние оказывать то, как голосующий относится к предмету материала, а не а не к самому материалу. Вот у меня сайт болельщиков футбольного клуба — после победы над сильным соперником пользователи поставят хорошие оценки любому отчёту о ней, а после поражения — вряд ли найдётся два-три человека, которые вообще сунуться голосовать. В общем, Ваша идея действительно очень интересна, но я не уверен, что выполнима.

Вывод, шкала оценок должна иметь 5 плюс-минус 2 значений и нужно учесть эффект Полианны, когда пользователи дают только позитивные оценки, а негативные стараются не давать.

Виджет для разных оценок может быть и один. Например такой список вариантов:

  • смешно - НЕ добавляет репутации автору, но учитывается иначе. Например, для рейтинга (пузомерки)
  • спасибо - НЕ добавляет репутации автору, но учитывается иначе. Например, для рейтинга (пузомерки)
  • +1 - добавляет +1 к репутации автора
  • +2 - добавляет +2 к репутации автора
  • +3 - добавляет +3 к репутации автора

И это не моя идея. Это из статьи, ссылку на которую я привел с самом начале обзора. Посмотрите внимательно - я нахожу это лучшим решением на данный момент. Привожу ссылку ещё раз:

http://www.rsdn.ru/?forum/Info.aspx?name=info.forum.rating - описание виджета для голосования.

Связь с оффлайн жизнью

 peterпредложил:

1. Возможность админу добавлять определенное количество кармы/репутации (по результатам действий в реале)

Так как карма - это отношения пользователя и системы, то это к карме не относится. То есть карма не учитывает действия, репутацию пользователя оффлайн, а только действия в системе.

Учет репутации и опыта

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

Таким образом, системы кармы, репутации и опыта должны сосуществовать рядом, но не влиять на карму.

0 Thanks

Viewing all articles
Browse latest Browse all 52

Trending Articles