-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
124 lines (100 loc) · 3.69 KB
/
Makefile
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
# config
MAKEFLAGS += --warn-undefined-variables
SHELL := bash
.SHELLFLAGS := -eu -o pipefail -c
.DEFAULT_GOAL := all
.DELETE_ON_ERROR:
.SUFFIXES:
# Run `make all` to create a new CURATO release:
# - download the latest build of ROBOT
# - download the latest versionos of IAO and BFO
# - create curato-edit.owl from the template
# - merge curato-edit.owl with imports to create curato-merged.owl
# - reason over curato-merged.owl to create curato.owl
# - clean build files
# If you wish to keep build/robot.jar, run `make release` instead.
# ===============================
# VARIABLES
# ===============================
SHELL := /bin/bash
OBO := http://purl.obolibrary.org/obo
DEV := $(OBO)/curato/dev
ROBOT := java -jar build/robot.jar
# release vars
TODAY := $(shell date +%Y-%m-%d)
TS := $(shell date +'%d:%m:%Y %H:%M')
# directories
SRC = src/ontology
# ===============================
# MAIN TASK
# ===============================
# run `make all` or `make release` to make a new release
# `make all` will remove the build dir with ROBOT on completion
all: clean
### Directories
#
# This is a temporary place to put things.
build:
mkdir -p $@
# ===============================
# ROBOT
# ===============================
# download the most recent build of ROBOT
# build/robot.jar: | build
# @echo "Getting ROBOT" && \
# curl -L https://github.com/ontodev/robot/releases/download/v1.7.0/robot.jar > ./build/robot.jar
# get IAO and BFO:
build/bfo-iao: | build
@echo "Getting IAO and BFO latest versions" &&
curl -L http://purl.obolibrary.org/obo/bfo.owl > ./ontology-source-files/bfo.owl
curl -L http://purl.obolibrary.org/obo/iao.owl > ./ontology-source-files/iao.owl
clean: | release
@echo "Removing build files" && \
rm -rf build
# ===============================
# CURATO TASKS
# ===============================
# generate curatO-edit from template file:
build/template: | build/robot.jar build
@echo "Creating from Template $< to $@" && \
$(ROBOT) template --template src/curatO-curation-ontology-capabilities-all-classes-2020-09-08.csv \
--prefix "curato: https://fairplus-project.eu/ontologies/curato/" \
--ontology-iri "https://fairplus-project.eu/ontologies/curato/" \
--output ./build/curatO-edit.owl
# $(ROBOT) annotate \
# --input ./build/curatO-edit.owl \
# --ontology-iri "$(OBO)/curatO.owl" \
# --version-iri "$(OBO)/curatO/$(TODAY)/curatO.owl" \
# --annotation owl:versionInfo "$(TODAY)" \
# --annotation-file src/annotations.ttl
# merge components to generate curatO-merged
build/merge: build/robot.jar build
@echo "Merging $< to $@" && \
$(ROBOT) merge --input ./build/curatO-edit.owl \
--input ./ontology-source-files/bfo.owl \
--input ./ontology-source-files/iao.owl \
--output ./build/curatO-merged-with-imports.owl
# annotate \
# --ontology-iri "$(OBO)/curato/curatO-merged.owl" \
# --version-iri "$(OBO)/curato/$(TODAY)/curatO-merged.owl" \
# --annotation owl:versionInfo "$(TODAY)" \
# reason over curatO-merged to generate curat
build/reason: build/robot.jar build
@echo "Reasoning $< to $@" && \
$(ROBOT) reason \
--input ./build/curatO-merged-with-imports.owl \
--reasoner HermiT \
--exclude-tautologies all \
--output ./build/curatO-reasoned.owl
build/annotate: build/robot.jar build
@echo "Adding Metadata $< to $@" && \
$(ROBOT) annotate \
--input ./build/curatO-reasoned.owl \
--ontology-iri "$(OBO)/curatO.owl" \
--version-iri "$(OBO)/curatO/$(TODAY)/curatO.owl" \
--annotation owl:versionInfo "$(TODAY)" \
--annotation-file src/annotations.ttl \
--output ./build/curatO.owl
# --output ./build/$(TODAY)/curatO.owl
release: build/template build/merge build/reason build/annotate
@echo "A new release is made"