Your browser doesn't support the features required by impress.mod.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

2019-09-26 | Trier ITUG
TUSTEP-Labor

Request | #*export

Online https://digicademy.github.io/ITUG_2019/
Download https://github.com/digicademy/ITUG_2019/
Thomas Kollatz | Hans-Werner Bartz Digitale Akademie Mainz Twitter digicademy | CC-BY 4.0

00

TUSCRIPT – Arbeiten mit Skripten

TUSTEP

Die aktuelle Version von TUSTEP kann auf der offiziellen Downloadseite der Universität Tübingen heruntergeladen werden: http://www.tustep.uni-tuebingen.de/download.php.

Segmentdatei skripte

Sämtliche Skripte, die in diesem Workshop vorgestellt werden, befinden sich als Segmente in der Datei skripte.

Sie wird zum Download zur Verfügung gestellt.

Gib Kommando >

#da,skripte,ran-ap

Makrodatei anmelden und ggbf. einrichten

#de,skripte

Makrodatei definieren

#in,$

Inhalt der Makrodatei anzeigen

$segmentname

Skript ausführen, wenn $$! in Zeile 1 des Skriptes und Makrodatei definiert

$segmentname$segmentdatei

Skript ausführen

Gib Anweisung >

h,$,?

Inhaltsverzeichnis der Segmentdatei

r,$,segmentname

Skript speichern

h,$,segmentname

Skript holen | bearbeiten

x #ma,<editor>

Skript ausführen

x #*vemo,<editor>

Skript vergleichen

01

REQUEST

Versuchsaufbau

Die TUSCRIPT-Funktion REQUEST ermöglicht es "Inhalte" aus dem Internet zu holen. Im TUSTEP-LAB soll diese Funktion vorgestellt werden und die Möglichkeiten der Weiterverarbeitung von REQUEST-Daten bzw. Datenanreicherungen vorhandener Daten über Webanfragen gezeigt werden.

Syntax

REQUEST (url)
ruft eine HTML-Seite von einem WWW-Server ab oder ruft ein CGI-Script auf einem WWW-Server auf. Die URL der HTML-Seite bzw. des CGI-Scripts muss mit dem Argument url angegeben werden. Für das Argument url kann eine Variable oder eine in Anführungszeichen eingeschlossene Zeichenfolge angegeben werden.

Handbuch 502f.

Request (url)

$$ MODE TUSCRIPT,{}
url="http://www.example.com"
TRACE 
daten=REQUEST (url)
ENDTRACE

Segment REQUEST_01

Webinhalt in TUSTEP-Datei holen

DECODE | FILE/ERASE/PRINT

$$ MODE TUSCRIPT,{}
url="http://www.example.com"
daten=REQUEST (url)
daten=DECODE (daten,utf8)
ERROR/STOP CREATE ("example.tf",seq-o,-std-)
FILE/ERASE/PRINT "example.tf" = daten

Segment REQUEST_02

Webbild in lokale Datei laden

$$ MODE TUSCRIPT,{}
url4img="http://www.steinheim-institut.de/daten/picshha/xl/9014_HE_0307290335.jpg"
ERROR/STOP CREATE ("test.jpg",fdf-o,-std-)
FILE/ERASE/BINARY "test.jpg" = REQUEST (url4img)
BROWSE "test.jpg"

Segment REQUEST_03

Webinhalt in TUSTEP-Datei holen

READ/STREAM/VARIABLE/UTF8

$$ MODE TUSCRIPT,{}
url="http://www.deutschestextarchiv.de/book/download_xml/urbanitzky_electricitaet_1885"
daten=REQUEST (url)

ERROR/STOP CREATE ("dta_tei.tf",seq-o,-std-)

ACCESS q: READ/STREAM/variable/utf8 daten s,a+t+e,typ,stack
ACCESS z: WRITE/ERASE/STREAM "dta_tei.tf" s.z/u,a+t+e
 LOOP/999999999
  READ/EXIT q
  WRITE z
 ENDLOOP
ENDACCESS q
ENDACCESS/PRINT z  

Quelle Urbanitzky, Alfred von: Die Elektricität … | Segment REQUEST_04

Schnittstelle auslesen

Die API der digitalen Sturm-Edition

Über die Datenschnittstelle lassen sich sämtliche Text- und Registerdaten der Edition als TEI/XML oder TEI/JSON beziehen. Der Einstiegspunkt für diese API befindet sich unter folgender Adresse: https://sturm-edition.de/api/files

Eine Besonderheit stellt der files Einstiegspunkt dar. Über ihn kann jede XML-​Datei der STURM-​Edition im TEI/XML-​Volltext bezogen werden.

