24/03/2004

rapor ile kod arasindaki mood verbler check edilecek

 

degistir fiili, degis kokunden uretilemiyor, sebebi kodumuzdaki –dHr ekinin sonsuz donguye girmesi.(bkz. Yapim ekleri problemi)

 

mood degisimleri su anda ms (mood syntax)den cikiyorlar, bu gelen semantik bilgisine gore tujanin mood’unu degistirmemiz gerekiyor. Bunun icin bir global variable tutup tujanin moodunu burada saklayabiliriz. Ancak yeni bir mood degistirme cumlesi geldikten sonra bu variable ve dolayisiyla tujanin mood’u degisirler.

 

Ms_compound’u su anda kodlamiyoruz, ilerid yapilabilir, cunku mood degistirme cumlesinin ardindan gelen mood’un degisitirilmis halini tasiyan cumlelerin ayni anda girilmesi su anda cok onemli degil. Biz sadece mood degistirme cumlelerini aliyoruz, sonra o moodda istedigi kadar compound cumle girebilir. İlerde hem mood degistirme hemde compound cumleler bu catida birlesir.

 

Moodlar su anda current_mood isimli bir predicate da duruyorlar, buradan current mood okunuyor. Mood_anla fonksiyonu calisiyor, verilen cumleye gore, moodda degisim yapiyor (sadece degistir ve tanimla moodlari icin calisiyor, ilknur bir sonraki haftaya bunlari tamamlayacak).

 

Current_class diye bir fonskiyon eklenecek. Sayet verilen degistirme cumlelerinde hangi class oldugu soylenmezse, enson touch edilen class degistirilecek. Ikinci bir alternatif, verilen butun classlarin sirasinin tutulmasi ve enson gecen kelimeye gore indexlenmesi. (bu durumda her kelime icin en son kullanilan class ismi de tutulmali)

(ornegin, “otomobil renge sahiptir”, “insan undan sudan ekmek yapar”, cumlelerinden sonra rengi degistir denilirse, biz insanlar bu rengin otomobilin rengi oldugunu anlariz. O zaman enson ismi gecen class’in ismi tutulacak.) Bu durumda her kelime icin database’de hangi classta enson gectigi tutulacak, bunlarin file’a yazilmasi gerekmiyor, session based dusunuyoruz, on gun once renkten bahseden biri onu hatirlayip gizli ozne kullanmaz (ASSUMPTION). Sayet bu oturumda hic renk kelimes gecmediyse, kimin rengi oldugunu tuja anlayamiyacak, bu durumda hangi class diye soracak.

 

Silme fiili verildiginde veya olumsuz ek verildiginde (ornegin otomobil benzin tuketmez), ya fonksiyon tamamen silinecek, ya da fonksiyondan bu parametre silinecek. Sayet fonksiyondan parametre siliniyorsa, fonksiyonu tamamen silen bir cumle yapisi da bulmak gerek.

 

23/03/2004

Anything

 

 

Attributes

 

U:-Rengi değiştir

T:neyle degistireyim?

U:Model ile degistir.

 

U:  Renk tamsayısını değiştir

T: -İsmini mi, cinsini mi?

U: -Cinsini

T: Neyle degistireyim?

U: Karakter ile degistir.

 

Rengi modele değiştir (Rengi modelle degistir)

Rengi karaktere değiştir

U: Renk tamsayı değildir

T: Renk Nedir?

U: Renk bir karakterdir

 

Renk karakterdir

 

Otomobilin rengi karakterdir.

 

Methods

 

void Tuket(Benzin benzin){}

 

U: Benzin tüket metodunu değiştir

T: -Parametresini mi,adını mı?

U: -Parametresini

T: Hangi parametresini?

U: Benzin parameteresini.

T: -İsmini mi, cinsini mi?

U: -Cinsini

T: Neyle degistireyim?

U: Karakter ile degistir.

 

Otomobil benzin tüketmez -> Fonsiyonu sil

Otomobil benzin değil, kurşunsuz benzin tüketir void Tuket(KusunsuzBenzin kusunsuzBenzin){}

Benzin bir tamsayıdır void Tuket(int benzin){}

Tüket metodu güç üretir Guc Tuket(Benzin benzin){}

 

 

Tay  Dogur(){}

 

Tay doğur metodunu değiştir

