• Bağış
  • TimeML

    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:

    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'

    Benzer Yazılar:

    Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'TimeML' isimli yazı 15 Jul 2008 tarihinde, saat: 20:23 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 421 defa okunmuştur.

    Benzer yazıları Bilgisayar Standartları, Doğal Dil İşleme (NLP), yapay zeka (artificial intelligence) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


    Category: Bilgisayar Standartları, Doğal Dil İşleme (NLP), yapay zeka (artificial intelligence)

    Leave a Reply