Search a CodePlex project


Cambaz

Cambaz, Türkçe kelime köklerine uygulanmak üzere geliştirilmiş, yumuşatma kuralları ve kaynaştırma harflerine duyarlı bir gövde türetecidir.

Bir kelime köküne karşılık gelebilecek alternatif kelimelere ulaşmaya yardımcı olması amacıyla Kimola bünyesinde geliştirilmiş bir C# kütüphanesidir. Metin işleme projeleri için olduğu kadar, kullanıcıya adıyla hitap eden sosyal uygulamalar için de kullanışlıdır. Örnek; "Mustafa'ya Mesaj Gönder", "Burak'ın Fotoğrafları", "Uğur'dan Gelen Mesajlar"

Kelime köküne hangi ekin geleceği ve nasıl türetileceği Cambaz'a özgü bir işaretleme dili ile tanımlanır. Bu dil, büyük ve küçük ünlü uyumuna duyarlı çalışır ve kaynaştırma harflerini tanır. Bu haliyle Cambaz, Türkçe'de isim ya da fiil köklerine kolaylıkla uygulanabilir.

Cambaz İşaretleme Dili

Cambaz kütüphanesi, Cambaz İşaretleme Dili ile geliştirilen desenleri kullanarak ek üretmektedir. Bu dil, normal ve süslü parantezlerin belli bir düzen ile kullanılmasından ibaret basit bir yapıya sahip tasarlanmıştır. Süslü parantezler büyük ve küçük ünlü uyumuna göre biçim değiştirecek harfi simgelerken, bu harfin aynı zamanda normal parantez içine alınması ile ilgili harfin tercihli olacağı belirtilmektedir.

Aşağıdaki örnek, farklı kelime kökleri için ismin 5 halinin Cambaz İşaretleme Dili kullanılarak türetilişini gösteriyor.

Kök İsmin Hali Desen Türetilen Gövde
keçi Yalın keçi
tüfek -i hâli (belirtme) {(y)}{ı} tüfeği
su -e hâli (yönelme) {(y)}{a} suya
fişek -de hâli (bulunma) {d}{a} fişekte
küvet -den hâli (ayrılma) {d}{a}n küvetten

{(y)}{ı}: Bu desen, kelime kökünü ismin -i (belirtme) haline türetmektedir. Desendeki ilk harf olan "y", bir kaynaştırma harfini gösterirken kendisini çevreleyen parantez bu kaynaştırma harfinin kök olarak verilen kelimenin son harfine göre otomatik olarak yerleştirilmesi gerektiğini göstermektedir. Bu örnekte "tüfek" kelimesi kaynaştırma harfine ihtiyaç duymadığından Cambaz, "y" harfini görmezden gelmiş, "ğ" harfine yumuşayan kelime köküne -i eki getirmiştir.

{(y)}{a}: Desendeki ilk harf olan "y", bir kaynaştırma harfini gösterirken kendisini çevreleyen parantez bu kaynaştırma harfinin kök olarak verilen kelimenin son harfine göre otomatik olarak yerleştirilmesi gerektiğini göstermektedir. Bu örnekte "su" kelimesi kaynaştırma harfine ihtiyaç duyduğu için Cambaz, "y" harfini kelime köküne dahil etmiş, hemen ardından "a" harfini uygulamıştır.

{d}{a}: Desendeki ilk harf olan "d", kelime kökünün son harfinin bir sert sessiz olma ihtimaline karşın süslü parantezle gösterilmiş. Bu örnekte "fişek" kelimesi de bir sert sessizle bittiği için Cambaz, "{d}" desenini "t" harfi olarak yorumlayıp kelime köküne dahil etmiş, hemen ardından yine "a" harfini yorumlayıp kelime köküne "e" harfi olarak dahil etmiştir.

{d}{a}n: Desendeki ilk harf olan "d", kelime kökünün son harfinin bir sert sessiz olma ihtimaline karşın süslü parantezle gösterilmiş. Bu örnekte "küvet" kelimesi de bir sert sessizle bittiği için Cambaz, "{d}" desenini "t" harfi olarak yorumlayıp kelime köküne dahil etmiş, hemen ardından yine "a" harfini yorumlayıp kelime köküne "e" harfi olarak dahil etmiştir. "n" harfi desenin bir parçası olmasına karşın Cambaz tarafından bir yorumlanmaya tabi tutulmaması amacıyla çıplak halde yazılmıştır.

Örnek

   public static void Main()
   { 
      LafCambazi cambaz = new LafCambazi();

      string govde = null;

      govde = cambaz.Turet("kitap", "{ı}m", true);
      Console.WriteLine(govde); //kitabım

      govde = cambaz.Turet("güzel", "l{a}rd{a}n", true);
      Console.WriteLine(govde); //güzellerden

      govde = cambaz.Turet("güç", "s{ı}z", true);
      Console.WriteLine(govde); //güçsüz

      govde = cambaz.Turet("istiklâl", "{ı}", true); //şapkalı a harfi ile
      Console.WriteLine(govde); //istiklâli

      govde = cambaz.Turet("istiklal", "{ı}", true); //şapkasız a harfi ile
      Console.WriteLine(govde); //istiklalı

      govde = cambaz.Turet("koş", "{d}{ı}", true);
      Console.WriteLine(govde); //koştu

      govde = cambaz.Turet("sev", "m{a}{d}{ı}n", true);
      Console.WriteLine(govde); //sevmedin

      govde = cambaz.Turet("ver", "{a}y{d}{ı}", true);
      Console.WriteLine(govde); //vereydi

      string ek;

      cambaz.Turet("Mustafa", "{(y)}{a}", false, out ek);
      Console.WriteLine("Mustafa'{0} Mesaj Gönder", ek); //Mustafa'ya Mesaj Gönder

      cambaz.Turet("Burak", "{(n)}{ı}n", false, out ek);
      Console.WriteLine("Burak'{0} Fotoğrafları", ek); //Burak'ın Fotoğrafları

      cambaz.Turet("Uğur", "{d}{a}n", false, out ek);
      Console.WriteLine("Uğur'{0} Gelen Mesajlar", ek); //Uğur'dan Gelen Mesajlar

      Console.ReadLine();
   }







Not affiliated with Microsoft and CodePlex
To remove your project or any question, please contact us: [email protected]