-Dönen değerini mi,adını mı?

-Dönen değerini

 

At  tay doğurmaz Fonsiyonu sil

At tay değil, toy tay döndürür ToyTay  Dogur(){}

Doğur metodu güç tüketir Tay  Dogur(Guc guc){}

 

 

Ekmek  Uret(Su su,Un un){}

 

İnsan undan ekmek üretmez  Ekmek  Uret(Un un){}

İnsan sadece sudan ekmek üretir Ekmek  Uret(Su su){}

İnsan kepekli undan sudan ekmek üretir Ekmek  Uret(Su su,Kepekliun kepekliUn){}

İnsan kepekli undan sudan kepekli ekmek üretir Kepekliekmek  Uret(Su su,Kepekliun kepekliUn){}

Su bir içecektir Ekmek Uret(İçecek su,Un un){}

İnsan undan değil,kepekli undan sudan ekmek üretir Ekmek  Uret(Su su,Kepekliun kepekliUn){}

İnsan undan sudan ekmek üretmez  Fonksiyonu sil

İnsan undan sudan hiçbirşey üretmez void Uret(Su su,Un un){}

İnsan hiçbirşeyden ekmek üretir Ekmek Uret(){}

 

Relations

 

Her su bir içecektir  ?????? Yeni bir relation eklemeye istediğimizde karışabilir          

Her su bir içecek değildir

17/03/2004

Ms icin yazilan, syntaxlerdeki anything sorunu cozuldu, artik tuja ile baslayip mood belirten bir fiille biten her cumlenin aralarda ne olduguna bakmaksizin alinmasi mumkundur. Hatta aralarda mood belirten fiiller bile kullanilabilir. Yaptigimiz sistem sondaki kelimenin mood kelimesi olup olmadigini kontrol ediyor. İlerde mood belirten kelime gruplari olursa sorun olabilir.(tek kelime kontrolu yapiyoruz).

 

Tuja hitap sorunu cozuldu (adkokleri kucukyazmisiz).

 

 

 

10/03/2004

Moodlar için cumle yapilari belirlenmeye baslandi. Buna gore tuja ile başlayanlar mood değiştirme komutu olacak. Sonunda bulunan fiile göre hangi mood’a işaret ettiği bulunmaya çalışılacak.

Mod giriş cümleleri

  1. İsekelet oluşturma grubu:

(Tuja), Anything , [tanımla|oluştur|yarat]

  1. İsekelet değiştirme grubu:

(Tuja), Anything , [değiştir]

  1. İsekelet yükleme ve kaydetme grubu

(Tuja), Anything , [kaydet|yükle]

  1. İskelet yorum grubu

(Tuja), Anything , [ekle|yaz|yap]

(Tuja), Anything , [yorumlayacağım]

  1. İsekelet sorgulama grubu

(Tuja), Anything , [cevapla|sor|iste|ver|ara|sorgula|bilgilendir]

(Tuja), Anything , [yorumla]

  1. İseket kodlama grubu

(Tuja), Anything , [kodla|üret|oluştur|yarat] ****

**** bu grup ile 1. grup formulleri benzerlik içerirler, ayrit etmek icin cumlenin anything kelime grubunda, sayet dosya, kaynak, java veya kod gibi kelimler geciyorsa bunun 6. gruba girmesi gerektigini dusunuyoruz. Bunlar gecmiyorsa 1. gruba girmeli diye dusunuyoruz.

Modlar ustu cumle yapisi olarak

{mod giriş cümleleri}, [[geç|dönüştür|çevir] X [istiyorum]]


 

08/03/2004

moodlarin programlamasi:

moodlar icin asagidaki listeyi olusturduk:

kullaniciya bu listeyi gosterdikten sonra, kullanicidan bilgi bekliyoruz, bilgi menuden numara ile olabilir, menudekinin ismi olabilir, yada tamamen dogal dilde bir komut olabilir. (ts)

mood icin kip, hava veya durum kelimelerini dusunuyoruz.

Her mood icin ayni ts’i kullanmakla beraber, farkli semanticler kullanarak hangisine girdigimizi anlayip sonucu islemeyi dusunuyoruz, boylece kullanici her cumle girisinde kip degistirmeyi yapabilir.

