CEYD Dili Dokümantasyonu


1.Kurulum

 

1.1.Gerekli ortamlar

CEYD diliyle kod yazmak için internet üzerinden giriş yapabileceğiniz herhangi bir ortam yeterlidir. Yazılacak tüm komutlar web üzerindeki ÜCRETSİZ olan kendi hesabınızda tutulmakta ve buradan bağlı olan cihazınıza direktif olarak gitmektedir.

Komutları işleyip çalıştıran, sizi dinleyip komutlarınıza cevap veren asistan sistemi ise Android işletim gerektirmektedir. Ancak https://ceyda.docs.apiary.io/ sayfasında belirtildiği gibi CEYD-A altyapısının web servislerini kendi platform bağımsız sisteminizde kullanabilirsiniz

Kurulum için gerekli minimum Android sistem versionu 4.0 olmalıdır. Ancak uygulamanın sorunsuzca çalışması ve birçok özelliği desteklemesi için tavsiye edilen minimum sürüm 5.0 dır.

 

1.2.Komut Girişi ve Asistan Kurulumu

CEYD dili ile kod yazmak için http://ceyd-a.net/komutekle sayfasını herhangi bir ortamdan kullanabilirsiniz. Yazılacak olan kodlar giriş yaptığınız hesaba ait olacak ve bu hesaba bağlı olan Android tabanlı cep telefonu, tablet , TV ve navigasyon cihazı gibi sistemlerde CEYD-A uygulamasını açtığınız anda devreye girecektir.

Ayrıca CEYD-A web servislerini kendi sistemlerinizde kullanıyorsanız, komutların devreye girmesi için servise komutlarımı yükle yazıp göndermeniz yeterli olacaktır.

Eklediğiniz komutun direk ismini veya içinde bu komut ismi geçen cümleler kullanıp sesli söyleyerek bu komutun cevabını CEYD-A ya söyletebilirsiniz. Eğer cevaplarda CEYD dili ile yazılmış kodlar var ise bu kodlar yorumlanıp dinamik ve çeşitliliği olan, araştırma sonucu dönen cevaplar olarak karşımıza çıkacaktır.

CEYD-A uygulamasını ise Google Play Market üzerinden indirebilirsiniz. Ücretsiz versiyonu da Tam versiyonu da CEYD dilini desteklemekte ve yorumlamaktadır. Tam sürüm reklamsız sürüm olmakta olup birçok ek özelliğe sahiptir .

Özellikler https://web.ceyd-a.com/c/faqs/tam-surum-ile-ucretsiz-surum-farklari-nelerdir/ sayfasında belirtilmektedir.

 

2.Kullanım

2.1.Hızlı Başlangıç

Öncelikle, CEYD-A Türkçe sesli bir asistandır ve çalışması, kullanılması için onu eğitmenize GEREK YOKTUR. ANCAK EĞİTİLEBİLEN VE ÖĞRENEBİLEN bir asistandır. Bildiği binlerce komut ve yüzbinlerce kelime dağarcığı vardır.
Siz ona sesli veya yazılı olarak istemde bulunursunuz . CEYD-A uygulaması da sizin bu isteminize sesli ve yazılı olarak cevap verir.

İlk başlayanlar için bazı yararlı sayfalar:

3.Başlangıç Örnekleri

3.1.Merhaba Dünya

Aşağıdaki örneği komut cevap alanına yazdığınızda size rastgele olarak Merhaba,Günaydın,İyi günler veya Selam diyecektir.

Aşağıdaki örneği denediğinizde $SAHİBİNADI değişkenine Cenker ismini atayacaktır.

Bu örneği biraz daha geliştirelim. Merhaba veya günaydın diyerek sizin isminizi söyleyecektir:

3.2.Diyalog Örneği

Diyalog CEYD-A nın size sözlü cevap vermesidir. Ne demesini istiyorsanız düz cümle ile veya CEYD ifadeleri kullanarak cevap yazabilirsiniz.

