Forum: Projeler KelimeMatik RSS
XML tabanlı dosya sistemi
zafer #1
Üye Tem 2009 tarihinden beri · 687 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
mert:
Eş anlamlı kelimeler de var ingilizcede. Bunları da destekleyecek mi kelimematik? Belki Zenginleştirmek için zıt anlamlı kelimeleri de barındırmalı örneğin?

Tamamdır Mert, mazeret kabul etmiyorum ekiptesin!  :-D

Böyle sorular soruyorsan bu doğru kişi olduğunu gösterir o sebeple sende ekiptesin. Diğer taraftan iyi bir zaman planlaması ile hem ş.o.m hemde kelimematik projesi için vakit bulabileceğine eminim. Üstelik kelimematik için çok acil apar topar bir şeyler yapmak niyetinde değilim kendisi biraz tembel eğilimli bir proje :) Yani herkesin yetişebileceği kadar yavaş ve sakin ilerliyor. Neticede bende çalışıyorum ve iş gereği başka bir sürü işle ile ilgileniyorum o sebeple benimde çok zamanım olmuyor.

Son olarak gerçi ş.o.m projesini hiç görmedim ama bende istersen ş.o.m konusunda sana yardımcı olabilirim?

<Kelimeler>
    <kelime no="1">
        <soru>book</soru>
        <cevap>kitap</cevap>
    </kelime>
</kelimeler>

Aslında kelimematik veri tabanını için metin tabanlı dosya yerine yukarıdaki yapıda XML tabanlı bir dosya sistemine geçmeyi düşünüyorum. Ayrıca ilerleryen zamanda kelimematik'in farklı dillerde kullanılabilemsi için kelime dosyası organizasyonunuda şöyle yapmayı düşünüyorum.

İngilizce  Türkçe kelime dosyası : en-tr.xml
İngilizce  Almanca kelime dosyası : en-de.xml
Almanca Türkçe kelime dosyası : de-tr.xml

Bu bilgilere göre eş anlamlı ve zıt anlamlı kelimeleride içerecek veri yapısını nasıl inşa edebiliriz?
https://github.com/zafer06 - depo
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
zafer:
XML tabanlı bir dosya sistemine geçmeyi düşünüyorum

Deneyim açısından yararlı olur. Biz işte de XML dosyası kullanıyoruz. XML'in genelde eleştirildiği taraflar var. Üstüne, şu anda Phobos'ta bulunan XML modülünün çok kötü ve hatalı olduğunu duyuyorum. (Denemedim.)

XML yerine daha modern ve daha basit başka düzenler de var. Onları da kullanmadım ama YAML'ın ismini duyuyorum. Onun alt kümesi olan JSON da iyiymiş. Hatta dmd tarafından benimsenmişti; komut satırı seçenekleri arasında var:

dmd deneme.d -Xfdeneme.json

deneme.json dosyası içinde programın dmd tarafından algılanmış biçimi bulunuyor. Ama tabii bu konumuzun dışında ve amacım da XML'den caydırmak değil. :)

Phobos'ta JSON desteği şimdilik çok az ve YAML hiç görünmüyor. :) Ama bunları D'ye geçirmekle ilgili konular da görmüştüm.

kelime dosyası organizasyonunuda şöyle yapmayı düşünüyorum.

İngilizce  Türkçe kelime dosyası : en-tr.xml
İngilizce  Almanca kelime dosyası : en-de.xml
Almanca Türkçe kelime dosyası : de-tr.xml


Mantıklı. Girilen dil bilgilerine göre doğru dosyayı açarsın.

Bu bilgilere göre eş anlamlı ve zıt anlamlı kelimeleride içerecek veri yapısını nasıl inşa edebiliriz?

XML ve başkaları uygundur. Tek cevap veya karşıt anlam yerine bir grup cevap olabilir:


<Kelimeler>
    <kelime no="1">
        <soru>book</soru>
        <cevaplar>
            <cevap>kitap</cevap>
            <cevap>yer ayırtmak</cevap>
        </cevaplar>
        <karşıt-anlamlılar>
            <karşıt-anlam>cancel</karşıt-anlam>
        </karşıt-anlamlılar>
    </kelime>
</kelimeler>


