[Tustep-Liste] Springen durch Planquadrate mit TUSTEP

Thomas Kollatz kol at steinheim-institut.org
Di Apr 22 01:04:33 CEST 2008


Liebe TUSTEP-Gemeinde,

weil es mir so grossen Spass gemacht hat das nachfolgende Script  
auszutüfteln, will ich sie ungefragt an meiner Freude teilhaben lassen.

Erst mal der Link zum Ergebnis:

http://www.steinheim-institut.de:50580/cgi-bin/epidat? 
function=pq&pq=GQ&sel=hha

Für die, die jetzt noch wissen will, wie's gemacht wurde, folgt nun  
das kleine Skript, .... vielleicht hat ja irgendwer mal eine ähnliche  
Navigations-Aufgabe:

Die Idee: Ein grosses epigraphisches Korpus sollte nicht nur  
chronologisch, nach Namen oder über umfangreiche Suchoptionen  
erschlossen, sondern auch ein topographischer Lageplan sinnvoll mit  
der Edition der Inschriften verbunden werden.
Der Plan hat 255 Planquadrate, von denen aber nur 120 mit insgesamt  
5923 Inschriften belegt sind. In einem ersten Schritt habe ich  
mittels TUSCRIPT ermitteln lassen, auf welche Planquadrate sich die  
6000 Inschriften überhaupt verteilen, daraus habe ich eine Matrix der  
Planquadrate erstellt (+=belegt; -=nicht belegt).

Mit dem folgenden  Skript werden "sinnvolle" Sprünge ermittelt  
werden, d.h. von einem belegten auf ein belegtes Feld, nicht aber auf  
ein Feld, das keine Inschriften birgt, das frustriert die Nutzer nur ...

Wird z.B.

pq=GQ

ans Skript im Segment "Plan1" übergeben,
wird die Belegung der umliegenden Planquadrate ausgegeben:

r=+,o=+,u=+,l=-


Auszug B zeigt wie das Segment "plan1" in ein größeres CGI-Skript  
eingebunden wurde,
und die Variable plan (mit der Matrix der Planquadrate) html-tauglich  
aufbereitet wird,
wobei das aktive Planquadrat markiert werden soll.

Herzliche Grüße
THOMAS KOLLATZ


---- Segment plan1 (vollständig)

$$ MODE TUSCRIPT
=$
$$ SET plan = *
0 P O N M L K I H G F E D C B A
A - - + + + - - - - - - - - - -
B - - + + + + + - - - - - - - -
C - - + + + + + + + - - - - - -
D - + + + + + + + + + + + - - -
E + + + + + + + + + + + + - - -
F + + + + + + + + + + + + - + +
G + + + + + + + + + + + + - + +
H + + + + + - - + + + + + + + +
I - - - - - - - + + + + + - + +
K - - - - - - - + + + + + + + +
L - - - - - - - + + + + + + - -
M - - - - - - - + + + + + + + -
N - - - - - - - - + + + + + + -
O - - - - - - - - + + + - - - -
P - - - - - - - - + + + - - - -
Q - - - - - - - - + + + - - - -
R - - - - - - - - + + - - - - -
$$=-
SET pqrechts=pqoben=pqunten=pqlinks=o=u=l=r="-"
SET quer = EXTRACT (pq,1,2)
SET hoch = EXTRACT (pq,2,0)
BUILD S_TABLE quer = ":{quer}:"
SET x = SELECT (plan,1)
SET x = SPLIT (x, ": :")
SET posquer = INDEX  (x, quer)
SET nix = SPLIT (plan,"-  
-",y,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16)
SET poshoch  = INDEX (y,hoch)
SET posoben  = poshoch-1
SET posunten = poshoch+1
SET poslinks = posquer-1
SET posrechts= posquer+1
SET xquer=SELECT (plan,#poshoch)
SET xquer = SPLIT (xquer,": :")
SET l = SELECT (xquer,#poslinks)
IF (l.eq."+") THEN
SET xlinks = SELECT (x,#poslinks)
SET pqlinks= CONCAT (xlinks,hoch)
ENDIF
SET r = SELECT (xquer,#posrechts)
IF (r.eq."+") THEN
SET xrechts= SELECT (x,#posrechts)
SET pqrechts=CONCAT (xrechts,hoch)
ENDIF
SET row = CONCAT ("y",posquer)
SET o = SELECT (@row,#posoben)
IF (o.eq."+") THEN
SET yoben = SELECT (y,#posoben)
SET pqoben = CONCAT (quer,yoben)
ENDIF
SET u = SELECT (@row,#posunten)
IF (u.eq."+") THEN
SET yunten= SELECT (y,#posunten)
SET pqunten = CONCAT (quer,yunten)
ENDIF


---- Auschnitt B:  cgi-script ----

INCLUDE plan1
BUILD X_TABLE p1 = *
DATA !+!<<td class="belegt">><</td>>!
DATA !-!<<td class="unbelegt">><</td>>!
DATA !</!<<td class="achse">>>=01<</td>>!
DATA !0!<<td class="blank">><</td>>!
DATA !1!<<td class="aktiv">><</td>>!
SET reihe=""
LOOP p1=plan
IF (p1.sw.hoch) THEN
SET r2=SPLIT  
(p1,": :",t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16)
SET thit = CONCAT ("t",posquer)
SET @thit = EXCHANGE (@thit, ":+:1:")
SET p1 = JOIN (t1,"  
",t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16)
ENDIF
SET r1=EXCHANGE (p1,p1)
SET reihe = REPLACE (reihe,0,r1)
ENDLOOP
SET reihe = SPLIT (reihe)
....
DATA <tr>
IF (o.eq."+") THEN
DATA <td colspan="3" style="text-align:center; ">{link}<a  
href='{cgiscript}?function=pq^&sel={sel}^&pq={pqoben} 
^#plantop'>{pqoben}</a> </td>
ELSE
DATA <td colspan="3" style="text-align:center; background- 
color:silver;">^ </td>
ENDIF
DATA </tr>
....	
-----



drs Thomas Kollatz  - wissenschaftlicher Mitarbeiter / research  
assistant
Salomon Ludwig Steinheim-Institut fuer deutsch-juedische Geschichte
D-47057 Duisburg, Geibelstr. 41, T 203-370071 | 2151-5137430,  F  
203-373380
Karte <http://maps.google.de/maps?f=q&hl=de&q=Geibelstr.+41,+Du>
Homepage <http://steinheim-institut.de/das_institut/mitarbeiter/ 
kollatz/index.xml>
Epigraphische Datenbank <http://www.steinheim-institut.de:50580/cgi- 
bin/epidat>





-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://lists.itug.de/pipermail/tustep-liste/attachments/20080422/0ba08941/attachment.htm>


Mehr Informationen über die Mailingliste Tustep-Liste