Repository navigation
Expand file tree
/
Copy pathprocess.sh
More file actions
executable file
·140 lines (92 loc) · 6.12 KB
/
Copy pathprocess.sh
File metadata and controls
executable file
·140 lines (92 loc) · 6.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/usr/bin/env bash
set -eo pipefail
mkdir -p output/logs
mkdir -p output/persons
command -v s-put >/dev/null 2>&1 || { echo >&2 "s-put is not available, aborting"; exit 1; }
command -v rapper >/dev/null 2>&1 || { echo >&2 "rapper is not available, aborting"; exit 1; }
export WARSA_ENDPOINT_URL=${WARSA_ENDPOINT_URL:-http://localhost:3030/warsa}
export ARPA_URL=${ARPA_URL:-http://demo.seco.tkk.fi/arpa}
export LOG_LEVEL="DEBUG"
rm -f output/*.csv
rm -f output/persons/*
./convert.sh $1
echo "Updating camps and hospitals to Fuseki"
s-put $WARSA_ENDPOINT_URL/data http://ldf.fi/warsa/prisoners output/camps_combined.ttl
curl -f --data-urlencode "query=$(cat sparql/construct_camps.sparql)" $WARSA_ENDPOINT_URL/sparql -v > output/camps.ttl
echo "Pseudonymizing people and hiding personal information"
python src/prune_nonpublic.py output/prisoners_plain.ttl output/prisoners_pseudonymized.ttl --endpoint "$WARSA_ENDPOINT_URL/sparql" \
--logfile output/logs/person_pruning.log --loglevel $LOG_LEVEL
echo "Linking ranks"
python src/linker.py ranks output/prisoners_pseudonymized.ttl output/rank_links.ttl --endpoint "$WARSA_ENDPOINT_URL/sparql" \
--logfile output/logs/linker.log --loglevel $LOG_LEVEL
echo "Linking units"
cat output/prisoners_pseudonymized.ttl output/rank_links.ttl > output/prisoners_temp.ttl
# Updated data needed for unit linking
s-put $WARSA_ENDPOINT_URL/data http://ldf.fi/warsa/prisoners output/prisoners_temp.ttl
curl -f --data-urlencode "query=$(cat sparql/period.sparql)" $WARSA_ENDPOINT_URL/sparql -v > output/periods.ttl
./link_units.sh
echo "Linking occupations"
python src/linker.py occupations output/prisoners_pseudonymized.ttl output/occupation_links.ttl \
--endpoint "$WARSA_ENDPOINT_URL/sparql" --logfile output/logs/occupations.log --loglevel $LOG_LEVEL
echo "Linking municipalities"
python src/linker.py municipalities output/prisoners_pseudonymized.ttl output/municipality_links.ttl \
--endpoint "$WARSA_ENDPOINT_URL/sparql" --arpa $ARPA_URL/pnr_municipality --logfile output/logs/municipalities.log --loglevel $LOG_LEVEL
echo "Linking Sotilaan Ääni magazines"
python src/linker.py sotilaan_aani output/prisoners_pseudonymized.ttl output/sotilaan_aani_links.ttl \
--output2 output/_media_sotilaan_aani.ttl --logfile output/logs/linker.log --loglevel $LOG_LEVEL
echo "Linking Person documents"
python src/linker.py person_documents output/prisoners_pseudonymized.ttl output/person_document_links.ttl \
--output2 output/_media_person_documents.ttl --logfile output/logs/linker.log --loglevel $LOG_LEVEL
echo "Linking videos"
python src/linker.py videos output/prisoners_pseudonymized.ttl output/person_video_links.ttl \
--output2 output/_media_videos.ttl --logfile output/logs/linker.log --loglevel $LOG_LEVEL
echo "Linking people"
cat output/prisoners_pseudonymized.ttl output/rank_links.ttl output/unit_linked_validated.ttl \
output/occupation_links.ttl output/municipality_links.ttl input_rdf/additional_links.ttl > output/prisoners_temp.ttl
python src/linker.py persons output/prisoners_temp.ttl output/persons_linked.ttl \
--endpoint "$WARSA_ENDPOINT_URL/sparql" --logfile output/logs/linker.log --loglevel $LOG_LEVEL
rm output/prisoners_temp.ttl
sed -r 's/^(p:.*) cidoc:P70_documents (<.*>)/\2 cidoc:P70i_is_documented_in \1/' output/persons_linked.ttl > output/persons_backlinks.ttl
echo "Linking camps and hospitals"
cat output/prisoners_pseudonymized.ttl output/camps.ttl > output/prisoners_temp.ttl
s-put $WARSA_ENDPOINT_URL/data http://ldf.fi/warsa/prisoners output/prisoners_temp.ttl
rm output/prisoners_temp.ttl
python src/linker.py camps output/prisoners_pseudonymized.ttl output/camp_links.ttl --endpoint "$WARSA_ENDPOINT_URL/sparql" \
--logfile output/logs/linker.log --loglevel $LOG_LEVEL
echo "Linking sources"
python src/linker.py sources output/prisoners_pseudonymized.ttl output/_prisoners_with_sources.ttl \
--logfile output/logs/linker.log --loglevel $LOG_LEVEL
echo "Consolidating prisoners"
cat output/_prisoners_with_sources.ttl output/rank_links.ttl output/unit_linked_validated.ttl output/persons_linked.ttl \
output/occupation_links.ttl output/camp_links.ttl output/municipality_links.ttl output/sotilaan_aani_links.ttl \
output/person_document_links.ttl output/person_video_links.ttl \
input_rdf/additional_links.ttl > output/prisoners_.ttl
echo "Generating people..."
echo "...Updating db with prisoners"
s-put $WARSA_ENDPOINT_URL/data http://ldf.fi/warsa/prisoners output/prisoners_.ttl
echo "...Constructing people"
curl -f --data-urlencode "query=$(cat sparql/construct_people.sparql)" $WARSA_ENDPOINT_URL/sparql -v > output/persons/_prisoner_persons.ttl
rapper -i turtle output/persons/_prisoner_persons.ttl -o turtle > output/persons/prisoner_persons.ttl
echo "...Constructing documents links"
curl -f --data-urlencode "query=$(cat sparql/construct_documents_links.sparql)" $WARSA_ENDPOINT_URL/sparql -v > output/documents_links.ttl
echo "...Updating db with new people"
cat output/persons/prisoner_persons.ttl output/documents_links.ttl > output/prisoner_people_temp.ttl
s-put $WARSA_ENDPOINT_URL/data http://ldf.fi/warsa/prisoner_persons output/prisoner_people_temp.ttl
rm output/prisoner_people_temp.ttl
for construct in births promotions unit_joinings captures disappearances deaths
do
echo "...Constructing $construct"
curl -f --data-urlencode "query=$(cat sparql/construct_$construct.sparql)" $WARSA_ENDPOINT_URL/sparql -v > "output/persons/_prisoner_$construct.ttl"
rapper -i turtle "output/persons/_prisoner_$construct.ttl" -o turtle > "output/persons/prisoner_$construct.ttl"
done
rm output/persons/_prisoner_*
echo "...Deleting temp graph"
s-delete $WARSA_ENDPOINT_URL/data http://ldf.fi/warsa/prisoner_persons
echo "Finishing prisoners"
cat output/_media_sotilaan_aani.ttl output/_media_person_documents.ttl output/_media_videos.ttl > output/_media_full.ttl
rapper -i turtle output/_media_full.ttl -o turtle > output/prisoners_media.ttl
cat output/prisoners_.ttl output/documents_links.ttl > output/prisoners_full.ttl
rapper -i turtle output/prisoners_full.ttl -o turtle > output/prisoners.ttl
rm output/prisoners_.ttl
rm output/prisoners_full.ttl
echo "...Finished"