Mood.pl dosyasi yapildi, bunun gorevei girisi takib etmek ve mood’a gore alt filelara yonlendirmek artik tuja.pl iskelet olusturucu ve kod cevirici modullerini iceriyor. Mood.pl bu dosyayi cagiriyor.

Moodlar arasinda gecis icin, kullanici tuja ile baslayan bir hitap cumlesi kullanabilir (ornegin tuja yorum ekle) veya tuja menuye don diyerek ana menuden moodlari gorerek yeniden mood secebilir.

Mood sentence ornekleri:

Sayilar (listeden bir eleman sayisi tek basina girilebilir).

Listedeki yazilarin aynisi girilebilir

Tuja’ya hitab edilebilir.

  1. iskelet tanimla
    1. yapiyi tanimla
    2. yapiyi oluştur
    3. bir iskelet tanımla
    4. yeni bir yapı tanımla
    5. yeni bir yapı oluştur
    6. yeni yapı oluştur
    7. yeni yapı tanımla
    8. yeni bir iskelet yarat
    9. tuja, iskelet yaratma kipine gec

formul: [tuja]+[yeni]+[bir]+{yapı|mastar|iskelet|şablon|kalıp|ana kalıp}+{oluştur|tanımla|yarat}

formul:[tuja]+[yeni]+[bir]+{yapı|mastar|iskelet|şablon|kalıp|ana kalıp}+{oluştur|tanımla|yarat}+{kipine|moduna|havasına|durumuna|haline}+{geç|dönüştür|çevir}

  1. var olan iskeleti degistir

a.       eski iskeleti | yapıyı | şablonu | kalıbı değiştir

b.      eski bir iskeleti | yapıyı | şablonu | kalıbı değiştir

c.       var olan iskeleti | yapıyı | şablonu | kalıbı değiştir

d.      var olan bir iskeleti | yapıyı | şablonu | kalıbı değiştir

e.       daha önce yarattığım iskeleti | yapıyı | şablonu | kalıbı değiştir

f.        yaratılmış iskeleti | yapıyı | şablonu | kalıbı değiştir

g.       eski bir yapıyı değiştir kipine geç

h.       değiştir

i.         değiştimek istiyorum

 Alt Komut: iskeleti sil

a.       yapıyı sil

b.      var olan yapıyı sil

c.       eski yapıyı silme kipine geç

  1. var olan iskeleti yükle veya çalışmasını kaydet

a.       yazdığım | oluşturduğum iskeleti kaydet

b.      yeni iskeleti kaydet

c.       kaydet yükle moduna geç

d.      yükle moduna geç

e.       kaydet moduna geç

f.        kaydet

g.       yükle

h.       kaydetmek istiyorum

i.         yüklemek istiyorum

j.        yeni iskeleti kaydetmek | yüklemek istiyorum

  1. iskelete yorum ekle

a.       iskelete yorum ekleme | yazma moduna geç

b.      yorum ekle | yaz

c.       açıklama yap | yaz | ekle

d.      iskelete yardımcı bilgi ekle | yaz

e.       yeni yorum eklemek istiyorum

  1. iskeleti sorgula

a.       soru cevap moduna geç

b.      iskelete soru sor

c.       iskeleti sorgula

d.      soru sor

e.       sorgula

f.        var olan iskeleti sorgula

g.       var olan iskelete soru sor

h.       sorularımı cevapla

i.         iskeletle ilgili soru sor

j.        iskeletle ilgili sorularımı cevapla

k.      cevap iste

l.         sorularıma cevap ara

m.     iskelet hakkında bilgi ver

n.       iskelet hakkında beni bilgilendir

o.      beni bilgilendir

  1. iskeleti java diline çevir

a.       iskeleti javada kodla

b.      kodla

c.       iskeleti kodla

d.      javada kodla

e.       java kodu üret

f.        kaynak dosyayı üret | oluştur | yarat |

g.       java kaynak dosyasını oluştur | yarat | üret

h.       javaya çevir

i.         kodlama moduna geç

j.        iskletin eşdeğer java kodunu göster

k.      javada kodlatmak istiyorum

l.         kodlatmak istiyorum

m.     kaynak dosyayı görmek istiyorum

n.       kaynak dosyayı göster

soru: ts icine mood cumle yapilari eklenirse tslerin bozulma ihtimali var, dolayisiyla iskelet tanim cumleleri bozulur.