Örnek 1: (Düz cümle ve genel değişken kullanımı)

Örnek 2: (CEYD ifadesi ile)

3.3.İşlem Örneği

İşlem, CEYD-A ya başka bir komutu yaptırma işlemidir. Yani, CEYD-A nın bildiği bir komutu aynen yapmasıdır.  İşlem alanına yazılır ve Diyalog alanı boş olmalıdır.

Örnek 1

Örnek 2

Örnek 3

Örnek 4

 

4.Söz Dizimi ve Deyimler (Syntax and Expressions)

4.1.Söz Dizimi (Syntax)

CEYD dili ifade ve komutları {! ve !} içinde yorumlanırlar. Herbir ifade muhakkak {! ile başlamalı ve !} ile bitmelidir. Bu işaretler dışındaki alanlar düz metin olarak algılanır. İfadeler RET, GET, SET, IF, FOR, FOREACH  ve EVAL dir. Ayrıca bir ifade içinde başka bir ifade de bulunabilir.

Örnek söz dizimleri:

Bakınız:
CEYD Dili Nasıl İşler ?

4.2.Değişken ve Diziler

CEYD dilinde değişken ve diziler Android üzerinde çalışan CEYD-A için geçerli olmak üzere cihaz üzerine kurulu olan uygulama üzerinde saklanır.

Tek Değer Alan Değişkenler

Değişkenler $ işareti ile başlayan alfanumerik karakterler ile ifade edilirler. Örneğin $aciklama, $icerik1 gibi

Değişkenlere değer atamak için SET, değeri öğrenmek için GET ifadesi kullanılır.

Örnek 1:

Java dilinde karşılığı

Örnek 2:

Java dilinde karşılığı

Örnek 3:

Java dilinde karşılığı

Çoklu Değer Alan Değişkenler

Değişkenlere sadece tek değer değil, sanki bir diziymiş gibi birden fazla değer de atanabilir.

addtovariable array,value
Tek boyutlu diziye değer ataması yapar.

listvariable array
Dizi değişkenlerini virgül ile ayrıştırılmış sonuç olarak döner.

Değişken değerleri içinde gezinip yineleme (iterate) yapmak için:

resetvariable array
Tüm dizi değişkenlerini siler

Diziler

Dizileri anahtar-key (burada relation olarak adlandırıyoruz) ve value-değerini içeren değişkenler topluluğu olarak tanımlayabiliriz.

addtoarray array,relation,value
2 boyutlu dizilere atama yapar. array[relation]=value olarak işlem görür

Ayrıca, addtoarray kullanmadan aşağıdaki yapı örneğini kullanabilirsiniz.

listarray array

resetarray array

searcharray variable,array,value

2 boyutlu dizi içinde value değerini SQL sözdizimindeki LIKE gibi eşleme yaparak aratır ve bulunan value değerlerinin tam halini döner.

Diziler içinde yineleme yapmak için:

 

4.3.RET - Komut Çağırma Deyimi

RET herhangi bir komutu çağırır ve komutun dönen bir değeri var ise bu değeri yazar.

Örnekler

4.4.IF - Koşul Deyimi

IF belirtilen bir koşulu kontrol eder, eğer o koşul karşılanıyorsa istenilen deyim veya komutları gerçekleştirir, karşılanmıyorsa farklı deyim veya komutları gerçekleştirir.

@@ ve && kullanarak kontrolü detaylandırılabilir. Bilindiği gibi C++ Java gibi dillerde || veya, && ve olarak işlev görmektedir. Aynı şekilde CEYD dilinde de bu işlevleri kullanabilmek mümkün.
CEYD dilinde || sembollerinin farklı bir anlamı olduğu için karışmaması adına veya @@ ile gösterilmektedir. Ancak && sembollerinin amacı CEYD dilinde de aynıdır.

