Fenster schließen

Hinweise zur Benutzung

Wann ist es nützlich:

Eine Labfile-Ebene enthält Etikettierungen, die als Labeltyp auf einer anderen Ebene erscheinen sollen.

Wie wird es gemacht:

Die Ausgangsebene muss in der entsprechenden Templatedatei vorhanden sein. Weiterhin muss der Labeltyp in der Templatedatei bereits eingetragen sein.

In der Programmoberfläche selbst wird der Name der Templatedatei (ohne Extension) eingetragen. Der Name des neuen Labeltypen und der Name der Ebene, von welcher die Etikettierungen auf den Labeltypen übertragen werden sollen, muss angegeben werden. Über den Button Start wird das kopieren der Etikettierungen auf den Labeltyp für alle Äußerungen in der Sprachdatenbank gestartet.

 

Verwendung als AutoBuild


package require emu-script

##########################
#Dieses AutoBuild schreibt die Etikettierungen einer Ebene
#auf einen in der Templatedatei schon definierten Labeltypen= Parallelebene.
#Die Anzahl der Segmente muss auf den Ebenen übereinstimmen und
#die Zeitpunkte der Segmente müssen auf beiden Ebenen übereinstimmen.
#Haben die Ebenen die gleiche Anzahl an Segmenten werden nur die Segmente
#auf den Labeltyp übertragen, die die gleichen Zeitpunkte haben.

proc copysegmentstolabeltype {hier level newlabeltype} {
  set possible 1
  set faultsegment ""
  set segnos [$hier segments $newlabeltype]
  set segnos2 [$hier segments $level]
  if {"[llength $segnos]" == "[llength $segnos2]"} {
    foreach segment1 $segnos segment2 $segnos2 {
      set timelist1 [$hier seginfo $segment1 times]
      set timelist2 [$hier seginfo $segment2 times]
      foreach time1 $timelist1 time2 $timelist2 {
        set segpossible 1
        if {$time1 != $time2} {
          lappend faultsegment [$hier seginfo $segment2 label $level]; set possible 0
          set segpossible 0
        }
      }
      if {$segpossible} {
        $hier seginfo $segment1 label $newlabeltype [$hier seginfo $segment2 label $level]
      }
    }
  }

   if {!$possible} {     tk_messageBox -message "Following segments aren't copied \n $faultsegments"   }
  $hier write [$hier basename]
}

proc AutoBuildInit {templ} {
}

proc AutoBuild {templ hier} {
  copysegmentstolabeltype $hier level labtype

}


Für die rot markierten Levelnamen müssen die entsprechenden Levelnamen angegeben werden.

Download file

 

Fenster schließen