Skip to content

Commit 5905e18

Browse files
committed
relation-graph config.
additional ontologies
1 parent a621ec5 commit 5905e18

File tree

9 files changed

+101
-16
lines changed

9 files changed

+101
-16
lines changed

ontologies.Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ db/msio.owl: STAMP
22
curl -L -s https://raw.githubusercontent.com/MSI-Metabolomics-Standards-Initiative/MSIO/master/releases/latest_release/MSIO-merged-reasoned.owl > $@.tmp && mv $@.tmp $@
33

44
db/phenio.owl: STAMP
5-
curl -L -s https://github.com/monarch-initiative/phenio/releases/download/latest/phenio.owl > $@.tmp && mv $@.tmp $@
5+
curl -L -s https://github.com/monarch-initiative/phenio/releases/latest/download/phenio.owl > $@.tmp && mv $@.tmp $@
66

77
db/bero.owl: STAMP
88
curl -L -s https://github.com/berkeleybop/bero/releases/download/2022-05-26/bero.owl > $@.tmp && mv $@.tmp $@
@@ -28,6 +28,9 @@ db/biopax.owl: STAMP
2828
db/enanomapper.owl: STAMP
2929
robot merge -I http://enanomapper.github.io/ontologies/enanomapper.owl -o $@
3030

31+
db/mlo.owl: STAMP
32+
robot merge -I https://raw.githubusercontent.com/berkeleybop/artificial-intelligence-ontology/main/external/ml-ontology-202010021305.owl -o $@
33+
3134
db/efo.owl: STAMP
3235
robot merge -I http://www.ebi.ac.uk/efo/efo.owl -o $@
3336

@@ -49,4 +52,4 @@ db/cosmo.owl: STAMP
4952
db/co_324.owl: STAMP
5053
curl -L -s https://cropontology.org/ontology/CO_324/rdf > $@.tmp && mv $@.tmp $@
5154

52-
EXTRA_ONTOLOGIES = msio phenio bero aio reacto go-lego bao biolink biopax enanomapper efo edam sweetAll lov schema-dot-org cosmo co_324
55+
EXTRA_ONTOLOGIES = msio phenio bero aio reacto go-lego bao biolink biopax enanomapper mlo efo edam sweetAll lov schema-dot-org cosmo co_324

src/semsql/builder/build.Makefile

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ $(TEMPLATE): $(THIS_DIR)/sql_schema/semsql.sql build_prefixes
4040
.PRECIOUS: $(TEMPLATE)
4141

4242
%-min.owl: %.owl
43-
robot remove -i $< --axioms "equivalent disjoint annotation" -o $@
43+
robot \
44+
remove -i $< --axioms "equivalent disjoint annotation" \
45+
filter --exclude-terms $(THIS_DIR)/exclude-terms.txt \
46+
-o $@
4447

4548
# -- MAIN TARGET --
4649
# A db is constructed from
@@ -65,9 +68,10 @@ $(TEMPLATE): $(THIS_DIR)/sql_schema/semsql.sql build_prefixes
6568
# will be simplified in future. See:
6669
# - https://github.com/balhoff/relation-graph/issues/123
6770
# - https://github.com/balhoff/relation-graph/issues/25
68-
%-$(RGSUFFIX).tsv: %-min.owl
71+
%-$(RGSUFFIX).tsv: %-min.owl %-properties.txt
6972
$(RG) --disable-owl-nothing true \
7073
--ontology-file $<\
74+
$(RG_PROPERTIES) \
7175
--output-file [email protected] \
7276
--equivalence-as-subclass true \
7377
--output-individuals true \
@@ -81,6 +85,9 @@ $(TEMPLATE): $(THIS_DIR)/sql_schema/semsql.sql build_prefixes
8185
rm $@.*.tmp
8286
.PRECIOUS: %-$(RGSUFFIX).tsv
8387

88+
%-properties.txt:
89+
touch $@
90+
8491
# ---
8592
# Prefixes
8693
# ---