Aşağıdaki örnekte saat değişkenine şu anki saat atanıyor. Eğer saat değişkeni 12 den büyük ve 17 den küçük ise CEYD-A Öğle vaktindesin, diğer durumlarda Öğle vakti değil diyecektir

Başka bir örnek:

4.5.Komutsuz Düz Yazı Kullanımı

CEYD dili algoritmik komut ve ifadeleri kullanabildiği gibi, kod yazımına uzak olan kullanıcıları da düşünen bir yapıdadır.
Verilecek cevaplar düz cümle şeklinde de olabilir:

Bu komutu biraz daha düz cevap yapısıyla geliştirirsek

gibi 2 seçenekli, rastgele değişen cevap verdirmek te mümkün.  Bu şekilde ya iyiyim diyecektir ya da sağolasın.

gibi seçenekleri arttırmak mümkün.

Bunun dışında daha da gelişmiş bir şekilde rastgele kalıplarda sağlanabilir.

(!! ve !!) ile ayrılan kalıp kendi içinde rastgele gösterilir ve sonrasında ikinci (!! ve !!) ile ayrılan bölüm içindekiler rastgele gösterilir. Bu şekilde seçenekler artar.
Örnek cevaplar:

Merhaba nasıl yardımcı olabilirim
Özletmiştin kendini nasıl yardımcı olabilirim
Saygılarımla, nasılsın ?umarım yardım edebilirim

4.6.Seçiciler (Selectors)

decodefetchtagsrc ve benzer komutlarda kullanılabilecek bazı seçiciler şunlar. Seçiciler ile web sayfası içinde sadece istenilen bir bölümü almak ve gösterip söyletmek mümkün.


E F E elemanının altındaki F elemanı div a, .logo h2

E > F   E elemanının hemen altındaki F elemanı ul > li
E + F   E elemanının aynı seviyedeki hemen takipçisi li + li, div.head + div
E ~ F    E elemanının aynı seviyedeki takipçileri h1 ~ p
E, F, G  E F G elemanlarının hepsi a[href], div, h3


 

Örnekler:
icerik içinde div id si div1 olan alanı seçer:

sayfa kodu içinde parametre geçen tr leri seçer:

veya
tr:has(td:contains($1))
kullanılabilir

parametre geçen ilk a taginin href alanını seçer:

h3 ten sonra gelen aynı seviyedeki ul leri seçer

class ismi entry olan div in içindeki p yi seçer

 

Sayfa içeriği kodu şu şekilde varsayarsak:
<p class=”basla_icerik”><a href=”http://ornek.com/sayfa.html”>Link İsmi</a></p>

İlk p içeriği kod içindeki basla_icerik class isimli p nin içindeki a nın text alanını seçer

kod içindeki basla_icerik class isimli p nin içindeki ilk a nın hrefini seçer

kod2 içindeki basla_icerik class isimli p den hemen sonra gelen ilk p yi gösterir

5.Komutlar (Commands)


Mevcut CEYD Komutları aşağıdaki gibidir. Bu komutlar CEYD-A komutları gibi yeni komutlar geliştirmek için kullanılabilir durumdadır. Diğer komutlardan farkı sistemsel olmaları ve atom niteliğinde olmaları ve başka bir komuttan türememeleridir.
Kısaca CEYD-A nın en önemli yapıtaşı komutlarıdır. Bunların dışındaki tüm komutlar hem aşağıdaki komutlardan oluşabilir,geliştirilebilir hem de tekrarlayan bir şekilde diğer komutlardan türeyebilir.

