Hi Purvi,
Do you have sources for all of these in RDF (if so, how are they represented - as classes or instances) or are you loading from spreadsheets and/or other formats?
At minimum, for ICD-10 and RxNorm, I would not recommend using ontologies, because they are not.
Given the hierarchical nature of ICD-10 I think taxonomies would be a good fit even you will be able to import the hierarchy.
I would create an ontology, add a class under Concept called ICD10Term, create a property to capture the code and go from there. Some, and you will see it in the Biopotal, use skos:notation property to capture codes. You could do this as well. A possible issue with it is that you do not know what code it is just by looking at a property. If you have a class ICD10Term, you could “infer” that the notation property holds ICD10 codes, but it may be too indirect and you may want to define explicit properties instead of using skos:notation generically.
Depending on what you have as an input, recreating ICD10 hierarchy may or may not take some effort. If you do not really care or focus on the hierarchical view, then indeed, either a reference dataset or a data graph would be a better fit.
RxNorm is available in one format from the publisher and then the BioPortal provides it in RDF
https://bioportal.bioontology.org/ontologies/RXNORM/?p=summary. However, they converted to RDF using a certain approach. All RXNorm terms are typed as classes, but they are really not classes. They are simply, as you say, codes or terms.
RxNorm has no hierarchy and with 112K flat list, you will definitely do not want to use tree views. A tabular view in a taxonomy might work. You would be well served by disabling the “no orphans” constraint so that you do not get validation warnings because everything is flat. It is a a force fit into taxonomies though.
Further, import of RDF into a taxonomy may try to make all “orphans” into children of some concept scheme and this would be a heavy operation - and an unnecessary one. Overall, if there is no hierarchy, while you could fit it into taxonomies, you may experience some inconvenience and either a data graphs or a reference dataset would be a much better fit.
Bioportal uses some SKOS properties and some custom properties to describe RxNorm terms. If you download RxNorm from the Bioportal, the RDF file has the RxNorm data and then it has the actual ontology - properties and classes that it uses to describe the data. These are at the end of the file starting with
rdfs:label """Part of""";
rdfs:comment """Inverse of has_part""” .
In other words, the information model (ontology) and data that uses it is in one file. The ontology portion would need to be split out and imported into EDG as an ontology that you would then use with other asset collections.
The model is only partially defined i.e., properties are named, but not connected to classes. One reason Bioportal did it this way is because they are capturing RXNorm as classes and one not supposed to be making direct statements about classes like this (such as :Class1 <
http://purl.bioontology.org/ontology/RXNORM/part_of> :Class2). The issues stem from them having converted everything as a class. But this is a separate discussion. In any case, you will need to further define the ontology by connecting properties to classes.
Hope this helps,
Regards,
Irene