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.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/README.adoc +221 -0
  3. data/lib/openphar/cli/main.rb +137 -0
  4. data/lib/openphar/cli.rb +11 -0
  5. data/lib/openphar/core/slug_generator.rb +107 -0
  6. data/lib/openphar/core.rb +11 -0
  7. data/lib/openphar/errors/configuration_error.rb +8 -0
  8. data/lib/openphar/errors/monograph_not_found_error.rb +15 -0
  9. data/lib/openphar/errors/parse_error.rb +18 -0
  10. data/lib/openphar/errors/unknown_format_error.rb +8 -0
  11. data/lib/openphar/errors/unknown_publisher_error.rb +8 -0
  12. data/lib/openphar/errors/unknown_type_error.rb +8 -0
  13. data/lib/openphar/errors/validation_error.rb +15 -0
  14. data/lib/openphar/errors.rb +17 -0
  15. data/lib/openphar/exporters/coverage_validator.rb +265 -0
  16. data/lib/openphar/exporters/neo4j/model_registry.rb +130 -0
  17. data/lib/openphar/exporters/neo4j/node_builder.rb +84 -0
  18. data/lib/openphar/exporters/neo4j/property_mapper.rb +154 -0
  19. data/lib/openphar/exporters/neo4j/relationship_builder.rb +87 -0
  20. data/lib/openphar/exporters/neo4j.rb +16 -0
  21. data/lib/openphar/exporters/neo4j_exporter.rb +199 -0
  22. data/lib/openphar/exporters.rb +15 -0
  23. data/lib/openphar/linkers/chp/cross_edition_linker.rb +101 -0
  24. data/lib/openphar/linkers/chp.rb +11 -0
  25. data/lib/openphar/linkers/cross_publisher_linker.rb +295 -0
  26. data/lib/openphar/linkers/herbapedia_linker.rb +125 -0
  27. data/lib/openphar/linkers.rb +13 -0
  28. data/lib/openphar/migrators/chp/classifier.rb +86 -0
  29. data/lib/openphar/migrators/chp.rb +15 -0
  30. data/lib/openphar/migrators/chp_migrator.rb +130 -0
  31. data/lib/openphar/migrators/jp_migrator.rb +345 -0
  32. data/lib/openphar/migrators/phint_migrator.rb +426 -0
  33. data/lib/openphar/migrators.rb +15 -0
  34. data/lib/openphar/models/ahp.rb +25 -0
  35. data/lib/openphar/models/amino_acid_monograph.rb +28 -0
  36. data/lib/openphar/models/api.rb +29 -0
  37. data/lib/openphar/models/assay_specification.rb +19 -0
  38. data/lib/openphar/models/base_entity.rb +221 -0
  39. data/lib/openphar/models/biological_substance_monograph.rb +31 -0
  40. data/lib/openphar/models/chemical_drug_monograph.rb +39 -0
  41. data/lib/openphar/models/chp/biologic.rb +28 -0
  42. data/lib/openphar/models/chp/chemical_preparation.rb +28 -0
  43. data/lib/openphar/models/chp/chemical_substance.rb +28 -0
  44. data/lib/openphar/models/chp/general_chapter.rb +30 -0
  45. data/lib/openphar/models/chp/monograph.rb +116 -0
  46. data/lib/openphar/models/chp/section.rb +37 -0
  47. data/lib/openphar/models/chp/tcm_crude_drug.rb +28 -0
  48. data/lib/openphar/models/chp/tcm_extract.rb +29 -0
  49. data/lib/openphar/models/chp/tcm_formulation.rb +28 -0
  50. data/lib/openphar/models/chp.rb +33 -0
  51. data/lib/openphar/models/crude_drug_monograph.rb +31 -0
  52. data/lib/openphar/models/edition.rb +41 -0
  53. data/lib/openphar/models/formulation_monograph.rb +31 -0
  54. data/lib/openphar/models/hkcmms.rb +26 -0
  55. data/lib/openphar/models/identification_specification.rb +19 -0
  56. data/lib/openphar/models/jp/kampo_formula.rb +94 -0
  57. data/lib/openphar/models/jp.rb +21 -0
  58. data/lib/openphar/models/limit.rb +54 -0
  59. data/lib/openphar/models/mineral_substance_monograph.rb +28 -0
  60. data/lib/openphar/models/monograph.rb +58 -0
  61. data/lib/openphar/models/ph_int/buffer_solution.rb +38 -0
  62. data/lib/openphar/models/ph_int/dosage_form_monograph.rb +43 -0
  63. data/lib/openphar/models/ph_int/radiopharmaceutical_monograph.rb +52 -0
  64. data/lib/openphar/models/ph_int/reagent.rb +50 -0
  65. data/lib/openphar/models/ph_int/reference_substance.rb +50 -0
  66. data/lib/openphar/models/ph_int/test_method.rb +50 -0
  67. data/lib/openphar/models/ph_int/test_solution.rb +39 -0
  68. data/lib/openphar/models/ph_int/volumetric_solution.rb +38 -0
  69. data/lib/openphar/models/ph_int.rb +37 -0
  70. data/lib/openphar/models/physical_specification.rb +17 -0
  71. data/lib/openphar/models/publisher.rb +98 -0
  72. data/lib/openphar/models/purity_specification.rb +16 -0
  73. data/lib/openphar/models/supplement.rb +31 -0
  74. data/lib/openphar/models/test_specification.rb +29 -0
  75. data/lib/openphar/models/thp.rb +24 -0
  76. data/lib/openphar/models/vitamin_monograph.rb +28 -0
  77. data/lib/openphar/models.rb +58 -0
  78. data/lib/openphar/monograph_merger.rb +374 -0
  79. data/lib/openphar/parsers/base_monograph_parser.rb +108 -0
  80. data/lib/openphar/parsers/jp_html_parser.rb +92 -0
  81. data/lib/openphar/parsers/jp_html_parser_base.rb +113 -0
  82. data/lib/openphar/parsers/jp_ja_html_parser.rb +220 -0
  83. data/lib/openphar/parsers/phint_json_parser.rb +332 -0
  84. data/lib/openphar/parsers.rb +21 -0
  85. data/lib/openphar/registry/publisher_registry.rb +46 -0
  86. data/lib/openphar/registry/type_registry.rb +147 -0
  87. data/lib/openphar/registry.rb +24 -0
  88. data/lib/openphar/repositories/monograph_repository.rb +350 -0
  89. data/lib/openphar/repositories.rb +11 -0
  90. data/lib/openphar/transformers/jsonld_transformer.rb +106 -0
  91. data/lib/openphar/transformers.rb +11 -0
  92. data/lib/openphar/version.rb +5 -0
  93. data/lib/openphar.rb +119 -0
  94. data/ontology/bibliographic/edition.ttl +267 -0
  95. data/ontology/context/chp.jsonld +69 -0
  96. data/ontology/context/crude-drugs.jsonld +56 -0
  97. data/ontology/context/pharmacopoeia.jsonld +631 -0
  98. data/ontology/core/identification.ttl +456 -0
  99. data/ontology/core/pharmacopoeia.ttl +3427 -0
  100. data/ontology/core/substance-form.ttl +302 -0
  101. data/ontology/core/unit.ttl +493 -0
  102. data/ontology/publisher/chp/extensions.ttl +186 -0
  103. data/ontology/publisher/phint/extensions.ttl +327 -0
  104. data/ontology/quality/test-method.ttl +610 -0
  105. data/shapes/chp/monograph.ttl +153 -0
  106. data/shapes/edition-shapes.ttl +230 -0
  107. data/shapes/monograph-shapes.ttl +1324 -0
  108. metadata +319 -0
