Yazan : Şadi Evren ŞEKER

TimeML, olaylara bağlı zaman kavramlarını ve bu zamanlar ve olaylar arasındaki ilişkileri tutmak için ağırlıklı olarak James Pustejovsky tarafından 2003 yılından beri geliştirilen XML tabanlı bir işaretleme dilidir. Dilin web üzerindeki sayfasına http://www.timeml.org adresinden erişilebilir.

Dilde temel olarak 3 seviye öğe bulunmaktadır bunlar:

  1. Zaman içerikli olayların saklandığı ve ağacın yapraklarını oluşturan olaylar
  2. Yaprakların üzerindeki ve zaman olayları üzerindek, zaman belirleyi değerler. Bu değerlere dilde sinyal (işaret) anlamı verilmiştir.
  3. Olaylar arasındaki bağlantılar (link)

1. Zamansal Kayıtlar (yaprak seviyesi):

<EVENT>: En alt seviyedeki etiketlerdir(tag) ve olayları tutmak için kullanılır. Genel olarak her olay bir fiildir ve DTD kayıdı aşağıda verilmiştir:

attributes ::= eid class
 
eid ::= ID
{eid ::= EventID
EventID ::= e<integer>}
class ::= 'OCCURRENCE' | 'PERCEPTION' 
| 'REPORTING' | 'ASPECTUAL' 
| 'STATE' | 'I_STATE' | 'I_ACTION'

Yukarıdaki tanımdan da anlaşılacağı üzere bir olayın ayırt edici bir ID değeri bulunmalı ve bu değer bir tam sayı (integer) olmalıdır. Ayrıca bir olay yukarıda tanımlanan sınıflardan (Class) bir tanesine dahil olabilir.

<MAKEINSTANCE>: Bir olayın vücut bulduğu etikettir. Buna göre bir olay tanımı yapılmış ancak gerçekleşmemiş veya birden çok kere gerçekleşmiş olabilir. İşte her gerçekleşme durumu bir <MAKEINSTANCE> etiketidir. Bu olay nesne yönelimli programlama‘daki nesne ve sınıf (object , class) ayrımı olarak düşünülebilir. Bu etiketin DTD tanımı da aşağıda verilmiştir:

attributes ::= eiid eventID tense aspect 
[polarity] [modality] [signalID] [cardinality]
 
eiid ::= ID
{eiid ::= EventInstanceID
EventInstanceID ::= ei<integer>}
eventID ::= IDREF
{eventID ::= EventID}
tense ::= 'PAST' | 'PRESENT' 
| 'FUTURE' | 'NONE'
aspect ::= 'PROGRESSIVE' | 'PERFECTIVE' 
| 'PERFECTIVE_PROGRESSIVE' | 'NONE'
polarity ::= 'NEG' | 'POS' {default, if absent, is "POS"}
modality ::= CDATA
signalID ::= IDREF
{signalID ::= SignalID}
cardinality ::= CDATA

Bir <MAKEINSTANCE> etiketi basitçe bir EventID alan ve bu Event’ten bir EventInstanceID döndüren mekanizma olarak düşünülebilir. Yukarıdaki dil tanımında tense ve aspect kavramlarının karşılıkları bu dilde ne yazık ki ingilizce dilinde bulunan zamanlara göre verilmiştir. Bu durum Türkçe gibi aynı zamanları içermeyen dillerin TimeML ile modellenmesini imkansız hale getirmektedir.

Örneğin ingilizce olarak aşağıda bir zaman (tense) ve ifadeler (aspect) verilmiştir:

tense="PAST"

Verb group

aspect=

was taught

"NONE"

was being taught

"PROGRESSIVE"

had been taught

"PERFECTIVE"

had been being taught (?)

"PERFECTIVE_PROGRESSIVE"

Bu etiket üzerindeki önemli bir nokta da SignalID ve Cardinality(sayısallık) özellikleridir. Örneğin her, ençok gibi kelimeler cardinality özelliğinin değerleridir.

<TIMEX3>: Zaman ifadesdir. Setzer’s (2001)’den alınan ifadeye TIMEX ve Ferro, et al. (2002)’den alınan ifadeye TIMEX2 isimleri verilmiş daha sonra yapılan güncellemeler ile bu iki ifadeden de farklı bir yapı kazandığı için TIMEX3 şeklinde isimlendirilmiştir. Kısaca bir zamanı ifade etmek için kullanılan etikettir.

attributes ::= tid type [functionInDocument] [beginPoint] 
[endPoint] [quant] [freq] [temporalFunction] 
(value | valueFromFunction) [mod] [anchorTimeID]
 
tid ::= ID
{tid ::= TimeID
TimeID ::= t<integer>}
type ::= 'DATE' | 'TIME' | 'DURATION' | 'SET'
beginPoint ::= IDREF
{beginPoint ::= TimeID}
endPoint ::= IDREF
{endPoint ::= TimeID}
quant ::= CDATA
freq ::= CDATA
{freq ::= duration}
functionInDocument ::= 'CREATION_TIME' | 'EXPIRATION_TIME' 
| 'MODIFICATION_TIME' | 'PUBLICATION_TIME' 
| 'RELEASE_TIME'| 'RECEPTION_TIME' 
| 'NONE' {default, if absent, is 'NONE'} 
temporalFunction ::= 'true' | 'false' 
{default, if absent, is 'false'}
{temporalFunction ::= boolean}
value ::= CDATA
{value ::= duration | dateTime | time | date | gYearMonth 
| gYear | gMonthDay | gDay | gMonth}
valueFromFunction ::= IDREF
{valueFromFunction ::= TemporalFunctionID
TemporalFunctionID ::= tf<integer>}
mod ::= 'BEFORE' | 'AFTER' | 'ON_OR_BEFORE' | 'ON_OR_AFTER' 
|'LESS_THAN' | 'MORE_THAN' 
| 'EQUAL_OR_LESS' | 'EQUAL_OR_MORE' | 'START' 
| 'MID' | 'END' | 'APPROX'
anchorTimeID ::= IDREF
{anchorTimeID ::= TimeID}

