12 Aralık 2008

İki Film Birden

Her şey "seks satar" kuramıyla birlikte, "aşk da satar" yan kuramının bulunmasıyla başladı. Dizilerde, sinema filmlerinde ve reklamlarda hep aşk teması kullanıldı. Anlattığınız hikaye ister darbe dönemi anlatımı olsun, ister kurtuluş savaşı olsun, ister Pearl Harbor olsun mutlaka bir aşk hikayesi barındırdı. Karşımıza hep güzel ve yakışıklı "oyuncu" lar çıkarıldı. İnsanlar kendilerinden birşeyler bulmaya başladı. Sonra bayan ürün tüketim sanayisi büyüdü, sonra sıra erkeklere geldi. O ekonomi de yavaş yavaş büyümeye başladı. Sonra etrafta bazı bayanlardan "ortalıkta da doğru düzgün erkek kalmadı, metroseksüel olmasın, adam gibi olsun" veryansınları duyulmaya başlandı.

Şimdi bu oluşan boşluğu da nasıl doldurabilirsiniz? Şöyle; Recep İvedik ve Muro gibi karakterleri sevimli hale sokarak. Böyle yapınca ne olur? Az önceki veryansında bulunan bayan arkadaşlar "oh be, işte böyle doğal adamlar lazım" şeklinde mutlu olurlar. Erkekler ne der peki; "Vay be ne ayı adamlar varmış, ben o kadar da odun değilmişim" diyerek mutlu olur. Hani bir diğer araştırma sonucu "insanlar kendileri etrafında fakir insanlar olunca daha mutlu oluyormuş" sonucundaki gibi bir mutluluk içlerini kaplar. Bu filmleri sinema yönünden eleştirmeye değer bulmuyorum. Muro'nun abuk sabuk (altında farklı çıkarlar olan) siyasi duruşuna da hiç girmiyorum.

Şimdi ne oldu peki? Bir tarafta eğitimli, yakışıklı ve kibar erkekler kızların aşık olacağı "obje" haline getirildi, diğer taraftan da Recep İvedik ile Muro ve ekibi idol gösterildi. İkisi de sattı mı?, sattı.

Galiba insanlar artık hikayelerde kendilerinden birşey bulmak istemiyor. Artık erişemeyecekleri şeyleri izlemekten mutlu, daha iyi konumda olduğu şeyleri izlemekten gururlu olmaya başlamşlar.

Etiket Analiz Problemleri

Etiketleme kavramı web 2.0'ın en temel yeniliklerinden birisi. Bir içeriğin tanımlanmasında kategori yapısına göre daha esnek ve kolay bir kullanıma sahip. Fakat etikleme konusunda belli başlı bir kaç problem ortaya çıkmakta. Bu problemleri sıralarsak;

* Çoklu çağrışım : Bir kelimenin birden fazla kavramı çağrıştırması.
Örneğin "fasulye" kelimesi hem sebze olarak , hem de yerli bir film ismi olarak kullanılmış olabilir. Bu durumda aynı etiket tamamen alakasız içeriklerde kullanılmış olacaktır.

* Eş anlamlı kelimeler : Aynı kavramın farklı kelimelerle kullanılabilmesi.
Örneğin farklı içeriklerde etiketlenmiş "yaşlı" ve "ihtiyar" kelimeleri aslında anlam olarak birbirleriyle aynı olarak kabul edilebilir, fakat 2 ayrı etiket gibi davranacaklardır.

* Farklı formlarda kullanım : Kelimelerin farklı şekillerde kullanılması, fiil zamanları, kısaltmalar. Kelimelerin özne veya zamana göre farklı şekillerde kullanıldığı durumlardır. Aynı fiilin farklı zaman kullanımlarında farklı şekilde yazılması veya bazı kelmelerin günlük konuşma dilindeki halleriyle kullanılması yine aynı anlamda fakat farklı etiketler oluşturacaktır.

* Farklı dillerde kullanım : İngilizce dışındaki dillerde bazı terimler yaygın olarak ingilizce karşılıklarıyla dil içinde kullanılmaktadır. Özellikle Türkçe'de teknik konularda bu durumun had safhada olduğunu söyleyebiliriz. Örneğin iki içerik, "veritabanı" ve "database" olarak farklı kelimelerle etiketlenebilir. Yine aynı etiketler farklıymış gibi davranacaktır.

* Yazım hataları : Diğer nedenlerin mantıklı birer açıklaması olmasına rağmen bu durum tamamen ya o anki yazım hatasından veya yazan kişinin o kelimeyi yanlış bilmesinden kaynaklanabilir. Örneğin "yalnız" kelimesi "yanlız" olarak etiketlenebilir.

Bu problemlerin hepsinin "semantic tags", yani iki etiket arasındaki ilişkinin fiziksel değil de anlamsal olarak sağlanması yöntemiyle çözülebileceğini söyleyebiliriz. Zemanta ve DBpedia altyapısı kullanarak hazırlanan faviki "semantic tags" konusuna odaklı bir çözüm sunuyor.

09 Aralık 2008

Semantik Arama Motorları


