Yazan : Şadi Evren ŞEKER
TML dili ilk defa doğal dil işleme çalışmaları sırasında bir metinde geçen olayların zaman sırasına sokulması çalışmasında doğan bir ihtiyaç üzerine XML dili üzerine inşa edilerek oluşturulmuştur. Bu dilin oluşturulmasındaki amaç göreceli olarak zamanları belirli ancak kesin olmayan olayların zamanlarının standart bir şekilde tutulmasını sağlamaktır.
Örneğin : “Ali okula geldiğinde ayşe çoktan eve gelmişti” cümlesinde “Ali’nin okula gelme” ve “Ayşenin okula gelme” olayları iki farklı olaydır. Bu cümleyi okuyan bir insan iki olayın birbirine yakın zamanlarda (tahminen saat ve dakika mertebesinde) gerçekleştiğini ancak ayşenin eve gelme olayının alinin okula gelme olayından daha önce olduğunu anlar.
TML dili tasarlanmadan önce, yukarıdaki bu yorumun standart bir dil ile gösterilmesi yapılan çalışmalarda mümkün değildir. Bu anlamda TTML, STTL, HTML+TIME ve OWL Time dilleri incelenmiş ve hiçbirisinde yukarıdaki durumun çözülemediği görülmştür.
TML dilinde olay modellemesi:
TML dilinin hedefi zamanların modellenmesidir ancak zaman modellemesine konu olan olayların modellenmesi gerekmektedir. Bu anlamda TML dili, doğal dilden cümle modeli çıkarımının (syntax analysis) basit bir örneği olarak kabul edilebilir ve bir cümlenin anlambilimsel (semantic) olarak modellenmesi olarak kabul edilebilir. Bu anlamda bir olay aşağıdaki özellikleri taşıyabilir:
Fail (Subject Phrase) : Olayı gerçekleştiren Özne.
Mefûl (Object Phrase): Olayın etkisinde olan Nesne.
Zarf (Preposition Phrase): Olayı betimleyici özellikler.
Yukarıda tanımlanan özelliklerden zarflar bilindiği üzere doğal dillerde çeşitlilik gösterebilmektedir. Örneğin yer zarfı, zaman zarfı, hal zarfı, azlık çokluk zarfı gibi zarflar bulunmaktadır. TML dilinin hedefi bütün bu zarfların modellenmesi değil ancak zaman zarflarının detaylandırılmasıdır. Dolayısıyla yukarıdaki cümle özelliklerinden zaman zarfları bu yazıda da anlatılacağı üzere detaylandırılmış diğer zarflar daha farklı çalışmalarda detaylandırılabilmek üzere bırakılmıştır.
Bir zaman zarfının özellikleri:
Bir zaman mevhumu ya kesindir yada izâfîdir (göreceli). Yani bir olayın zamanını ya saat tarih olarak tam bilmek mümkündür yada başka bir olay veya zamana göre kerteriz alarak ifade etmek mümkündür.
Örneğin günlük bir gazetede “milenyum kutlamalarında küresel barış mesajları verildi” şeklinde bir cümle geçmesi durumunda okuyucu aksi durum belirtilmediği için en yakın milenyumu ve doğal olarak 1 ocak 2000 tarihini kafasında canlandırır. Bu cümlede geçen zaman kesindir. Farklı bir örnekte “bayram dönüşü trafik yine can aldı” şeklindeki bir gazete başlığını okuyan okuyucu, doğal olarak en yakın bayram tarihini kafasında canlandırmakta ve bu tarihten daha sonraki bir tarihin izafi olarak (göreceli olarak) olayın zamanını ifade ettiğini düşünmektedir. Ayrıca farklı bir kabul ise bu tarihin günler mertebesinde olduğudur. Yani bayram dönüşü ile kastedilen zaman en fazla bayramdan 5-10 gün uzak olabilir 1-2 yıl uzak olması düşünülemez. O halde son örnekte bir olayın kesin bir zamana atıfta bulunarak zamanı verilmiştir ancak olayın kesin zamanı belirli değildir.
Kesin zamanların ifadesi:
- Saniye (örneğin on saniye)
- Dakika (örneğin on geçe)
- Saat (örneğin onda)
- Gün (örneğin onu)
- Haftanın Günü (örneğin pazartesi)
- Hafta (örneğin ikinci haftası)
- Ay (örneğin mart (veya onuncu ay))
- Yıl (örneğin 2008)
Bilgilerinden biri veya bir kaçı ile ifade edilebilir. Bu listeye ayrıca zaman dilimi eklemek mümkündür. Örneğin GMT+2 PST veya EST gibi. Ayrıca yukarıdaki listeye ifade edilmek istenen zaman detayıda eklenmelidir. Örneğin bir bayram zamanı genelde günler mertebesinde, bir ders saati genelde saatler mertebesinde veya bir öğrencinin üniversitede okuma süresi genelde yıllar mertebesindedir. Dolayısıyla ifade edilmek istenen zamanın biriminin de yukarıdaki listeye eklenmesi gerekir.
Buraya kadar olan özellikler OWL Time dilinden alınmıştır.
Süre İfadesi (Duration):
Doğal dilde kesin zamanların yanında bir olayın süresi de ifade edilebilir. Örneğin “iki saatlik toplantı” tamlamasında, toplantı süresinin başlangıcı ile bitişi arasında iki saat olduğu ifade edilmek istenmiştir. Benzer şekilde “dört yıllık fakülte” tamlamasında ise fakülte eğitiminin süresinin 4 yıl olduğu anlatılmıştır.
O halde bir olayın süresi belirtilirken aşağıdaki yapıdan faydalanılabilir.
- Saniye (örneğin on saniyelik)
- Dakika (örneğin on dakikalık)
- Saat (örneğin on saatlik)
- Gün (örneğin on günlük)
- Hafta (örneğin iki haftalık)
- Ay (örneğin iki aylık)
- Yıl (örneğin dört yıllık)
Tekrarlı olaylar (Recurring events):
Doğal dilde rastlanan diğer bir zaman betimlemesi de olayın tekrarlı olması durumunda zaman bilgisinin tekrar içermesidir. Örneğin “her pazartesi” tamlamasında ifade edilen zaman pazartesidir ancak her hafta bu bilginin tekrarladığı sonucuna ulaşılır.
Tekrarlı olaylarda kesin veya muğlak bir zaman bilgisinin tekrar süresi kadar periyotta tekrarladığı anlaşılır. Bu durumda yukarıdaki bilgilere ilave olarak tekrarın periyodunu tutmak yeterlidir.
Bir tekrar periyodu aşağıdakilerden birisi veya bir kaçı ile ifade edilebilir:
- Saniye (örneğin iki saniyede bir)
- Dakika (örneğin onbeş dakikada bir)
- Saat (örneğin on saatte bir)
- Gün (örneğin beş günde bir)
- Hafta (örneğin iki haftada bir)
- Ay (örneğin iki ayda bir)
- Yıl (örneğin senede bir)
Muğlak tekrarlı olaylar:
Bazı durumlarda tekrar olaylarının kesin olmaması da söz konusudur. Örneğin “Bu ilacı günde üç kere alacaksınız” veya “sabah, akşam” veya “her baharda” şeklinde ifade edilen cümlelerdeki periyotlar kesin değildir. Bu periyotların yukarıdaki kesin tekrar süreleri ile ifade edilmesi de mümkün değildir.
Muğlak zamanlar:
Bir zamanın ifadesi sırasında yukarıda belirtilen kesin yargıların kullanılması gibi kesin olmayan yargılar da bulunabilir. Örneğin “sabah toplantı var” cümlesindeki sabah kelimesinin tam olarak saat, dakika cinsinden ifadesi zordur.
Bu problemin çözümü için belirsiz kelimelerin atıfta bulundukları zaman dilimlerinin alt ve üst limitlerinin tanımlanması gerekir. Bu tanım yapılmayarak karmaşık halde bırakılması da mümkündür. Yani TML dilinin herhangi bir bilgisayar işlemesinde kullanılması sırasında insanların zaten karıştırdığı ve kesin olmayan (ambiguous) kavramların bu şekilde bırakılması veya kesinleştirilmesi kararı yazılım tasarımcısınındır. TML dilin buradaki görevi şayet kesin yargılara bağlanmak istenirse buna imkan sağlamaktır. Örneğin gece kelimesi bazı insanlar için 20.00-04.00 arası bazı insanlar için ise 24.00-08.00 arası olabilir. Bu durum zaten doğal dil kullanılırken de insanlar arasında bazı ufak karışıklıklara sebep olmaktadır.
Muğlak zamanların kesin zamanlara bağlanması için TML dilinde bir olay tanımlamak ve bu olayın süresini girmek ve tekrarını girmek yeterli olacaktır. Örneğin akşam kelimesini bir olay olarak tanımlamak ve başlangıç zamanı olarak örneğin 18.00 bitiş zamanı olarak 21.00 girmek ve tekrar süresi olarak 1 gün girmek bu kelimeyi TML üzerinde işleme imkanı sağlar.
Benzer şekilde bahar kelimesi, Mart 15 ile Haziran 15 arasıdır şeklinde tanılamak ve olayın tekrarının yıllık olduğunu ifade etmek yeterli olacaktır.
Muğlak süreler:
Doğal dillerde ifade edilen olay süreleri de muğlak olabilmektedir. Örneğin “birazdan geleceğim” veya “bir kaç saate kadar geleceğim” veya “bir iki gün içerisinde” gibi zaman zarfları kesin bir süre belirtmemektedir. Bu tip süre ifade eden zaman mevhumları için bir önceki konuda da anlatıldığı gibi istenilirse kesin zamanlara dönmek mümkündür. Sürenin başlangıcı ve bitişi için aralık vermek ve buna göre işlem yapmak TML dilinde mümkündür.
Yukarıda geçen “birazdan”, “bir kaç saate kadar” veya ” bir iki gün içerisinde” zarfları geleceği belirsiz zarflardır. Yani olayların başlangıcı şimdiki zamandır ve kesindir. Ancak bitişleri belirsizdir. Bu durumun tersi olarak başlangıcı belirsiz sürelerde verilebilir. Örneğin “oynamaya bir iki saat önce başladık” veya “üç dört yıldır” gibi zarflarda ise olayın başlangıç zamanını ifade eden zarfların muğlak oluşu söz konusudur.
TML dilinde muğlak süreli olayların başlangıç ve/veya bitiş zamanı için yukarıda anlatılan muğlak zaman kullanılır. Buna göre muğlak bir zaman bir aralık içerisinde kesinleştirilmiş olur. Ancak bu durumda da dildeki karmaşa (ambiguity) kaldırılmış olur ve kelimenin farklı kişiler için ifade ettiği anlamlar kesinleştirilmiş olur.
Bir cümle yapısının özellikleri:
- olay (eylem, fiil)
- Özne (fail)
- obje (meful,nesne) -> Belirtli veya Belirtisiz Nesne
- Dolaylı Tümleç (Yüklemin yöneldiği veya bulunduğu varlık)
- Zarf Tümleci (eylemin özelliklerini belirtir. Aşağıda alt başlıkları verilmiştir)
- Yer Yön (olayın geçtiği mekan)
- Zaman (olayın vuku bulduğu an)
- Ölçü (olayın miktarı)
- Neden (ne, ne için,ne diye)
- Durum (Nasıl, ne durumda, ne biçimde)
- Soru
Bir eylem varlığı yukarıdaki özellikleri ve alt özellikleri bünyesinde barındırabilmelidir. Bu çalışma sadece zaman mevhumuna odaklı olduğu için diğer zarf türleri sadece birer varlık olarak tanımlanacak ancak detayları bu çalışmanın dışında tutulacaktır.
Zaman Zarflarının çeşitleri. Bu çalışma sırasında görülmüştür ki zaman zarfları kesin ve bağlı (izafi) olmak üzere ikiye ayrılabilir. Bir cümlenin zamanı ifade edilirken ya kesin bir zaman ya da başka bir cümle veya olaya bağlı bir zaman bulunabilmektedir. Bu tip zamanların özellikleri yukarıda verilmiştir. Şimdi bağlı zamanların özelliklerine bakalım.
Bağlı zamanların ifadesi:
Bir bağlı zaman başka bir olaya aşağıdaki şekillerde bağlanabilir. (bu bağ şekilleri şimdiye kadar belirlenenler olup ileride belki de arttırılabilir)
İzafi zaman grubu | Açıklama | Örnek |
Eş zamanlı olaylar | başlangıç ve bitiş bilinmemektedir. Olaylar aynı anda vuku bulmaktadır. | Ali oturuken aşye koşuyordu. |
Sonraki olaylar | bir olay kesin olarak başka bir olayın bitmesinden sonra başlamıştır | Ali eve geldikten sonra yemeğini yedi. |
Önceki olaylar | bir olay kesin olarak başka bir olayın başlamasından önce bitmiştir. Her önceki olay bir sonraki olay olarak ifade edilebilir sadece sırası farklıdır. Bu yüzden bu gruba gerek yoktur. | Ali çantasını hazırlayıp evden çıktı. |
Biri önce başlamış eş zamanlı olaylar | bir olay kesin olarak başka bir olaydan önce başlamıştır ve bu iki olayın bitişi bilinmemektedir | Ali eve geldiğinde ayşe kitap okuyordu. |
Biri sonra başlamış eş zamanlı olaylar | Bir olay diğerine göre kesin olarak sonra başlamış ve iki olayın çakışma zamanı olan durumdur. Bu gruptaki bütün olaylar, biri önce başlamış eş zamanlı olay olarak ifade edilebilir. | Ayşe kitap okurken ali eve geldi. |
Dolayısıyla olayların başlamaları, bitişleri ve sürekliliklerine göre diğer olaylara bağlanması mümkündür. O halde bir bağıl zaman ifadesinde aşağıdaki unsurlara göre bağlantı kurulabilir:
- Başlangıç zamanı
- Bitiş zamanı
- Devamlılığı, Sürekliliği
TML Dilinin Söz Dizimi (Syntax):
TML Dili XML kullanılarak geliştirilmiştir aşağıda örnek bir dil yapısı bulunmaktadır:
TML Dilinde bulunan etiketler (tag):
Etiket İsmi (tag) |
Üst Etiketi (parent) |
Özellikleri (attributes) |
Açıklama |
<tml> |
Null (Yok) |
Null (Yok) |
Dilin ana etiketidir. Bütün dil bu etiket içerisine yerleştirilir. |
<event> |
<tml> |
Name |
Bir olayı ifade etmek için kullanılır. Her olayın özellikleri bu etiket içerisinde bulunur ve isim özelliği vardır. Bu özellik içerisine eşsiz (unique) bir isim ataması yapılır. |
<subject> |
<event> |
Name |
Bir olayı gerçekleştiren faildir. Her fail olaylar arası ilişkiyi etkileyeceği için dilde eşsiz olarak isimlendirilmelidir. |
<object> |
<event> |
Name |
Bir olayın etkilediği mefuldur. Her meful olaylar arası ilişkiyi etkileyeceği için dilde eşsiz olarak isimlendirilmelidir. |
<complement> |
<event> |
Name Type |
Cümlenin tümlecidir. (dolaylı veya dolaysız ayrımı için type özelliği eklenmiştir) |
<adverb> |
<event> |
Name Type |
Her olay anlatan cümledeki her zarf için bir etiket bulunur.Eşsiz bir isme ve hangi zarf grubundan olduğunu belirten bir tipe sahiptir. Type:
|
<relative> |
<adverb> (Type == Time) |
Name Event |
Sadece zaman zarflarının alt özelliği olarak kullanılırlar. Bağıl zaman belirtmeye yararlar. Altında tanımlandığı olay ile başka bir olayın göreceli zamanlarını tutacağı için ayrıca bağlanacağı bu olayın ismini alır. |
<start> |
<adverb> (Type == Time) |
Name |
Bir olayın başlangıç zamanıdır. |
<end> |
<adverb> (Type == Time) |
Name |
Bir olayın bitiş zamanıdır. |
<state> |
<adverb> (Type == Time) |
Name |
Bir olayın sürekliliğini gösterir. |
<absolute> |
<start> <end> |
Name Obscureness |
Sadece zaman zarflarıınn alt özelliği olarak kullanılırlar. Kesin zaman belirtmeye yararlar. Ayrıca zamanın muğlaklığının tutulduğu bir parameter ile kesin olup olmadığı ifade edilebilir. |
<duration> |
<adverb> (Type == Time) |
Name Obscureness |
Bir sure belirtmeye yararlar. Olayın ne kadar zaman boyunca gerçekleştiğini anlatmak için kullanılırlar. Ayrıca zamanın muğlaklığının tutulduğu bir parameter ile kesin olup olmadığı ifade edilebilir. |
<recurrence> |
<adverb> (Type == Time) |
Name Obscureness |
Bir tekrar belirtmeye yararlar. Olayın ne kadar zamanla tekrar ettiğini anlatırlar. Ayrıca zamanın muğlaklığının tutulduğu bir parameter ile kesin olup olmadığı ifade edilebilir. |
<second> |
<absolute> <duration> <recurrence> |
Value |
Zaman birimleri için saniye değerini ifade eder. |
<minute> |
<absolute> <duration> <recurrence> |
Value |
Zaman birimleri için dakika değerini ifade eder. |
<hour> |
<absolute> <duration> <recurrence> |
Value |
Zaman birimleri için saat değerini ifade eder. |
<day> |
<absolute> <duration> <recurrence> |
Value |
Zaman birimleri için gün değerini ifade eder. |
<dayofweek> |
<absolute> |
Value |
Zaman birimlerindne bazılarında haftanın gününü ifade eder. |
<week> |
<duration> <recurrence> |
Value |
Bazı zaman birimleri için haftalık zaman birimini ifade eder. |
<month> |
<absolute> <duration> <recurrence> |
Value |
Zaman birimleri için aylık değeri ifade eder. |
<year> |
<absolute> <duration> <recurrence> |
Value |
Zaman birimleri için yıllık değeri ifade eder. |
TML Örnekleri:
Yukarıda anlatılan bilgiler ışığında ve verilen söz dizim tanımlarına göre aşağıda bir takım örnek cümleler ve bu cümlelerin TML dilindeki gösterimleri verilmiştir:
Ali okula geldi.
<tml>
<event Name=olay1>
<subject Name=ali />
<adverb Name=zarf1 Type=Location>
</adverb>
</event>
</tml>
Ali dün okula geldi.
<tml>
<event Name=olay1>
<subject Name=ali />
<adverb Name=zarf1 Type=Location>
</adverb>
<adverb Name=zarf2 Type=Time>
<start Name=zaman1>
</start>
<end Name=zaman2>
</end>
</adverb>
</event>
</tml>
Ali hergün okula gelir.
<tml>
<event Name=olay1>
<subject Name=ali />
<adverb Name=zarf1 Type=Location>
</adverb>
<adverb Name=zarf2 Type=Time>
<recurrence Name = r1 Obscureness>
<day value=1 />
</recurrence>
</adverb>
</event>
</tml>