Ms ayrica tanimlanirsa, morpfolojik yapilari bozulacaginda, msde kullanilan ozel kelimeler ts tarafindan taninmayacak. Dolayisiyla gec donus cevir gibi kelimeleri kullani kullanamayacak.

Ucuncu alternatif, hem syntax hem morfolojiyi ayirmak sorunu cozer gibi goruluyor ama dulicate is ve kod var, ne kadar dogru?


03/03/2004

 

  1. Noktadan sonra ek gelmeyeceğini düşünüyoruz.Kısaltma ve sayılar için böyle bir assumption yaptık
  2. Milyon ve milyarı desteklemiyoruz (yapilacak)
  3. Sayılar oldu.Şu an sayı sonlarına nokta konmuyor (sayilar rakam ile girilebiliyor, nci, HncH eki icin kod yazilacak)
  4. Yorumlar implement edilecek, Yorum ekle fiil grubunda mood degisecek, istenirse yorum ekle cumlesine butun bilgiler girilebilir, istenirse bilgiler diyalogla sorulacak bkz. 9)

Otomobile yorum ekle/yaz

Otomobilin yorumu olsun

Class(A,B,C,D,E,F,NewEntry) Bu NewEntry commenti tutacak.

Otomobilin tüketymek metıduna yorum ekle

  1. Fiillerin sonunda mutlaka noktalama işareti olmak zorunda değil.’tüketmek’ metodunda mesela ama nokta olursa da kabul ediyoruz. Kullanicidan hatali giris almadigimiz icin noktalama isaretlerine uydugunu dusunuyoruz. Sadece cumle sonlari kisatlmalar ve sira sayilarinda nokta isareti kullaniliyor.
  2. Verb’deki finalların başına 10 ekleyerek empty satate’e gidiyoruz.12 ile de punctuationlı sattae’e gidiyoruz. Artık eski finallar final olmuyor,ara node halini alıyorlar. Ornegin

arc(1100,121100,'nokta').

arc(1100,131100,'virgul').

arc(1100,141100,'soruisareti').

arc(1100,151100,'unlem').

arc(1100,161100,'noktalivirgul').

arc(1100,171100,'ikinokta').

arc(1100,181100,'dotdotdot').

arc(1100,101100,'#').

Yukaridaki kodda, 12den 18’e kadar olan arclar imla isaretlerini gosterir, 10 ile baslayan arc ise empty state olarak kabul eder.

 

  1. Polymorphism(overloading)’i kendisi için bile yapıyor.İki kere otomobil benzin tüketir diyince aynı fonksiyondan iki tane yaratıyor. Cozum olarak ayni fonksiyon prototipi varsa kullaniciya emin misin diye soralim, eminse yinede yazalim, hayir derse yazmayalim. (kodlanacak)
  2. Kisaltmalarin sonuna ek gelmesini istemiyoruz ornegin (Alb.), kisaltamalari sisteme ekledik. Bunun için yeni bir kök tipi olan “kısaltma” yı oluşturup arcsona eksiz ekledik. Çalışan örnek “prof. ekmek benzin tüketir.”.
  3. Mood değiştirirken kullanılan cümlelerin ilk kelimesi daima ‘Tuja’ olacak.Araya mood ile ilgili bilgiler gelebilir.Eksik olanlar soru-cevap yoluyla tamamlanırlar
  4. Multi user bir ortam için kullanıcı tanımlaması ve kaydetmesi özellikleri eklenecek. Kullanıcı girdikten sonra kendini tanıtıp çalışmayı istediği gibi kaydedebilecek. Dosyalara kullanıcı bilgisi eklememiz gerekir. Bu durumda semanticleri de bir file’a atmamız gerekecek.
  5. Girişteki kodla yerine Tuja,kodla ile kompare et
  6. Moods:

Skeleton yaratma

Skeleton modification/deletion

Yükle kaydet, dosya adı, kullanıcı bilgisi tarih, proje ismi

Yorum ekle

Soru/Cevap

Kodlama ---- for loops,etc.Kendi içinde moodlara sahip.Get/Ser olsun,yorum ekle gibi

 

  1. Classlarimiz kendini extend edebiliyor. Ornegin

Her otomobil bir otomobildir