GETJSONVALUE
LOADURL
GETSEARCHIMAG
LOADURLENCODE
INPUTBOX
INDEXOF
STRINDEXOF
DECODELINESCONTAINING
SHOWTABLETDS
LINESCONTAINING
RANDOM
GETCITY
GETPROVINCE
SRVCACHE
DECODE
ENCODE
FETCHTAG
CONVERTTOLATIN
STRREPLACE
STRLENGTH
CONVERTDATE
RCONVERTDATE
FETCHNUMERIC
FETCHNUMBERS
FETCHALPHAS
SUBSTRING
VERS
APPVERS
CONTAINS
DEVICENAME
DECODEFETCHTAG
DECODEFETCHTAGHTML
DECODEFETCHTAGSRC
FETCHTAGSRC
DECODETAGVALUE
INSIDEDELIMETERS
DECODEFETCHTAGLINES
DECODESPLITANDFETCH

5.1.Dizgi İşleme Komutları (String Manipulation Commands)

5.1.1.LOADURLENCODE

Internet sayfasının HTML içeriğini okur ve döner

Komut
LOADURLENCODE (sitesayfaismi,encodingtipi)

 

Parametreler
İsim Tip Açıklama Zorunlu Varsayılan
sitesayfaismi metin Bir encode komutu ile oluşturulmuş HTML sayfa kodu Evet
encodingtipi metin ISO-8859-9,ISO-8859-1, UTF-8 veya diğer tipler Hayır UTF-8
Örnekler

Aşağıdaki örnek istenilen bir sitedeki sayfanın <p> taglerini bulur ve içlerini ekranda gösterir ve sesli söyler

 

5.1.2.DECODEFETCHTAGSRC

HTML kodu içinde istenilen html tagi bulur ve içini döndürür.

Komut
DECODEFETCHTAGSRC htmlkod,htmltag,encodingtipi

 

Parametreler
İsim Tip Açıklama Zorunlu Varsayılan
htmlkod metin Bir encode komutu ile oluşturulmuş HTML sayfa kodu Evet
htmltag metin HTML sayfa kodunun içinde aranacak tag Evet
encodingtipi metin ISO-8859-9 veya UTF-8 Hayır UTF-8
Örnekler

Aşağıdaki örnek istenilen bir sitedeki sayfanın <p> taglerini bulur ve içlerini ekranda gösterir ve sesli söyler

5.1.3.ENCODE

Yazıyı URL okunur hale döndürür. Tüm decode ile başlayan komutlardaki yazılar önce encode veya encode işlevi yapan komutla işlenmelidir.

Komut
ENCODE yazi

 

Parametreler
İsim Tip Açıklama Zorunlu Varsayılan
yazi metin HTML sayfa kodu veya düz yazi Evet
Örnekler

Aşağıdaki örnek URL sayfa linkine gönderilecek olan parametreleri kodlar. Örneğin sayfa linkinde kullanılacak parametre Kara Murat ise Kara%20Murat olarak işlem görür

 

5.1.4.INSIDEDELIMETERS

Düz metin içinde geçen ayraçlar içindeki alt metni döner

Komut
INSIDEDELIMETERS duzmetin,ayrac1,ayrac2

 

Parametreler
İsim Tip Açıklama Zorunlu Varsayılan
duzmetin metin düzmetin Evet
ayrac1 metin döndürülecek metnin başlangıç harf dizimi Evet
 ayrac2 metin
döndürülecek  metnin son harf dizimi
 Evet
Örnekler

Aşağıdaki örnek, içinde kartal geçen a tagini bulur ve ? ve & içindeki alanı döndürür.
<a href=denemekartal.png?par1=1&par2=2>

5.1.5.LINESCONTAINING

Satırları olan düz metin içinde kelime geçen satırı döner

Komut
LINESCONTAINING duzmetin,aranacakkelime

 

Parametreler
İsim Tip Açıklama Zorunlu Varsayılan
duzmetin metin Text Evet
arananacakkelime metin Text içinde aranacak kelime Evet
Örnekler

Aşağıdaki örnek önce düz sayfa metnini encode işleminden geçirir. $1 parametresini arar ve satırı decode yapıp döner.

Aşağıdaki örnek önce düz sayfa metnini okur. $1 parametresini arar ve satırı döner.

 

5.1.2.Çok İşlevli Kullanıcı Komutları