Bir taraftan fiziksel arama yapan klasik arama motorlarının yerini yavaş yavaş semantik arama yapan yenileri almaya başlayacak, diğer taraftan da varolan klasik arama motorları kendilerini bu yeniliğe uygun bir şekilde değiştirmeye başlayacaklar. Klasik arama motorlarına karşı semantik arama odaklı geliştirilen belli başlı servisleri listelemeye çalışacağım. Hemen hepsi hala geliştirme aşamasında olduğu için kalite konusunda herhangi bir ayrım ve sıralama yapmadan gözüme çarpanları listeliyorum.

1- Hakia : Türk Ceo'su ve çok sayıda Türk çalışanlı Hakia arama motorunun odaklandığı konu popüler yerine kaliteli içeriğe ulaşmak. Aramalar temel olarak 3 kritere bağlı olarak yapılıyor. Kütüphaneciler tarafından önerilen güvenilir web siteleri, en güncel olarak tespit edilen içerikler, ilgili içerikler.

2- Powerset : Bir kaç ay önce Microsoft tarafından satın alındı. Konu, cümle ve sorulara wikipedia içeriğini kullanarak en doğru şekilde ulaşmayı hedefliyor

3- swoogle : Ontoloji, döküman ve terimler içerisinde arama yapan bir semantik arama motoru.

4- quintura : Etikete dayalı bir görsellik sunuyor. Klasik arama motorlarıyla arasındaki fark için de "Dos-Windows" benzetmesini yapıyor. Fark yaratan özellikleri "All-in-one approach", "Context management", "Dynamic data clustering", "Visual semantic cloud", "Easy search" şeklinde listelenmiş.

5- stumpedia : Kendilerini "Human Powered Search Engine" (İnsan odaklı arama motoru) şeklinde konumlandırıyorlar. Site içerisinde arama sonucu gelen sonuçları listeleyip onları oylatabiliyor, istenilen terime ait linkler de kullanıcılar tarafından eklenebiliyor.

6- evri : Kişi, ürün ya da aranılan herhangi birşey ile alakalı yazı, resim ve video içeriklerini listeliyor.

7- Gnod : Kitap, müzik, film ve kişi aramalarına ait sonuçları kullanıcıların ilgilerine göre oluşturuyor. Her birinin neden farklı domainlerde olduğu konusunda bir fikrim yok. Bu sitelere müzik , kitap, film, kişi linklerinden ulaşabilirsiniz.

8- boxxet : Yine kullanıcı ilgilerine göre en iyi içeriği sunmayı hedefliyor

RWW'te yaklaşık 1,5 yıl önce tartışılan Is Google a Semantic Search Engine? konusu hem semantik arama motorlarını anlamak konusunda, hem de klasik arama motorlarının muhtemel geçişi hakkında daha detaylı bir bilgi verecektir, okumanızı tavsiye ederim.

05 Aralık 2008

Sql Server 2008 Programlama Yenilikleri

Nedense database yönetim sistemlerinin yeni versiyonları çıktığında bizde çok heyecan yaratmıyor. Nedeni de çok az yeni özellikle gelmeleri. Bunun nedeni ilişkisel veritabanı kavramının yaygın olması sebebiyle yeni özellikten ziyade varolan servislerde performans artışına odaklanılması. Bu sebeple de her yeni versiyonda yüzde olarak performans kazançları belirtilir. Sql Server 2008'de de çok yeni özellik olmasa da ben özellikle veritabanı programlama ile ilgili hoşuma giden birkaç küçük yeniliği yazmak istiyorum.

* Değişken tanımlama
Benim çok canımı sıkan bir durumdu bu. Önce değişkeni tanımlayıp, sonra başlangıç değerini atamak zorunda olmak.

Declare @userid int
Set @userid=999

Geç de olsa bu özellik eklenmiş

Declare @userid=999

* Toplu insert
Daha önce bir kolaylık olarak yazdığım toplu insert konusu union cümlesine gerek kalmadan çözülmüş

insert into user(firstName,lastName,status)
select "Ali","Yazar",1 union all
select "Veli","Okur",0 union all
select "Veysel","Bakar",1

şeklindeki ifade

insert into user(firstName,lastName,status)
values
("Ali","Yazar",1),
("Veli","Okur",0),
("Veyseş","Bakar",1)

bu şekilde yazılabiliyor

* Merge

İki tablonuz olduğunu düşünün. Biri gerçek kullanıcılarınızın olduğu "user" tablosu, diğeri de herhangi bir kaynaktan topladığınız yeni kullanıcılarınız olan "newUSer" tablosu. Yapmak istediğiniz userid bazında bakıp, olmayanları eklemek, olanların ise bilgilerini güncellemek.

Aşağıdaki cümleyle bu işlem yapılabiliyor

Merge user as u
using newUser as n
on u.userid=n.userid
when not matched by target then
insert(firstName,lastName,status)
when matched then
update set
firstName=n.firstName,
lastName=n.lastName,
status=n.status

* Grouplama Setleri
Bu özellikle de birden fazla gruplama alanına göre sonuçlar aynı select cümlesi içinde toplanmış. Msdn sitesindeki örnek bu ihtiyaç için çok uygun olduğu için direk aynısını kullandım.

Select Region,Country,Store,SalePerson,Sum(TotalDue) as TotalSales
from SalesData
group by grouping sets
(
(Region,Country,Store,SalesPerson),
(Region,Country),
(Country),
(Region)
()
)

şeklinde yazılan sorgu sonucu aşağıda şekilde listelenir



Daha fazla bilgiye buradan ulaşabilirsiniz.