Technische Schnittstellen

API auslesen

$$ MODE TUSCRIPT,{}
api="https://sturm-edition.de/api/files"
files=REQUEST (api)
ERROR/STOP CREATE ("sturmfiles.tf",seq-o,-std-)
ACCESS q: READ/STREAM/RECORDS/variable/utf8 files s,a+t+e
ACCESS z: WRITE/ERASE/STREAM "sturmfiles.tf" s.z/u,a+t+e
 LOOP/999999999
  READ/EXIT q
  WRITE z
 ENDLOOP
ENDACCESS q
ENDACCESS/PRINT z

Segment STURM_01

Briefe auswählen

$$ MODE TUSCRIPT,{}
api="https://sturm-edition.de/api/files"
files=REQUEST (api)
ERROR/STOP CREATE ("sturmbriefe.tf",seq-o,-std-)
ACCESS q: READ/STREAM/RECORDS/variable/utf8 files s,a+t+e
ACCESS z: WRITE/ERASE/STREAM "sturmbriefe.tf" s.z/u,aa+t+ee
 LOOP/999999999
  READ/EXIT q
   IF (a.hn."idno") THEN
    version=GET_ATTRIBUTE (a,"version")
    IF (version==1) CYCLE
    type=GET_ATTRIBUTE (a,"type")
    IF (type=="letter") WRITE z
   ENDIF
 ENDLOOP
ENDACCESS q
ENDACCESS/PRINT z

Segment STURM_02

Briefe lokal speichern

$$ MODE TUSCRIPT,{}
api="https://sturm-edition.de/api/files"
files=REQUEST (api)

FETCH directory = TUSTEP_DSK
IF ("xml"!='project'.on.TUSTEP_DSK) ERROR/STOP CREATE ("xml",project,-std-)
pfad2xmldir=ADJUST_PATH (directory,"xml")
count=0
ERROR/STOP CREATE ("sturmbriefe.tf",seq-o,-std-)
ACCESS q: READ/STREAM/RECORDS/variable/utf8 files s,a+t+e
 LOOP/999999999
  READ/EXIT q
  IF (a.hn."idno"&&.ha."type") THEN
   type=GET_ATTRIBUTE (a,"type")
   IF (type=="letter"&&t.nc." v1 ") THEN
    url2file=ADJUST_PATH (api,t)
    pfad2file=ADJUST_PATH (pfad2xmldir,t)
    DEFINE "xml" = $pfad2file
    ERROR/STOP CREATE ("xml",FDF-o,-)
    FILE/ERASE/BINARY "xml" = REQUEST (url2file)
    ERROR/STOP CLOSE ("xml")
    count=count+1
    IF (count>9) EXIT
    PRINT count,": ",t
   ENDIF
  ENDIF
 ENDLOOP
ENDACCESS/PRINT q

Segment STURM_03

02

#*export – XML2RTF

Versuchsaufbau

Mit dem TUSTEP Modul #*export lassen sich nicht nur xml-strukturierte TUSTEP-Dateien nach Microsoft-Word exportieren, sondern mit diesem Modul lässt sich auch relativ einfach eine Lese/Druck-Fassung (Worddatei) von XML-Dokumente erzeugen. Im TUSTEP-LAB soll der Weg von einem einfachen (!) TEI-XML Dokument zu einer Druckfassung gemeinsam begangen werden.

Syntax

#*export
QUELLE Name der Quelldatei
ZIEL Name der Zieldatei
MODUS
LOESCHEN - | +
DEFINITIONEN Datei | -
OPTIONEN - | BLANK
ANZEIGEN - | +
PROTOKOLL + | datei

#*export,datei.tf,datei.rtf,lo=+,de=definitionen.tf,an=+

#*zebe,export

Einlesen, auswählen, … 

$$ MODE TUSCRIPT,{}
url="http://www.deutschestextarchiv.de/book/download_xml/urbanitzky_electricitaet_1885"
daten=REQUEST (url)
ERROR/STOP CREATE ("dta_lg.tf",seq-o,-std-)
STACK lg CREATE
ACCESS q: READ/STREAM/RECORDS/variable/utf8 daten s,a+t+e,typ,stack
ACCESS z: WRITE/ERASE/STREAM "dta_lg.tf" s.z/u,a+t+e
 LOOP/999999999
  READ/EXIT q
   IF (a.hn."lg") THEN
    IF (a.ha."type") a=START_TAG ("section")
     STACK lg PUSH a
    ENDIF
    IF (e.hn."lg") THEN
     STACK lg POP e
     e=END_TAG (e)
    ENDIF
    IF (stack.ct." <lg> ")  THEN
     t=EXCHANGE (t,":^&^#x{4}?;:#\[{-2=}\]:")
     WRITE z
    ENDIF
 ENDLOOP
