CEYD-A ile Blok Tasarımı Nasıl Yapılır? (Kurgu Geliştirmeleri)

×

Yazıda geçen demo için hazırlanan bir kurguya aşağıdaki linkten ulaşabilirsiniz. Kurguyu Dene tuşuna bastığınızda içinde para içeren atasözlerini listeleyecektir.
Para İçeren Atasözleri Kurgusu

Parametrik bir kurgu örneğine aşağıdan ulaşabilirsiniz. Yapmanız gereken kurguyu dene tuşuna bastıktan sonra (KELİME) içeren atasözleri yazmak: Örnek : kara içeren atasözlerini söyler misin, gölge içeren atasözlerini listele gibi.
Parametrik Kelime İçeren Atasözleri Kurgusu

Blok geliştirmelerimize bu yazımızda da devam ediyoruz. Günden güne gelişen yapı ile CEYD-A geliştirmeleri yazılımcıların odağından kullanıcılara doğru kaymakta. Böyle olunca tüm karmaşık kavramların daha da kolaylaştırılması gerekmekte. Önceki kodsal yapıda öğretilen her bir kavram, komut olarak adlandırılıyordu. Her komut ise Soru, Soru Şablonu, Cevap, İşlem, Önceki Komut gibi alt öğelere ayrılıyordu. Yeni yapıda kod ile yapılabilecek tüm komplike işlemlerin sürüklenip bırakılabilen ve birleştirilebilen bloklar ile yapılabilmesi amaçlanmaktadır. Bu doğrultuda Komut ve tüm alt öğelerin ismi Kurgu olarak adlandırılması hem anlamsal olarak hem de sadeleştirme adına çok daha doğru olacaktır.

Komut dediğimiz kavram tek bir kullanıcının geliştirmeleri göz önüne alındığında doğru isim görünse de çok sayıda kullanıcının kendi komutlarını CEYD-A’ya öğretip diğer kullanıcı komutlarının da gerekli koşullar gerçekleştiğinde uygulanması durumunda Kurgu daha uygun olacaktır.

CEYD-A aynı yapılar için çeşitli kurgular öğrenmektedir. Kurgunun eyleme dönüşebilmesi için içinde belirtilen koşulların ve CEYD-A’ nın algoritmik çalışmasının gerçekleşmesi gerekmektedir.

Kurguların birbirleriyle etkileşim içinde olduğuna güzel bir örnek: CEYD-A’ ya benim ismim Cenker dediğimde SAHIBINADI değişkeni Cenker olarak değişiyor. Ancak onaylanmış farklı bir kullanıcı kurgusu olan ben senin babanım kurgusu şeffaf bir yapıda SAHIBINADI değişkenini baba olarak değiştirmeyi amaçlamakta. CEYD-A’ ya ben senin babanım dediğimde bu değişken kurgu işleyişinde baba olarak atandığı için cevap baba olarak karşımıza çıkıyor.

 

CEYD-A sadece kendi komutlarınızı değil öğrendiği tüm komutları değerlendirir. Sizin komutlarınız CEYD-A için bir kurgudur ve gerekli koşullar oluşmuş ise komutunuz devreye girer. Yoksa alternatif çözümler aranır.

 

 


Kurgu nasıl oluşturulur?

Şimdi özetle bir komut kurgusu nasıl oluşturulur bir hatırlayalım:
Komut Girişi
sayfasına giriş yapıp kırmızı kalem işaretinden Yeni Komut seçmeliyiz.

Eğer daha önce komut kurgusu oluşturduysak ve güncellemek istiyorsak listeden komutumuzun üzerine tıklamalıyız.

Yeni bir komut kurgusu için aşağıdaki ekran gibi ekranla karşılaşacağız. Kurgunun içindeki Soru kelimesi ve soru şablonu dolduracağımız alanlar arasında olacak. Soru kelimesi bizim cümlemizin içinde mutlaka geçecek olan kelimedir. Varsayılan olarak kelime olarak atanmıştır. Şablon alanını, bu şekilde değiştirmeden bıraktığımızda içinde soru kelimesi geçen her sorumuzda bu kurguyu değerlendirecektir.

Blok panelinin üst kısmında gruplar halinde kullanabileceğiniz bloklar bulunmaktadır. Kategoriler ve içerikleri CEYD-A geliştikçe yenilenmektedir.

Şimdi soru şablonu blokunu nasıl kullanacağımızı inceleyelim: Eğer bu bloku değiştirmeden olduğu gibi kullanır isek içinde kelime geçen bir cümle söylediğimizde devamında ekleyeceğimiz bloklar çalışacaktır.

Bu yazımızda örnek olarak (KELİME) içeren atasözleri komut kurgusunu oluşturacağız: Biz, güzel içeren atasözlerini söyle veya iş içeren atasözlerini biliyor musun? dediğimizde güzel veya kelimeleri bize parametre olarak gelmelidir. Söyleyeceğimiz cümledeki ilk kelimeyi parametre olarak kullanmak için blokumuzu aşağıdaki gibi güncellememiz gerekir.