Kelimelere ayrıca numara vermek bence gerekmemeli. Serbestçe ve istediğimiz sırada ekleyebilmeliyiz. Yoksa ileride numara atarken sıkıntı olabilir.

Ali
zafer #3
Üye Tem 2009 tarihinden beri · 687 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
XML yerine daha modern ve daha basit başka düzenler de var. Onları da kullanmadım ama YAML'ın ismini duyuyorum. Onun alt kümesi olan JSON da iyiymiş. Hatta dmd tarafından benimsenmişti; komut satırı seçenekleri arasında var:

Ali bilgi için teşekkürler, buradaki bir çok projede amaç kedimizi geliştirmek dolayısıyla tamda uğraştığın iş ile ilgili bilgi gelince kavramak ve hatırlamak kısaca öğrenmek daha kolay ve kalıcı oluyor. Belki başka bir konuda YAML veya JSON'dan bahsetsen okuyup geçerdim ama şimdi yaptığım işle ilgili olunca en azından bir araştırıp ne olduğunu öğrenme ihtiyacı duydum. Kısacası tam yerinde harika bir paylaşım olmuş.


XML ve başkaları uygundur. Tek cevap veya karşıt anlam yerine bir grup cevap olabilir:


<Kelimeler>
    <kelime no="1">
        <soru>book</soru>
        <cevaplar>
            <cevap>kitap</cevap>
            <cevap>yer ayırtmak</cevap>
        </cevaplar>
        <karşıt-anlamlılar>
            <karşıt-anlam>cancel</karşıt-anlam>
        </karşıt-anlamlılar>
    </kelime>
</kelimeler>


Kelimelere ayrıca numara vermek bence gerekmemeli. Serbestçe ve istediğimiz sırada ekleyebilmeliyiz. Yoksa ileride numara atarken sıkıntı olabilir.

Cevapları bu şekilde düzenlersek artık kullanıcının girdiği kelimeyi bir liste ile karşılaştırmam gerekecek, program gelişiyor :)

Numarayı aslında dosyadaki her kelimenin benzersiz olması amacıyla kullandım. Şu an için bir örnek veremem ama ileride aynı soru kelimesine karşılık farklı bir kullanım veya seçenek hazırlanırsa ve bu iki kelime program içinde kullanıyorsa karışıklığı engel olabilir diye düşündüm. Bir diğer fikirde belki kelimeleri farklı düzenlerde sıralamak istersek kullanılabilir mi? Bilemiyorum bana kalması daha doğru gibi geliyor neticede kelimeler zaten program üzerinden girilecek. Sen ne dersin?

Madem veri yapısına girdik kafamı karıştıran bir diğer konu seviye olayı, yani giriş seviyesindeki kişi ile farklı seviyedeki kişilere seviyelerine uygun kelimelerle egzersiz yaptırma durumu. Bunun için kelimeye seviye isimli bir nitelik (attribute) ekleme niyetindeyim ama başka ne yapılabilir diye sormak istiyorum?

Bu arada programın XML entegrasyonunu tamamladım. Sistem tamamen en-tr.xml dosyası üzerinden çalışıyor.

Sıradaki görev ise Egzersiz sınıfına soru adeti verilerek soru listesi çekebileceğimiz bir metod eklemek. Şimdki durumda Egzersiz sınıfından soru listesi istediğimizde dosyanın tamamını liste olarak veriyor. Ancak bu yeni özellik sayesinde kullanıcı isteğine göre 10 veya 20 soruluk egzersizlere çalışabilecek. Sizlerinde aklında başka geliştirmeler varsa paylaşın.
https://github.com/zafer06 - depo
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
zafer:
acehreli:
Kelimelere ayrıca numara vermek bence gerekmemeli. Serbestçe ve istediğimiz sırada ekleyebilmeliyiz. Yoksa ileride numara atarken sıkıntı olabilir.

kalması daha doğru gibi geliyor neticede kelimeler zaten program üzerinden girilecek. Sen ne dersin?

Kelime numaraları programın uzun aralıklarla tekrar tekrar kullanıldığında yararlı olabilir. O da ancak o numaraları bir kayıtta saklamışsak. Örneğin kullanıcının geçmişte hangi kelimelere karşılık ne yanıtlar verdiğini kaydetmiş olabiliriz:

kelime: 42; yanıt: "merhaba"
kelime: 9; yanıt: "kapı"
...


O durumda sisteme giren kelimelerin numaralarının olması şart olur. Ama başka biçimde düşününce neden asıl kelimeyi yazmıyoruz?

Bence önemli bir sakıncası yok. Yalnızca elle atanan bir numara olduğu için azıcık külfetli olacak. Yanlışlıkla aynı numara kullanıldığında program zaten "bu numara kullanımda" diyecek. Yani sorun yok. :)

kelimeye seviye isimli bir nitelik (attribute) ekleme niyetindeyim ama başka ne yapılabilir diye sormak istiyorum?

En kolayı o. Başka seçenek, 'kelimeler' XML elemanına "düzey=1" gibi nitelik vermek olabilir. Hatta her düzeyin kelimeleri ayrı dosyalarda durabilirler. Ama bunların bakımı daha zor olur. Kelimenin düzeyini değiştirmek için bütün elemanı olduğu gibi başka bir yere taşımak gerekir. O yüzden senin yöntem çok daha uygun.

Bu arada programın XML entegrasyonunu tamamladım.

Projeye katkıda bulunmaya başlamalıyım. :) Ayrıca Projeler bölümünde yer açmaya da geç kaldım.

Ali
zafer #5
Üye Tem 2009 tarihinden beri · 687 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
O durumda sisteme giren kelimelerin numaralarının olması şart olur. Ama başka biçimde düşününce neden asıl kelimeyi yazmıyoruz?

Aslında böyle bir durumda asıl kelimeyi kullanmak banada daha doğru geliyor. Ancak yukarıdaki mesajda da belirttiğim gibi kullandığımız bu kelimeyi bu listeye tekrar eklemek durumunda kalırsak ne olacak? Bu sefer ilgili kayıt için anahtarı kaybetmiş olacağız. Benim burada netleştiremediğim konu böyle bir durum yaşama ihtimalimiz olabilir mi? Eğer olursa ve bizde numara kullanmamışsak çözüm ne olur? Diğer taraftan şöyle bir düşününce örneğin 5_000 adet kelimenin numara organizasyonunu yapmak külfetli göründü banada, silinen kayıtlar olacak, bilemiyorum. Büyük bir proje değil çok detayada inip proje içinde kaybolmak istemiyorum ama ortayada güzel bişeyler çıksın istiyorum. Sanırım numarayı kaldıracağım!

En kolayı o. Başka seçenek, 'kelimeler' XML elemanına "düzey=1" gibi nitelik vermek olabilir.

Evet, "kelime" XML elemanına nitelik olarak "seviye=1" gibi bir seviye bilgisi eklemeye karar verdim. Program tarafında da bu seviye numarasına karşılık bir enum tanımı düşünüyorum. O kısmı kodlarken şekillendirecez artık.

Projeye katkıda bulunmaya başlamalıyım. :) Ayrıca Projeler bölümünde yer açmaya da geç kaldım.

Ali senin katkıların olmasa bu seviyeye zaten gelemezdik. Kendi adıma senin bu projeye desteğini çok fazla isterim ama yoğunluğunu tahmin ettiğim için (Ayrıca dersane ve site işleri) çok fazla ısrarcı olamıyorum. Yinede her türlü desteğin beni çok mutlu eder.

Aslında Mert'den destek alabilseydim projeyi bir görsel arayüz üzerine taşımayı amaçlıyordum. Malum günümüzde artık konsol üzerinden böyle bir programı kullanacak çok fazla kişi bulmak zor :) (Birben). Ayrıca görsel arayüzler böyle kullanışlı iken bende şahsen bir arayüz tercih ederdim. Aslında çok basit tek form ve üzerinde iki tab sayfasından oluşan bir form işimizi görür ama gtkD hiç bilmediğim ve projede henüz başlangıç düzeyinde olduğu için odak noktamı dağıtmak istemiyorum. Yinede elimden geldiğince sunum katı ile iş katını ayrı tutmaya çalışıyorum belki ileride projeyi bir arayüz üzerine taşırsak bağımlılıklar minimum düzeyde olsun istiyorum.