@@ -0,0 +1,610 @@
1
+ # Open Pharmacopoeia - Test Methods Ontology
2
+ #
3
+ # Harmonized test methods for cross-publisher comparison.
4
+ # Based on JP General Tests structure as the reference standard.
5
+ #
6
+ # MECE Categories:
7
+ # 1. Chromatographic Methods
8
+ # 2. Spectroscopic Methods
9
+ # 3. Titrimetric Methods
10
+ # 4. Physical Tests
11
+ # 5. Purity Tests
12
+ # 6. Microbiological Tests
13
+ # 7. Identification Tests
14
+
15
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
16
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
17
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
18
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
19
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
20
+ @prefix op: <https://www.openphar.org/ontology/core/> .
21
+ @prefix method: <https://www.openphar.org/ontology/method/> .
22
+
23
+ <https://www.openphar.org/ontology/method>
24
+ a owl:Ontology ;
25
+ rdfs:label "Open Pharmacopoeia Test Methods Ontology"@en ;
26
+ rdfs:comment """
27
+ Harmonized test methods for pharmacopoeia monographs.
28
+ Based on JP General Tests as the reference standard.
29
+ Maps equivalent methods from different publishers for cross-publisher comparison.
30
+ """@en ;
31
+ owl:imports <https://www.openphar.org/ontology/core> .
32
+
33
+ # =============================================================================
34
+ # METHOD CATEGORIES
35
+ # =============================================================================
36
+
37
+ method:ChromatographicMethod
38
+ a owl:Class ;
39
+ rdfs:label "Chromatographic Method"@en ;
40
+ rdfs:subClassOf op:HarmonizedMethod ;
41
+ rdfs:comment "Separation methods based on differential partitioning."@en .
42
+
43
+ method:SpectroscopicMethod
44
+ a owl:Class ;
45
+ rdfs:label "Spectroscopic Method"@en ;
46
+ rdfs:subClassOf op:HarmonizedMethod ;
47
+ rdfs:comment "Methods based on interaction with electromagnetic radiation."@en .
48
+
49
+ method:TitrimetricMethod
50
+ a owl:Class ;
51
+ rdfs:label "Titrimetric Method"@en ;
52
+ rdfs:subClassOf op:HarmonizedMethod ;
53
+ rdfs:comment "Quantitative analysis by titration."@en .
54
+
55
+ method:PhysicalTestMethod
56
+ a owl:Class ;
57
+ rdfs:label "Physical Test Method"@en ;
58
+ rdfs:subClassOf op:HarmonizedMethod ;
59
+ rdfs:comment "Methods for measuring physical properties."@en .
60
+
61
+ method:PurityTestMethod
62
+ a owl:Class ;
63
+ rdfs:label "Purity Test Method"@en ;
64
+ rdfs:subClassOf op:HarmonizedMethod ;
65
+ rdfs:comment "Methods for detecting impurities and contaminants."@en .
66
+
67
+ method:MicrobiologicalMethod
68
+ a owl:Class ;
69
+ rdfs:label "Microbiological Method"@en ;
70
+ rdfs:subClassOf op:HarmonizedMethod ;
71
+ rdfs:comment "Methods for microbial testing."@en .
72
+
73
+ method:IdentificationMethod
74
+ a owl:Class ;
75
+ rdfs:label "Identification Method"@en ;
76
+ rdfs:subClassOf op:HarmonizedMethod ;
77
+ rdfs:comment "Methods for confirming identity."@en .
78
+
79
+ # =============================================================================
80
+ # CHROMATOGRAPHIC METHODS
81
+ # =============================================================================
82
+
83
+ method:HPLC
84
+ a method:ChromatographicMethod ;
85
+ rdfs:label "High Performance Liquid Chromatography"@en ;
86
+ skos:altLabel "HPLC"@en ;
87
+ skos:altLabel "Liquid Chromatography"@en ;
88
+ op:jpReference "as directed under Liquid Chromatography <2.01>"@en ;
89
+ rdfs:comment """
90
+ High performance liquid chromatography for separation and quantitative
91
+ analysis. Used for assays and related substances testing.
92
+ """@en .
93
+
94
+ method:HPLC-UV
95
+ a method:ChromatographicMethod ;
96
+ rdfs:label "HPLC with UV Detection"@en ;
97
+ skos:altLabel "HPLC-UV"@en ;
98
+ rdfs:comment "HPLC with ultraviolet detection."@en ;
99
+ rdfs:seeAlso method:HPLC .
100
+
101
+ method:HPLC-FL
102
+ a method:ChromatographicMethod ;
103
+ rdfs:label "HPLC with Fluorescence Detection"@en ;
104
+ skos:altLabel "HPLC-FL"@en ;
105
+ rdfs:comment "HPLC with fluorescence detection."@en ;
106
+ rdfs:seeAlso method:HPLC .
107
+
108
+ method:HPLC-MS
109
+ a method:ChromatographicMethod ;
110
+ rdfs:label "HPLC with Mass Spectrometry Detection"@en ;
111
+ skos:altLabel "LC-MS"@en ;
112
+ rdfs:comment "HPLC with mass spectrometry detection."@en ;
113
+ rdfs:seeAlso method:HPLC .
114
+
115
+ method:GC
116
+ a method:ChromatographicMethod ;
117
+ rdfs:label "Gas Chromatography"@en ;
118
+ skos:altLabel "GC"@en ;
119
+ op:jpReference "as directed under Gas Chromatography <2.02>"@en ;
120
+ rdfs:comment """
121
+ Gas chromatography for separation and analysis of volatile compounds.
122
+ Used for residual solvents and volatile oils.
123
+ """@en .
124
+
125
+ method:GC-FID
126
+ a method:ChromatographicMethod ;
127
+ rdfs:label "Gas Chromatography with Flame Ionization Detection"@en ;
128
+ skos:altLabel "GC-FID"@en ;
129
+ rdfs:comment "GC with flame ionization detection."@en ;
130
+ rdfs:seeAlso method:GC .
131
+
132
+ method:GC-MS
133
+ a method:ChromatographicMethod ;
134
+ rdfs:label "Gas Chromatography-Mass Spectrometry"@en ;
135
+ skos:altLabel "GC-MS"@en ;
136
+ rdfs:comment "GC with mass spectrometry detection."@en ;
137
+ rdfs:seeAlso method:GC .
138
+
139
+ method:TLC
140
+ a method:ChromatographicMethod ;
141
+ rdfs:label "Thin-Layer Chromatography"@en ;
142
+ skos:altLabel "TLC"@en ;
143
+ op:jpReference "as directed under Thin-Layer Chromatography <2.03>"@en ;
144
+ rdfs:comment """
145
+ Thin-layer chromatography for identification and semi-quantitative
146
+ analysis. Primary identification method for crude drugs.
147
+ """@en .
148
+
149
+ method:HPTLC
150
+ a method:ChromatographicMethod ;
151
+ rdfs:label "High Performance Thin-Layer Chromatography"@en ;
152
+ skos:altLabel "HPTLC"@en ;
153
+ rdfs:comment "High performance TLC with improved resolution."@en ;
154
+ rdfs:seeAlso method:TLC .
155
+
156
+ # =============================================================================
157
+ # SPECTROSCOPIC METHODS
158
+ # =============================================================================
159
+
160
+ method:UV-Vis
161
+ a method:SpectroscopicMethod ;
162
+ rdfs:label "Ultraviolet-Visible Spectrophotometry"@en ;
163
+ skos:altLabel "UV-Vis"@en ;
164
+ skos:altLabel "UV Spectrophotometry"@en ;
165
+ op:jpReference "as directed under Ultraviolet-visible Spectrophotometry <2.24>"@en ;
166
+ rdfs:comment """
167
+ Spectrophotometry in the ultraviolet and visible regions.
168
+ Used for identification and quantitative analysis.
169
+ """@en .
170
+
171
+ method:IR
172
+ a method:SpectroscopicMethod ;
173
+ rdfs:label "Infrared Spectrophotometry"@en ;
174
+ skos:altLabel "IR"@en ;
175
+ skos:altLabel "FTIR"@en ;
176
+ op:jpReference "as directed under Infrared Spectrophotometry <2.25>"@en ;
177
+ rdfs:comment """
178
+ Infrared spectrophotometry for identification based on molecular
179
+ vibrational modes. Compare against reference spectra.
180
+ """@en .
181
+
182
+ method:AAS
183
+ a method:SpectroscopicMethod ;
184
+ rdfs:label "Atomic Absorption Spectrometry"@en ;
185
+ skos:altLabel "AAS"@en ;
186
+ rdfs:comment """
187
+ Atomic absorption spectrometry for elemental analysis.
188
+ Used for heavy metals and trace elements.
189
+ """@en .
190
+
191
+ method:ICP-MS
192
+ a method:SpectroscopicMethod ;
193
+ rdfs:label "Inductively Coupled Plasma Mass Spectrometry"@en ;
194
+ skos:altLabel "ICP-MS"@en ;
195
+ rdfs:comment """
196
+ ICP-MS for multi-element analysis at trace levels.
197
+ Used for heavy metals and elemental impurities.
198
+ """@en .
199
+
200
+ method:ICP-OES
201
+ a method:SpectroscopicMethod ;
202
+ rdfs:label "Inductively Coupled Plasma Optical Emission Spectrometry"@en ;
203
+ skos:altLabel "ICP-OES"@en ;
204
+ skos:altLabel "ICP-AES"@en ;
205
+ rdfs:comment "ICP with optical emission detection for elemental analysis."@en .
206
+
207
+ # =============================================================================
208
+ # TITRIMETRIC METHODS
209
+ # =============================================================================
210
+
211
+ method:AcidBaseTitration
212
+ a method:TitrimetricMethod ;
213
+ rdfs:label "Acid-Base Titration"@en ;
214
+ rdfs:comment "Titration using acid-base reactions."@en .
215
+
216
+ method:Non-aqueousTitration
217
+ a method:TitrimetricMethod ;
218
+ rdfs:label "Non-aqueous Titration"@en ;
219
+ op:jpReference "as directed under Non-aqueous Titration <2.50>"@en ;
220
+ rdfs:comment "Titration in non-aqueous solvents."@en .
221
+
222
+ method:RedoxTitration
223
+ a method:TitrimetricMethod ;
224
+ rdfs:label "Redox Titration"@en ;
225
+ rdfs:comment "Titration using oxidation-reduction reactions."@en .
226
+
227
+ method:ComplexometricTitration
228
+ a method:TitrimetricMethod ;
229
+ rdfs:label "Complexometric Titration"@en ;
230
+ rdfs:comment "Titration using complex formation (e.g., EDTA titration)."@en .
231
+
232
+ method:PotentiometricTitration
233
+ a method:TitrimetricMethod ;
234
+ rdfs:label "Potentiometric Titration"@en ;
235
+ op:jpReference "as directed under Potentiometric Titration <2.50>"@en ;
236
+ rdfs:comment "Titration with potentiometric endpoint detection."@en .
237
+
238
+ # =============================================================================
239
+ # PHYSICAL TEST METHODS
240
+ # =============================================================================
241
+
242
+ method:LossOnDrying
243
+ a method:PhysicalTestMethod ;
244
+ rdfs:label "Loss on Drying"@en ;
245
+ skos:altLabel "LOD"@en ;
246
+ op:jpReference "as directed under Loss on Drying Test <2.41>"@en ;
247
+ rdfs:comment """
248
+ Determination of moisture and volatile matter content by drying
249
+ under specified conditions.
250
+ """@en .
251
+
252
+ method:ResidueOnIgnition
253
+ a method:PhysicalTestMethod ;
254
+ rdfs:label "Residue on Ignition"@en ;
255
+ skos:altLabel "ROI"@en ;
256
+ skos:altLabel "Total Ash"@en ;
257
+ op:jpReference "as directed under Residue on Ignition Test <2.44>"@en ;
258
+ rdfs:comment """
259
+ Determination of inorganic residue after ignition (total ash).
260
+ Important for crude drug quality.
261
+ """@en .
262
+
263
+ method:TotalAsh
264
+ a method:PhysicalTestMethod ;
265
+ rdfs:label "Total Ash"@en ;
266
+ rdfs:comment "Total ash content of crude drugs."@en ;
267
+ skos:exactMatch method:ResidueOnIgnition .
268
+
269
+ method:AcidInsolubleAsh
270
+ a method:PhysicalTestMethod ;
271
+ rdfs:label "Acid-Insoluble Ash"@en ;
272
+ rdfs:comment """
273
+ Ash insoluble in dilute hydrochloric acid.
274
+ Indicates presence of silica and other acid-insoluble matter.
275
+ """@en .
276
+
277
+ method:WaterContent
278
+ a method:PhysicalTestMethod ;
279
+ rdfs:label "Water Content"@en ;
280
+ skos:altLabel "Moisture Content"@en ;
281
+ op:jpReference "as directed under Water Content Test <2.48>"@en ;
282
+ rdfs:comment "Determination of water content by Karl Fischer titration or other methods."@en .
283
+
284
+ method:KarlFischer
285
+ a method:PhysicalTestMethod ;
286
+ rdfs:label "Karl Fischer Titration"@en ;
287
+ skos:altLabel "KF"@en ;
288
+ rdfs:comment "Water determination by Karl Fischer titration."@en ;
289
+ rdfs:seeAlso method:WaterContent .
290
+
291
+ method:SpecificGravity
292
+ a method:PhysicalTestMethod ;
293
+ rdfs:label "Specific Gravity"@en ;
294
+ skos:altLabel "Relative Density"@en ;
295
+ op:jpReference "as directed under Specific Gravity and Density <2.47>"@en ;
296
+ rdfs:comment "Ratio of density of substance to density of water."@en .
297
+
298
+ method:OpticalRotation
299
+ a method:PhysicalTestMethod ;
300
+ rdfs:label "Optical Rotation"@en ;
301
+ skos:altLabel "Polarimetry"@en ;
302
+ op:jpReference "as directed under Optical Rotation <2.49>"@en ;
303
+ rdfs:comment "Measurement of optical rotation for chiral compounds."@en .
304
+
305
+ method:RefractiveIndex
306
+ a method:PhysicalTestMethod ;
307
+ rdfs:label "Refractive Index"@en ;
308
+ op:jpReference "as directed under Refractive Index <2.45>"@en ;
309
+ rdfs:comment "Measurement of refractive index for liquids."@en .
310
+
311
+ method:Viscosity
312
+ a method:PhysicalTestMethod ;
313
+ rdfs:label "Viscosity"@en ;
314
+ op:jpReference "as directed under Viscosity <2.53>"@en ;
315
+ rdfs:comment "Measurement of viscosity (kinematic or dynamic)."@en .
316
+
317
+ method:MeltingPoint
318
+ a method:PhysicalTestMethod ;
319
+ rdfs:label "Melting Point"@en ;
320
+ op:jpReference "as directed under Melting Point <2.60>"@en ;
321
+ rdfs:comment "Determination of melting point or range."@en .
322
+
323
+ method:BoilingPoint
324
+ a method:PhysicalTestMethod ;
325
+ rdfs:label "Boiling Point"@en ;
326
+ op:jpReference "as directed under Boiling Point <2.57>"@en ;
327
+ rdfs:comment "Determination of boiling point or distillation range."@en .
328
+
329
+ method:pH
330
+ a method:PhysicalTestMethod ;
331
+ rdfs:label "pH"@en ;
332
+ op:jpReference "as directed under pH Determination <2.54>"@en ;
333
+ rdfs:comment "Measurement of pH."@en .
334
+
335
+ method:ForeignMatter
336
+ a method:PhysicalTestMethod ;
337
+ rdfs:label "Foreign Matter"@en ;
338
+ rdfs:comment """
339
+ Determination of extraneous matter in crude drugs
340
+ (other plant parts, insects, etc.).
341
+ """@en .
342
+
343
+ # =============================================================================
344
+ # EXTRACTIVE VALUES (Crude Drug Specific)
345
+ # =============================================================================
346
+
347
+ method:AlcoholSolubleExtractive
348
+ a method:PhysicalTestMethod ;
349
+ rdfs:label "Alcohol-Soluble Extractive"@en ;
350
+ rdfs:comment "Extractive value using ethanol as solvent."@en .
351
+
352
+ method:WaterSolubleExtractive
353
+ a method:PhysicalTestMethod ;
354
+ rdfs:label "Water-Soluble Extractive"@en ;
355
+ rdfs:comment "Extractive value using water as solvent."@en .
356
+
357
+ method:DiluteAlcoholSolubleExtractive
358
+ a method:PhysicalTestMethod ;
359
+ rdfs:label "Dilute Alcohol-Soluble Extractive"@en ;
360
+ rdfs:comment "Extractive value using dilute ethanol as solvent."@en .
361
+
362
+ method:EtherSolubleExtractive
363
+ a method:PhysicalTestMethod ;
364
+ rdfs:label "Ether-Soluble Extractive"@en ;
365
+ rdfs:comment "Extractive value using ether as solvent."@en .
366
+
367
+ # =============================================================================
368
+ # PURITY TEST METHODS
369
+ # =============================================================================
370
+
371
+ method:HeavyMetals
372
+ a method:PurityTestMethod ;
373
+ rdfs:label "Heavy Metals Test"@en ;
374
+ op:jpReference "as directed under Heavy Metals Test <1.07>"@en ;
375
+ rdfs:comment """
376
+ Test for heavy metals (lead, cadmium, mercury, arsenic, etc.)
377
+ as indicated by sulfide precipitation.
378
+ """@en .
379
+
380
+ method:HeavyMetals-Method1
381
+ a method:PurityTestMethod ;
382
+ rdfs:label "Heavy Metals Test Method 1"@en ;
383
+ op:jpReference "according to Method 1"@en ;
384
+ rdfs:comment "Heavy metals test for substances soluble in water or dilute acid."@en .
385
+
386
+ method:HeavyMetals-Method2
387
+ a method:PurityTestMethod ;
388
+ rdfs:label "Heavy Metals Test Method 2"@en ;
389
+ op:jpReference "according to Method 2"@en ;
390
+ rdfs:comment "Heavy metals test for substances requiring ashing."@en .
391
+
392
+ method:HeavyMetals-Method3
393
+ a method:PurityTestMethod ;
394
+ rdfs:label "Heavy Metals Test Method 3"@en ;
395
+ op:jpReference "according to Method 3"@en ;
396
+ rdfs:comment "Heavy metals test for substances requiring wet digestion."@en .
397
+
398
+ method:HeavyMetals-Method4
399
+ a method:PurityTestMethod ;
400
+ rdfs:label "Heavy Metals Test Method 4"@en ;
401
+ op:jpReference "according to Method 4"@en ;
402
+ rdfs:comment "Heavy metals test for acidic digest of organic substances."@en .
403
+
404
+ method:Arsenic
405
+ a method:PurityTestMethod ;
406
+ rdfs:label "Arsenic Test"@en ;
407
+ op:jpReference "as directed under Arsenic Test <1.11>"@en ;
408
+ rdfs:comment "Test for arsenic content."@en .
409
+
410
+ method:Lead
411
+ a method:PurityTestMethod ;
412
+ rdfs:label "Lead Test"@en ;
413
+ rdfs:comment "Specific test for lead content (often by AAS or ICP-MS)."@en .
414
+
415
+ method:Cadmium
416
+ a method:PurityTestMethod ;
417
+ rdfs:label "Cadmium Test"@en ;
418
+ rdfs:comment "Specific test for cadmium content."@en .
419
+
420
+ method:Mercury
421
+ a method:PurityTestMethod ;
422
+ rdfs:label "Mercury Test"@en ;
423
+ rdfs:comment "Specific test for mercury content."@en .
424
+
425
+ method:PesticideResidues
426
+ a method:PurityTestMethod ;
427
+ rdfs:label "Pesticide Residues Test"@en ;
428
+ rdfs:comment "Test for pesticide residues by GC or LC methods."@en .
429
+
430
+ method:Aflatoxins
431
+ a method:PurityTestMethod ;
432
+ rdfs:label "Aflatoxins Test"@en ;
433
+ rdfs:comment "Test for aflatoxin contamination."@en .
434
+
435
+ method:RelatedSubstances
436
+ a method:PurityTestMethod ;
437
+ rdfs:label "Related Substances Test"@en ;
438
+ rdfs:comment "Test for related compounds and impurities by chromatography."@en .
439
+
440
+ method:ResidualSolvents
441
+ a method:PurityTestMethod ;
442
+ rdfs:label "Residual Solvents Test"@en ;
443
+ skos:altLabel "Organic Volatile Impurities"@en ;
444
+ rdfs:comment "Test for residual solvents by GC."@en .
445
+
446
+ # =============================================================================
447
+ # MICROBIOLOGICAL TEST METHODS
448
+ # =============================================================================
449
+
450
+ method:TotalAerobicCount
451
+ a method:MicrobiologicalMethod ;
452
+ rdfs:label "Total Aerobic Microbial Count"@en ;
453
+ skos:altLabel "TAMC"@en ;
454
+ rdfs:comment "Enumeration of total aerobic microorganisms."@en .
455
+
456
+ method:TotalYeastMoldCount
457
+ a method:MicrobiologicalMethod ;
458
+ rdfs:label "Total Yeast and Mold Count"@en ;
459
+ skos:altLabel "TYMC"@en ;
460
+ rdfs:comment "Enumeration of yeasts and molds."@en .
461
+
462
+ method:AbsenceEColi
463
+ a method:MicrobiologicalMethod ;
464
+ rdfs:label "Absence of E. coli"@en ;
465
+ rdfs:comment "Test for absence of Escherichia coli."@en .
466
+
467
+ method:AbsenceSalmonella
468
+ a method:MicrobiologicalMethod ;
469
+ rdfs:label "Absence of Salmonella"@en ;
470
+ rdfs:comment "Test for absence of Salmonella species."@en .
471
+
472
+ method:AbsenceS Aureus
473
+ a method:MicrobiologicalMethod ;
474
+ rdfs:label "Absence of S. aureus"@en ;
475
+ rdfs:comment "Test for absence of Staphylococcus aureus."@en .
476
+
477
+ method:AbsenceP Aeruginosa
478
+ a method:MicrobiologicalMethod ;
479
+ rdfs:label "Absence of P. aeruginosa"@en ;
480
+ rdfs:comment "Test for absence of Pseudomonas aeruginosa."@en .
481
+
482
+ method:Enterobacteriaceae
483
+ a method:MicrobiologicalMethod ;
484
+ rdfs:label "Enterobacteriaceae Count"@en ;
485
+ rdfs:comment "Enumeration of Enterobacteriaceae."@en .
486
+
487
+ method:BileTolerantGramNegative
488
+ a method:MicrobiologicalMethod ;
489
+ rdfs:label "Bile-Tolerant Gram-Negative Bacteria"@en ;
490
+ rdfs:comment "Enumeration of bile-tolerant gram-negative bacteria."@en .
491
+
492
+ # =============================================================================
493
+ # IDENTIFICATION METHODS
494
+ # =============================================================================
495
+
496
+ method:ChemicalIdentification
497
+ a method:IdentificationMethod ;
498
+ rdfs:label "Chemical Identification Test"@en ;
499
+ rdfs:comment "Identification by chemical reactions (color, precipitate, etc.)."@en .
500
+
501
+ method:TLC-Identification
502
+ a method:IdentificationMethod ;
503
+ rdfs:label "TLC Identification"@en ;
504
+ rdfs:comment "Identification by thin-layer chromatography comparison."@en ;
505
+ rdfs:seeAlso method:TLC .
506
+
507
+ method:UV-Identification
508
+ a method:IdentificationMethod ;
509
+ rdfs:label "UV Identification"@en ;
510
+ rdfs:comment "Identification by UV spectrum comparison."@en ;
511
+ rdfs:seeAlso method:UV-Vis .
512
+
513
+ method:IR-Identification
514
+ a method:IdentificationMethod ;
515
+ rdfs:label "IR Identification"@en ;
516
+ rdfs:comment "Identification by IR spectrum comparison."@en ;
517
+ rdfs:seeAlso method:IR .
518
+
519
+ method:MicroscopicIdentification
520
+ a method:IdentificationMethod ;
521
+ rdfs:label "Microscopic Identification"@en ;
522
+ rdfs:comment "Identification by microscopic examination (crude drugs)."@en .
523
+
524
+ method:MacroscopicIdentification
525
+ a method:IdentificationMethod ;
526
+ rdfs:label "Macroscopic Identification"@en ;
527
+ rdfs:comment "Identification by visual examination (crude drugs)."@en .
528
+
529
+ # =============================================================================
530
+ # PUBLISHER METHOD REFERENCES
531
+ # =============================================================================
532
+
533
+ method:JP-GeneralTests
534
+ a op:PublisherMethod ;
535
+ rdfs:label "JP General Tests"@en ;
536
+ op:methodPublisher op:JP ;
537
+ op:methodReference "JP 18 General Tests" ;
538
+ rdfs:comment "Reference to Japan Pharmacopoeia General Tests section."@en .
539
+
540
+ method:JP-LiquidChromatography
541
+ a op:PublisherMethod ;
542
+ rdfs:label "JP Liquid Chromatography"@en ;
543
+ op:methodPublisher op:JP ;
544
+ op:methodReference "JP 18 <2.01>" ;
545
+ op:equivalentTo method:HPLC .
546
+
547
+ method:JP-GasChromatography
548
+ a op:PublisherMethod ;
549
+ rdfs:label "JP Gas Chromatography"@en ;
550
+ op:methodPublisher op:JP ;
551
+ op:methodReference "JP 18 <2.02>" ;
552
+ op:equivalentTo method:GC .
553
+
554
+ method:JP-TLC
555
+ a op:PublisherMethod ;
556
+ rdfs:label "JP Thin-Layer Chromatography"@en ;
557
+ op:methodPublisher op:JP ;
558
+ op:methodReference "JP 18 <2.03>" ;
559
+ op:equivalentTo method:TLC .
560
+
561
+ method:API-Appendix
562
+ a op:PublisherMethod ;
563
+ rdfs:label "API Appendix"@en ;
564
+ op:methodPublisher op:API ;
565
+ rdfs:comment "Reference to Ayurvedic Pharmacopoeia of India Appendix."@en .
566
+
567
+ method:API-HPLC
568
+ a op:PublisherMethod ;
569
+ rdfs:label "API HPLC Method"@en ;
570
+ op:methodPublisher op:API ;
571
+ op:methodReference "API Appendix 2.2.29" ;
572
+ op:equivalentTo method:HPLC .
573
+
574
+ method:HKCMMS-Appendix
575
+ a op:PublisherMethod ;
576
+ rdfs:label "HKCMMS Appendix"@en ;
577
+ op:methodPublisher op:HKCMMS ;
578
+ rdfs:comment "Reference to Hong Kong CMMS Appendix."@en .
579
+
580
+ method:HKCMMS-HPLC
581
+ a op:PublisherMethod ;
582
+ rdfs:label "HKCMMS HPLC Method"@en ;
583
+ op:methodPublisher op:HKCMMS ;
584
+ op:methodReference "HKCMMS Appendix IV-B" ;
585
+ op:equivalentTo method:HPLC .
586
+
587
+ # =============================================================================
588
+ # ADDITIONAL PROPERTIES
589
+ # =============================================================================
590
+
591
+ op:methodPublisher
592
+ a owl:ObjectProperty ;
593
+ rdfs:label "method publisher"@en ;
594
+ rdfs:comment "The publisher that defines this method."@en ;
595
+ rdfs:domain op:PublisherMethod ;
596
+ rdfs:range op:Publisher .
597
+
598
+ op:methodReference
599
+ a owl:DatatypeProperty ;
600
+ rdfs:label "method reference"@en ;
601
+ rdfs:comment "The specific reference within the publisher's pharmacopoeia."@en ;
602
+ rdfs:domain op:PublisherMethod ;
603
+ rdfs:range xsd:string .
604
+
605
+ op:equivalentTo
606
+ a owl:ObjectProperty ;
607
+ rdfs:label "equivalent to"@en ;
608
+ rdfs:comment "Links a publisher method to its equivalent harmonized method."@en ;
609
+ rdfs:domain op:PublisherMethod ;
610
+ rdfs:range op:HarmonizedMethod .