İki adet otomobil classı cıkartıyor ve sorunlu calısıyor. Kullanıcının hata yapmayacagını dusunuyorz.


01/03/2004

Devrik cümleler, fiilimsiler, bileşik cümleler ve bağlaçlar implement edilecek

Kısaltmalar için bir kısaltma listesi tutulacak (altyapisi hazir kelime girilmesi gerek).

Sayılar cümle sonunda bulunamaz.Bir sayının sonuna nokta geliyorsa bu onun birinci,ikinci gibi sıra belirttiğini gösterir.Bu nedenle FSM’e 602. noddan önce yeni bir node eklenecek.Sayıdan sonra  nokta gelirse, 602inci noda gitsin.Nokta inci ekiyle değiştirilecek.

‘import ’ için bir kelime düşünülecek ve implement edilecek.

–ler,-lar eki geldiğinde objectler array olarak create edilecek.

Roma rakamlarını implement eden bir mekanizma bulunacak.

Kesme işareti, @ isareti,  implement edilecek.

Comment implement edilecek (bunu mood olarak yeni raporda hallediyoruz)


 

13/01/2004

Paper yazimi ile ilgili degisiklikler: (sadi sorumlu)

sekiller duzenlenip sekillerdeki ornekler, sekillerine yanina konulacak (bu durumda ornekler figur numarasi b, sekiller ise figur numarasi a olacaklar)

FSM lerin giris ve cikislari belirgin hale getirilecek (girilen yerler ok ile belirtilecek, final stateler cift daire olacak)

Fiil tipleri aciklanacak (4 tip fiilimiz var bunlar hakkinda bir aciklama paper'a eklenecek)

access modifierlar aciklanacak (propertyler private, fonksiyonlar public oluyor getter ve setter otomatik generate ediliyor vs.)

Referanslara ATN paperi eklenecek (koymenin paperi duzeltilecek)

Datastructurelarin memoryde durdugunu ve generationin bir komutla yapildigi anlatilacak.

Interface mekanizmasi anlatilacak

Examplelar ilknurdan geldigi sekilde duzenlenecek

Kod ile ilgili degisiklikler: (ilknur sorumlu)

implement edilenler 1 seviye track edilecek (implementin extend ettikleri track edilmeyecek, ancak birden fazla sey implement edildiyse hepsi track edilecek) bu interfacelerin method ve propertyleri implement eden class'a otomatik olarak yazilacak (ancak icleri bos olacak (ornegin return gibi seyler olmayacak))

Unutulmamasi gereken hatirlatmalar

ilerde birden fazla seviyeli implementsleri handle etmek gerekebilir

imla isaretleri (nokta virgul oncelikli olmak uzere) eklenebilir

anaphora resolution (virgullu sekli oncelikli olmak uzere) koda eklenebilir


01/08/2003

Programcılık arkaplanı olan, ama JAVA bilmeyen kişiler ile görüşülüp, programları türkçe cümleler ile anlatmaları istenilecek. Bu sırada kullanılan cümleler ileride TuJA projesine dahil edilmek üzere saklanacak.

Interface kavramı için “kural” ve “soyut kavram|sınıf|obje” anahtar kelimeleri kullanılmasına karar verildi. Bu durumda kullanıcı bu anahtar kelimeler ile tek başına bir interface tanımlayabileceği gibi, aynı anahtar kelimeler ile bir sınıfın interface alanına da ekleme yapabilecek. Interface bir liste olarak tutulacak ve birden fazla interface eklenebilecek. Bu ekleme ve tanımlama işlemlerinin sırası önemli olmayacak.

2. maddeden dolayı, extends edilebilen sınıflar bir taneden fazla olamayacak. Şayet ikinci bir inheritance ilişkisi gerektiren obje gelirse, JAVA'nın sunduğu implements çözümü ile inheritance ilişkisi kuralacak.

Modifier(public,private,protected) kelimeleri için bir çözün aranacak. Şayet method içlerini yazarken kullanılan çözümler uygun bulunursa bunlar attribute ve method tanımlamalarında da kullanılacak.

Attributelar tanımlanırken -ler eki gelirse, bu attributun array olması gerekiyor demektir. Sayı gelirse (örn. Küp 6 kareden oluşur), new kelimesi ile obje tanımlanabilir.