Projeler bölümü konusuna gelince, aslında bu konular tek bir başlık altında olsa gerçekten çok daha temiz ve faydalı olur ama diğer taraftan projeler bölümünden korkuyorum  :-p Bakıyorum neredeyse biten hiçbir proje yok hepsi yarım kalmış, bazısına başlanmış ama sadece başlanmış :) Bir nevi dsource.org durumu yani. O sebeple o bölümden korkuyorum  :-D

Bu arada bu mesajı okurken aklıma geldi. Egzersiz yapan kullanıcının istatisliklerinide saklamamız gerekecek ki, zamanla gelişmeyi, hataları ve eksikleri kullanıcıya gösterelim. Bu durumda tabi ki kelimematik egzersiz yapan kullanıcıyı bilmek durumunda kalacak dolayısıyla bir kullanıcı girişi söz konusu olacak. İşler karışıyor :). Ben bunları görevler arasına ekliyorum. Üzerinde biraz daha düşünüp detaylandırmaya çalışacağım.
https://github.com/zafer06 - depo
Bu mesaj zafer tarafından değiştirildi; zaman: 2011-11-04, 00:23.
acehreli (Moderatör) #6
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
zafer:
kelimeyi bu listeye tekrar eklemek durumunda kalırsak ne olacak? Bu sefer ilgili kayıt için anahtarı kaybetmiş olacağız.

Anlamıyorum. (?) Aynı kelimeye örneğin yeni karşılık ekleyeceksek XML dosyasını açıp o kelimenin olduğu yere bir ek yapacağız.

Eğer aynı kelimeyi ayrı bir kayıt olarak tutacaksak da ("kitap" anlamında book ile "yer ayırtmak" anlamındaki book'ta olduğu gibi) zaten kullanıcıya hangisini sorduğumuzu bir biçimde belli etmemiz gerekir. Örneğin "Şu cümlede geçtiği anlamda" diyebiliriz. Yani "book'un 2 numaralı anlamını yazınız" diyemeyiz zaten.

Büyük bir proje değil çok detayada inip proje içinde kaybolmak istemiyorum

İyi fikir! :) Ben de zaten numaraya gerek görmediğimi söyledim ve bunun önemli olmadığını ekledim. Fazla zaman kaybetmeye gerek yok. Ama konuyu anlamamız da gerekiyor. Örneğin ben yukarıda bahsettiğin sorunu göremiyorum.

Program tarafında da bu seviye numarasına karşılık bir enum tanımı düşünüyorum

Güzel! Öteki konuda ben de enum önermiştim. Böylece dosyaya 1 gibi tamsayı değil, "orta" gibi daha anlamlı şeyler de yazılabilir.

Aslında Mert'den destek alabilseydim projeyi bir görsel arayüz üzerine taşımayı amaçlıyordum.

Mert adına konuşmayayım ama onun dönem dönem yoğun olabildiğini biliyorum. (Evet, aslında hepimiz aynı durumdayız. :) Hatta en az iki lise sonlu arkadaşımız üniversite hazırlık döneminde oldukları için şimdilik çok-mevsimlik izindeler. :D)

Ayrıca görsel arayüzler böyle kullanışlı iken bende şahsen bir arayüz tercih ederdim

(Ek: Bunu sen söylemişsin. :)) Programcı için önemli olan, programın mantığını arayüzünden ayırabilmek. Her zaman kolay olamıyabiliyor. Benim bazı fikirlerim var ama deneyimim yok; bu konuyla ilgili bir şeyler okumak gerek...

gtkD hiç bilmediğim

Bildiğinden emin olmak ve hatırlatmak için yazıyorum: Mengü ve Can'ın başlattıkları yazık-ki-yarım bir belge var:

    http://ddili.org/ders/index.html

Projeler bölümü konusuna gelince

Acaba alt başlıkları kaldırıp projelerle ilgili bütün konuları tek forumda mı tutsak? Böylece yarım kaldıkları da daha az anlaşılır! :D

Ali
zafer #7
Üye Tem 2009 tarihinden beri · 687 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
Anlamıyorum. (?) Aynı kelimeye örneğin yeni karşılık ekleyeceksek XML dosyasını açıp o kelimenin olduğu yere bir ek yapacağız.

