[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