Posts tagged ‘tag’

Etiketler, kategoriler ve arayüzler II

March 16th, 2010


Etiket bulutlarını niye sevmiyorum ?

Özellikle web 2.0 uygulamalarında, veri sınıflandırması etiketler üzerinden yürütüldüğü için , kullanıcıya ilgili içerikleri görebilmesi için bir etiket listesi gösterilir. Bu etiket listesi muhtemelen tüm içerikler için tanımlanmış etiketlerin listesidir. Çoğu zaman bu listede etiketler, o sitenin verileri içindeki ağırlıklarına göre farklı görüntülenirler. Daha çok kullanılan etiket daha büyük, daha az kullanılan küçük gösterilir. Böylece kullanıcı ilk bakışta o sitenin hangi kavramlarla (daha doğrusu kelimelerle) ilişkin olduğunun ayırdına varabilir.

Bu ilk öğrenmeden sonra, kullanıcı bu listede herhangi bir etikete tıklayarak, içeriklerin o etikete göre filtrelendiği başka bir sayfaya gider genellikle.

Etiket bulutuna eleştiriler

Şimdi doğrudan bu arayüze eleştirilerimi sıralamak istiyorum. En temelde yatan eleştirim etiket listelerinin ve özelde etiket bulutlarının navigasyon (yönelim) açısından çeşitli sıkıntılar barındırdığı yönünde.

  • 1. Etiket bulutları hızlı görsel algılamayı sağlasa da, bir sonraki aşama için kısıtlayıcı oluyor. Büyük kelimelerin yanında nitelik olarak aynı sayılacak küçük kelimelerin algılanması güçleşiyor.
  • 2. Etiket listelerinin içinde aradığınız şeyi bulmak çoğu zaman mümkün değil, çünkü genelde sıralı olmaktansa rasgele ya da en son girilen etikete tarihine göre sıralanıyorlar. Bu da rasgele bir içeriğe navigasyon anlamına geliyor.
  • 3. Etikete tıklayıp bir sayfaya gittiniz diyelim. Çok az içerik sadece tek bir etiketle nitelenir. Bu yüzden o anda bulunduğunuz etiket , o içeriği çok az niteliyor olabilir.
  • 4. Bu tip etiket listeleri genellikle “tek tıklamayla” çalışır. Çoklu seçme şansınız olmadığı için o andaki etikete gidersiniz ve başka türlü bir filtreleme yapamazsınız. Hele ki tıkladığınız etiket bir haber sitesindeki “Haber” etiketiyse!
javascript ve asp.net ‘in ikisini birden içeren bir yazıya nasıl gideceksiniz?

Bu sakıncaları düşündükten sonra aklıma başka bir arayüz geldi. Temel olarak şunlar olmalıydı :

  • 1. Çoklu seçme özelliği
  • 2. Etiketlerin alfabetik ya da başka türden “mantıksal” sıralaması
  • 3. Seçim yapılıp içeriği getirme işlevi çağrıldığında, seçilenlerin etiketlerin vurgulanması

Aşağıdaki çalışmayı yaptım akabinde bu konuları çözümlemek için. Çalışan bir örneğine şuradan ulaşabilirsiniz  : Multi-check Tag DEMO

Bunun sadece bir örnekleme olduğunu hatırlamak lazım. Etiketler seçilir. Filter tuşuna basılır. Filtrelenen etiketler farklı bir stille görüntülenir. Etiket bulutu-listesi sistemine göre 1 adet daha fazla tıklama gerektirmesine rağmen, çoklu etiketle filtreleme işlevine izin vermesi nedeniyle bir çok durumda daha kullanışlı olduğunu düşünüyorum.

Yukarıdaki demo jquery (1.3.2) ile yazdığım basit bir script ve css ile çalışıyor.  Buradan indirebilirsiniz.

Etiketler, kategoriler ve arayüzler

March 16th, 2010

“Etiket” dediğimiz şey, son yıllarda bilgi sınıflandırması alanında internet ile birlikte öne çıkan bir şey.

Wikipedia ‘da

In online computer systems terminology, a tag is a non-hierarchical keyword or term assigned to a piece of information…

olarak tanımlanıyor. Yani etiket; hiyerarşik olmayan ve bir bilgi parçasını nitelemek üzere atanmış kelime ya da kelime öbeği.

Bu tanımı matematiksel olarak formelize edeyim :


0.0 Pozitif doğal sayılar kümesi N+ ile tanımlansın.

0.1 d bir veri parçacığı , D verilerin evrensel kümesi olsun. d elemanıdır D.

1. W evrensel kümesi dünyadaki bütün kelimelerin elemanı olduğu küme olsun.

2. w elemanıdır W.

3. $W , W ve bütün alt kümelerinden oluşan kümeyi kapsayan evrensel küme olsun.

4. $w elemanıdır $W.

5. $w = {w1 ve w2 ..... ve wn} | n elemanıdır N+ olarak seçilebilir.

