Cüneyt Özdaş 19.11.2002
Türkiyede ve Dünyada yayında olan 3D içerikli forumların birçoğunda zamanla ve üye sayısı atrttıkça karşılaşılan bozulma ve sürtüşmelerin, admin ve moderatörlerin zamanını almadan önlenebileceği, kendi kendisini düzeltme eğiliminde olan bir forum/haber portal’ı yapısının oluşturulması.
Bu metin bahsi geçen sistemi oluşturmak için gereken yapının henüz netleştirilmemiş taslağını içermektedir.
Sistem, yapıya bir ilk hız verilerek, daha sonra sistemin verilen bu ilk hız yönünde kendi kendisini moderate etmesi esasına dayalıdır. Bunun için maxungerground.com, experts-exchange.com ve FRP oyunları baz alınmıştır.
Özellikle Türkiye’deki 3D içerikli portallerin karşılaştığı en büyük sorun, 3D ile ilgilenen çok sayıda genç amatörün, sahip oldukları boş vakitlerini de kullanarak portalde baskın hale gelerek istenilen kalite seviyesini aşağıya çekmesi ve düşen kalite ile daha tecrübeli ve profesyönel insanların portalden uzaklaşmasıdır. Ayrıca sıkça karşılaşılan kişisel sürtüşmeler de kaliteyi düşüren etkenler arasındadır. Dünya genelindeki benzer sitelerde, bu sektörde çalışan insanların görece olarak fazla olması nedeniyle durum biraz daha farklıdır.
Sistemin kalbini her kişiye ve her mesaja verilecek olan puanlar oluşturur. Sistemde kişiler yaptıkları işlere göre puan kazanacak veya kaybedecektir. Yapılan bazı işler puana otomatik olarak yansıyacak, fakat mesaj içeriği gibi otomatik bir şekilde takip edilemeyecek şeyler diğer üyeler tarafından oylanarak kişiye/mesaja puan kazandıracak yada kaybettirecektir. Oylamada yüksek puanlı üyelerin oyları daha ağırlıklı olacaktır.
Yukarıda bahsedilen ilk hız ise sistem ilk kurulduğunda konularında uzman olan insanlara daha yüksek puanlar ve dolayısıyla daha yüksek oy ağırlığı verilerek sağlanacaktır. Böylece forumda yazılım alış verişi gibi konuların, bu konuları konuşmak isteyen çok sayıdaki insan tarafından popüler hale getirilmesi önlenebilecektir.
Sistem ilk kurulduğunda mümkün olduğunca çok profesyönel üye sisteme davet edilecek ve hepsine belirlenmiş “aynı” yüksek puan verilecektir. Bu aşamada ne kadar çok kişi olursa sistem kararlılığı o kadar iyi olacaktır.
Sistemde, yüksek puanlı ilk üyelerin oyları ile yükselen
diğer üyeler otomatik olarak daha aktif rol ve daha çok yetki alacağı için,
zamanla yetkiler dağılacak ve yük sadece birkaç kişinin omzuna değil, aktif
olmayı tercih
Bu sistemin yönlendirilmiş demokrasi tarzı bir yapıyı sağlaması hedeflenmiştir. Hem az sayıdaki adminin sonsuz yetkisinden, hem de çoğunluk diktatörlüğü denilebilecek çok sayıdaki insanın yanlış davranışından kaynaklanacak sorunları çözeceği öngörülmektedir. Sistemin çalışma ilkeleri net şekilde tanımlanacağı ve herkes tarafından bilineceği için itiraz hakkı ve tartışmalar olmayacaktır.
Burada karşılaşıabilecek bir problem
sistemdeki yetkilerin 2 (veya daha fazla) grup üye arasında dağılması ve bu
grupların sürtüşmesi olabilir
Portalin birçok kısmı üye olunmadan da okunabilecek ve takip edilebilecektir. Portala isteyen herkes üye olabilir. Üyelik sırasında bazı bilgileri doldurması extra puan kazandırabilir (web sitesi vermişse veya ismini yazmışsa vb.).
Portalin bazı kısımları sadece belli bir
puanın üstündeki insanlara açık olacak
Puanlamada kullanılacak sistem daha çok tecrübe+katkı karşılığı yetki ve hak verilmesi esasına dayalı olacak. Puanların belirlenmesi için daha önceden belirlenmiş alanlara hangi üyelerin girmesi isteniyorsa ona göre bir formul çıkartılacak. Bu sistem ilk kurulurken net bir şekilde belirlenebilecek bir konu değil, zamanla oturacak bir yapı. Ancak daha önceki tecrübelerden yararlanarak belirli kriterler kullanılabilir.
Örnek olarak yeni üye olanların sitemi tam anlamadan gelişi güzel mesaj atmaları daha önce karşılaşılan bir sorundur. Bunu önlemek için üyelere login oldukları her gün için 1 puan verilir ve örneğin 15 puanın altında puana sahip olanlar mesaj atamazlar. Böylece mesajların sistemi en az 15 gündür tanıyan kişiler tarafından atılması kısmen garanti edilir.
Bir başka sorun ise boş vakti olan
insanların çok sayıda gereksiz mesaj atmasıdır. Bunu
önlemek için ise her mesaja bir maliyet verilebilir. Bu
maliyet de yine istenilen mesaj sıklığı ile orantılı olarak hesaplanabilir.
Örneğin
Mesajların maliyetinin olması üyeleri
mesaj yazmamaya itebilir, bu kısmen istenen bir şeydir fakat bu aynı zamanda
sistemde devinim olmasını da önleyebilir
Sistem genelinde karmaşık bir puanlama sistemi gerekmekle
birlikte bu tip temel kıstaslar ile oturtulmuş bir puan tablosu, zaman
içerisinde de düzeltilerek ideal bir sistem çıkartılabilir
Yukarıda kabaca tanımlanan otomatik
punalamaya ek olarak üyeler diğer üyeler ve mesajlara oy verebilecek ve bu
yolla mesajlar ve üyeler puan kazanıp kaybedecektir
Her üyenin ve mesajın kazandığı ve kaybettiği puanlar ayrı şekilde tutulacak ancak yetkileri ve oy ağırıkları “net” puanları üzerinden hesaplanacaktır.
Sistemin monarşi sorununu çözmesi ilkesi
gereği en yüksek puanlı kişinin tek başına bir mesaj yada kişiyi silmesi mümkün
olmayacaktır. Bir üye yada mesajın puanını 0 yada altına indirmek için
en yüksek puanlı “n” kişinin (yada daha az puanlı daha
fazla kişinin oyu gerekecektir. Oylamada kullanılacak puanlar
bu esastan yola çıkılarak belirlenecektir. Burada
kullanılabilecek bir yöntem herhangi bir oylama bir üyeye pozitif hanesindeki
puanların 1/n’inden fazlasını ekleyip çıkartmamasıdır. Ayrıca oylama sırasında oylayan ile oylanan’ın puanları oranları
baz alınabilir. Yani 1000 puanlı bir kullanıcının oyu 500 puanlı bir
kullacıya daha az etki ederken 100 puanlı bir
kullanıcıya daha çok etki edebilir. Mesajlar için de aynı şekilde; post
Her üye bir mesajı sadece bir kere oylayabilecektir. Üyelerin diğer üyeleri oylaması ise belirli zaman aralıklarında mümkün olacaktır. Böylelikle karşılıklı sürtüşmeler sonucunda kişilerin birbirlerinin puanlarını törpülemesinin önüne geçilecektir.
Daha önce de belirtildiği gibi “tartışmalı” kişi ve konular da + ve – oyların dengesine bakılarak belirlenebilir. Bu kişi ve mesajlar bir süreliğine otomatik olarak forumdan uzaklaştırılabilir.
Bir sinerji oluşturmak açısından portalde soru ve cevap sistemi kurulacaktır. Sorulan her soru, soruyu soran üyeden bir miktar puan düşürecektir. Yine yeni üyelerin ne sıklıkta soru sorabilecekleri kıstasına göre bu puan belirlenebilir. Belirli bir puanın üstündeki herkes sorulara cevap verebilir. Soruyu soran kişi verilen cevaplardan birisini beğenirse o cevabı onaylar ve soru yeni cevaplara kapanır. Onaylanan her cevap, cevabı yazan üyeye ek puan kazandıracaktır. Bu sistem amaca yönelik ve gereksiz uzamayan soru/cevap yazışmalarını desteklerken aynı zamanda insanları cevaplamaya teşvik edecektir.
Ancak gerek soru gerekse cevaplar, diğer
tüm mesajlarda olduğu gibi oylamaya açık olacak ve oylama hakkı olan tüm üyeler
tarafından oylanabilecektir. Bu nedenle sorun
çıkartabilecek, saçma yada gereksiz soru ve cevaplar otomatik oalrak sistemden
silindiği gibi yazan üyelere de puan kaybettirecektir.
Genel olarak yetkiler şöyle listelenebilir. Bu liste gereksinimlere göre değişebilir.
· Haber eklemek
· Soru sormak
·
Galeriye çalışma eklemek
· Soru cevaplamak
· Forum konularına ve haberlere yorum eklemek
· Konuları oylamak
· Üyeleri oylamak
· Diğer üyelere kapalı olan VIP alanına login olmak
Asıl amac administrator’süz bir site kurmak olduğu için kişi yada mesajlara müdahale
Portalde sadece operatörün girebileceği
bir dizi sayfa ile
Zaman içerisinde sistemin bazı
aksaklıkları veya tasarım hataları çıkabilir
· Pup(i): i nolu üyenin positif puanı (kazançlar – harcamalar)
· Pun(i): i nolu üyenin negatif puanı (cezalar)
· Pu(i): i nolu üyenin net puanı
· Nu(i): i nolu üyenin toplam post sayısı;
· Ph(i): i nolu haberin net puanı
· Pg(i): i nolu galerinin net puanı
· Ps(i): i nolu sorunun net puanı
· Pc(i): i nolu cevabın net puanı
· Py(i): i nolu yorumun net puanı
· SonPuanLogin(i): i nolu üyenin puan kazandıran son login tarihi
· Pgun: login olunan her gün için verilen puan
· Ehab: haber eklemek için gereken min puan (soru puan eşiği)
· Thab : yeni bir üyenin kaç günde bir haber ekleyebileceği
· Phab: haber ekleme fiyatı (puan).
· Esor: soru sormak için gereken min puan (soru puan eşiği)
· Tsor : yeni bir üyenin kaç günde bir soru sorabileceği
· Psor: soru soran üyeden kesilşecek puan
· Egal: galeriye çalışma eklemek için gereken min puan (galeri puan eşiği)
· Tgal: yeni bir üyenin kaç günde bir çalışma ekleyebileceği
· Pgal: galeriye çalışma eklemenin puan olarak fiyatı
· Ecev: soru cevaplamak için gereken min puan
· Pcev: cevap yazma fiyatı
· Sor_uye: Soru soran üyenin puanının kaçta kaçının soru ödülüne ekleneceği
· Cev_sor: onaylı cevabın kac soruluk odul kazandıracağı
· Eyor: yorum yapmak ve foruma konu eklemek için gereken min puan
· Pyor: yorum fiyatı (puan)
· Kon_uye: Konulara ( mesaj, soru, cevap veya galerilere) verilecek oyların, üyenin puanına yansıma oranı
· Ekoy: konu oylamak için gereken min puan
· Pkoy: konu oylama fiyatı (puan)
· Euoy: uye oylamak için gereken min puan
· Puoy: uye oylama fiyatı
· Tuoy: bir üyenin başka bir üyeyi ne sıklıkta oylayabileceği
· Duoy(i,j): i nolu üyenin j nolu üyeyi oyladığı son tarih
· NegOy: negatif oyların maliyetinin pozitif oyların maliyetine oranı
· Evip: vip alanina login olabilmek icin gereken min puan
· Neban = eşit puandaki üyelerden kaç tanesin bir araya gelerek aynı puandaki bir başka kişiyi banlayabileceği
· Nmban = max puanlı kaç üyenin en düşük puanlı bir üyeyi banlayabileceği
· Uye_Uye = uye oylaması sırasında oylayan üye ile oylanan üyelerin puanları oranının oylanan üye puanına etkisi
· OyMax = verilebilecek max oy (-OyMax ... OyMax aralığı)
Asıl değerler
· Pgun = 1
· Ehab = 10
· Thab = 7
· Esor = 7
· Tsor = 4
· Egal = 10
· Tgal = 5
· Ecev = 15
· Cev_Sor = 2
· Sor_Uye: 0.02
· Eyor = 100
· Pyor = 10
· Ekoy = 150
· Pkoy = 2
· Euoy = 250
· Puoy = 4
· Evip = 1000
· Kon_uye = 0.3
· NegOy = 4
· Neban = 7
· Nmban = 3
· OyMax = 5
· Tuoy = 5
Türetilmiş değerler
· P(i) = Ppos(i) – Pneg(i)
· Phab = Thab / Pgun
· Psor = Tsor / Pgun
· Pgal = Tgal / Pgal
· Pcev = Psor / Cev_Sor
· Uye_uye = 1/ Neban
·
Aşağıda bazı işlemler için kullanıcak
hesaplamaların pseudocode şeklinde algoritmaları vardır
i: kayıt olan üyenin numarası
Ppos(i) =0
Pneg(i) =0
i: login olan üyenin numarası
if (SonPuanLogin(i) <> Today) Pup(i)+= Pgun
i: haber ekleyen üyenin numarası
j: haber numarası
If(Pu(i) > Ehab && Pup(i)>Phab)
{
Haberi aktivate et
Ph(j) = Pu(i)
Pup(i) -= Phab
}
i: soru soran üyenin numarası
j: sorulan sorunun numarası
If(Pu(i) > Esor && Pup(i)>Psor)
{
Soruyu aktivate et
Ps(j) = Pu(i)
Pup(i) -= Psor
}
i: çalışma ekleyen üyenin numarası
j: eklenen çalışmanın numarası
If(Pu(i) > Egal && Pup(i)>Pgal)
{
Çalışmayı aktivate et
Pg(j) =
Pu(i)
Pup(i) -= Pgal
}
i: Cevap yazan üyenin numarası
j: eklenen cevabın numarası
If(Pu(i) > Ecev && Pup(i)>Pcev)
{
Cevabı aktiavate et
Pc(j) = Pu(i)
Ppos(i) -= Pcev
}
i: onaylanan cevabı yazan üyenin
numarası
j: sorunun numarası
Pup(i) += Sor_Uye * Ps(j) + Psor * Cev_sor + PCev
i: yorum ekleyen üyenin numarası
j: eklenen yorumun numarası
If(Pu(i) > Eyor && Pup (i)>Pyor)
{
Yorumu aktivate et
Py(j) = Pu(i)
Ppos(i) -= Pyor
}
i: oylayan uye numarası
j: oylanan konunun numarası
k: oylanan konunun sahibi olan üyenin numarası
o: verilen oy (-OyMax
xx: konu tipine göre y,s,c,h,g
If(Pu(i) > Ekoy && Pup (i)>Pkoy)
{
if( i nolu üye j noluyu konuyu daha önce oylamadı)
{
oy = (o/OyMax) * Uye_uye * (Pu(i) / Pxx(j))
if ( Pxx(j) / abs(oy) > Nmban)
{
if o < 0
oy = - Pxx(j) / Nmban
else
oy = Pxx(j) / Nmban
}
Pxx(j) += oy
if (Pxx(j) <= 0)
j nolu konuyu kaldır
if o < 0
{
Pun(k) += (Kon_uye * oy)/Nu(k)
Pup(i) -= NegOy * Pkoy
}
else
{
Pup(k) += (Kon_uye * oy)/Nu(k)
Pup(i) -= Pkoy
}
}
}
i: oylayan uye numarası
j: oylanan üye numarası
o: verilen oy (-OyMax ... OyMax aralığında)
If(Pu(i) > Euoy && Pup(i)>Puoy && Pu(j) > 0)
{
if(Today - Duoy(i,j) >= Tuoy)
{
oy = (o/OyMax) * Uye_uye * (Pu(i) / Pu(j))
if ( Pu(j) / abs(oy) > Nmban)
{
if o < 0
oy = - Pu(j) / Nmban
else
oy = Pu(j) / Nmban
}
if o < 0
{
Pun(j) += oy
Pup(i) -= NegOy * Puoy
}
else
{
Pup(j) += oy
Pup(i) -= Puoy
}
Duoy(i,j) = Today
}
}