| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 1 | SRC_DIR ?= test/resources/DNB |
| 2 | BUILD_DIR = build |
| 3 | TARGET_DIR ?= target |
| Marc Kupietz | b769699 | 2024-03-18 17:41:15 +0100 | [diff] [blame] | 4 | DEPLOY_HOST ?= compute.ids-mannheim.de |
| 5 | DEPLOY_USER ?= korap |
| 6 | DEPLOY_PATH ?= /export/netapp/korap4dnb |
| Marc Kupietz | 48c6a68 | 2024-03-24 15:27:08 +0100 | [diff] [blame] | 7 | MAX_THREADS ?= $(shell nproc) |
| Marc Kupietz | 94bbe6b | 2024-04-10 20:35:48 +0200 | [diff] [blame] | 8 | YY ?= 18 |
| Marc Kupietz | 975996e | 2024-04-13 13:46:37 +0200 | [diff] [blame] | 9 | MAKE ?= make -j $(shell nproc) |
| Marc Kupietz | d059d2d | 2024-04-15 18:58:39 +0200 | [diff] [blame^] | 10 | KORAPXML2CONLLU_HEAP ?= $(shell echo "$$(($$(nproc) * 1625))") |
| 11 | KORAPXML2CONLLU ?= java -Xmx$(KORAPXML2CONLLU_HEAP)m -jar lib/korapxml2conllu.jar |
| Marc Kupietz | f62bc90 | 2024-04-14 15:59:44 +0200 | [diff] [blame] | 12 | SAXON ?= java -cp lib/saxon9ee.jar:lib/xml-resolver-1.2.jar net.sf.saxon.Transform -expand:off -catalog:"lib/dtds/xhtml11/xhtmlcatalog.xml;lib/dtds/xhtml/dtd/xhtmlcatalog.xml" |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 13 | |
| Marc Kupietz | 157e079 | 2024-04-13 12:46:42 +0200 | [diff] [blame] | 14 | .PHONY: all clean test i5 i5valid krill index deploy server-log server-status |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 15 | |
| Marc Kupietz | 8ea9228 | 2024-03-24 14:55:55 +0100 | [diff] [blame] | 16 | .PRECIOUS: %.zip %.tree_tagger.zip %.ud.zip %.marmot-malt.zip %.spacy.zip %.i5.xml %.tar |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 17 | |
| Marc Kupietz | b769699 | 2024-03-18 17:41:15 +0100 | [diff] [blame] | 18 | .DELETE_ON_ERROR: |
| 19 | |
| Marc Kupietz | feed26a | 2024-03-17 19:16:23 +0100 | [diff] [blame] | 20 | all: index |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 21 | |
| Marc Kupietz | 94bbe6b | 2024-04-10 20:35:48 +0200 | [diff] [blame] | 22 | krill: $(TARGET_DIR)/dnb$(YY).krill.tar |
| 23 | index: $(TARGET_DIR)/dnb$(YY).index.tar.xz |
| Marc Kupietz | 3d82f56 | 2024-03-16 10:19:03 +0100 | [diff] [blame] | 24 | |
| Marc Kupietz | 13c986a | 2024-04-15 06:47:50 +0200 | [diff] [blame] | 25 | $(TARGET_DIR)/dnb$(YY).i5.xml: $(TARGET_DIR)/dnb$(YY).pre.i5.xml xslt/pass2.xsl xslt/pass3.xsl |
| Marc Kupietz | 28f48e1 | 2024-04-14 16:17:05 +0200 | [diff] [blame] | 26 | $(SAXON) -xsl:xslt/pass2.xsl $< | $(SAXON) -xsl:xslt/pass3.xsl - > $@ |
| Marc Kupietz | fa445da | 2024-03-16 10:46:22 +0100 | [diff] [blame] | 27 | |
| Marc Kupietz | 28f48e1 | 2024-04-14 16:17:05 +0200 | [diff] [blame] | 28 | |
| 29 | $(TARGET_DIR)/dnb$(YY).pre.i5.xml: $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*.epub)) |
| Marc Kupietz | d101e47 | 2024-04-14 11:54:34 +0200 | [diff] [blame] | 30 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*0.epub)) > $(TARGET_DIR)/filelist$(YY).txt |
| 31 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*1.epub)) >> $(TARGET_DIR)/filelist$(YY).txt |
| 32 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*2.epub)) >> $(TARGET_DIR)/filelist$(YY).txt |
| 33 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*3.epub)) >> $(TARGET_DIR)/filelist$(YY).txt |
| 34 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*4.epub)) >> $(TARGET_DIR)/filelist$(YY).txt |
| 35 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*5.epub)) >> $(TARGET_DIR)/filelist$(YY).txt |
| 36 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*6.epub)) >> $(TARGET_DIR)/filelist$(YY).txt |
| 37 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*7.epub)) >> $(TARGET_DIR)/filelist$(YY).txt |
| 38 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*8.epub)) >> $(TARGET_DIR)/filelist$(YY).txt |
| 39 | @echo $(patsubst $(SRC_DIR)/%.epub,$(TARGET_DIR)/%.i5.xml,$(wildcard $(SRC_DIR)/*9.epub)) >> $(TARGET_DIR)/filelist$(YY).txt |
| Marc Kupietz | 28f48e1 | 2024-04-14 16:17:05 +0200 | [diff] [blame] | 40 | sed -i -e 's/ /\n/g; /^$$/d' $(TARGET_DIR)/filelist$(YY).txt |
| Marc Kupietz | 94bbe6b | 2024-04-10 20:35:48 +0200 | [diff] [blame] | 41 | head -n -1 xslt/idsCorpus-template.xml | sed -e 's/{YY}/$(YY)/' > $@ |
| Marc Kupietz | b926f25 | 2024-04-14 08:57:11 +0200 | [diff] [blame] | 42 | @while IFS= read -r f; do \ |
| 43 | if head -500 "$$f" | grep -Eq '<pubDate type="year">..$(YY)'; then \ |
| 44 | cat "$$f" >> $@; \ |
| 45 | fi; \ |
| 46 | done < $(TARGET_DIR)/filelist$(YY).txt |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 47 | tail -n 1 xslt/idsCorpus-template.xml >> $@ |
| 48 | |
| Marc Kupietz | 94bbe6b | 2024-04-10 20:35:48 +0200 | [diff] [blame] | 49 | test: $(TARGET_DIR)/dnb$(YY).i5.xml |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 50 | xmllint --noout --valid $< |
| 51 | |
| Marc Kupietz | 157e079 | 2024-04-13 12:46:42 +0200 | [diff] [blame] | 52 | i5: $(TARGET_DIR)/dnb$(YY).i5.xml |
| 53 | xmllint --noout $< |
| 54 | |
| 55 | i5valid: $(TARGET_DIR)/dnb$(YY).i5.xml |
| 56 | xmllint --noout --valid $< |
| 57 | |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 58 | $(BUILD_DIR)/%: $(SRC_DIR)/%.epub |
| 59 | mkdir -p $@ |
| 60 | echo "Converting $< to $@" |
| 61 | unzip -q -o $< -d $@ |
| Marc Kupietz | 51714ed | 2024-04-13 12:47:39 +0200 | [diff] [blame] | 62 | chmod -R ug+rwX $@ |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 63 | |
| Marc Kupietz | dfbc3f4 | 2024-03-16 11:46:41 +0100 | [diff] [blame] | 64 | $(TARGET_DIR)/%.i5.xml: $(BUILD_DIR)/% xslt/epub2i5.xsl xslt/idsCorpus-template.xml |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 65 | mkdir -p $(TARGET_DIR) |
| 66 | echo "Converting $< to $@" |
| Marc Kupietz | 28f48e1 | 2024-04-14 16:17:05 +0200 | [diff] [blame] | 67 | $(SAXON) -xsl:xslt/epub2i5.xsl $(shell find $< -name "*.opf") > $@ |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 68 | |
| 69 | %.zip: %.i5.xml |
| 70 | tei2korapxml -l warn -s -tk - < $< > $@ |
| 71 | |
| 72 | %.tree_tagger.zip: %.zip |
| Marc Kupietz | fa445da | 2024-03-16 10:46:22 +0100 | [diff] [blame] | 73 | $(KORAPXML2CONLLU) $< | pv | docker run --rm -i korap/conllu2treetagger -l german | conllu2korapxml > $@ |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 74 | |
| 75 | %.spacy.zip: %.zip |
| Marc Kupietz | fa445da | 2024-03-16 10:46:22 +0100 | [diff] [blame] | 76 | $(KORAPXML2CONLLU) $< | pv | docker run --rm -i korap/conllu2spacy | conllu2korapxml > $@ |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 77 | |
| Marc Kupietz | 8ea9228 | 2024-03-24 14:55:55 +0100 | [diff] [blame] | 78 | models/de.marmot: |
| 79 | mkdir -p models |
| Marc Kupietz | e8c80f3 | 2024-03-24 15:27:28 +0100 | [diff] [blame] | 80 | curl -sL -o $@ https://cistern.cis.lmu.de/marmot/models/CURRENT/spmrl/de.marmot |
| Marc Kupietz | 8ea9228 | 2024-03-24 14:55:55 +0100 | [diff] [blame] | 81 | |
| 82 | models/german.mco: |
| 83 | mkdir -p models |
| Marc Kupietz | e8c80f3 | 2024-03-24 15:27:28 +0100 | [diff] [blame] | 84 | curl -sL -o $@ https://corpora.ids-mannheim.de/tools/$@ |
| Marc Kupietz | 8ea9228 | 2024-03-24 14:55:55 +0100 | [diff] [blame] | 85 | |
| 86 | %.marmot-malt.zip: %.zip models/de.marmot models/german.mco |
| Marc Kupietz | 94bbe6b | 2024-04-10 20:35:48 +0200 | [diff] [blame] | 87 | $(KORAPXML2CONLLU) -T $(MAX_THREADS) -t marmot:models/de.marmot -P malt:models/german.mco $< | tee $(TARGET_DIR)/dnb$(YY).marmot-malt.conllu | conllu2korapxml > $@ |
| Marc Kupietz | 8ea9228 | 2024-03-24 14:55:55 +0100 | [diff] [blame] | 88 | |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 89 | %.ud.zip: %.zip |
| Marc Kupietz | fa445da | 2024-03-16 10:46:22 +0100 | [diff] [blame] | 90 | $(KORAPXML2CONLLU) $< | pv | ./scripts/udpipe2 | conllu2korapxml > $@ |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 91 | |
| Marc Kupietz | 8ea9228 | 2024-03-24 14:55:55 +0100 | [diff] [blame] | 92 | %.krill.tar: %.zip %.marmot-malt.zip %.tree_tagger.zip %.spacy.zip |
| Marc Kupietz | 8759751 | 2024-04-15 18:31:34 +0200 | [diff] [blame] | 93 | mkdir -p ${BUILD_DIR}/krill/$(basename $@) |
| Marc Kupietz | 3d82f56 | 2024-03-16 10:19:03 +0100 | [diff] [blame] | 94 | mkdir -p $(basename $@) |
| Marc Kupietz | 8759751 | 2024-04-15 18:31:34 +0200 | [diff] [blame] | 95 | korapxml2krill archive --quiet -w -z -cfg krill-korap4dnb.cfg -c ${BUILD_DIR}/krill/$(basename $@)/korapxml2krill.cache -j $(MAX_THREADS) -te ${BUILD_DIR}/krill/$(basename $@) --non-word-tokens --meta I5 -i $< -i $(word 2,$^) -i $(word 3,$^) -i $(word 4,$^) -o $(basename $@) |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 96 | |
| Marc Kupietz | fc32862 | 2024-03-16 14:31:34 +0100 | [diff] [blame] | 97 | %.json: %.krill.tar |
| 98 | rm -rf $@ |
| 99 | mkdir -p $@ |
| 100 | for f in $<; do tar -C $@ -xf $$f; done |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 101 | |
| Marc Kupietz | 22ad4b7 | 2024-03-17 16:24:21 +0100 | [diff] [blame] | 102 | %.index: %.json |
| 103 | rm -rf $@ |
| Marc Kupietz | 012c708 | 2024-03-17 16:40:47 +0100 | [diff] [blame] | 104 | java -jar lib/Krill-Indexer.jar -c lib/krill.conf -i $< -o $@ |
| Marc Kupietz | 22ad4b7 | 2024-03-17 16:24:21 +0100 | [diff] [blame] | 105 | |
| 106 | %.index.tar.xz: %.index |
| 107 | tar -I 'xz -T0' -C $(dir $<) -cf $@ $(notdir $<) |
| 108 | |
| Marc Kupietz | b769699 | 2024-03-18 17:41:15 +0100 | [diff] [blame] | 109 | deploy: $(TARGET_DIR)/dnb.index.tar.xz korap4dnb-compose.yml |
| 110 | rsync -v $^ $(DEPLOY_USER)@$(DEPLOY_HOST):$(DEPLOY_PATH)/ |
| 111 | ssh $(DEPLOY_USER)@$(DEPLOY_HOST) "mkdir -p $(DEPLOY_PATH) && cd $(DEPLOY_PATH) && docker compose -p korap4dnb --profile=lite -f $(notdir $(word 2,$^)) up -d --dry-run && docker compose -p korap4dnb stop && (mv -f dnb.index dnb.index.bak || true) && tar Jxvf $(notdir $<) && docker compose -p korap4dnb --profile=lite -f $(notdir $(word 2,$^)) up -d" |
| 112 | |
| 113 | show-server-log: |
| 114 | ssh $(DEPLOY_USER)@$(DEPLOY_HOST) "cd $(DEPLOY_PATH) && docker compose -p korap4dnb --profile=lite -f korap4dnb-compose.yml logs -f" |
| 115 | |
| 116 | show-server-status: |
| 117 | ssh $(DEPLOY_USER)@$(DEPLOY_HOST) "cd $(DEPLOY_PATH) && docker compose -p korap4dnb --profile=lite -f korap4dnb-compose.yml ps" |
| 118 | |
| Marc Kupietz | 1a42266 | 2024-03-16 09:34:10 +0100 | [diff] [blame] | 119 | clean: |
| 120 | rm -rf $(BUILD_DIR) $(TARGET_DIR) |
| 121 | |
| Marc Kupietz | 8759751 | 2024-04-15 18:31:34 +0200 | [diff] [blame] | 122 | alli5: i5 |
| Marc Kupietz | a516762 | 2024-04-13 14:18:10 +0200 | [diff] [blame] | 123 | for yy in $(shell seq -f "%02.f" 95 99) $(shell seq -f "%02.f" 0 24); do \ |
| Marc Kupietz | 975996e | 2024-04-13 13:46:37 +0200 | [diff] [blame] | 124 | $(MAKE) i5 YY=$$yy; \ |
| 125 | done |
| Marc Kupietz | 8759751 | 2024-04-15 18:31:34 +0200 | [diff] [blame] | 126 | |
| 127 | allindex: i5 |
| 128 | for yy in $(shell seq -f "%02.f" 95 99) $(shell seq -f "%02.f" 0 24); do \ |
| 129 | $(MAKE) index YY=$$yy & \ |
| 130 | done |