IRC log of hcls on 2015-11-03

Timestamps are in UTC.

16:06:42 [RRSAgent]
RRSAgent has joined #hcls
16:06:42 [RRSAgent]
logging to
16:06:50 [Zakim]
Zakim has joined #hcls
16:07:07 [ericP]
trackbot, start meeting
16:07:09 [trackbot]
RRSAgent, make logs world
16:07:11 [dhausam]
dhausam has joined #HCLS
16:07:11 [trackbot]
Zakim, this will be HCLS
16:07:12 [Zakim]
I do not see a conference matching that name scheduled within the next hour, trackbot
16:07:12 [trackbot]
Meeting: Semantic Web Health Care and Life Sciences Interest Group Teleconference
16:07:12 [trackbot]
Date: 03 November 2015
16:07:23 [dhausam]
dhausam has left #hcls
16:08:10 [rhausam]
rhausam has joined #HCLS
16:11:10 [dbooth]
Topic: ValueSets
16:12:54 [dbooth]
(Tony showing Protege)
16:24:16 [dbooth]
rob: Why is fhir:anAllergyStatusCodingBase a subclass in protege?
16:25:06 [dbooth]
lloyd: when converting instances, we won't have the string "allergy-intolerance-status".
16:25:13 [ericP]
lloyd: when we're translating instance data we won't have the arbitrary code system url
16:25:30 [ericP]
scribenick: ericP
16:25:35 [dbooth]
... So when we convert to RDF we'll have to do it using the property value.
16:26:04 [ericP]
tony: an instance of a FHIR URI as a value ...
16:26:27 [ericP]
... if you want to name the code system we can create named URIs
16:26:40 [ericP]
lloyd: we can do that ffor FHIR, but not at large because we won't know what they are
16:26:53 [ericP]
tony: put it in the bridging ontology
16:27:12 [ericP]
lloyd: we can't use the bridging ontology for the RDF->XML transform
16:27:19 [ericP]
tony: so we leave it as a string
16:27:21 [ericP]
... np
16:27:42 [ericP]
lloyd: the bridging onotlogy can declare these things as a convenience
16:27:59 [ericP]
tony: so how is this translated into the final form (not the one with a string)
16:28:08 [ericP]
dbooth: you have to look at both
16:28:21 [ericP]
... first we have to specify the RDF that's round-tripped with the XML
16:28:38 [ericP]
... it's good that you're looking ahead to see that it will work
16:28:45 [ericP]
tony: i'm working from both ends
16:29:14 [ericP]
... i.e. "these are the restriction on the payload; how do i get from there to something [inferencable]"
16:29:59 [ericP]
... CodingBase.system will always come across as an anonymous indivisual with the code value as a string.
16:30:12 [dbooth]
16:30:24 [ericP]
... per lloyd, the named individual will be in the bridging ontology, and the conversion can't see that.
16:30:36 [dbooth]
s/code value/system URI/
16:32:14 [ericP]
there's a ConceptBase.coding that maps from concept to codeing
16:32:24 [dbooth]
tony: CodingBase.concept is the inverse of ConceptBase.coding
16:32:26 [ericP]
tony: @@1 is the inverse
16:35:18 [dbooth]
lloyd: How to you say that "these are the *only* codes that exist"?
16:36:35 [ericP]
lloyd: you need to definitively say that these 200k LOINC codes are the only legal codes
16:38:07 [ericP]
tony: if you define the allowed codes in a code system as a set of strings, you're duplicating what's in the concept tree
16:38:08 [dbooth]
lloyd: Because codes are strings, they are automatically distinct from each other
16:38:15 [ericP]
... then you have to keep them in line
16:38:54 [ericP]
lloyd: it's easier to say these are the only codes that are allowed in the code system than to do it by concept
16:39:19 [ericP]
... SNOMED is a wonky beast because it's post-coordinated which makes enumeration impossible.
16:39:32 [ericP]
... most code systems are enumerable
16:39:54 [ericP]
... if you enumerate ICD-10 codes and you see a "foo", you can see it's not legal
16:43:38 [ericP]
... you have to enumerate or the reasoner will makes leaps that are not correct
16:44:10 [ericP]
tony: do we make the reasoner throw-up or do we declare the range that conflicts?
16:44:33 [ericP]
... i'd write a SWRL rule to conclude non-conformance
16:49:33 [ericP]
dbooth: i beleive that lloyd is advocating a tighter ontology which uses convenional OWL open-world to infer non-conformance when something claims to be a member of a value set but is not actually a member
16:50:24 [ericP]
... tony is advocating an ontology that won't catch that conflict but we would instead rely on an external, closed-world tool to detect non-conformance
16:50:44 [ericP]
tony: yes, we don't want the reasoner to just stop.
16:50:45 [dbooth]
16:51:00 [ericP]
dbooth: we weren't specific about this in our requirements.
16:52:12 [ericP]
rob: the pellet reasoner folks at C&P came up with ICV. i don't know if it's still available.
16:52:39 [ericP]
... i think it's common to take the two-layer approach
16:52:59 [ericP]
... (i.e. external valuset validator)
16:54:12 [hsolbrig]
hsolbrig has joined #hcls
16:54:34 [dbooth]
Option A: owl-validation: the owl reasoner barfs if instance data specifies a code does not match the valueset.
16:54:48 [RRSAgent]
I have made the request to generate ericP
16:55:30 [Tony]
Tony has joined #HCLS
16:55:31 [dbooth]
Option B: external valueset validator: Owl reasoner does not barf. Instead, an extra closed world inference step is use (perhaps using SWRL or other) to detect the problem.
16:55:54 [ericP]
Marc_Twagirumukiza: i like option A
16:57:10 [ericP]
dbooth: if someone provides instance data with a code that's supposed to be a member of a valueset and is not, how to we catch it?
16:58:26 [ericP]
... option A leverages the OWL reasoner
16:58:44 [ericP]
... option B means you don't stop the OWL reasoner from performing useful inference.
16:59:46 [ericP]
hsolbrig: having attempted to execute A several times, getting an OWL reasoner to barf is a painful and IMO not terribly fruitful exercise
16:59:55 [ericP]
... i think value sets are best treated as a datatype
17:00:05 [ericP]
... a la a valid XSD integer
17:00:19 [ericP]
... so option B
17:01:44 [dbooth]
eric: the work needed for option A is easier than Harold experienced, becsue these are strings not URIs. But the diff between these options in the reasoning would be saying 'valueset A is one of (a giant list)'
17:01:55 [dbooth]
... and whether we want to set up the tooling to support that.
17:02:32 [dbooth]
... I'd like to test that, but know that most of the use would be that we would NOT provide it, and we use external validation (option B).
17:03:46 [dbooth]
... I.e., we should try to make our ont work for option A, but recognize that most of the use will be option B.
17:04:04 [dbooth]
tony: If you do provide that ValueSet, do you want it to barf?
17:04:38 [dbooth]
eric: yes, providing that ValueSet is telling it that you want it to barf if the code is wrong.
17:05:59 [dbooth]
tony: For the FHIR internals, we will always have the ValueSets.
17:06:56 [dbooth]
eric: If we were doing a complete model, there's some connection we would have to fail to make. If we supply those ValueSets and tell it enough, then it will fail if we give it a bad code.
17:07:39 [ericP]
dbooth: i like option B. I want to separate validation and inference.
17:07:56 [ericP]
Marc_Twagirumukiza: we'll have to add something about that in the requirements
17:08:19 [ericP]
dbooth: some validation can be done in OWL but much will require closed-world reasoning.
17:09:04 [ericP]
lloyd: i believe it's not an either/or
17:09:14 [ericP]
... the ontology should be capable of performing strict validation
17:09:42 [ericP]
... because sometimes we want a y/n and it would be impractical to write the code to do the external validation.
17:10:15 [ericP]
... there are other circumstances where you'll want to probe.
17:10:36 [ericP]
... we should design to support both and give implementors the guidance to choose.
17:10:57 [ericP]
... the decision should not affect the wire format; only the linking ontologies.
17:11:26 [rhausam]
here are a couple of links to discussion of integrity constraint validation (from Clark & Parsia, some based on their proprietary tools):
17:11:28 [rhausam]
17:11:38 [rhausam]
17:11:44 [ericP]
Tony: so far, i've been taking a pragmatic approach given protege and the reasoner.
17:12:15 [ericP]
... so far i've had the reasoner barg in the t-box; haven't see it barf because of a-box inconsistencies
17:12:33 [ericP]
rhausam: practically, separating open and closed world makes sense
17:12:42 [ericP]
... do what you can in open world.
17:13:21 [ericP]
... but don't go crazy tightening up the ontology
17:13:31 [ericP]
Marc_Twagirumukiza: i'm still concearned about option A.
17:13:39 [ericP]
... it's kind of validation.
17:14:11 [ericP]
... but i agree that it's pragmatic to do B
17:14:28 [dbooth]
Proposal: We should do both, but separate the base FHIR ontology (which would NOT cause the reasoner to barf if a wrong code is used) from an additional validation ontology (which WOULD cause the reasoner to barf if a wrong code is used).
17:15:44 [ericP]
hsolbrig: if tony sets off to make it barf, i caution you that it can take a long time.
17:15:52 [ericP]
... the answer will be in trying it.
17:17:09 [ericP]
-> Alan Rector paper to which Harold referred
17:18:31 [ericP]
Tony: you're assuming these two approaches can co-exist
17:18:59 [ericP]
lloyd: they can. the tight one simply contains more assertions.
17:20:09 [ericP]
Marc_Twagirumukiza: i think we need some use cases.
17:20:22 [ericP]
... we can start with A and debug. then do B, then come back to A
17:23:12 [ericP]
lloyd: we need to do A first because it's the complicated beast
17:24:16 [dbooth]
eric: lloyd work with me on option A?
17:24:42 [dbooth]
dbooth: This may boil down to who steps up to do the work :)
17:25:25 [Marc_Twagirumukiza]
Most likely, A will lead to inference fuse and the reasoner will stop
17:26:32 [Marc_Twagirumukiza]
so trying to fix those inference fuse will be implimenting B but at the end we need to re-do A to make sure we have a validation
17:27:45 [Marc_Twagirumukiza]
some external reasoner like EYE allow to go beyond inference fuse (using a buil-in --ignore-inference-fuse)
17:27:55 [Marc_Twagirumukiza]
but this is outside Protégé
17:28:43 [dbooth]
ACTION: Eric to work with lloyd to show option A approach (making OWL barf if code is not in the stated valueset)
17:28:43 [trackbot]
Created ACTION-32 - Work with lloyd to show option a approach (making owl barf if code is not in the stated valueset) [on Eric Prud'hommeaux - due 2015-11-10].
17:30:14 [dbooth]
17:32:18 [dbooth]
ACTION: Eric to convert tony's side-by-side doc to xhtml
17:32:18 [trackbot]
Created ACTION-33 - Convert tony's side-by-side doc to xhtml [on Eric Prud'hommeaux - due 2015-11-10].
17:32:31 [ericP]
RRSAgent, please draft minutes
17:32:31 [RRSAgent]
I have made the request to generate ericP
17:32:48 [dbooth]
Present: Harold Solbrig, David Booth, Tony Mallia, Eric P, Lloyd McKenzie, Rob Hausam
17:34:16 [dbooth]
Present+ Marc Twagirumukiza
17:34:28 [dbooth]
Chair: David Booth
17:34:34 [dbooth]
17:34:53 [dbooth]
rrsagent, draft minutes
17:34:53 [RRSAgent]
I have made the request to generate dbooth
20:03:34 [Zakim]
Zakim has left #hcls
22:20:04 [hsolbrig]
hsolbrig has joined #hcls
22:20:44 [davide]
davide has joined #HCLS
22:21:01 [hsolbrig]
hsolbrig has joined #hcls
22:21:23 [LLoyd]
LLoyd has joined #HCLS
22:22:09 [ericP]
-> O-RIM
22:24:00 [ericP]
-> O-RIM
22:38:02 [hsolbrig]
have to head out. Apologies
22:57:34 [ericP]
http://BadAct1 a rim:Act .
22:57:34 [ericP]
http://BadAct1 rim:Act.moodCode http://BadAct1Mood .
22:57:34 [ericP]
http://BadAct1Mood dt:CD.coding http://BadAct1MoodCoding .
22:57:34 [ericP]
http://BadAct1MoodCoding dt:CDCoding.code "BadCode" .
23:17:47 [rhausam]
rhausam has joined #HCLS