Biz blokları düzenledikçe, CEYD-A kendi kodlarını aşağıdaki bölümde düzenleyecek. Yapının detaylı olarak nasıl işlediğini öğrenmek istemiyorsak bu komplike bölüm ile ilgilenmemize gerek yok. Bırakın CEYD-A kendisi uğraşsın 🙂

Blokları oluşturup kurgumuzu tamamladıktan sonra Kurguyu Dene tuşuna basabiliriz.

CEYD-A bizden kurguyu aktive edebilmek için sorumuzu isteyecektir. İş içeren atasözlerini söyle yazıp OK tuşuna basalım.

Kurgunun blokları bağlantıları ile birleştirilmiş bir bütün oluşturuyor ise aşağıdaki gibi bir cevap gelecektir. Burada bloklar, yap boz mantığı ile birbirlerine bağlanmıştır. Her blok türü birbirine bağlanmayabilir. Kurgunun doğru çalışabilmesi için birbirleriyle etkileşimli olan bloklar bağlanabilir. Bu şekilde bir kontrol yapısı hem düzgün bir işleyiş hem de doğru sonuçlar almamızı sağlayacaktır.

Kurgu denemelerimizde çok sayıda deneme yanılma yapmamız olasıdır. Denemeleri rahat yapabilmek için çalışmasını istemediğimiz blok kalıbına sağ tıklayıp Bloku Devre Dışı Bırak diyebiliriz.

Bu şekilde işaretli olan bloklar koddan geçici olarak kalkacak ve denemeler yapmamızı kolaylaştıracaktır. Aşağıdaki örnekte sayfa kodlarında istediğimiz alanı ayıklamadan önce tüm sayfa kodunu görmemizi sağlamak için ayıkla blokunu geçici olarak devreden çıkarıyoruz. Devreden çıkan bölümün üzerinde sayfa yaz blokunun olduğunu farketmişsinizdir.
Sayfa değişkeninde https://tr.wiktionary.org/wiki/1.PARAMETRE sitesinin yüklenmiş sayfa içeriği bulunmaktadır. Örneğimize bakarsak 1.PARAMETRE cümlemizdeki kelimesi olarak algılanacağı için https://tr.wiktionary.org/wiki/iş sitesi yüklenip içeriği sayfa değişkenine atılmaktadır.

Kurguyu denediğimiz zaman sonuç ekranında sayfa değişkeninin içeriğini göreceğiz:

h4 etiketinin içinde Atasözleri kelimesinin geçtiğini ve etiketten sonra aynı seviyedeki ilk etiketin içeriğinde ilgili atasözlerinin olduğunu sonuç ekranından farkediyoruz.

O zaman devre dışı olan blok kurgumuzun doğru olduğunu anlıyoruz:
h4 etiketi atasöz içermeli ve devamındaki aynı seviyeden ilk * (tüm etiketler) etiketi alanlarını sayfa içeriğinden ayıklanmalı.
Artık bu bloku etkinleştirebiliriz.

Değişik örnekler deneyip kurgumuzun nasıl dönüş yapacağınız görebiliriz:

Kurgu sayfasından çıkmadan önce mutlaka kırmızı kaleme tıklayıp güncelle işlemini yapmalıyız. Bu şekilde kurgu cihazınıza inecek ve CEYD-A yeni bir kalıp öğrenmiş olacaktır.

 


Kullandığımız Bloklar

Örnekte kullanılan bloklara gelirsek:
Komutlar kategorisinde yaz blokunu kullandık.

Yazılacak olan değer ise değişkenler kategorisinde oluşturduğumuz sayfa değişkeni.

Değişkenler kategorisinde kullandığımız değişken dışında çok sayıda ortak isimlendirilmiş değişkene ulaşabiliriz. Burada ortak değişken yerine ortak isimlendirilmiş değişken dememizin nedeni değişken içerikleri kişiye özeldir. Farklı komut kurgularında aynı isimde değişken olduğunda bizim kurgumuzdaki değişken ismi kullandığımız kurgularda da aynı isimde ise onlarla etkileşim kurulabilir. Kullandığımız komuttaki bir değişkeni sonraki komutlarımızda da kullanabiliriz. O komut kurgusunu başkası oluşturmuş olsa bile bizim cihazımızdaki kurguda değişken ismi sadece bize aittir ve bizim verimizi tutar. Başkasının makinesinde ise o değişken sadece kullanana özeldir. Bizim verimizi kullanmaz. Bu konuya yazının sonlarına doğru tekrar değineceğiz.

Ortak isimlendirilmiş değişkenler: Havuzdaki kurgu cihazlara yayılır. Cihazlar üzerinde çalıştırılan kurguların içindeki değişkenler, sadece cihaz içindeki kurgular arasında kullanılabilir. Başka kullanıcı cihazındaki aynı isimdeki değişken ile ilişkisi yoktur.

 

Komut kurguları internet üzerindeki ortak bir havuzdadır. Kurguların içinde kullanılan değişkenler ise kullanıcıya özeldir ve kullanıcı cihazında işlem görür. Kendi cihazınızdan dışarıya çıkmaz.