src/semsql/builder/builder.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ def download_obo_sqlite(ontology: str, destination: str):
8585
"""
8686
db = f"{ontology}.db"
8787
url = f"https://s3.amazonaws.com/bbop-sqlite/{db}.gz"
88+
logging.info(f"Downloading from {url}")
8889
r = requests.get(url, allow_redirects=True)
8990
destination_gzip = f"{destination}.gz"
9091
open(destination_gzip, "wb").write(r.content)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
RO:0002222
2+
RO:0002244
3+
RO:0002320
4+
RO:0002321
5+
RO:0002323
6+
RO:0002324
7+
RO:0002330
8+
RO:0002337
9+
RO:0002375
10+
RO:0002410
11+
RO:0002487
12+
RO:0002501
13+
RO:0002506
14+
RO:0002514
15+
RO:0002567
16+
RO:0002595
17+
RO:0002609
18+
RO:0002616
19+
RO:0004000
20+
RO:0004010
21+
RO:0004023
22+
RO:0016001
23+
RO:0040035

src/semsql/builder/prefixes/prefixes.csv

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ wikidata,http://www.wikidata.org/entity/
4949
schema,https://schema.org/
5050
ICD10CM,http://purl.bioontology.org/ontology/ICD10CM/
5151
ICD10WHO,https://icd.who.int/browse10/2019/en#/
52+
prefix,base
53+
MSIO,http://purl.obolibrary.org/obo/MSIO_
54+
nmrCV,http://nmrML.org/nmrCV#NMR:
55+
evs.ncit,http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#
56+
old.fix,http://purl.org/obo/owl/FIX#
57+
mlo,http://www.a2rd.net.br/mlo#
58+
co_324,https://cropontology.org/rdf/CO_324:
5259
RBO,http://purl.obolibrary.org/obo/RBO_
5360
CLYH,http://purl.obolibrary.org/obo/CLYH_
5461
RO,http://purl.obolibrary.org/obo/RO_

src/semsql/builder/prefixes/prefixes_local.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ MSIO,http://purl.obolibrary.org/obo/MSIO_
33
nmrCV,http://nmrML.org/nmrCV#NMR:
44
evs.ncit,http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#
55
old.fix,http://purl.org/obo/owl/FIX#
6+
mlo,http://www.a2rd.net.br/mlo#
67
co_324,https://cropontology.org/rdf/CO_324:

src/semsql/builder/registry/ontologies.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,14 @@ ontologies:
99
nmrCV: "http://nmrML.org/nmrCV#NMR:"
1010
phenio:
1111
description: Monarch Phenomics Integrated Ontology
12-
url: https://github.com/monarch-initiative/phenio/releases/download/latest/phenio.owl
12+
url: https://github.com/monarch-initiative/phenio/releases/latest/download/phenio.owl
13+
relation_graph_settings:
14+
properties:
15+
- BFO:0000050
16+
- BFO:0000051
17+
- UPHENO:0000001
18+
- UPHENO:0000003
19+
- RO:0002202
1320
bero:
1421
url: https://github.com/berkeleybop/bero/releases/download/2022-05-26/bero.owl
1522
aio:

src/semsql/builder/registry/registry_schema.py

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Auto generated from registry_schema.yaml by pythongen.py version: 0.9.0
2-
# Generation date: 2022-09-17T15:44:28
2+
# Generation date: 2022-10-15T14:23:31
33
# Schema: ontology_registry
44
#
55
# id: https://w3id.org/semsql/registry
@@ -22,8 +22,8 @@
2222
from linkml_runtime.utils.enumerations import EnumDefinitionImpl
2323
from rdflib import Namespace, URIRef
2424
from linkml_runtime.utils.curienamespace import CurieNamespace
25-
from linkml_runtime.linkml_model.types import Boolean, Integer, String
26-
from linkml_runtime.utils.metamodelcore import Bool
25+
from linkml_runtime.linkml_model.types import Boolean, Integer, String, Uriorcurie
26+
from linkml_runtime.utils.metamodelcore import Bool, URIorCURIE
2727

2828
metamodel_version = "1.7.0"
2929
version = None
@@ -92,6 +92,7 @@ class Ontology(YAMLRoot):
9292
format: Optional[str] = None
9393
compression: Optional[Union[str, "CompressionEnum"]] = None
9494
suppress: Optional[Union[bool, Bool]] = None
95+
relation_graph_settings: Optional[Union[dict, "RelationGraphConfiguration"]] = None
9596

9697
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
9798
if self._is_empty(self.id):
@@ -126,6 +127,9 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
126127
if self.suppress is not None and not isinstance(self.suppress, Bool):
127128
self.suppress = Bool(self.suppress)
128129

130+
if self.relation_graph_settings is not None and not isinstance(self.relation_graph_settings, RelationGraphConfiguration):
131+
self.relation_graph_settings = RelationGraphConfiguration(**as_dict(self.relation_graph_settings))
132+
129133
super().__post_init__(**kwargs)
130134

131135

@@ -184,6 +188,25 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
184188
super().__post_init__(**kwargs)
185189

186190

191+
@dataclass
192+
class RelationGraphConfiguration(YAMLRoot):
193+
_inherited_slots: ClassVar[List[str]] = []
194+
195+
class_class_uri: ClassVar[URIRef] = SEMSQL_REGISTRY.RelationGraphConfiguration
196+
class_class_curie: ClassVar[str] = "semsql_registry:RelationGraphConfiguration"
197+
class_name: ClassVar[str] = "RelationGraphConfiguration"
198+
class_model_uri: ClassVar[URIRef] = SEMSQL_REGISTRY.RelationGraphConfiguration
199+
200+
properties: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list()
201+
202+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
203+
if not isinstance(self.properties, list):
204+
self.properties = [self.properties] if self.properties is not None else []
205+
self.properties = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.properties]
206+
207+
super().__post_init__(**kwargs)
208+
209+
187210
# Enumerations
188211
class FormatEnum(EnumDefinitionImpl):
189212

@@ -207,14 +230,17 @@ class CompressionEnum(EnumDefinitionImpl):
207230
class slots:
208231
pass
209232

233+
slots.id = Slot(uri=SEMSQL_REGISTRY.id, name="id", curie=SEMSQL_REGISTRY.curie('id'),
234+
model_uri=SEMSQL_REGISTRY.id, domain=None, range=URIRef)
235+
210236
slots.description = Slot(uri=SEMSQL_REGISTRY.description, name="description", curie=SEMSQL_REGISTRY.curie('description'),
211237
model_uri=SEMSQL_REGISTRY.description, domain=None, range=Optional[str])
212238

213239
slots.url = Slot(uri=SEMSQL_REGISTRY.url, name="url", curie=SEMSQL_REGISTRY.curie('url'),
214240
model_uri=SEMSQL_REGISTRY.url, domain=None, range=Optional[Union[str, Identifier]])
215241

216-
slots.id = Slot(uri=SEMSQL_REGISTRY.id, name="id", curie=SEMSQL_REGISTRY.curie('id'),
217-
model_uri=SEMSQL_REGISTRY.id, domain=None, range=URIRef)
242+
slots.relation_graph_settings = Slot(uri=SEMSQL_REGISTRY.relation_graph_settings, name="relation_graph_settings", curie=SEMSQL_REGISTRY.curie('relation_graph_settings'),
243+
model_uri=SEMSQL_REGISTRY.relation_graph_settings, domain=None, range=Optional[Union[dict, RelationGraphConfiguration]])
218244

219245
slots.has_imports = Slot(uri=SEMSQL_REGISTRY.has_imports, name="has_imports", curie=SEMSQL_REGISTRY.curie('has_imports'),
220246
model_uri=SEMSQL_REGISTRY.has_imports, domain=None, range=Optional[int])
@@ -248,3 +274,6 @@ class slots:
248274

249275
slots.suppress = Slot(uri=SEMSQL_REGISTRY.suppress, name="suppress", curie=SEMSQL_REGISTRY.curie('suppress'),
250276
model_uri=SEMSQL_REGISTRY.suppress, domain=None, range=Optional[Union[bool, Bool]])
277+
278+
slots.relationGraphConfiguration__properties = Slot(uri=SEMSQL_REGISTRY.properties, name="relationGraphConfiguration__properties", curie=SEMSQL_REGISTRY.curie('properties'),
279+
model_uri=SEMSQL_REGISTRY.relationGraphConfiguration__properties, domain=None, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]])

src/semsql/builder/registry/registry_schema.yaml

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ enums:
2424
gzip:
2525
description: gzip
2626
slots:
27+
id:
28+
examples:
29+
- value: lov
30+
identifier: true
31+
range: string
2732
description:
2833
examples:
2934
- value: Monarch Phenomics Integrated Ontology
@@ -32,11 +37,8 @@ slots:
3237
examples:
3338
- value: https://lov.linkeddata.es/lov.n3.gz
3439
range: identifier
35-
id:
36-
examples:
37-
- value: lov
38-
identifier: true
39-
range: string
40+
relation_graph_settings:
41+
range: RelationGraphConfiguration
4042
has_imports:
4143
examples:
4244
- value: 'True'
@@ -102,6 +104,7 @@ classes:
102104
- format
103105
- compression
104106
- suppress
107+
- relation_graph_settings
105108
PrefixMap:
106109
slots:
107110
- prefix
@@ -113,4 +116,8 @@ classes:
113116
- license
114117
- ontologies
115118
tree_root: true
116-
119+
RelationGraphConfiguration:
120+
attributes:
121+
properties:
122+
range: uriorcurie
123+
multivalued: true

0 commit comments

Comments
 (0)