Haklısın Ali, bende anlamıyorum bu sebeple inadı bırakıp doğru yolu buluyorum ve numarayı kaldırıyorum :)

Ayrıca görsel arayüzler böyle kullanışlı iken bende şahsen bir arayüz tercih ederdim

(Ek: Bunu sen söylemişsin. :)) Programcı için önemli olan, programın mantığını arayüzünden ayırabilmek. Her zaman kolay olamıyabiliyor. Benim bazı fikirlerim var ama deneyimim yok; bu konuyla ilgili bir şeyler okumak gerek...

Evet, onu ben söyledim  :-D Bana uysada uymasada her zaman doğruları söyleme taraftarıyım. Bir kullanıcı olarak baktığımda özellikle çevremde böyle güzel arayüzlü programlar varken bir konsolda sadece metinle çalışmak istemem, bir kullanıcı olarak görüşüm budur. Bir programcı olarak konsolun gücünün ve kullanım kolaylığının farkındayım ama kullanıcı tarafından bakınca bence güzel bir arayüz kesinlikle daha cazip geliyor.

Ali, arayüz ve iş katının ayrımı için fikirlerini diuymaktan çok memnun olurum. Bu konuda benimde çok bilgim yok, çok fazla Türkçe kaynakta bulamadım malesef, senin bu konuda bir fikrin veya tavsiyen varsa denemek isterim yada birlikte deneyelim ?


Eveti o derslere bakmıştım. Güzel bir fikir ve başlangıç olmuş ama nasıl desem sanki alfabenin a harfinde kalmış olay. Yinede emek harcayan arkadaşlara teşekkür etmek gerekir. Sanırım Ali Çehreli farkı burada ortaya çıkıyor, insan bir o belgelere bakıyor birde dershaneye bakıyor vay be diyor :)

Acaba alt başlıkları kaldırıp projelerle ilgili bütün konuları tek forumda mı tutsak? Böylece yarım kaldıkları da daha az anlaşılır! :D

Ali seninde çok hain planların varmış  :-D Şaka bir tarafa tek forumda toplamak bence pek iyi bir fikir değil neticede içerik olarak ayrı projeler ve farklı konuları içeriyorlar dolayısıyla böyle kalmaları bence daha doğru.  Hatta bir ara ben bile projelerden birini devam ettirmeye niyetlenmiştim, şöyle bir baktım elle tutulur tek proje pişti vardı. Aslında piştiden gerçekten güzel bir proje çıkacakmış ama görsel arayüz olayına girince sanırım hem geliştirme süreci dağılmış hemde görsel arayüzden bir netice alınamayınca proje terk edilmiş. Ayrıca projenin depo değiştirmeside sanırım geliştirme sürecine darbe vurmuş. Aslında hala aklımda o pişti projesini tamamlamak var, bakalım zaman olursa belki bir giriş yaparız.

Yazdıklarımı okuduktan sonra şöyle bir baktımda aslında projeler bölümü gerçek bir hazine :) O projelerin neden yürümediklerini analiz edip değerlendirsek iyi bir proje ekibi (ddili için) için gerekli geliştirici profili, çalışma düzeni v.s. bilgileri elde edebiliz. Bizim durumumuz için böyle bir şey belki gereksiz ama yapılabilse mükemmellik yolunda atılan güzel bir adım olurdu sanırım?

Ayrıca proje bölümü forumun albenisini arttırıyor. Üst bölümde dersler, konular, tartışmalardan oluşan büyük bir teorik bilgi birikimi, alt bölümde bu teorik bilgilerin pratiğe dökülmüş hali bir çalışma atölyesi! :-D olmasada en azından böyle bir izlenim veriyor :)

Bu arada "gtkD'nin kurulması (ikinci deneme)" konusunun altına yazıyoruz. Eğer mümkünse bunları ya proje veya başka bir bölümde bir konu altına toplayalım yoksa aramalarda büyük sıkıntı yaşarız. Ben özellikle arama sonuçlarında başlıklara bakarak kayıtları ayıklıyorum. Böyle bir başlık görsem geçer giderim. Bu mesajları bir yerde toplasak iyi olur derim.
https://github.com/zafer06 - depo
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Projeler KelimeMatik RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-03-23, 07:13:23 (UTC -07:00)