6. Cebirsel işlem tanımına uygun biçimde tanımlanan ve kümede hiyerarşi (büyüklük,küçüklük,bağlılık,kapsamalık vs tüm operatörler için); her $w elemanıdır $W için, $w[k] = $w[n] | n ve k elemanıdır N+.

7. #f fonksiyonu, $w etiketinin nitelediği bilgiyi getiren fonksiyon olsun:
#f($w[1],$w[2],...,$w[n]) = #f($w[1]) A #f($w[2]) A .... #f($w[n])

8. #f fonksiyonu :
#f($W) = d[1],d[2],...,d[n] | n elemanıdır N+ olacak şekilde bir veri kümesi üzerinde tanımlıdır.

9. #f ve #g fonksiyonu için :
#f($w[k]) = S1{d[1],d[2],...,d[x] };
ve
#f($w[n]) = S2{d[1],d[2],...,d[y] } iken n<>k olmak koşulu ile S1 = S2 => #f($w[k])=#f($w[n]) denir.

Şimdi bu temeller üzerinde devam edebiliriz

Etiket(ler) ilişkide bulundukları bilgi parçasını tanımlayan “metadata“lardır. Etiket kullanımının temel amacı; nitelenmek istenen bilgi parçacığıyla etiket kelimesi arasında özgür bir ilişki kurmaktır. Burada verinin, “metadata”sı belirlenirken taxonomy yerine folksonomy geçmektedir.

Bilgi parçacığıyla karşılaşan ya da bilgiyi üreten her birey için, veriye bir veya birden çok “metadata” ilişkilendirme imkanı sağlanmasıyla birlikte, kategorizasyonun rijid, katı yapısı ve içerme / içinde olma mantığı yerine etiketlemenin ilişkilendirme, tanımlama mantığı, kategorizasyonlu sistemlerin gerektirdiği zihinsel eforu azaltmaktadır.

Bir başka avantajı ise etiketlemenin, herhangi bir veriye sürekli olarak uygulanabileceğidir. Böylelikle verinin sınıflandırması işinin de sürekli güncellenmesi sağlanmış olur. Kategorizasyon güncellemeleri ise ancak fasılalar halinde önceden planlanarak yapılabilir.

Veri sınıflandırmasını, bir arama problemi olarak düşünürsek

Kategorizasyon (hiyerarşik sınıflandırma), en genel ve yaygın yöntemiyle sonuca ulaşmak için sadece bir gidiş yolu sunar. Etiketlemede ise :

#f($w[k]) = #f($w[n]) olan iki etiket bulabiliriz. Yani iki farklı etiket aynı bilgi parçacığına gidiyor olabilir. Buna “synonym” denir. Öte yandan #f($w[k]) birden fazla veriyi de gösteriyor olabilir. Buna da “homonym” denir.

Modern web veri sistemlerinde (örneğin yazdığım bu blogda) , bu iki durum da gerçekleşir. Örneğin “web 2.0″ etiketi altında hem birden fazla yazı vardır , hem de web 2.0 yazılara ulaşan birden fazla etiket vardır.

$w1 = "web 2.0"
ve
$w2 = "web" => #f($w1) < #f($w2)
olabilir örneğin. Ama etiketlemenin hiyerarşik olmayan doğasından ötürü,
#f($w1) elemanları #f($w2) in elemanlarını içeriyor da olabilir.

Bu tamamen etiketlenen veri yığınının özelliklerine bağlıdır ve etiket semantik bir içerik taşımadığı için bilgi sınıflandırılmadan önce öngörülemez.

Ki burada etiketlemenin dezavantajlarına geliyoruz

Etiketlerin semantik bir özellik taşımaması nedeniyle veri (D) ve onun alt kümeleri ($D) hakkında sınıflandırma yapmamız mümkün değildir. Sadece $D ‘lerden yola çıkarak D hakkında fikir sahibi olabiliriz.

Yanlış yazımlar da işin ayrı ve uygulamadaki bir boyutu. Aslında “folksonomy” kavramı içinde yanlış yazım olmaması , zaman içinde güncellenen bir “metadata” nın içinde hataların minimize olması beklenirken, uygulamada genelde bu olmaz. Çünkü verilerin etiketleri, metadatayı oluşturan toplulukça sürekli güncellenmez.

Bu karakteristikleri aslında etiketlemeyi aynı zamanda güçlü kılan özellikler

Bu yüzden, gittikçe kullanımı artan (özellikle web 2.0 trendiyle birlikte) , “collobrative tagging” ile topluluğun hep birlikte bir veriyi anlamlı kılması ile uygulama alanlarını pekiştiren bir yöntem etiketleme. Özellikle de 2012 yılında dijital veri miktarının 2008 e göre 5 kat artış olacağını düşünürsek çok ta önemli. Çünkü önümüzdeki yılların işi bu: veriyle uğraşmak, onu sınıflandırmak vesaire.

Web 2.0 uygulamalarla birlikte, bir çok arayüz çıktı tabi web için. Bu altyapıyı edindikten sonra yazının II. bölümünde o işe bakacağım. Bazı durumlarda yeterli gelmeyen şeyler var gördüğüm, onları paylaşmak istiyorum.