FHIR Chat · conventions for representing OWL ontologies as CodeSystems · terminology

Stream: terminology

Topic: conventions for representing OWL ontologies as CodeSystems


view this post on Zulip Michael Lawley (Jul 13 2016 at 03:20):

It is common for an OWL Ontology to import pieces from other OWL Ontologies (eg A imports B).
If I am creating a CodeSystem for A, then what should I do with the concepts defined in B? Must I also have a CodeSystem for B and have the implicit ValueSet for A also import the concepts from B, or do I just include them all in A (in which case, if I do ever have a CodeSystem for B, then I have duplicate codes, or if there's another ontology with C imports B, I also get "duplicates" - "equal" codes).

view this post on Zulip Grahame Grieve (Jul 13 2016 at 03:22):

I find this question confusing because you haven't started with why a code system includes another code system

view this post on Zulip Michael Lawley (Jul 13 2016 at 03:33):

OWL has the notion of "import" - it does this because you're actually extending the set of concepts with a) additional concepts, and b) additional axioms ("relationships"). (In theory) this encourages modularity, re-use, etc
We have to work with some of these, eg the Human Phenotype Ontology, which imports, among many things, the Gene Ontology and ChEBI (Chemical Entities)

view this post on Zulip Grahame Grieve (Jul 13 2016 at 03:52):

ok, so what's the question?

view this post on Zulip Grahame Grieve (Jul 13 2016 at 03:53):

is it, how do you create those ontologies as code systems? or is it, how do you convert fhir code systems to ontologies?

view this post on Zulip Michael Lawley (Jul 13 2016 at 04:03):

It's the former - I have the OWL Ontology and I want to represent it as a CodeSystem (or several)

view this post on Zulip Grahame Grieve (Jul 13 2016 at 04:09):

interesting question, really.

view this post on Zulip Grahame Grieve (Jul 13 2016 at 04:12):

there's 2 different questions you might be asking:
- I want to make the concepts available on the API
- I want to create a code system resource for the ontology

view this post on Zulip Grahame Grieve (Jul 13 2016 at 04:12):

different questions....

view this post on Zulip Rob Hausam (Jul 13 2016 at 04:21):

If you import an ontology in OWL, it's still (in most or all respects) a separate ontology. You can certainly reason across the combination, and that's why you do it, but the individual contributions are still separately identifiable (and separable). I think we can probably take a similar approach with code systems. Define each one individually, and then combine them however you need to in the value set(s) that you want to use.

view this post on Zulip Grahame Grieve (Jul 13 2016 at 04:22):

there's probably a couple of places where this manifests - properties that come from other code systems (even parents), and some places in the operations where we clearly say, 'one system only', e.g. $subsumes and this might make reasoning difficult

view this post on Zulip Grahame Grieve (Jul 13 2016 at 04:23):

I guess we can do properties from other code systems - property of type Coding

view this post on Zulip Grahame Grieve (Jul 13 2016 at 04:23):

so it's in the API where the problems might arise

view this post on Zulip Rob Hausam (Jul 13 2016 at 04:36):

Yes. OWL is all about reasoning, whereas code systems in general don't have quite the same level and consistency of relationship infrastructure or expectations that they do. I'm not sure if we want to try to replicate capabilities similar to OWL here. If you combine two or more truly distinct code systems, then you may not necessarily be able to expect that subsumption would hold coherently across the combination. However, there are some cases where that should be possible and would be expected - the SNOMED CT - LOINC integration comes to mind. We probably should be able to handle subsumption across that combination, and we can't rely on the value set for that. So I'm not quite sure what we should do with this.

view this post on Zulip Grahame Grieve (Jul 13 2016 at 04:38):

well, you are allowed to reason across concept maps. and I think that will be appropriate for LOINC/SCT

view this post on Zulip Grahame Grieve (Jul 13 2016 at 04:38):

Michael's talking about going a step deeper than that

view this post on Zulip Rob Hausam (Jul 13 2016 at 04:45):

right - the concept map reasoning makes sense for this
and I know Michael is looking at a step deeper - maybe it's a step too far for what we should do here?

view this post on Zulip Grahame Grieve (Jul 13 2016 at 04:46):

don't know. you do have to call it a day somewhere. but we could look at speciifc examples....

view this post on Zulip Michael Lawley (Jul 13 2016 at 06:13):

@Grahame Grieve I'm not really sure how you "make the concepts available on the API" without creating a CodeSystem resource. The API requires at least a ValueSet and that references a CodeSystem and these are all now explicit (even for things like SNOMED CT and LOINC).

view this post on Zulip Michael Lawley (Jul 13 2016 at 06:16):

@Rob Hausam The reason we can't just create two CodeSystems and then combine in a ValueSet is that the combination also brings in axioms (ie the stuff that allows us to reason), and they induce cross-system parent/child relationships. As @Grahame Grieve observes, this breaks in $lookup and other places where a single code system is assumed.

view this post on Zulip Grahame Grieve (Jul 13 2016 at 06:20):

well,. sure, you need to know how to refer to to in a value set, but you don't need an explicit code system

view this post on Zulip Grahame Grieve (Jul 13 2016 at 06:20):

like sct and loinc

view this post on Zulip Michael Lawley (Jul 13 2016 at 06:22):

but you do need to know what the value for system is (and we always have a CodeSystem for a known (supported) system)

view this post on Zulip Grahame Grieve (Jul 13 2016 at 06:31):

we don't always have a code system for a supported system

view this post on Zulip Grahame Grieve (Jul 13 2016 at 06:32):

I've never even seen one for SCT LOINC RxNORM UCUM NDFRT UNII BCP13 BCP47

view this post on Zulip Grahame Grieve (Jul 13 2016 at 06:32):

and those are the most important uses of the API

view this post on Zulip Michael Lawley (Jul 13 2016 at 22:18):

Is this not a code system for SCT-AU? http://ontoserver.csiro.au/stu3/CodeSystem/32506021000036107-20160630
(and by "we" I meant "Ontoserver")

view this post on Zulip Grahame Grieve (Jul 13 2016 at 22:27):

well, now I can't claim that I haven't seen an SCT one

view this post on Zulip Grahame Grieve (Jul 13 2016 at 22:27):

i think it needs more work, but yes, that's what it would look like


Last updated: Apr 12 2022 at 19:14 UTC