CEYD dilinin modüler yaklaşımından dolayı kullanıcıların eklediği parametrik komutlar da yeni komutların oluşumunda kullanılabilir. Aşağıda bu tür kullanıcı komutlarının bazılarını ve kullanım örneklerini bulabilirsiniz. Yeni komutlar oluşturmanızda size fayda sağlayacaktır.

cmdgetantonym

cmdmatchfixtures

cmdmatchrankings

cmdgetpricelist 

cmdfulltvguidebycategory

cmdtvguidebycategory

cmdnutritionrelated 

cmdnutritionfacts

cmdtvguide

cmdteamplayers

cmdgettuik

cmdanalyseword

cmdleaguestats

cmdgettvrating

cmdshowvideo 

cmdshowcallbutton

cmdshowmap

isverb

getddflight

 

6.Kurallar (Conventions)

6.1.Katsayılar

CEYD-A cümlenin semantik yapısını analiz ederken cümle yapısının en küçük birimi olan kelime eklerinden, cümleyi oluşturan kelimelere ve cümlenin tamamına doğru bir katsayı mantığıyla algılamaktadır. Bu da algılamasını daha doğal hale getirmektedir.

Komutları oluşturken bu katsayılara sadık kalınırsa daha mantıklı sonuçlar elde edilecektir.

7.Gelişmiş Örnekler

SORU KELİMELERİ:çok ayıp,3|
CEVAP ŞABLONU:


SORU KELİMELERİ:
jandarmayı ara%,10|
KOMUTA YÖNLENDİR:


SORU KELİMELERİ
:şimdi oldu,4|
CEVAP ŞABLONU:


SORU KELİMELERİ:
kaşar mısın,10|
CEVAP ŞABLONU:


SORU KELİMELERİ:
bugün ne yapa%,10|bugün ne yapma%,10|
CEVAP ŞABLONU:


SORU ŞABLONU:
(.*?)(y|)(i|ı|u|ü) tanıyor musun.*
SORU KELİMELERİ:tanıyor musun,5|
KOMUTA YÖNLENDİR:

 

SORU KELİMELERİ:günaydın,1|
KOMUTA YÖNLENDİR:


SORU ŞABLONU:
(.*?)(için |deki |daki |teki |taki )*(nöbetçi eczane).*
SORU KELİMELERİ:nöbetçi eczane%,12|
CEVAP ŞABLONU:

ÖRNEK KULLANIM:(İLÇE/SEMT İSMİ) için nöbetçi eczane. (Şu an için sadece İstanbul semtleri geçerlidir)


SORU ŞABLONU:
(.*)(ne zaman|hangi).*
SORU KELİMELERİ:ne zaman doğdu,15|ne zaman doğmuş%,15|hangi tarihte doğ%,15|hangi yıl doğ%10,10|
CEVAP ŞABLONU:

ÖRNEK KULLANIM:(ÜNLÜ İSMİ) ne zaman doğdu, hangi tarihte doğdu


SORU ŞABLONU
:(.*)masal.*oku.*
SORU KELİMELERİ:masal,10|
KOMUTA YÖNLENDİR:

ÖRNEK KULLANIM:(MASAL İSMİ) masalını oku, kırmızı başlıklı kız masalını oku


SORU KELİMELERİ:
nasılsın,7|
KOMUTA YÖNLENDİR:


SORU ŞABLONU
:.*babamın adı ne
SORU KELİMELERİ:babamın adı ne,15|
CEVAP ŞABLONU:


SORU KELİMELERİ
:zar at%,4|
CEVAP ŞABLONU:

ÖRNEK KULLANIM:zar at


SORU ŞABLONU:
.*annemin adı(.*)
SORU KELİMELERİ:annemin adı,10|
CEVAP ŞABLONU:

SORU KELİMELERİ:annemi ismiyle ara,15|annemi adıyla ara,15|
KOMUTA YÖNLENDİR:


