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,302 @@
|
|
|
1
|
+
# Open Pharmacopoeia - Substance Form Ontology
|
|
2
|
+
#
|
|
3
|
+
# This module defines classes and properties for representing different
|
|
4
|
+
# forms of pharmaceutical substances (anhydrous, hydrate, solvate variants)
|
|
5
|
+
# and their equivalences.
|
|
6
|
+
#
|
|
7
|
+
# This addresses a key gap identified in the International Pharmacopoeia
|
|
8
|
+
# where substances like Paracetamol may exist in anhydrous or hydrate forms,
|
|
9
|
+
# each with different molecular weights and assay calculations.
|
|
10
|
+
#
|
|
11
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
12
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
13
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
14
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
15
|
+
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
|
|
16
|
+
@prefix dct: <http://purl.org/dc/terms/> .
|
|
17
|
+
@prefix op: <https://www.openphar.org/ontology/core/> .
|
|
18
|
+
@prefix sf: <https://www.openphar.org/ontology/substance-form/> .
|
|
19
|
+
|
|
20
|
+
<https://www.openphar.org/ontology/substance-form/>
|
|
21
|
+
a owl:Ontology ;
|
|
22
|
+
rdfs:label "Open Pharmacopoeia Substance Form Ontology"@en ;
|
|
23
|
+
rdfs:comment """
|
|
24
|
+
Ontology for representing different forms of pharmaceutical substances
|
|
25
|
+
including anhydrous, hydrate, and solvate variants. This enables
|
|
26
|
+
proper handling of molecular weight differences and assay calculations
|
|
27
|
+
for different substance forms.
|
|
28
|
+
"""@en ;
|
|
29
|
+
owl:imports <https://www.openphar.org/ontology/core/> ;
|
|
30
|
+
dct:created "2026-02-26"^^xsd:date ;
|
|
31
|
+
dct:modified "2026-02-26"^^xsd:date .
|
|
32
|
+
|
|
33
|
+
# =============================================================================
|
|
34
|
+
# SUBSTANCE FORM CLASS
|
|
35
|
+
# =============================================================================
|
|
36
|
+
|
|
37
|
+
sf:SubstanceForm
|
|
38
|
+
a owl:Class ;
|
|
39
|
+
rdfs:label "Substance Form"@en ;
|
|
40
|
+
rdfs:comment """
|
|
41
|
+
A specific physical or chemical form of a pharmaceutical substance.
|
|
42
|
+
Different forms (anhydrous, hydrate, solvate) may have different
|
|
43
|
+
molecular weights and require different assay calculations.
|
|
44
|
+
"""@en ;
|
|
45
|
+
rdfs:subClassOf [
|
|
46
|
+
a owl:Restriction ;
|
|
47
|
+
owl:onProperty sf:formOf ;
|
|
48
|
+
owl:cardinality 1
|
|
49
|
+
] .
|
|
50
|
+
|
|
51
|
+
sf:formOf
|
|
52
|
+
a owl:ObjectProperty ;
|
|
53
|
+
rdfs:label "form of"@en ;
|
|
54
|
+
rdfs:comment "The base substance that this is a form of."@en ;
|
|
55
|
+
rdfs:domain sf:SubstanceForm ;
|
|
56
|
+
rdfs:range op:PharmacopoeiaMonograph .
|
|
57
|
+
|
|
58
|
+
sf:formType
|
|
59
|
+
a owl:ObjectProperty ;
|
|
60
|
+
rdfs:label "form type"@en ;
|
|
61
|
+
rdfs:comment "The type of form (anhydrous, hydrate, solvate)."@en ;
|
|
62
|
+
rdfs:domain sf:SubstanceForm ;
|
|
63
|
+
rdfs:range sf:FormType .
|
|
64
|
+
|
|
65
|
+
sf:molecularWeight
|
|
66
|
+
a owl:DatatypeProperty ;
|
|
67
|
+
rdfs:label "molecular weight"@en ;
|
|
68
|
+
rdfs:comment "The molecular weight of this specific form."@en ;
|
|
69
|
+
rdfs:domain sf:SubstanceForm ;
|
|
70
|
+
rdfs:range xsd:decimal .
|
|
71
|
+
|
|
72
|
+
sf:molecularFormula
|
|
73
|
+
a owl:DatatypeProperty ;
|
|
74
|
+
rdfs:label "molecular formula"@en ;
|
|
75
|
+
rdfs:comment "The molecular formula of this specific form."@en ;
|
|
76
|
+
rdfs:domain sf:SubstanceForm ;
|
|
77
|
+
rdfs:range xsd:string .
|
|
78
|
+
|
|
79
|
+
# =============================================================================
|
|
80
|
+
# FORM TYPE CLASS
|
|
81
|
+
# =============================================================================
|
|
82
|
+
|
|
83
|
+
sf:FormType
|
|
84
|
+
a owl:Class ;
|
|
85
|
+
rdfs:label "Form Type"@en ;
|
|
86
|
+
rdfs:comment "The type of substance form."@en .
|
|
87
|
+
|
|
88
|
+
sf:AnhydrousForm
|
|
89
|
+
a sf:FormType ;
|
|
90
|
+
rdfs:label "Anhydrous Form"@en ;
|
|
91
|
+
skos:prefLabel "Anhydrous"@en ;
|
|
92
|
+
skos:altLabel "Anhydrous"@en ;
|
|
93
|
+
rdfs:comment "A substance form without water of crystallization."@en .
|
|
94
|
+
|
|
95
|
+
sf:HydrateForm
|
|
96
|
+
a sf:FormType ;
|
|
97
|
+
rdfs:label "Hydrate Form"@en ;
|
|
98
|
+
skos:prefLabel "Hydrate"@en ;
|
|
99
|
+
skos:altLabel "Hydrated"@en ;
|
|
100
|
+
rdfs:comment "A substance form containing water of crystallization."@en .
|
|
101
|
+
|
|
102
|
+
sf:SolvateForm
|
|
103
|
+
a sf:FormType ;
|
|
104
|
+
rdfs:label "Solvate Form"@en ;
|
|
105
|
+
skos:prefLabel "Solvate"@en ;
|
|
106
|
+
rdfs:comment "A substance form containing solvent of crystallization."@en .
|
|
107
|
+
|
|
108
|
+
sf:MonohydrateForm
|
|
109
|
+
a sf:FormType ;
|
|
110
|
+
rdfs:label "Monohydrate Form"@en ;
|
|
111
|
+
skos:prefLabel "Monohydrate"@en ;
|
|
112
|
+
rdfs:comment "A hydrate form with one molecule of water."@en ;
|
|
113
|
+
rdfs:subClassOf sf:HydrateForm .
|
|
114
|
+
|
|
115
|
+
sf:DihydrateForm
|
|
116
|
+
a sf:FormType ;
|
|
117
|
+
rdfs:label "Dihydrate Form"@en ;
|
|
118
|
+
skos:prefLabel "Dihydrate"@en ;
|
|
119
|
+
rdfs:comment "A hydrate form with two molecules of water."@en ;
|
|
120
|
+
rdfs:subClassOf sf:HydrateForm .
|
|
121
|
+
|
|
122
|
+
sf:TrihydrateForm
|
|
123
|
+
a sf:FormType ;
|
|
124
|
+
rdfs:label "Trihydrate Form"@en ;
|
|
125
|
+
skos:prefLabel "Trihydrate"@en ;
|
|
126
|
+
rdfs:comment "A hydrate form with three molecules of water."@en ;
|
|
127
|
+
rdfs:subClassOf sf:HydrateForm .
|
|
128
|
+
|
|
129
|
+
sf:PentahydrateForm
|
|
130
|
+
a sf:FormType ;
|
|
131
|
+
rdfs:label "Pentahydrate Form"@en ;
|
|
132
|
+
skos:prefLabel "Pentahydrate"@en ;
|
|
133
|
+
rdfs:comment "A hydrate form with five molecules of water."@en ;
|
|
134
|
+
rdfs:subClassOf sf:HydrateForm .
|
|
135
|
+
|
|
136
|
+
# =============================================================================
|
|
137
|
+
# WATER/ SOLVENT CONTENT
|
|
138
|
+
# =============================================================================
|
|
139
|
+
|
|
140
|
+
sf:waterContent
|
|
141
|
+
a owl:DatatypeProperty ;
|
|
142
|
+
rdfs:label "water content"@en ;
|
|
143
|
+
rdfs:comment "The water content as a percentage or molecular ratio."@en ;
|
|
144
|
+
rdfs:domain sf:SubstanceForm ;
|
|
145
|
+
rdfs:range xsd:string .
|
|
146
|
+
|
|
147
|
+
sf:waterMolecules
|
|
148
|
+
a owl:DatatypeProperty ;
|
|
149
|
+
rdfs:label "water molecules"@en ;
|
|
150
|
+
rdfs:comment "The number of water molecules per substance molecule."@en ;
|
|
151
|
+
rdfs:domain sf:SubstanceForm ;
|
|
152
|
+
rdfs:range xsd:integer .
|
|
153
|
+
|
|
154
|
+
sf:solventType
|
|
155
|
+
a owl:DatatypeProperty ;
|
|
156
|
+
rdfs:label "solvent type"@en ;
|
|
157
|
+
rdfs:comment "The type of solvent in a solvate form."@en ;
|
|
158
|
+
rdfs:domain sf:SubstanceForm ;
|
|
159
|
+
rdfs:range xsd:string .
|
|
160
|
+
|
|
161
|
+
sf:solventMolecules
|
|
162
|
+
a owl:DatatypeProperty ;
|
|
163
|
+
rdfs:label "solvent molecules"@en ;
|
|
164
|
+
rdfs:comment "The number of solvent molecules per substance molecule."@en ;
|
|
165
|
+
rdfs:domain sf:SubstanceForm ;
|
|
166
|
+
rdfs:range xsd:integer .
|
|
167
|
+
|
|
168
|
+
# =============================================================================
|
|
169
|
+
# SUBSTANCE TYPE VARIANT (Type A, Type B, etc.)
|
|
170
|
+
# =============================================================================
|
|
171
|
+
|
|
172
|
+
sf:SubstanceTypeVariant
|
|
173
|
+
a owl:Class ;
|
|
174
|
+
rdfs:label "Substance Type Variant"@en ;
|
|
175
|
+
rdfs:comment """
|
|
176
|
+
A type variant of a pharmaceutical substance (e.g., Type A, Type B).
|
|
177
|
+
Different types may have different physical properties, particle sizes,
|
|
178
|
+
or crystalline forms while having the same chemical composition.
|
|
179
|
+
"""@en .
|
|
180
|
+
|
|
181
|
+
sf:typeVariantOf
|
|
182
|
+
a owl:ObjectProperty ;
|
|
183
|
+
rdfs:label "type variant of"@en ;
|
|
184
|
+
rdfs:comment "The base substance that this is a type variant of."@en ;
|
|
185
|
+
rdfs:domain sf:SubstanceTypeVariant ;
|
|
186
|
+
rdfs:range op:PharmacopoeiaMonograph .
|
|
187
|
+
|
|
188
|
+
sf:variantIdentifier
|
|
189
|
+
a owl:DatatypeProperty ;
|
|
190
|
+
rdfs:label "variant identifier"@en ;
|
|
191
|
+
rdfs:comment "The identifier for this type variant (e.g., 'A', 'B', 'I', 'II')."@en ;
|
|
192
|
+
rdfs:domain sf:SubstanceTypeVariant ;
|
|
193
|
+
rdfs:range xsd:string .
|
|
194
|
+
|
|
195
|
+
sf:particleSizeRange
|
|
196
|
+
a owl:DatatypeProperty ;
|
|
197
|
+
rdfs:label "particle size range"@en ;
|
|
198
|
+
rdfs:comment "The particle size range for this variant."@en ;
|
|
199
|
+
rdfs:domain sf:SubstanceTypeVariant ;
|
|
200
|
+
rdfs:range xsd:string .
|
|
201
|
+
|
|
202
|
+
sf:crystallineForm
|
|
203
|
+
a owl:DatatypeProperty ;
|
|
204
|
+
rdfs:label "crystalline form"@en ;
|
|
205
|
+
rdfs:comment "The crystalline form (e.g., 'amorphous', 'crystalline', 'polymorph I')."@en ;
|
|
206
|
+
rdfs:domain sf:SubstanceTypeVariant ;
|
|
207
|
+
rdfs:range xsd:string .
|
|
208
|
+
|
|
209
|
+
# =============================================================================
|
|
210
|
+
# SALT-BASE EQUIVALENCE
|
|
211
|
+
# =============================================================================
|
|
212
|
+
|
|
213
|
+
sf:SaltBaseEquivalence
|
|
214
|
+
a owl:Class ;
|
|
215
|
+
rdfs:label "Salt-Base Equivalence"@en ;
|
|
216
|
+
rdfs:comment """
|
|
217
|
+
Defines the equivalence between a salt form and its base (free acid or
|
|
218
|
+
free base). This is essential for calculating equivalent doses and
|
|
219
|
+
for comparing different salt forms of the same active moiety.
|
|
220
|
+
"""@en .
|
|
221
|
+
|
|
222
|
+
sf:saltForm
|
|
223
|
+
a owl:ObjectProperty ;
|
|
224
|
+
rdfs:label "salt form"@en ;
|
|
225
|
+
rdfs:comment "The salt form of the substance."@en ;
|
|
226
|
+
rdfs:domain sf:SaltBaseEquivalence ;
|
|
227
|
+
rdfs:range op:PharmacopoeiaMonograph .
|
|
228
|
+
|
|
229
|
+
sf:baseForm
|
|
230
|
+
a owl:ObjectProperty ;
|
|
231
|
+
rdfs:label "base form"@en ;
|
|
232
|
+
rdfs:comment "The base form (free acid or free base) of the substance."@en ;
|
|
233
|
+
rdfs:domain sf:SaltBaseEquivalence ;
|
|
234
|
+
rdfs:range op:PharmacopoeiaMonograph .
|
|
235
|
+
|
|
236
|
+
sf:equivalenceFactor
|
|
237
|
+
a owl:DatatypeProperty ;
|
|
238
|
+
rdfs:label "equivalence factor"@en ;
|
|
239
|
+
rdfs:comment """
|
|
240
|
+
The factor to convert from salt form to base form.
|
|
241
|
+
Calculated as: MW(base) / MW(salt)
|
|
242
|
+
"""@en ;
|
|
243
|
+
rdfs:domain sf:SaltBaseEquivalence ;
|
|
244
|
+
rdfs:range xsd:decimal .
|
|
245
|
+
|
|
246
|
+
sf:equivalenceRatio
|
|
247
|
+
a owl:DatatypeProperty ;
|
|
248
|
+
rdfs:label "equivalence ratio"@en ;
|
|
249
|
+
rdfs:comment """
|
|
250
|
+
The ratio of salt to base (e.g., '1:1', '2:1').
|
|
251
|
+
Used for stoichiometric calculations.
|
|
252
|
+
"""@en ;
|
|
253
|
+
rdfs:domain sf:SaltBaseEquivalence ;
|
|
254
|
+
rdfs:range xsd:string .
|
|
255
|
+
|
|
256
|
+
# =============================================================================
|
|
257
|
+
# EXAMPLE: PARACETAMOL FORMS
|
|
258
|
+
# =============================================================================
|
|
259
|
+
|
|
260
|
+
# Example instance data would look like:
|
|
261
|
+
#
|
|
262
|
+
# op:Paracetamol a op:ChemicalDrugMonograph ;
|
|
263
|
+
# skos:prefLabel "Paracetamol"@en ;
|
|
264
|
+
# sf:hasForm sf:Paracetamol-Anhydrous, sf:Paracetamol-Hydrate .
|
|
265
|
+
#
|
|
266
|
+
# sf:Paracetamol-Anhydrous a sf:SubstanceForm ;
|
|
267
|
+
# sf:formOf op:Paracetamol ;
|
|
268
|
+
# sf:formType sf:AnhydrousForm ;
|
|
269
|
+
# sf:molecularFormula "C8H9NO2" ;
|
|
270
|
+
# sf:molecularWeight 151.16 .
|
|
271
|
+
#
|
|
272
|
+
# sf:Paracetamol-Hydrate a sf:SubstanceForm ;
|
|
273
|
+
# sf:formOf op:Paracetamol ;
|
|
274
|
+
# sf:formType sf:MonohydrateForm ;
|
|
275
|
+
# sf:molecularFormula "C8H9NO2.H2O" ;
|
|
276
|
+
# sf:molecularWeight 169.18 ;
|
|
277
|
+
# sf:waterMolecules 1 .
|
|
278
|
+
|
|
279
|
+
# =============================================================================
|
|
280
|
+
# LINKING PROPERTY ON MONOGRAPH
|
|
281
|
+
# =============================================================================
|
|
282
|
+
|
|
283
|
+
op:hasSubstanceForm
|
|
284
|
+
a owl:ObjectProperty ;
|
|
285
|
+
rdfs:label "has substance form"@en ;
|
|
286
|
+
rdfs:comment "A specific form of this substance."@en ;
|
|
287
|
+
rdfs:domain op:PharmacopoeiaMonograph ;
|
|
288
|
+
rdfs:range sf:SubstanceForm .
|
|
289
|
+
|
|
290
|
+
op:hasTypeVariant
|
|
291
|
+
a owl:ObjectProperty ;
|
|
292
|
+
rdfs:label "has type variant"@en ;
|
|
293
|
+
rdfs:comment "A type variant of this substance."@en ;
|
|
294
|
+
rdfs:domain op:PharmacopoeiaMonograph ;
|
|
295
|
+
rdfs:range sf:SubstanceTypeVariant .
|
|
296
|
+
|
|
297
|
+
op:hasSaltEquivalence
|
|
298
|
+
a owl:ObjectProperty ;
|
|
299
|
+
rdfs:label "has salt equivalence"@en ;
|
|
300
|
+
rdfs:comment "Salt-base equivalence information for this substance."@en ;
|
|
301
|
+
rdfs:domain op:PharmacopoeiaMonograph ;
|
|
302
|
+
rdfs:range sf:SaltBaseEquivalence .
|