16:06:42 RRSAgent has joined #hcls 16:06:42 logging to http://www.w3.org/2015/11/03-hcls-irc 16:06:50 Zakim has joined #hcls 16:07:07 trackbot, start meeting 16:07:09 RRSAgent, make logs world 16:07:11 dhausam has joined #HCLS 16:07:11 Zakim, this will be HCLS 16:07:12 I do not see a conference matching that name scheduled within the next hour, trackbot 16:07:12 Meeting: Semantic Web Health Care and Life Sciences Interest Group Teleconference 16:07:12 Date: 03 November 2015 16:07:23 dhausam has left #hcls 16:08:10 rhausam has joined #HCLS 16:11:10 Topic: ValueSets 16:12:54 (Tony showing Protege) 16:24:16 rob: Why is fhir:anAllergyStatusCodingBase a subclass in protege? 16:25:06 lloyd: when converting instances, we won't have the string "allergy-intolerance-status". 16:25:13 lloyd: when we're translating instance data we won't have the arbitrary code system url 16:25:30 scribenick: ericP 16:25:35 ... So when we convert to RDF we'll have to do it using the property value. 16:26:04 tony: an instance of a FHIR URI as a value ... 16:26:27 ... if you want to name the code system we can create named URIs 16:26:40 lloyd: we can do that ffor FHIR, but not at large because we won't know what they are 16:26:53 tony: put it in the bridging ontology 16:27:12 lloyd: we can't use the bridging ontology for the RDF->XML transform 16:27:19 tony: so we leave it as a string 16:27:21 ... np 16:27:42 lloyd: the bridging onotlogy can declare these things as a convenience 16:27:59 tony: so how is this translated into the final form (not the one with a string) 16:28:08 dbooth: you have to look at both 16:28:21 ... first we have to specify the RDF that's round-tripped with the XML 16:28:38 ... it's good that you're looking ahead to see that it will work 16:28:45 tony: i'm working from both ends 16:29:14 ... i.e. "these are the restriction on the payload; how do i get from there to something [inferencable]" 16:29:59 ... CodingBase.system will always come across as an anonymous indivisual with the code value as a string. 16:30:12 s/indivisual/individual/ 16:30:24 ... per lloyd, the named individual will be in the bridging ontology, and the conversion can't see that. 16:30:36 s/code value/system URI/ 16:32:14 there's a ConceptBase.coding that maps from concept to codeing 16:32:24 tony: CodingBase.concept is the inverse of ConceptBase.coding 16:32:26 tony: @@1 is the inverse 16:35:18 lloyd: How to you say that "these are the *only* codes that exist"? 16:36:35 lloyd: you need to definitively say that these 200k LOINC codes are the only legal codes 16:38:07 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 lloyd: Because codes are strings, they are automatically distinct from each other 16:38:15 ... then you have to keep them in line 16:38:54 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 ... SNOMED is a wonky beast because it's post-coordinated which makes enumeration impossible. 16:39:32 ... most code systems are enumerable 16:39:54 ... if you enumerate ICD-10 codes and you see a "foo", you can see it's not legal 16:43:38 ... you have to enumerate or the reasoner will makes leaps that are not correct 16:44:10 tony: do we make the reasoner throw-up or do we declare the range that conflicts? 16:44:33 ... i'd write a SWRL rule to conclude non-conformance 16:49:33 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 ... 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 tony: yes, we don't want the reasoner to just stop. 16:50:45 http://wiki.hl7.org/index.php?title=FHIR_Ontology_Requirements#11._Enable_Inference 16:51:00 dbooth: we weren't specific about this in our requirements. 16:52:12 rob: the pellet reasoner folks at C&P came up with ICV. i don't know if it's still available. 16:52:39 ... i think it's common to take the two-layer approach 16:52:59 ... (i.e. external valuset validator) 16:54:12 hsolbrig has joined #hcls 16:54:34 Option A: owl-validation: the owl reasoner barfs if instance data specifies a code does not match the valueset. 16:54:48 I have made the request to generate http://www.w3.org/2015/11/03-hcls-minutes.html ericP 16:55:30 Tony has joined #HCLS 16:55:31 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 Marc_Twagirumukiza: i like option A 16:57:10 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 ... option A leverages the OWL reasoner 16:58:44 ... option B means you don't stop the OWL reasoner from performing useful inference. 16:59:46 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 ... i think value sets are best treated as a datatype 17:00:05 ... a la a valid XSD integer 17:00:19 ... so option B 17:01:44 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 ... and whether we want to set up the tooling to support that. 17:02:32 ... 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 ... 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 tony: If you do provide that ValueSet, do you want it to barf? 17:04:38 eric: yes, providing that ValueSet is telling it that you want it to barf if the code is wrong. 17:05:59 tony: For the FHIR internals, we will always have the ValueSets. 17:06:56 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 dbooth: i like option B. I want to separate validation and inference. 17:07:56 Marc_Twagirumukiza: we'll have to add something about that in the requirements 17:08:19 dbooth: some validation can be done in OWL but much will require closed-world reasoning. 17:09:04 lloyd: i believe it's not an either/or 17:09:14 ... the ontology should be capable of performing strict validation 17:09:42 ... because sometimes we want a y/n and it would be impractical to write the code to do the external validation. 17:10:15 ... there are other circumstances where you'll want to probe. 17:10:36 ... we should design to support both and give implementors the guidance to choose. 17:10:57 ... the decision should not affect the wire format; only the linking ontologies. 17:11:26 here are a couple of links to discussion of integrity constraint validation (from Clark & Parsia, some based on their proprietary tools): 17:11:28 http://docs.stardog.com/icv/icv-specification.html 17:11:38 http://docs.stardog.com/#_validating_constraints 17:11:44 Tony: so far, i've been taking a pragmatic approach given protege and the reasoner. 17:12:15 ... 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 rhausam: practically, separating open and closed world makes sense 17:12:42 ... do what you can in open world. 17:13:21 ... but don't go crazy tightening up the ontology 17:13:31 Marc_Twagirumukiza: i'm still concearned about option A. 17:13:39 ... it's kind of validation. 17:14:11 ... but i agree that it's pragmatic to do B 17:14:28 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 hsolbrig: if tony sets off to make it barf, i caution you that it can take a long time. 17:15:52 ... the answer will be in trying it. 17:17:09 -> http://www.cs.man.ac.uk/~rector/papers/Terminology-binding-final-revision-embedded-single-rector%20copy.pdf Alan Rector paper to which Harold referred 17:18:31 Tony: you're assuming these two approaches can co-exist 17:18:59 lloyd: they can. the tight one simply contains more assertions. 17:20:09 Marc_Twagirumukiza: i think we need some use cases. 17:20:22 ... we can start with A and debug. then do B, then come back to A 17:23:12 lloyd: we need to do A first because it's the complicated beast 17:24:16 eric: lloyd work with me on option A? 17:24:42 dbooth: This may boil down to who steps up to do the work :) 17:25:25 Most likely, A will lead to inference fuse and the reasoner will stop 17:26:32 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 some external reasoner like EYE allow to go beyond inference fuse (using a buil-in --ignore-inference-fuse) 17:27:55 but this is outside Protégé 17:28:43 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 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 s/implimenting/implementing/ 17:32:18 ACTION: Eric to convert tony's side-by-side doc to xhtml 17:32:18 Created ACTION-33 - Convert tony's side-by-side doc to xhtml [on Eric Prud'hommeaux - due 2015-11-10]. 17:32:31 RRSAgent, please draft minutes 17:32:31 I have made the request to generate http://www.w3.org/2015/11/03-hcls-minutes.html ericP 17:32:48 Present: Harold Solbrig, David Booth, Tony Mallia, Eric P, Lloyd McKenzie, Rob Hausam 17:34:16 Present+ Marc Twagirumukiza 17:34:28 Chair: David Booth 17:34:34 ADJOURNED 17:34:53 rrsagent, draft minutes 17:34:53 I have made the request to generate http://www.w3.org/2015/11/03-hcls-minutes.html dbooth 20:03:34 Zakim has left #hcls 22:20:04 hsolbrig has joined #hcls 22:20:44 davide has joined #HCLS 22:21:01 hsolbrig has joined #hcls 22:21:23 LLoyd has joined #HCLS 22:22:09 -> http://www.w3.org/2015/11/HL7-V3-O-RIM-small.owl O-RIM 22:24:00 -> http://www.w3.org/2015/11/HL7-V3-O-RIM-small.zip O-RIM 22:38:02 have to head out. Apologies 22:57:34 http://BadAct1 a rim:Act . 22:57:34 http://BadAct1 rim:Act.moodCode http://BadAct1Mood . 22:57:34 http://BadAct1Mood dt:CD.coding http://BadAct1MoodCoding . 22:57:34 http://BadAct1MoodCoding dt:CDCoding.code "BadCode" . 23:17:47 rhausam has joined #HCLS