SORU ŞABLONU:
(.*?)(\w*\s*)etme.*
SORU KELİMELERİ:etme,1|
CEVAP ŞABLONU:


SORU ŞABLONU
:(.*?)(\w*\s*)değilsin.*
SORU KELİMELERİ:değilsin,4|
CEVAP ŞABLONU:


SORU KELİMELERİ
:masal oku,10|
CEVAP ŞABLONU:


SORU KELİMELERİ
:yerler%,0.9|favori yerleri%,2|yerleri listele,14|
KOMUTA YÖNLENDİR:

ÖRNEK KULLANIM:favori yerlerimi söyle

SORU KELİMELERİ:notlarım%,0.9|notlarımı göster%,6|notlarımı listele%,14|notlarımı söyle%,6|
KOMUTA YÖNLENDİR:

ÖRNEK KULLANIM:notlarımı göster


SORU KELİMELERİ
:doğum tarih%,0.9|doğum tarihlerini göster%,24|doğum tarihlerini listele%,24|doğum tarihlerini söyle%,24|
KOMUTA YÖNLENDİR:

ÖRNEK KULLANIM:doğum tarihlerini göster


SORU KELİMELERİ
:yalnız mısın,4|
CEVAP ŞABLONU:


SORU ŞABLONU:
(.*)(ın|in|un|ün|nun|nin|nın|nün)* (kalorisi kaç.*|kaç kalori.*)
SORU KELİMELERİ:kalorisi kaç,10|kaç kalori,10|
CEVAP ŞABLONU:

ÖRNEK KULLANIM:sorulan yiyeceğin 100gr için kalori bilgisini verir. Örnek elma kaç kalori, süt kaç kalori

8.Parametre ve Değişkenler

Komut şablonunda tanımlanan REGEX grupları CEYD diline parametre olarak taşınır. Yani (.*) nedir olarak tanımlanan bir regex ifadesindeki ( ) içindeki grup, 1.parametre olarak  $1 şeklinde diyalog veya işlem alanlarında kullanılabilir.  Halen en fazla ayn anda 5 parametre CEYD diline aktarılabilir. $1, $2, $3, $4 ve $5 parametreleri ifade eder.

$ işareti tüm değişkenlerin başında geçer . Burada da görüldüğü gibi 1 den 5 e kadar rakamların önünde geçer ise parametreleri gösterir.

8.1.Cihaza Özel Değişkenler

Cihaza özel değişkenler kendi CEYD-A kurulumuzda kullanabileceğiniz, komutlarınız içinde yararlanabileceğiniz değişkenlerdir. Bu değişkenlerin başında diğer değişkenler gibi $ işareti olmalı ve tüm karakterleri küçük harf olmalıdır.
Bu değişkenleri CEYD-A zaman içinde sorarak veya siz ayarlarınızda tanımladığınızda öğrenir.

Bunlar CEYD-A 5.4.8 GA sürümü için şu şekildedir. Bazı değişkenlerin isimleri ilerleyen sürümlerde değişecektir.

$OWNERNAME, $SAHIBINADI
$ASSISTANTNAME, $ASISTANADI
$staLatestSMSPhoneName
$staLatestSMSPhoneNumber
$staLatestSMSPhoneNameBody
$profilepicture
$profilename
$profilegender
$profilebirthday
$profileemail
$OWNERTEAM, $TUTULANTAKIM
$MYLOCATION
$PARKYERILAT
$PARKYERILON
$PARKYERITARIH
$PARKYERISAAT
$oncekihatirlatma
$MATCHDATE, $MACTARIHI
$MATCHHOUR, $MACSAATI
$MATCHNAME
$staLatestPhoneNumber
$staLatestPhoneName
$waitmessage
$lastquestionstring
$questionstring
$lastresultstring
$timerresult
$angryreasonstring
$angry
$sad
$smile

 

Örnek kullanım:

 

Bu sayfa 539 kez ziyaret edilmiştir