ENDACCESS q
ENDACCESS/PRINT z

Segment dta_lg

… ausgeben

ERROR/STOP CREATE ("def4dta_lg.tf",seq-o,-std-)
MODE DATA
$$ FILE/ERASE "def4dta_lg.tf"
<dstyle font="Didot"/>
<pstyle name=head style=b/>
<alias alias=lb tag=br/>
<pstyle name=lg linefeed=18 ignore=n/>
<cstyle name=l style=ni ignore=n/>
<cstyle name=hi style=i ignore=rendition/>
$$ ENDFILE
$$ MODE TUSCRIPT,{}
ERROR/STOP CREATE ("dta_lg.rtf",fdf-o,-std-)
EXECUTE #*export,dta_lg.tf,dta_lg.rtf,
                 lo=+,de=def4dta_lg.tf,an=+

Segment dta_lg

tobedone
tobedone

Zieldatei dta_lg.rtf

<lg> exportiert in RTF-Datei

Die TEI-Elemente <hi> <l> <head> werden beim *export über festgelegte Definitionen in Form von Formatvorlagen übernommen.
<dstyle font="Didot"/>
<pstyle name=head style=b/>
<alias alias=lb tag=br/>
<pstyle name=lg linefeed=18 ignore=n/>
<cstyle name=l style=ni ignore=n/>
<cstyle name=hi style=i ignore=rendition/>

xml2rtf

$$ MODE TUSCRIPT,{}
SECTION request
url="http://www.deutschestextarchiv.de/book/download_xml/urbanitzky_electricitaet_1885"
daten=REQUEST (url)
ERROR/STOP CREATE ("dta_all.tf",seq-o,-std-)
STACK lg CREATE
ACCESS q: READ/STREAM/RECORDS/variable/utf8 daten s,a+t+e,typ,stack
ACCESS z: WRITE/ERASE/STREAM "dta_all.tf" s.z/u,a+t+e
 LOOP/999999999
  READ/EXIT q
  IF (stack.nc." <teiHeader> "," <back> "," <front> ") THEN
   t=EXCHANGE (t,":^&^#x{4}?;:#\[{-2=}\]:")
   IF (a.hn."lg") THEN
    IF (a.ha."type") a=START_TAG ("")
    STACK lg PUSH a
   ENDIF
   IF (e.hn."lg") THEN
    STACK lg POP e
    e=END_TAG (e)
   ENDIF
   WRITE z
  ENDIF
 ENDLOOP
ENDACCESS q
ENDACCESS/PRINT z
ENDSECTION
DO REQUEST

Segment dta_all

Definitionen

ERROR/STOP CREATE ("def4dta_all.tf",seq-o,-std-)
MODE DATA
$$ FILE/ERASE "def4dta_all.tf"
<alias alias=TEI tag=document/>
<alias alias=lb tag=br/> <alias alias=pb tag=dummy/> <alias alias=cb tag=dummy/>
<alias alias=hi tag=dummy ignore=rendition/>
<alias alias=formula tag=dummy/> <alias alias=milestone tag=dummy/>
<alias alias=figure tag=dummy/>
<alias alias=div tag=dummy/> <alias alias=fw tag=ignore/>
<alias alias=body tag=section/> <alias alias=text tag=dummy/>
<alias alias=table tag=ignore/>
<alias alias=row tag=tr/> <alias alias=cell tag=tc/>
<alias alias=note tag=fn ignore=place'n'xml:id'next'prev/>
<alias alias=list tag=dummy/> <alias alias=choice tag=dummy/>
<alias alias=space tag=dummy/> <alias alias=item tag=li/>
<pstyle name=head before=18 after=18 style=b/>
<pstyle name=lg linefeed=18 ignore=n/>
<cstyle name=sic end="[!]"/> <cstyle name=supplied start="[[" end="]]"/>
<cstyle name=corr start="^<" end="^>"/> <cstyle name=l style=ni ignore=n/> 
$$ ENDFILE
$$ MODE TUSCRIPT,{}
ERROR/STOP CREATE ("dta_all.rtf",FDF-o,-std-)
EXECUTE #*export,dta_all.tf,dta_all.rtf,lo=+,de=def4dta_all.tf,an=+

Zieldatei dta_lg.rtf | Segment dta_all

F I N I S

סוף דבר הכל נשמע

Präsentationen

Software