Yukarıdaki tanımlara uyan bazı örnekler aşağıda verilmiştir:

no more than 60 days (60 günden kısa)
<TIMEX3 tid="t1" type="DURATION" value="P60D" mod="EQUAL_OR_LESS">
no more than 60 days
</TIMEX3>
the dawn of 2000 (2000'in şafağı)
<TIMEX3 tid="t2" type="DATE" value="2000" mod="START">
the dawn of 2000
</TIMEX3>

twice a month (ayda iki kere)

<TIMEX3 tid="t3" type="SET" value="P1M" freq="2X">
twice a month
</TIMEX3>
three days every month (Her ay üç gün)
<TIMEX3 tid="t4" type="SET" value="P1M" quant="EVERY" freq="3D">
three days every month
</TIMEX3>
daily (Günlük veya hergün)
<TIMEX3 tid="t5" type="SET" value="P1D" quant="EVERY">
daily
</TIMEX3>
two weeks from June 7, 2003 (7 temmuz 2003'den itibaren 2 hafta)
<TIMEX3 tid="t6" type="DURATION" value="P2W" beginPoint="t61" endPoint="t62">
two weeks
</TIMEX3>
<SIGNAL sid="s1">
from
</SIGNAL>
<TIMEX3 tid="t61" type="DATE" value="2003-06-07">
June 7, 2003
</TIMEX3>
<TIMEX3 tid="t62" type="DATE" value="2003-06-21" temporalFunction="true" anchorTimeID="t6"/>
1992 through 1995 (1992'den 1995'e kadar veya 1992 ile 1995 arası)
<TIMEX3 tid="t71" type="DATE" value="1992">
1992
</TIMEX3>
<SIGNAL sid="s1">
through
</SIGNAL>
<TIMEX3 tid="t72" type="DATE" value="1995">
1995
</TIMEX3>
<TIMEX3 tid="t7" type="DURATION" value="P4Y" beginPoint="t71" endPoint="t72" temporalFunction="true"/>

 2. Sinyaller (işaretler)

<SIGNAL> etiketinin amacı zamanlar üzerindeki etkilerin belirlenmesidir. Örneğin tekrarlı olaylar veya süreli olaylar gibi zaman kavramları sinyal belirterek tanımlanabilir. DTD tanımı aşağıda verilmiştir:

attributes ::= sid
 
sid ::= ID
{sid ::= SignalID
SignalID ::= s<integer>}

3. Bağlantılar (Links)

Birden fazla olay üzerinde bir bağlantı tanımlamaya yarar. 3 ana grupta toparlanabilirler:

  • TLINK olayların bağlanmasını sağlar (örneğin “depremden sonra televizyonlar canlı yayına geçtiler”)
  • SLINK ikincil veya yan cümleden gelen bağlantılardır. Örneğin “Ali eve geç geliyor, akşam yemeklerinde evde olmuyor”
  • ALINK bakış ifade eden bağlantılardır. Örneğin”gemi batmaya başladı”, “kurtarma ekibi kurtulanları aramayı bıraktı”

Bu bağlantı etiketlerinin (tags) DTD tanımları aşağıda listelenmiştir:

<TLINK>

attributes ::= [lid] [origin] (eventInstanceID | timeID) [signalID] (relatedToEventInstance | relatedToTime) relType
 
lid ::= ID
{lid ::= LinkID
LinkID ::= l<integer>}
origin ::= CDATA
eventInstanceID ::= IDREF
{eventInstanceID ::= EventInstanceID}
timeID ::= IDREF
{timeID ::= TimeID}
signalID ::= IDREF
{signalID ::= SignalID}
relatedToEventInstance ::= IDREF
{relatedToEventInstance ::= EventInstanceID}
relatedToTime ::= IDREF
{relatedToTime ::= TimeID}
relType ::= 'BEFORE' | 'AFTER' | 'INCLUDES' | 'IS_INCLUDED' | 'DURING' |
                   'SIMULTANEOUS' | 'IAFTER' | 'IBEFORE' | 'IDENTITY' |
                   'BEGINS' | 'ENDS' | 'BEGUN_BY' | 'ENDED_BY'

 <SLINK>

attributes ::= [lid] [origin] [eventInstanceID] [signalID] subordinatedEventInstance relType
 
lid ::= ID
{lid ::= LinkID
LinkID ::= l<integer>}
origin ::= CDATA
eventInstanceID ::= IDREF
{eventInstanceID ::= EventInstanceID}
subordinatedEventInstance ::= IDREF
{subordinatedEventInstance ::= EventInstanceID}
signalID ::= IDREF
{signalID ::= SignalID}
relType ::= 'MODAL' | 'EVIDENTIAL' | 'NEG_EVIDENTIAL' 
          | 'FACTIVE' | 'COUNTER_FACTIVE'

<ALINK> 

attributes ::= [lid] [origin] eventInstanceID [signalID] relatedToEventInstance relType
 
lid ::= ID
{lid ::= LinkID
LinkID ::= l<integer>}
origin ::= CDATA
eventInstanceID ::= ID
{eventInstanceID ::= EventInstanceID}
signalID ::= IDREF
{signalID ::= SignalID}
relatedToEventInstance ::= IDREF
{relatedToEventInstance ::= EventInstanceID}
relType ::= 'INITIATES' | 'CULMINATES' | 'TERMINATES' | 'CONTINUES' | 'REINITIATES'

Bir cevap yazın

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