Buradaki yazılarımda bundan sonra proje adını sadece “Dağarcık” olarak kullanacağım.
Github üzerindeki projede kodlarla ilgili veya diğer açıklamaları uzun uzadıya paylaşmak mümkün değil. O yüzden bu tür açıklamaları buradan paylaşacağım. Belki ileride projenin kendine özgü bir sitesini açmak mümkün olursa, ayrıntıları oraya kaydırırım.
Bugün, projemizin veritabanını ve içindeki tabloları ele alacağız.
Veritabanımızın adı lexicon.db.
Bu bir SQLite veritabanı. İçinde 2 tablo yer alıyor: kelimeler ve sozluk.
kelimeler tablosunun işlevi ham olarak derlenmiş kelimeleri, bu kelimelerin kok ve eklerini, zemberek tarafından yapılan analizlerini, kullanılan yöntemleri ve açıklamaları tutmaktır. Onay kolonumuz ise tablodaki kelimelerin onaylandığını, reddedildiğini veya henüz denetlenmediğini gösteriyor.
sozluk tablosunun temel amacı, kelimeler tablosundaki kelimelerin Türkçe kökenine ilişkin gerekli bilgileri sağlamak. Bu sözlüğü TDK, Wiktionary ve Nisanyan gibi açık kaynakları tarayarak oluşturacağız. Bu, epeyce zaman alan bir süreç olacak.
Tablolarımızın yapısını oluşturan SQL komutları aşağıdaki gibi:
CREATE TABLE IF NOT EXISTS sozluk (
id INTEGER PRIMARY KEY,
kok TEXT NOT NULL,
detay TEXT, -- büyük-küçük harf duyarlı
tip TEXT, -- isim, fiil, ozel_isim, terim, vb.
koken TEXT, -- Turkce, Arapca, Farsca, Ingilizce, vb.
kaynak TEXT, -- TDK, Wiktionary, Manuel, vb.
anlam TEXT,
aciklama TEXT,
attempted INTEGER DEFAULT 0,
failed INTEGER DEFAULT 0,
UNIQUE(kok, tip, koken) -- Tekrarlayan kök girişlerini engellemek için (tamamen aynı ise)
);
CREATE TABLE IF NOT EXISTS kelimeler (
id INTEGER PRIMARY KEY,
kelime TEXT NOT NULL UNIQUE,
lemma TEXT,
kok TEXT,
ekler TEXT,
analiz TEXT,
yontem TEXT, -- zemberek, manuel, baska_arac, vb.
aciklama TEXT,
onay INTEGER DEFAULT 0
);
Yeri geldikçe bu tablolar ve içindekilerle ilgili daha ayrıntılı bilgiler paylaşacağım.
Sorularınızı ve yorumlarınızı aşağıdaki Yorumlar bölümünden bana iletbilirsiniz.
Benimle doğrudan yazışmak isterseniz, şartlar elverdiğince, ona da açığım.
Ahmet Aksoy