I forgot to mention that cut is from strings. Hence, you should
require 'strings' first, before running my other lines. On Wed, Nov 28, 2012 at 2:43 PM, June Kim (김창준) <junea...@gmail.com> wrote: > Hi Bo, > > Firstly on the database file: > > I suppose there is no blank line in between the lines of the file. > I suppose AMEN at the end was actually, 0 AMEN, instead. > > Now a quick and dirty version -- notice that this doesn't fully implement > the basic code exactly, but you'll get the key idea. > > 'key val'=: <"1 |: >({. , ([,' ',])&.>/@:}.)@:(' '&cut) each LF cut > 1!:1<jpath'~user/temp/CREDO' NB. I put the CREDO file here > search=:*./@(+./)@( [ (= , '0'&=@,: ) ({.~ #)~ ) > val#~key search every < '13522' NB. query for 13522 > > > June > > > On Tue, Nov 27, 2012 at 3:31 PM, Bo Jacoby <bojac...@yahoo.dk> wrote: > >> Dear J'ers. >> >> At the Norddata conference in Göteborg in the summer 1989 I gave a >> lecture (in Danish) on Ultraflexible Database Structure and Artificial >> Catholicism. >> >> >> It contained this 8-liner in BASIC. >> >> 1 INPUT;C$: IF C$="" THEN END >> 2 OPEN "CREDO" FOR INPUT AS 1: PRINT":"; >> 3 IF EOF(1) THEN CLOSE: PRINT: GOTO 1 >> 4 LINE INPUT#1,A$: B$=C$ >> 5 IF A$=""THEN A%=-1 ELSE A%=ASC(A$)-48: A$=MID$(A$,2) >> 6 IF B$=""THEN B%=-1 ELSE B%=ASC(B$)-48: B$=MID$(B$,2) >> 7 IF A%<0 THEN PRINT" ";A$;: GOTO 3 >> 8 IF A%=0 OR B%=0 OR A%=B% THEN 5 ELSE 3 >> >> I have not yet been able to translate this program into J, mainly (I >> think) because I have no experience in reading textfiles from J. I request >> your assistance! The line numbers in the file must be separated from the >> rest of the lines. The line numbers may be padded to the right with zeroes. >> >> >> The program is a database browser. The question put to the program is a >> number, and the answer from the program consists of the lines in the >> database having numbers compatible to that of the question. Like this: >> >> 1: CREDO AMEN >> 2: CONFITEOR AMEN >> 3: EXPECTO AMEN >> 0: CREDO CONFITEOR ET EXPECTO AMEN >> >> The digit zero is wild card character. A zero in the question indicate >> that the answer has many words, and zero in a word in the database indicate >> that this word answers many questions. So "AMEN" is included in all >> answers. Like this: >> >> 11: CREDO IN DEUM AMEN >> 12: CREDO IN JESUM AMEN >> 13: CREDO IN SPIRITUM AMEN >> 14: CREDO ECCLESIAM AMEN >> 15: CREDO AMEN >> 10: CREDO IN DEUM ET IN JESUM ET IN SPIRITUM ET ECCLESIAM AMEN >> 21: CONFITEOR BAPTISMA AMEN >> 22: CONFITEOR AMEN >> 31: EXPECTO RESURRECTIONEM AMEN >> 32: EXPECTO VITAM AMEN >> 33: EXPECTO AMEN >> 30: EXPECTO RESURRECTIONEM ET VITAM AMEN >> 01: CREDO IN DEUM CONFITEOR BAPTISMA ET EXPECTO RESURRECTIONEM AMEN >> 13500: CREDO IN SPIRITUM QUI CUM PATRE ET FILIO SIMUL ADORATUR ET >> GLORIFICATUR AMEN >> >> 13510: CREDO IN SPIRITUM QUI CUM PATRE ET FILIO SIMUL ADORATUR AMEN >> 13520: CREDO IN SPIRITUM QUI CUM PATRE ET FILIO SIMUL GLORIFICATUR AMEN >> 13501: CREDO IN SPIRITUM QUI CUM PATRE ADORATUR ET GLORIFICATUR AMEN >> 13502: CREDO IN SPIRITUM QUI CUM FILIO ADORATUR ET GLORIFICATUR AMEN >> 13511: CREDO IN SPIRITUM QUI CUM PATRE ADORATUR AMEN >> 13512: CREDO IN SPIRITUM QUI CUM FILIO ADORATUR AMEN >> 13521: CREDO IN SPIRITUM QUI CUM PATRE GLORIFICATUR AMEN >> 13522: CREDO IN SPIRITUM QUI CUM FILIO GLORIFICATUR AMEN >> >> The database is this. >> 1 CREDO >> 11 IN >> 111 UNUM >> 11 DEUM >> 112 PATREM >> 1121 OMNIPOTENTEM >> 113 FACTOREM >> 1131 CÆLI >> 1139 ET >> 1132 TERRÆ >> 11331 VISIBILIUM >> 1133 OMNIUM >> 11339 ET >> 11332 INVISIBILIUM >> 19 ET >> 12 IN >> 1211 UNUM >> 1211 DOMINUM >> 12 JESUM >> 1211 CHRISTUM >> 1212 FILIUM >> 1212 DEI >> 12121 UNIGENITUM >> 1219 ET >> 1213 EX >> 1213 PATRE >> 1213 NATUM >> 12131 ANTE >> 121311 OMNIA >> 12131 SÆCULA >> 1221 DEUM >> 12211 DE >> 12211 DEO >> 1222 LUMEN >> 12221 DE >> 12221 LUMINE >> 1223 DEUM >> 12231 VERUM >> 12232 DE >> 12232 DEO >> 122321 VERO >> 1231 GENITUM >> 12311 NON >> 12311 FACTUM >> 1232 CONSUBSTANTIALEM >> 1232 PATRI >> 12321 PER >> 12321 QUEM >> 12321 OMNIA >> 12321 FACTA >> 12321 SUNT >> 124 QUI >> 124101 PROPTER >> 124101 NOS >> 12410101 HOMINES >> 124109 ET >> 124102 PROPTER >> 12410201 NOSTRAM >> 124102 SALUTEM >> 12411 DESCENDIT >> 1241101 DE >> 1241101 CÆLIS >> 12419 ET >> 12412 INCARNATUS >> 12412 EST >> 1241201 DE >> 1241201 SPIRITU >> 124120101 SANCTO >> 1241202 EX >> 1241202 MARIA >> 124120201 VIRGINE >> 12419 ET >> 1241301 HOMO >> 12413 FACTUS >> >> 12413 EST >> 124211 CRUCIFIXUS >> 1242101 ETIAM >> 1242101 PRO >> 1242101 NOBIS >> 1242102 SUB >> 1242102 PONTIO >> 1242102 PILATO >> 124212 PASSUS >> 124219 ET >> 124213 SEPULTUS >> 12421 EST >> 12429 ET >> 12422 RESURREXIT >> 124221 TERTIA >> 124221 DIE >> 124222 SECUMDUM >> 124222 SCRIPTURAS >> 12429 ET >> 12423 ASCENDIT >> 124231 IN >> 124231 CÆLUM >> 12424 SEDET >> 124241 AD >> 124241 DEXTERAM >> 124241 PATRIS >> 12429 ET >> 124251 ITERUM >> 12425 VENTURUS >> >> 12425 EST >> 124252 CUM >> 124252 GLORIA >> 124253 JUDICARE >> 1242531 VIVOS >> 1242539 ET >> 1242532 MORTUOS >> 125 CUJUS >> 125 REGNI >> 125 NON >> 125 ERIT >> 125 FINIS >> 19 ET >> 13 IN >> 13 SPIRITUM >> 131 SANCTUM >> 132 DOMINUM >> 139 ET >> 133 VIVIFICANTEM >> 134 QUI >> 134 EX >> 1341 PATRE >> 1342 FILIO >> 1349 QUE >> 134 PROCEDIT >> 135 QUI >> 135 CUM >> 13501 PATRE >> 13509 ET >> 13502 FILIO >> 13509 SIMUL >> 1351 ADORATUR >> 1359 ET >> 1352 GLORIFICATUR >> 136 QUI >> 136 LOCUTUS EST >> 1361 PER >> 1361 PROPHETAS >> 19 ET >> 141 UNAM >> 142 SANCTAM >> 143 CATHOLICAM >> 149 ET >> 144 APOSTOLICAM >> 14 ECCLESIAM >> 2 CONFITEOR >> 211 UNUM >> 21 BAPTISMA >> 212 IN >> 212 REMISSIONEM >> 2121 PECCATORUM >> 9 ET >> 3 EXPECTO >> 31 RESURRECTIONEM >> 311 MORTUORUM >> 39 ET >> 32 VITAM >> 3211 VENTURI >> 321 SÆCULI >> AMEN >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm