openphar 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.adoc +221 -0
- data/lib/openphar/cli/main.rb +137 -0
- data/lib/openphar/cli.rb +11 -0
- data/lib/openphar/core/slug_generator.rb +107 -0
- data/lib/openphar/core.rb +11 -0
- data/lib/openphar/errors/configuration_error.rb +8 -0
- data/lib/openphar/errors/monograph_not_found_error.rb +15 -0
- data/lib/openphar/errors/parse_error.rb +18 -0
- data/lib/openphar/errors/unknown_format_error.rb +8 -0
- data/lib/openphar/errors/unknown_publisher_error.rb +8 -0
- data/lib/openphar/errors/unknown_type_error.rb +8 -0
- data/lib/openphar/errors/validation_error.rb +15 -0
- data/lib/openphar/errors.rb +17 -0
- data/lib/openphar/exporters/coverage_validator.rb +265 -0
- data/lib/openphar/exporters/neo4j/model_registry.rb +130 -0
- data/lib/openphar/exporters/neo4j/node_builder.rb +84 -0
- data/lib/openphar/exporters/neo4j/property_mapper.rb +154 -0
- data/lib/openphar/exporters/neo4j/relationship_builder.rb +87 -0
- data/lib/openphar/exporters/neo4j.rb +16 -0
- data/lib/openphar/exporters/neo4j_exporter.rb +199 -0
- data/lib/openphar/exporters.rb +15 -0
- data/lib/openphar/linkers/chp/cross_edition_linker.rb +101 -0
- data/lib/openphar/linkers/chp.rb +11 -0
- data/lib/openphar/linkers/cross_publisher_linker.rb +295 -0
- data/lib/openphar/linkers/herbapedia_linker.rb +125 -0
- data/lib/openphar/linkers.rb +13 -0
- data/lib/openphar/migrators/chp/classifier.rb +86 -0
- data/lib/openphar/migrators/chp.rb +15 -0
- data/lib/openphar/migrators/chp_migrator.rb +130 -0
- data/lib/openphar/migrators/jp_migrator.rb +345 -0
- data/lib/openphar/migrators/phint_migrator.rb +426 -0
- data/lib/openphar/migrators.rb +15 -0
- data/lib/openphar/models/ahp.rb +25 -0
- data/lib/openphar/models/amino_acid_monograph.rb +28 -0
- data/lib/openphar/models/api.rb +29 -0
- data/lib/openphar/models/assay_specification.rb +19 -0
- data/lib/openphar/models/base_entity.rb +221 -0
- data/lib/openphar/models/biological_substance_monograph.rb +31 -0
- data/lib/openphar/models/chemical_drug_monograph.rb +39 -0
- data/lib/openphar/models/chp/biologic.rb +28 -0
- data/lib/openphar/models/chp/chemical_preparation.rb +28 -0
- data/lib/openphar/models/chp/chemical_substance.rb +28 -0
- data/lib/openphar/models/chp/general_chapter.rb +30 -0
- data/lib/openphar/models/chp/monograph.rb +116 -0
- data/lib/openphar/models/chp/section.rb +37 -0
- data/lib/openphar/models/chp/tcm_crude_drug.rb +28 -0
- data/lib/openphar/models/chp/tcm_extract.rb +29 -0
- data/lib/openphar/models/chp/tcm_formulation.rb +28 -0
- data/lib/openphar/models/chp.rb +33 -0
- data/lib/openphar/models/crude_drug_monograph.rb +31 -0
- data/lib/openphar/models/edition.rb +41 -0
- data/lib/openphar/models/formulation_monograph.rb +31 -0
- data/lib/openphar/models/hkcmms.rb +26 -0
- data/lib/openphar/models/identification_specification.rb +19 -0
- data/lib/openphar/models/jp/kampo_formula.rb +94 -0
- data/lib/openphar/models/jp.rb +21 -0
- data/lib/openphar/models/limit.rb +54 -0
- data/lib/openphar/models/mineral_substance_monograph.rb +28 -0
- data/lib/openphar/models/monograph.rb +58 -0
- data/lib/openphar/models/ph_int/buffer_solution.rb +38 -0
- data/lib/openphar/models/ph_int/dosage_form_monograph.rb +43 -0
- data/lib/openphar/models/ph_int/radiopharmaceutical_monograph.rb +52 -0
- data/lib/openphar/models/ph_int/reagent.rb +50 -0
- data/lib/openphar/models/ph_int/reference_substance.rb +50 -0
- data/lib/openphar/models/ph_int/test_method.rb +50 -0
- data/lib/openphar/models/ph_int/test_solution.rb +39 -0
- data/lib/openphar/models/ph_int/volumetric_solution.rb +38 -0
- data/lib/openphar/models/ph_int.rb +37 -0
- data/lib/openphar/models/physical_specification.rb +17 -0
- data/lib/openphar/models/publisher.rb +98 -0
- data/lib/openphar/models/purity_specification.rb +16 -0
- data/lib/openphar/models/supplement.rb +31 -0
- data/lib/openphar/models/test_specification.rb +29 -0
- data/lib/openphar/models/thp.rb +24 -0
- data/lib/openphar/models/vitamin_monograph.rb +28 -0
- data/lib/openphar/models.rb +58 -0
- data/lib/openphar/monograph_merger.rb +374 -0
- data/lib/openphar/parsers/base_monograph_parser.rb +108 -0
- data/lib/openphar/parsers/jp_html_parser.rb +92 -0
- data/lib/openphar/parsers/jp_html_parser_base.rb +113 -0
- data/lib/openphar/parsers/jp_ja_html_parser.rb +220 -0
- data/lib/openphar/parsers/phint_json_parser.rb +332 -0
- data/lib/openphar/parsers.rb +21 -0
- data/lib/openphar/registry/publisher_registry.rb +46 -0
- data/lib/openphar/registry/type_registry.rb +147 -0
- data/lib/openphar/registry.rb +24 -0
- data/lib/openphar/repositories/monograph_repository.rb +350 -0
- data/lib/openphar/repositories.rb +11 -0
- data/lib/openphar/transformers/jsonld_transformer.rb +106 -0
- data/lib/openphar/transformers.rb +11 -0
- data/lib/openphar/version.rb +5 -0
- data/lib/openphar.rb +119 -0
- data/ontology/bibliographic/edition.ttl +267 -0
- data/ontology/context/chp.jsonld +69 -0
- data/ontology/context/crude-drugs.jsonld +56 -0
- data/ontology/context/pharmacopoeia.jsonld +631 -0
- data/ontology/core/identification.ttl +456 -0
- data/ontology/core/pharmacopoeia.ttl +3427 -0
- data/ontology/core/substance-form.ttl +302 -0
- data/ontology/core/unit.ttl +493 -0
- data/ontology/publisher/chp/extensions.ttl +186 -0
- data/ontology/publisher/phint/extensions.ttl +327 -0
- data/ontology/quality/test-method.ttl +610 -0
- data/shapes/chp/monograph.ttl +153 -0
- data/shapes/edition-shapes.ttl +230 -0
- data/shapes/monograph-shapes.ttl +1324 -0
- metadata +319 -0
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
# Open Pharmacopoeia - Identification Test Ontology
|
|
2
|
+
#
|
|
3
|
+
# This module defines classes and properties for representing identification
|
|
4
|
+
# test patterns including alternatives ("A or B and C"), references to general
|
|
5
|
+
# identification tests, and microbiology test requirements.
|
|
6
|
+
#
|
|
7
|
+
# This addresses a key gap identified in the International Pharmacopoeia
|
|
8
|
+
# where identification tests often have complex logical structures.
|
|
9
|
+
#
|
|
10
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
11
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
12
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
13
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
14
|
+
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
|
|
15
|
+
@prefix dct: <http://purl.org/dc/terms/> .
|
|
16
|
+
@prefix op: <https://www.openphar.org/ontology/core/> .
|
|
17
|
+
@prefix id: <https://www.openphar.org/ontology/identification/> .
|
|
18
|
+
|
|
19
|
+
<https://www.openphar.org/ontology/identification/>
|
|
20
|
+
a owl:Ontology ;
|
|
21
|
+
rdfs:label "Open Pharmacopoeia Identification Test Ontology"@en ;
|
|
22
|
+
rdfs:comment """
|
|
23
|
+
Ontology for representing identification test patterns including
|
|
24
|
+
logical alternatives, general test references, and microbiology
|
|
25
|
+
test requirements. Enables modeling of complex identification
|
|
26
|
+
test structures like "Test A or Test B and Test C".
|
|
27
|
+
"""@en ;
|
|
28
|
+
owl:imports <https://www.openphar.org/ontology/core/> ;
|
|
29
|
+
dct:created "2026-02-26"^^xsd:date ;
|
|
30
|
+
dct:modified "2026-02-26"^^xsd:date .
|
|
31
|
+
|
|
32
|
+
# =============================================================================
|
|
33
|
+
# IDENTIFICATION TEST CLASSES
|
|
34
|
+
# =============================================================================
|
|
35
|
+
|
|
36
|
+
id:IdentificationTest
|
|
37
|
+
a owl:Class ;
|
|
38
|
+
rdfs:label "Identification Test"@en ;
|
|
39
|
+
rdfs:comment """
|
|
40
|
+
A test used to identify or confirm the identity of a pharmaceutical
|
|
41
|
+
substance. May be a single test or a composite with logical structure.
|
|
42
|
+
"""@en .
|
|
43
|
+
|
|
44
|
+
id:SingleIdentificationTest
|
|
45
|
+
a owl:Class ;
|
|
46
|
+
rdfs:label "Single Identification Test"@en ;
|
|
47
|
+
rdfs:comment "A single, atomic identification test."@en ;
|
|
48
|
+
rdfs:subClassOf id:IdentificationTest .
|
|
49
|
+
|
|
50
|
+
id:CompositeIdentificationTest
|
|
51
|
+
a owl:Class ;
|
|
52
|
+
rdfs:label "Composite Identification Test"@en ;
|
|
53
|
+
rdfs:comment """
|
|
54
|
+
An identification test composed of multiple sub-tests with logical
|
|
55
|
+
relationships (AND, OR).
|
|
56
|
+
"""@en ;
|
|
57
|
+
rdfs:subClassOf id:IdentificationTest ;
|
|
58
|
+
rdfs:subClassOf [
|
|
59
|
+
a owl:Restriction ;
|
|
60
|
+
owl:onProperty id:hasComponent ;
|
|
61
|
+
owl:minCardinality 2
|
|
62
|
+
] .
|
|
63
|
+
|
|
64
|
+
id:hasComponent
|
|
65
|
+
a owl:ObjectProperty ;
|
|
66
|
+
rdfs:label "has component"@en ;
|
|
67
|
+
rdfs:comment "A component test in this composite test."@en ;
|
|
68
|
+
rdfs:domain id:CompositeIdentificationTest ;
|
|
69
|
+
rdfs:range id:IdentificationTestComponent .
|
|
70
|
+
|
|
71
|
+
# =============================================================================
|
|
72
|
+
# LOGICAL OPERATORS
|
|
73
|
+
# =============================================================================
|
|
74
|
+
|
|
75
|
+
id:LogicalOperator
|
|
76
|
+
a owl:Class ;
|
|
77
|
+
rdfs:label "Logical Operator"@en ;
|
|
78
|
+
rdfs:comment "A logical operator for combining tests."@en .
|
|
79
|
+
|
|
80
|
+
id:AndOperator
|
|
81
|
+
a id:LogicalOperator ;
|
|
82
|
+
rdfs:label "AND Operator"@en ;
|
|
83
|
+
skos:prefLabel "AND"@en ;
|
|
84
|
+
rdfs:comment "All tests must pass."@en .
|
|
85
|
+
|
|
86
|
+
id:OrOperator
|
|
87
|
+
a id:LogicalOperator ;
|
|
88
|
+
rdfs:label "OR Operator"@en ;
|
|
89
|
+
skos:prefLabel "OR"@en ;
|
|
90
|
+
rdfs:comment "At least one test must pass."@en .
|
|
91
|
+
|
|
92
|
+
# =============================================================================
|
|
93
|
+
# IDENTIFICATION TEST COMPONENT
|
|
94
|
+
# =============================================================================
|
|
95
|
+
|
|
96
|
+
id:IdentificationTestComponent
|
|
97
|
+
a owl:Class ;
|
|
98
|
+
rdfs:label "Identification Test Component"@en ;
|
|
99
|
+
rdfs:comment """
|
|
100
|
+
A component of a composite identification test, including the test
|
|
101
|
+
and its logical relationship to other components.
|
|
102
|
+
"""@en .
|
|
103
|
+
|
|
104
|
+
id:componentTest
|
|
105
|
+
a owl:ObjectProperty ;
|
|
106
|
+
rdfs:label "component test"@en ;
|
|
107
|
+
rdfs:comment "The identification test for this component."@en ;
|
|
108
|
+
rdfs:domain id:IdentificationTestComponent ;
|
|
109
|
+
rdfs:range id:IdentificationTest .
|
|
110
|
+
|
|
111
|
+
id:logicalOperator
|
|
112
|
+
a owl:ObjectProperty ;
|
|
113
|
+
rdfs:label "logical operator"@en ;
|
|
114
|
+
rdfs:comment "The logical operator for this component."@en ;
|
|
115
|
+
rdfs:domain id:IdentificationTestComponent ;
|
|
116
|
+
rdfs:range id:LogicalOperator .
|
|
117
|
+
|
|
118
|
+
id:componentOrder
|
|
119
|
+
a owl:DatatypeProperty ;
|
|
120
|
+
rdfs:label "component order"@en ;
|
|
121
|
+
rdfs:comment "The order of this component in the composite test."@en ;
|
|
122
|
+
rdfs:domain id:IdentificationTestComponent ;
|
|
123
|
+
rdfs:range xsd:integer .
|
|
124
|
+
|
|
125
|
+
# =============================================================================
|
|
126
|
+
# IDENTITY TEST ALTERNATIVE
|
|
127
|
+
# =============================================================================
|
|
128
|
+
|
|
129
|
+
id:IdentityTestAlternative
|
|
130
|
+
a owl:Class ;
|
|
131
|
+
rdfs:label "Identity Test Alternative"@en ;
|
|
132
|
+
rdfs:comment """
|
|
133
|
+
Represents an alternative identity test pattern like "A or B and C".
|
|
134
|
+
Used when multiple tests are acceptable for identification, with
|
|
135
|
+
different logical combinations.
|
|
136
|
+
"""@en ;
|
|
137
|
+
rdfs:subClassOf id:CompositeIdentificationTest .
|
|
138
|
+
|
|
139
|
+
id:alternativePattern
|
|
140
|
+
a owl:DatatypeProperty ;
|
|
141
|
+
rdfs:label "alternative pattern"@en ;
|
|
142
|
+
rdfs:comment """
|
|
143
|
+
The pattern of alternatives as a string (e.g., "A or B and C").
|
|
144
|
+
For human readability and documentation.
|
|
145
|
+
"""@en ;
|
|
146
|
+
rdfs:domain id:IdentityTestAlternative ;
|
|
147
|
+
rdfs:range xsd:string .
|
|
148
|
+
|
|
149
|
+
id:minimumTestsRequired
|
|
150
|
+
a owl:DatatypeProperty ;
|
|
151
|
+
rdfs:label "minimum tests required"@en ;
|
|
152
|
+
rdfs:comment """
|
|
153
|
+
The minimum number of tests that must pass for the identification
|
|
154
|
+
to be successful.
|
|
155
|
+
"""@en ;
|
|
156
|
+
rdfs:domain id:IdentityTestAlternative ;
|
|
157
|
+
rdfs:range xsd:integer .
|
|
158
|
+
|
|
159
|
+
# =============================================================================
|
|
160
|
+
# GENERAL IDENTIFICATION TEST
|
|
161
|
+
# =============================================================================
|
|
162
|
+
|
|
163
|
+
id:GeneralIdentificationTest
|
|
164
|
+
a owl:Class ;
|
|
165
|
+
rdfs:label "General Identification Test"@en ;
|
|
166
|
+
rdfs:comment """
|
|
167
|
+
A reference to a general test method defined elsewhere (e.g., in
|
|
168
|
+
a general tests chapter). Common in pharmacopoeias where certain
|
|
169
|
+
identification methods are defined once and referenced by many
|
|
170
|
+
monographs.
|
|
171
|
+
"""@en ;
|
|
172
|
+
rdfs:subClassOf id:SingleIdentificationTest .
|
|
173
|
+
|
|
174
|
+
id:generalTestReference
|
|
175
|
+
a owl:DatatypeProperty ;
|
|
176
|
+
rdfs:label "general test reference"@en ;
|
|
177
|
+
rdfs:comment """
|
|
178
|
+
The reference to the general test (e.g., "General Test 2.2.23",
|
|
179
|
+
"Appendix III.A").
|
|
180
|
+
"""@en ;
|
|
181
|
+
rdfs:domain id:GeneralIdentificationTest ;
|
|
182
|
+
rdfs:range xsd:string .
|
|
183
|
+
|
|
184
|
+
id:generalTestMethod
|
|
185
|
+
a owl:ObjectProperty ;
|
|
186
|
+
rdfs:label "general test method"@en ;
|
|
187
|
+
rdfs:comment "Link to the full definition of the general test method."@en ;
|
|
188
|
+
rdfs:domain id:GeneralIdentificationTest ;
|
|
189
|
+
rdfs:range op:TestMethod .
|
|
190
|
+
|
|
191
|
+
# =============================================================================
|
|
192
|
+
# SPECIFIC IDENTIFICATION TEST TYPES
|
|
193
|
+
# =============================================================================
|
|
194
|
+
|
|
195
|
+
id:SpectroscopicIdentification
|
|
196
|
+
a owl:Class ;
|
|
197
|
+
rdfs:label "Spectroscopic Identification"@en ;
|
|
198
|
+
rdfs:comment "Identification using spectroscopic methods (IR, UV, NMR)."@en ;
|
|
199
|
+
rdfs:subClassOf id:SingleIdentificationTest .
|
|
200
|
+
|
|
201
|
+
id:ChromatographicIdentification
|
|
202
|
+
a owl:Class ;
|
|
203
|
+
rdfs:label "Chromatographic Identification"@en ;
|
|
204
|
+
rdfs:comment "Identification using chromatographic methods (TLC, HPLC, GC)."@en ;
|
|
205
|
+
rdfs:subClassOf id:SingleIdentificationTest .
|
|
206
|
+
|
|
207
|
+
id:ChemicalReactionIdentification
|
|
208
|
+
a owl:Class ;
|
|
209
|
+
rdfs:label "Chemical Reaction Identification"@en ;
|
|
210
|
+
rdfs:comment "Identification using chemical reactions (color, precipitate)."@en ;
|
|
211
|
+
rdfs:subClassOf id:SingleIdentificationTest .
|
|
212
|
+
|
|
213
|
+
id:PhysicalPropertyIdentification
|
|
214
|
+
a owl:Class ;
|
|
215
|
+
rdfs:label "Physical Property Identification"@en ;
|
|
216
|
+
rdfs:comment "Identification using physical properties (melting point, rotation)."@en ;
|
|
217
|
+
rdfs:subClassOf id:SingleIdentificationTest .
|
|
218
|
+
|
|
219
|
+
# =============================================================================
|
|
220
|
+
# MICROBIOLOGY IDENTIFICATION
|
|
221
|
+
# =============================================================================
|
|
222
|
+
|
|
223
|
+
id:MicrobiologyIdentification
|
|
224
|
+
a owl:Class ;
|
|
225
|
+
rdfs:label "Microbiology Identification"@en ;
|
|
226
|
+
rdfs:comment """
|
|
227
|
+
Identification using microbiological methods, including culture
|
|
228
|
+
characteristics, biochemical tests, and organism-specific tests.
|
|
229
|
+
"""@en ;
|
|
230
|
+
rdfs:subClassOf id:SingleIdentificationTest .
|
|
231
|
+
|
|
232
|
+
id:TestOrganism
|
|
233
|
+
a owl:Class ;
|
|
234
|
+
rdfs:label "Test Organism"@en ;
|
|
235
|
+
rdfs:comment """
|
|
236
|
+
A microorganism used in microbiological testing. May be a test
|
|
237
|
+
organism for potency assays or a challenge organism for sterility
|
|
238
|
+
or antimicrobial effectiveness testing.
|
|
239
|
+
"""@en .
|
|
240
|
+
|
|
241
|
+
id:organismName
|
|
242
|
+
a owl:DatatypeProperty ;
|
|
243
|
+
rdfs:label "organism name"@en ;
|
|
244
|
+
rdfs:comment "The scientific name of the test organism."@en ;
|
|
245
|
+
rdfs:domain id:TestOrganism ;
|
|
246
|
+
rdfs:range xsd:string .
|
|
247
|
+
|
|
248
|
+
id:organismStrain
|
|
249
|
+
a owl:DatatypeProperty ;
|
|
250
|
+
rdfs:label "organism strain"@en ;
|
|
251
|
+
rdfs:comment "The strain designation (e.g., ATCC number)."@en ;
|
|
252
|
+
rdfs:domain id:TestOrganism ;
|
|
253
|
+
rdfs:range xsd:string .
|
|
254
|
+
|
|
255
|
+
id:organismType
|
|
256
|
+
a owl:ObjectProperty ;
|
|
257
|
+
rdfs:label "organism type"@en ;
|
|
258
|
+
rdfs:comment "The type of organism (bacteria, fungus, virus)."@en ;
|
|
259
|
+
rdfs:domain id:TestOrganism ;
|
|
260
|
+
rdfs:range id:OrganismType .
|
|
261
|
+
|
|
262
|
+
id:OrganismType
|
|
263
|
+
a owl:Class ;
|
|
264
|
+
rdfs:label "Organism Type"@en ;
|
|
265
|
+
rdfs:comment "The type of microorganism."@en .
|
|
266
|
+
|
|
267
|
+
id:Bacteria
|
|
268
|
+
a id:OrganismType ;
|
|
269
|
+
rdfs:label "Bacteria"@en ;
|
|
270
|
+
skos:prefLabel "Bacteria"@en .
|
|
271
|
+
|
|
272
|
+
id:Fungus
|
|
273
|
+
a id:OrganismType ;
|
|
274
|
+
rdfs:label "Fungus"@en ;
|
|
275
|
+
skos:prefLabel "Fungus"@en .
|
|
276
|
+
|
|
277
|
+
id:Yeast
|
|
278
|
+
a id:OrganismType ;
|
|
279
|
+
rdfs:label "Yeast"@en ;
|
|
280
|
+
skos:prefLabel "Yeast"@en ;
|
|
281
|
+
rdfs:subClassOf id:Fungus .
|
|
282
|
+
|
|
283
|
+
id:Mold
|
|
284
|
+
a id:OrganismType ;
|
|
285
|
+
rdfs:label "Mold"@en ;
|
|
286
|
+
skos:prefLabel "Mold"@en ;
|
|
287
|
+
rdfs:subClassOf id:Fungus .
|
|
288
|
+
|
|
289
|
+
id:Virus
|
|
290
|
+
a id:OrganismType ;
|
|
291
|
+
rdfs:label "Virus"@en ;
|
|
292
|
+
skos:prefLabel "Virus"@en .
|
|
293
|
+
|
|
294
|
+
# =============================================================================
|
|
295
|
+
# CULTURE MEDIUM
|
|
296
|
+
# =============================================================================
|
|
297
|
+
|
|
298
|
+
id:CultureMedium
|
|
299
|
+
a owl:Class ;
|
|
300
|
+
rdfs:label "Culture Medium"@en ;
|
|
301
|
+
rdfs:comment """
|
|
302
|
+
A growth medium used for culturing microorganisms in microbiological
|
|
303
|
+
testing. May be solid (agar), liquid (broth), or semi-solid.
|
|
304
|
+
"""@en .
|
|
305
|
+
|
|
306
|
+
id:mediumName
|
|
307
|
+
a owl:DatatypeProperty ;
|
|
308
|
+
rdfs:label "medium name"@en ;
|
|
309
|
+
rdfs:comment "The name of the culture medium."@en ;
|
|
310
|
+
rdfs:domain id:CultureMedium ;
|
|
311
|
+
rdfs:range xsd:string .
|
|
312
|
+
|
|
313
|
+
id:mediumType
|
|
314
|
+
a owl:ObjectProperty ;
|
|
315
|
+
rdfs:label "medium type"@en ;
|
|
316
|
+
rdfs:comment "The type of culture medium."@en ;
|
|
317
|
+
rdfs:domain id:CultureMedium ;
|
|
318
|
+
rdfs:range id:MediumType .
|
|
319
|
+
|
|
320
|
+
id:MediumType
|
|
321
|
+
a owl:Class ;
|
|
322
|
+
rdfs:label "Medium Type"@en ;
|
|
323
|
+
rdfs:comment "The physical type of culture medium."@en .
|
|
324
|
+
|
|
325
|
+
id:SolidMedium
|
|
326
|
+
a id:MediumType ;
|
|
327
|
+
rdfs:label "Solid Medium"@en ;
|
|
328
|
+
skos:prefLabel "Solid"@en ;
|
|
329
|
+
rdfs:comment "Solid medium (e.g., agar plate)."@en .
|
|
330
|
+
|
|
331
|
+
id:LiquidMedium
|
|
332
|
+
a id:MediumType ;
|
|
333
|
+
rdfs:label "Liquid Medium"@en ;
|
|
334
|
+
skos:prefLabel "Liquid"@en ;
|
|
335
|
+
rdfs:comment "Liquid medium (e.g., broth)."@en .
|
|
336
|
+
|
|
337
|
+
id:SemiSolidMedium
|
|
338
|
+
a id:MediumType ;
|
|
339
|
+
rdfs:label "Semi-Solid Medium"@en ;
|
|
340
|
+
skos:prefLabel "Semi-Solid"@en ;
|
|
341
|
+
rdfs:comment "Semi-solid medium."@en .
|
|
342
|
+
|
|
343
|
+
id:mediumPH
|
|
344
|
+
a owl:DatatypeProperty ;
|
|
345
|
+
rdfs:label "medium pH"@en ;
|
|
346
|
+
rdfs:comment "The pH of the culture medium after sterilization."@en ;
|
|
347
|
+
rdfs:domain id:CultureMedium ;
|
|
348
|
+
rdfs:range xsd:decimal .
|
|
349
|
+
|
|
350
|
+
id:incubationTemperature
|
|
351
|
+
a owl:DatatypeProperty ;
|
|
352
|
+
rdfs:label "incubation temperature"@en ;
|
|
353
|
+
rdfs:comment "The incubation temperature in degrees Celsius."@en ;
|
|
354
|
+
rdfs:domain id:CultureMedium ;
|
|
355
|
+
rdfs:range xsd:decimal .
|
|
356
|
+
|
|
357
|
+
id:incubationTime
|
|
358
|
+
a owl:DatatypeProperty ;
|
|
359
|
+
rdfs:label "incubation time"@en ;
|
|
360
|
+
rdfs:comment "The incubation time (e.g., '24-48 hours')."@en ;
|
|
361
|
+
rdfs:domain id:CultureMedium ;
|
|
362
|
+
rdfs:range xsd:string .
|
|
363
|
+
|
|
364
|
+
# =============================================================================
|
|
365
|
+
# COMMON CULTURE MEDIA
|
|
366
|
+
# =============================================================================
|
|
367
|
+
|
|
368
|
+
id:SoybeanCaseinDigestMedium
|
|
369
|
+
a id:CultureMedium ;
|
|
370
|
+
rdfs:label "Soybean-Casein Digest Medium"@en ;
|
|
371
|
+
skos:prefLabel "SCDM"@en ;
|
|
372
|
+
skos:altLabel "Tryptic Soy Broth"@en ;
|
|
373
|
+
id:mediumName "Soybean-Casein Digest Medium" ;
|
|
374
|
+
id:mediumType id:LiquidMedium .
|
|
375
|
+
|
|
376
|
+
id:FluidThioglycollateMedium
|
|
377
|
+
a id:CultureMedium ;
|
|
378
|
+
rdfs:label "Fluid Thioglycollate Medium"@en ;
|
|
379
|
+
skos:prefLabel "FTM"@en ;
|
|
380
|
+
id:mediumName "Fluid Thioglycollate Medium" ;
|
|
381
|
+
id:mediumType id:LiquidMedium .
|
|
382
|
+
|
|
383
|
+
id:SabouraudDextroseAgar
|
|
384
|
+
a id:CultureMedium ;
|
|
385
|
+
rdfs:label "Sabouraud Dextrose Agar"@en ;
|
|
386
|
+
skos:prefLabel "SDA"@en ;
|
|
387
|
+
id:mediumName "Sabouraud Dextrose Agar" ;
|
|
388
|
+
id:mediumType id:SolidMedium .
|
|
389
|
+
|
|
390
|
+
id:PotatoDextroseAgar
|
|
391
|
+
a id:CultureMedium ;
|
|
392
|
+
rdfs:label "Potato Dextrose Agar"@en ;
|
|
393
|
+
skos:prefLabel "PDA"@en ;
|
|
394
|
+
id:mediumName "Potato Dextrose Agar" ;
|
|
395
|
+
id:mediumType id:SolidMedium .
|
|
396
|
+
|
|
397
|
+
# =============================================================================
|
|
398
|
+
# LINKING PROPERTIES ON MONOGRAPH
|
|
399
|
+
# =============================================================================
|
|
400
|
+
|
|
401
|
+
op:hasIdentificationTest
|
|
402
|
+
a owl:ObjectProperty ;
|
|
403
|
+
rdfs:label "has identification test"@en ;
|
|
404
|
+
rdfs:comment "An identification test for this substance."@en ;
|
|
405
|
+
rdfs:domain op:PharmacopoeiaMonograph ;
|
|
406
|
+
rdfs:range id:IdentificationTest .
|
|
407
|
+
|
|
408
|
+
op:usesTestOrganism
|
|
409
|
+
a owl:ObjectProperty ;
|
|
410
|
+
rdfs:label "uses test organism"@en ;
|
|
411
|
+
rdfs:comment "A test organism used in testing this substance."@en ;
|
|
412
|
+
rdfs:domain op:PharmacopoeiaMonograph ;
|
|
413
|
+
rdfs:range id:TestOrganism .
|
|
414
|
+
|
|
415
|
+
op:usesCultureMedium
|
|
416
|
+
a owl:ObjectProperty ;
|
|
417
|
+
rdfs:label "uses culture medium"@en ;
|
|
418
|
+
rdfs:comment "A culture medium used in testing this substance."@en ;
|
|
419
|
+
rdfs:domain op:PharmacopoeiaMonograph ;
|
|
420
|
+
rdfs:range id:CultureMedium .
|
|
421
|
+
|
|
422
|
+
# =============================================================================
|
|
423
|
+
# EXAMPLE: COMPLEX IDENTIFICATION TEST
|
|
424
|
+
# =============================================================================
|
|
425
|
+
|
|
426
|
+
# Example instance data would look like:
|
|
427
|
+
#
|
|
428
|
+
# op:SomeDrug-Monograph a op:ChemicalDrugMonograph ;
|
|
429
|
+
# op:hasIdentificationTest id:SomeDrug-Identification .
|
|
430
|
+
#
|
|
431
|
+
# id:SomeDrug-Identification a id:IdentityTestAlternative ;
|
|
432
|
+
# rdfs:label "Identification for Some Drug"@en ;
|
|
433
|
+
# id:alternativePattern "Test A or Test B and Test C" ;
|
|
434
|
+
# id:minimumTestsRequired 2 ;
|
|
435
|
+
# id:hasComponent [
|
|
436
|
+
# id:componentTest id:SomeDrug-IR ;
|
|
437
|
+
# id:logicalOperator id:OrOperator ;
|
|
438
|
+
# id:componentOrder 1
|
|
439
|
+
# ] , [
|
|
440
|
+
# id:componentTest id:SomeDrug-UV ;
|
|
441
|
+
# id:logicalOperator id:OrOperator ;
|
|
442
|
+
# id:componentOrder 2
|
|
443
|
+
# ] , [
|
|
444
|
+
# id:componentTest id:SomeDrug-TLC ;
|
|
445
|
+
# id:logicalOperator id:AndOperator ;
|
|
446
|
+
# id:componentOrder 3
|
|
447
|
+
# ] .
|
|
448
|
+
#
|
|
449
|
+
# id:SomeDrug-IR a id:SpectroscopicIdentification ;
|
|
450
|
+
# rdfs:label "IR Spectroscopy"@en .
|
|
451
|
+
#
|
|
452
|
+
# id:SomeDrug-UV a id:SpectroscopicIdentification ;
|
|
453
|
+
# rdfs:label "UV Spectroscopy"@en .
|
|
454
|
+
#
|
|
455
|
+
# id:SomeDrug-TLC a id:ChromatographicIdentification ;
|
|
456
|
+
# rdfs:label "TLC"@en .
|