14:51:01 RRSAgent has joined #hcls 14:51:01 logging to http://www.w3.org/2015/03/11-hcls-irc 14:51:03 RRSAgent, make logs world 14:51:03 Zakim has joined #hcls 14:51:05 Zakim, this will be HCLS 14:51:05 ok, trackbot; I see SW_HCLS()11:00AM scheduled to start in 9 minutes 14:51:06 Meeting: Semantic Web Health Care and Life Sciences Interest Group Teleconference 14:51:06 Date: 11 March 2015 14:51:30 SW_HCLS()11:00AM has now started 14:51:37 +DBooth 14:52:56 Lloyd has joined #HCLS 14:53:27 +[IPcaller] 14:53:36 zakim, ipcaller is lloyd 14:53:36 +lloyd; got it 15:00:37 +ericP 15:01:27 hsolbrig has joined #hcls 15:02:01 +Ingeborg 15:02:15 Ingeborg has joined #HCLS 15:02:25 +hsolbrig 15:02:44 rhausam has joined #HCLS 15:03:50 +rhausam 15:04:09 Last week's notes: http://www.w3.org/2015/03/04-hcls-minutes.html 15:04:33 Topic: Quick hack at a FHIR ontology derived from instance data 15:05:06 Eric: Last week I talked about XSLT, but should have said we looked at XML data and discussed what it should look like in RDF. Then wrote code to generate them. 15:05:33 ... Want to talk about the apparent ontology derived from that. 15:05:58 agenda+ Homework from last week 15:06:08 -> https://github.com/w3c/hcls-fhir-rdf/blob/master/generic/tests/deviceobservation-referencesToContained.ttl goal doc 15:06:26 Eric: That's an example of what we want the system to generate. 15:07:09 -> https://github.com/w3c/hcls-fhir-rdf/blob/master/generic/tests/deviceobservation-referencesToContained-ontology.ttl derived ontology 15:07:35 -> http://webprotege.stanford.edu/#Edit:projectId=6532219d-109d-4e7c-a7d4-f3e2b8130bea derived ontology on web protege 15:08:38 Eric: My goal was to accept whatever FHIR puts out, and figure out what elements should have the same semantics and should be the same class. 15:08:54 +??P56 15:09:22 lloyd: two phases: accept what we have; then supplement with additional metadata that helps identify it further and indicate relationships between concepts. 15:10:02 zakim, ??P56 is JohnMaddison 15:10:02 +JohnMaddison; got it 15:10:40 zakim, JohnMaddison is really JohnMattison 15:10:40 +JohnMattison; got it 15:11:13 john: I still owe you a CCDA example. :) 15:12:54 john has joined #hcls 15:13:02 Tony has joined #HCLS 15:13:15 https://github.com/w3c/hcls-fhir-rdf/blob/master/generic/tests/deviceobservation-referencesToContained-ontology.ttl#L19 15:13:32 +Tony 15:13:58 http://webprotege.stanford.edu/#Edit:projectId=6532219d-109d-4e7c-a7d4-f3e2b8130bea 15:17:34 Lloyd: There's not a proper hierarchy for resources, and DomainResource defines "contained". 15:17:57 ... It's not in the spreadsheets, it's in the profile xml. 15:18:22 eric: The script that we wrote runs on the profile xml. 15:18:53 ... Ideally we'd get this looking correct, and then have a script that generates it from the profile xml. 15:19:23 lloyd: From every resource there are tabs for different views, and among them is alternative representations. 15:19:41 eric: We concatenate that into a big doc then run the script. 15:20:01 lloyd: There's a pre-concatenated version available for resources, datataypes and profiles. 15:20:17 ... They're inside a zip. 15:20:45 http://hl7-fhir.github.io/profiles-resources.xml 15:20:47 eric: There are about 8 properties that seem to be shared between resources. 15:20:53 (That one's not in a zip :)) 15:20:56 ... One could also say resource:... 15:21:33 ... The benefit of that is to have a uniform way of lookingn at the data. OWL is all about having general properties that are restricted for use in specific classes. 15:21:53 ... If not every resource uses contact or issued the same way, then we can just use resource:issued. 15:22:35 ... E.g., if multiple FHIR docs have text properties... are they the same? 15:23:08 lloyd: patient.text and practitioner.text *are* the same, but patient.identifier and practitioner.identifier are not the same thing formally. 15:23:24 ... We would have to add more info to infer that they're the same. 15:24:22 ... we don't use hierarchy for semantic purposes, because we've been bitten by the complexity that that adds: name them same, put into abstract class, etc. 15:24:38 ... Nice thing about RDF and OWL is that you can have two properties that mean the same thing. 15:25:19 ... Once we get the RDF working, we can build on top to make assertions like: practitioner.identifiers and patient.identifiers are descendents of the same kind of identifier, or such. 15:25:30 ... That's adding info to the reousrces that is not there now. 15:25:53 eric: where are there semantic differences because of real differences, and where are there differences only due to context? 15:26:07 ... e.g., hasChild. Any cat that hasChild is a kitten. 15:26:18 ... That's available to us if we want. 15:27:15 eric: I've listed 7 highly controversial things that I think are common across some resources. We can extrtact that from profile.xml once i learn how. 15:27:37 ... Llloyd, what's already known to be shared across resources? 15:27:53 http://hl7-fhir.github.io/resource.html 15:28:07 lloyd: There's the root resource. 15:28:11 http://hl7-fhir.github.io/domainresource.html 15:28:27 ... The above is descended from that, including narrative and text. 15:28:34 ... Then everythign else is below that. 15:30:22 q+ to say I think we should separate our task to two steps: deciding basic FHIR RDF (directly corresponding to FHIR XML or JSON) and additional ontology info that would add relationships, restrictions, and other info 15:31:08 lloyd: 3 coding datatypes: Code, Coding, CodeableConcept (wrapper or multiple Codings). Code is for fixed display values, while others exist behind the scenes. 15:31:34 ... Our lives would be easier if we treat Code as a Coding rather than as a string. 15:32:13 ... Coding is a class that has a property for the code itself, plus properties for the CodeSystem, etc. 15:33:25 ... With Code, there are properties that are fixed (and don't appear in the isntance). Display value and Valueset are fixed, and profile declares that binding. 15:33:53 ... In the case of Code, the binding is at the resource level. 15:35:02 ... Binding between the attribute that is codable and the valueset from which it can be drawn. If its' fixed at the resource level then you can't add any others, and the datatype is Code and System is fixed and redundant. 15:35:20 ... But a profile may fix it. 15:36:32 david: How is coding system determined for code? 15:37:00 http://hl7-fhir.github.io/elementdefinition.html 15:37:31 lloyd: In element definition, every property will be defined using one of these things. 15:38:46 { :someNarrative Narrative:status fhir:generated . } <=> { :someNarrative Narrative:status [ CodeableConcept:coding [ fhir:system fhir:sysID, Coding:code "generated" ] ] . } 15:38:53 ... E.g., patient.gender is type Code. Would have a binding strength=required, and a reference to the valueset definition. 15:39:17 ... and it defines display name and URLs. 15:39:25 ... But only the code goes over the wire. 15:40:15 ... The element definition fixes the code system. 15:40:39 { :someNarrative Narrative:status fhir:generated . } 15:40:39 <=> 15:40:39 { :someNarrative Narrative:status [ 15:40:39 CodeableConcept:coding [ 15:40:39 fhir:system fhir:sysID, 15:40:42 Coding:code "generated" 15:40:44 ] 15:40:47 ] . 15:41:16 http://hl7-fhir.github.io/patient.html 15:42:59 http://hl7-fhir.github.io/patient-definitions.html#Patient.gender 15:43:16 http://hl7-fhir.github.io/administrative-gender.html 15:45:21 David: Could a sender transmit a code that is ambiguous? 15:45:59 ... due to Coding System not indicated? 15:46:09 lloyd: Yes, it is possible. 15:46:55 ... But there are systems that do that. 15:47:08 ... Good practice is to avoid it. 15:47:55 tony: I modeled a valueset and its terms being a disjoint union, so you could get URIs for every member of the set. URL points to the term. 15:48:05 http://wiki.hl7.org/index.php?title=File:Terminology_binding_in_FHIR.pdf 15:49:00 lloyd: When i did this for v3 I treated codes as instances. 15:49:25 tony: in what i drafted, the code is an instance with a semantic type that points to the class in the valueset,. 15:49:39 lloyd: I treated valuesets as choices of coding instacnes. 15:50:03 ... Codings imply concepts, which are classes, because they have hierarchy. But coming over the wire is an isntance of a coding. 15:50:43 ... Where it gets fun is where you have equivalent codings (even possibly from the same code system). E.g., canada post: West or (Ouest in French). 15:50:56 ... It constrains the instances but not the meaning. 15:51:26 tony: eric's work showed that you can transport data over the wire, and infer the type that points to the terminology class. 15:52:12 lloyd: Need to be careful about doing it with classess. All of your classes would have to be disjoint. 15:52:29 tony: trying to get valuesets kind of in line with SNOMED. 15:52:53 lloyd: I suspect we'll need an intermediate ont that links between SNOMED URL and what appears in FHIR RDF instacnes. 15:53:09 agenda? 15:53:55 eric: Am i understanding narrativeStatus correctly? Did I map it right to codeable concept and code? 15:54:19 { :someNarrative Narrative:status fhir:generated . } 15:54:19 <=> 15:54:19 { :someNarrative Narrative:status [ 15:54:19 CodeableConcept:coding [ 15:54:19 fhir:system fhir:sysID, 15:54:20 Coding:code "generated" 15:54:22 ] 15:54:24 ] . 15:54:42 lloyd: Weird to have Coding:code and fhir:sysID. 15:54:53 zakim, take up next item 15:54:53 agendum 1. "Homework from last week" taken up [from dbooth] 15:55:18 I tried make test: 15:55:19 $ make test 15:55:19 sparql -d diagnostic-report-generated.ttl -q 15:55:19 Unknown argument: d 15:55:19 make: *** [t_diagnostic-report] Error 1 15:55:31 $ which sparql 15:55:47 dbooth: ran $(make test) and got above error 15:56:09 eric: cd into the "generic" dir first 15:56:15 ericP: $(cd generic && make test) 15:57:53 Ingeborg: Tried the homework. Got an error. Run in "generic" dir? 15:58:03 eric: yes. It downloads a zip of fhir definitions. 15:58:07 I didn't get the assignment. What is the github url? 15:58:47 Email title: "Proposed RDF FHIR syntax feedback" Mar 7 15:59:02 eric: There' ssome expected diff output, because the scripts have not been updated for the latest DSTU 15:59:45 @Lloyd - there it is. Thnx 16:00:06 rm xslt_defs.xml 16:00:27 eric: If you remove that file, everything will be regenerated. 16:00:41 David: Still getting an error: 16:00:42 python generate_xslt_defs.py > xslt_defs.xml 16:00:42 Traceback (most recent call last): 16:00:42 File "generate_xslt_defs.py", line 5, in 16:00:42 from huTools.structured import dict2xml, dict2et 16:00:42 ImportError: No module named huTools.structured 16:00:44 make: *** [xslt_defs.xml] Error 1 16:01:45 eric: Need to figure out how to make sure you have the right python modules. 16:02:41 pip install 16:03:12 pip install hutools 16:03:45 ack dbooth 16:03:48 q? 16:03:48 dbooth, you wanted to say I think we should separate our task to two steps: deciding basic FHIR RDF (directly corresponding to FHIR XML or JSON) and additional ontology info that 16:03:48 ... would add relationships, restrictions, and other info 16:04:08 dbooth: let's separate into two steps: 16:04:20 ... .. what FHIR/RDF do we want? 16:04:35 ... .. what additional ontology info do we want? 16:04:43 Lloyd: make that three: 16:04:55 ... .. what do we want the instance to look like? 16:05:11 lloyd: Three things: what do we want instances to look like? What do we want ont for rep and valuesets? third: what addiitional stuff can we add for more value? 16:05:32 -Ingeborg 16:05:56 ... We 16:15:46 RRSAgent has joined #hcls 16:15:46 logging to http://www.w3.org/2015/03/11-hcls-irc 16:15:56 ... We'll end up with: 1. transform from FHIR XML to FHIR RDF (resource instances). 2. Conversion of profiles and valuesets to OWL ontology. 3. Add more metadata to make those things more useful. 16:16:04 s/valueset/datatypes, valuesets/ 16:16:10 Lloyd: profile (now : structure defn) contains Resources, Datatypes, Constraint profiles 16:16:18 lloyd: will miss the next two calls. 16:16:24 ADJOURNED 16:16:43 Chair: David Booth and EricP 16:16:49 rrsagent, draft minutes 16:16:49 I have made the request to generate http://www.w3.org/2015/03/11-hcls-minutes.html dbooth 16:17:42 rrsagent, make logs public 16:18:27 Present: DBooth, lloyd, ericP, Ingeborg, hsolbrig, rhausam, JohnMattison, Tony 16:18:38 rrsagent, draft minutes 16:18:38 I have made the request to generate http://www.w3.org/2015/03/11-hcls-minutes.html dbooth 17:55:12 TallTed has joined #hcls 18:30:34 egonw has joined #HCLS 19:33:20 rhausam has left #hcls