Sorulan Cümleyi Web Servisinden Bilgi Çekerek Sorgulama ve Yorumlama

 
 
 
 
Elimizde genel kültür bilgileri içeren yüzlerce cümle satırı olduğunu düşünelim. Bunlar kendi veritabanımızda olsun ve sunucudan aratılarak servis edilebilsin. CEYD-A’ya soru sorduğumuzda bu cümleleri sorgulayıp, kıyaslama yaptıktan sonra sorunun cevabını yorumlamasını isteyelim. Örnek vermek gerekirse, ülkemizin en büyük gölü tuz gölü müdür ? en hızlı hayvan gökdoğan mıdır ? en yüksek dağ nedir ? gibi sorulara cevap verebilsin. Kulağa hoş geliyor değil mi ? Hem de sadece düz cümlelerden oluşan bir veritabanı olduğunu varsayarsak iyi cevaplar alacağız ancak şu anki veritabanında sadece 400 adet bilgi olduğu unutulmamalı. Bu örneklerde web servisimizin JSON bilgi döneceğini de belirtmek isterim.

Gelelim oluşturacağımız yapının anlatımına: cmdcomparegeneralinfo isminde bir komut oluşturalım. Bu komut 2 parametre alacak. İlk parametre aranacak cümle türünü örneğin en büyük göl, en hızlı hayvan gibi değerler, ikinci parametre ise bu tür için sorgulayacağımız kelime(ler) Tuz Gölü (iki kelime), Van (tek kelime) gibi değerler olacaktır. Komut bize eğer doğru cevap ise $cevap değişkenine doğru cevabı atayacak ve bu değeri dönecektir.

Diğer iki komut ise aynı isimde ama farklı öncelikli iki komut. İkisinin de şablonları farklı. Amaçları ise şu: Önce cümlenin şablonu
en ({HER1}) ({KELİME1} {KELİME1}) midir aranacak eğer değilse düşük katsayılı olan ikinci komut denenecektir. İkinci komutun şablonu ise en ({HER1}) ({KELİME1}) midir gibidir. Başka deyişle en büyük göl van gölü müdür için ilk komut şablonu uyacak, en büyük göl van mıdır için ikinci komut şablonu uyacaktır. Komutlar çağrılan ilk komutun dönüş değerini değerlendireceklerdir.
Normalde hangisinin şablonu söylediğimiz cümleye uyuyorsa o sadece çalışacaktır. Ancak örneklerime göre ikisi de sırasıyla devreye girecektir. Zaten bu kurgu için asıl amacımızda bu: Cümlenin nesnesi tek kelime de olabilir çift kelime de. Örneğin Van Gölü veya Sapanca
Burada 2 adet en komutu da çalışacaktır. 8 katsayılı olan en komutu her ne kadar işlem yapsa da boş değer dönmektedir. Boş değer dönmesi, CEYD yapısında diğer alternatif komuta yönlen anlamındadır. O sebeple 7 katsayılı en komutu da peşinden çalışacak ve işlemler sonunda {!GET $cevap!} fonksiyonu ile değer döneceği için tüm işlemleri bitirecektir.

Son bir not daha örnekte kullanılan web servis linki şu an için deneme amaçlı sabit değer (en büyük göl bilgileri) döndürmektedir. Ancak komutlar CEYD-A da onaylanınca 400 bilgiyi içeren sistem devreye girecektir. Bu sayının artması dileğiyle.

 

 

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.