Sayfa değişkenine sitenin içeriğini aşağıdaki gibi blokları iç içe yerleştirerek atıyoruz.

Site işlemleri kategorisinde, internet sayfalarına ulaşıp içeriğini değerlendirmemiz mümkün olmaktadır. Burada etiket alanlarını içeriğinden ayıkla blokundaki kıvrımlı olan üst kısma Sayfa etiketleri kategorisindeki blokları ekleyebiliyoruz.

Sayfa etiketlerindeki blokları içeriği ayıkla blokuna eklediğimizde ise aşağıdaki gibi bir blok oluşacaktır:

Bu bloku Komutlar kategorisindeki yaz blokuna eklediğimizde aşağıdaki gibi bir görüntü elde edeceğiz.

Cümle yapısı kategorisinde kendi cümlemizin yapısını belirleyecek bloklar bulunmaktadır. Türkçe dil bilgisine uygun kalıplar da mevcuttur.

Blok üzerindeki ayarlar şekline bastığımızda birden fazla öğe içeren bloktaki öğelerin sayısını sürükle bırak yöntemiyle artırabiliyoruz. Bu şekilde cümle kalıplarımızı dilediğimiz şekilde değiştirebiliriz.

Hatta cümle şablonumuzda bir gün isminin geçmesi gerektiğini aşağıdaki gibi seçimli belirleyebiliriz.

 


Komut Kurguları ve Veriler

CEYD-A’nın çalışma yapısı güvenlik ve gizlilik adına bilinen uygulamalardan biraz daha farklıdır. CEYD-A, cihazınız üzerine kurulan uygulama üzerinde komut kurgularını yorumlar ve çalıştırır. Uygulamanın kendi iç derleyicisi vardır. Benzer uygulamalar genelde verileri sunucuya aldıktan sonra tek bir yerden yorumlayıp çalıştırır. Bu da bilgilerinizin cihazınızın dışına, internet ortamına çıkması demektir. Bu tür uygulamalar verilerinizi kendi sunucuları üzerinde değerlendirip cihaza sonucu döndürürken, CEYD-A ise cihazınız üzerinde kurguyu çalıştırıp yorumlar. Çalışan komut kurguları içindeki sağlanan veriler veya cihazınızdaki veriler yine cihaz üzerinde kalır.

Komut Kurgusu ve Veri (başka değişle değişken içindeki değer) iki farklı kavramdır. Komut kurgusu CEYD-A’ya verilecek kuralları belirleyen söz dizimidir. Veri ise komut içinde işlenecek olan bilgilerdir.
Kullanıcılar tarafından oluşturulan komutlar internet ortamındaki ortak bir havuzda toplanır.
Veriler ise internet üzerine çıkmadan cihaz üzerindeki derleyici tarafından komut kurgusu içinde yine cihaz içinde derlenir.

 

İnsanoğlu da benzer yaklaşım içindedir aslında: Dış dünyadan kurguları öğrenir ve öğrendiği kurguları kendi özeline (verilerine) uygular ve iç dünyasını belirler. Öyle değil mi?

Örnekte cevabı benimle evlenir misin işlemini yap bloku vermekte ve sonrasında içinde kullanılan ortak isimdeki değişken staMarriageProposalCount ile teklif sayısı gösterilmektedir. Değişken isimleri ortaktır ama içerikleri cihaz bazlı çalıştığı için kullanıcıya özeldir.

Önceki sohbetlerinizin kurgularında geçen ortak değişkenler yeni sohbet kurgusu ile etkileşim sağlayabilir.

ortak isimlendirilmiş değişken kullanarak oluşturduğumuz yeni kurgu

Görselde kriterler uyduğu için yeni kurgumuz devreye girecektir.

 

Ancak bu görselde kriterler uymadığı için cevap alternatif kurgulardan alınacaktır. Her iki kurguda aynı değişken kullanıldığı için kilo ilgili tüm komutlar birbirleriyle uyumlu çalışabilir.

Kilo ile ilgili önceden hazırlanan komut kurguları aynı ortak değişken isimlerini kullandığı için farklı sorularımızı cihazda tuttuğu bilgiler dahilinde cevaplayabilecektir.

 

Eğer cihazınızdan CEYD-A’ yı kaldırırsanız CEYD-A’nın yorumladığı bilgileriniz de dışarı çıkmadığı ve cihazınızda uygulama kapsamında kaldığı için tamamen silinir. Tekrar CEYD-A kurulduğunda CEYD-A’nın önceden sakladığı bilgilere ulaşamazsınız. Çözüm için uygulamayı kaldırmadan önce CEYD-A’ ya yedekle demeniz gerekmektedir. Bilgilerinizi cihazınızdaki SD kartına kaydeder. Sonrasında tekrar kurulum yapınca bilgilerimi yükle dediğinizde SD kart üzerinde bilgilerinizi bulur ve cihazda kurulu CEYD-A’ya tekrar bilgiler yüklenir.

Ayrıca bakınız: http://cenker.com/main/aydinlatma.html

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.