15:57:29 RRSAgent has joined #hcls 15:57:29 logging to http://www.w3.org/2017/02/28-hcls-irc 15:57:35 rrsagent, make logs public 15:57:43 Meeting: FHIR RDF 15:57:49 Chair: David Booth 16:02:47 Topic: Review new FHIR ontology drafts and example (Harold) 16:03:07 Harold's slides: https://lists.w3.org/Archives/Public/www-archive/2017Feb/att-0013/HCLS_Feb28.pdf 16:05:54 Present: EricP, Harold Solbrig, Pivonka, David Booth 16:06:38 Present+ Gopi 16:08:01 Harold: When we first designed the FHIR ont we were trying to do more validating. But now we have shex. FHIR ont does not talk about things in the real world, it only talks about what goes into clinical records. 16:08:19 ... It complements shex. FHIR ont defines classes and categories of records. 16:08:46 ... Subject of an observation is a patient, but really in FHIR it is a patient *record*. 16:09:22 ... FHIR ont in fhir.ttl has been available for about a year. Over the past few weeks I overhauled it completely. It defined an older RDF model, was out of sync, etc. 16:10:23 ... Grahame had written it to use an RDF parser that he wrote, but I shifted it to use the Apache Jena parser. In hindsight you should have used the Apache Jena Ontology API. 16:13:22 ... FHIRResource in my java code is a wrapper. Then I have a factory for creating different kinds of nodes. This is pretty much the regular Apache Ontology API, but with a fhir_ prefix. 16:14:11 ... With Jena you create an ontology, add property, etc. At some point I'll revise that to use the actual Jena ontology API. 16:15:21 ... I was told to put in just the predicates, domains ranges and cardinalities. 16:15:48 ... But there are a few edge cases left out because of issues with FACT++ reasoner. 16:15:55 (slide 5) 16:17:30 ... Those issues are way down in the datatype space. 16:18:40 ... Grahame wants us to put back some of the mapping stuff: flags that say whether something is a summary property, maps to the v3 RIM. 16:19:17 ... One nice thing about Grahame's parser is that it output things in a nice order with comments. 16:20:17 ... Those other things were in as annotation properties. 16:21:00 ... Some of the mapping info is meta info about the FHIR. 16:21:08 (slide 6) 16:21:30 harold: I also built a W5 Ontology: who, what, when, where, why 16:22:26 ... I am actually using the reasoner with the W5 ont. 16:22:41 eric: So you could do some workflow reasoning with it? harold: yes 16:22:57 harold: There are some useful predicates in there. 16:23:35 ... I need to talk to grahame. I'm teasing info out of it that should be explicit. THere's nothing there that says what are classes and what are object properties. 16:25:22 ... I put in those declarations, but they should have been there already. 16:25:49 (slide 7) 16:26:48 harold: The other change I've done in the generated examples: added owl:Ontology and owl:imports declaration at the bottom of each example. 16:28:48 ... This allows them to be used in Protege easily 16:28:53 (slide 8) 16:29:37 harold: We need a permanent identity, independent of where the ont is in the FHIR release process. 16:30:23 ... This is the purpose of the owl:Ontology statement. And then we need a version also. 16:31:00 (slide 9) 16:31:43 harold: One issue right now is that the FHIR ont namespace does not resolve. 16:34:03 ... Right now the version URI is hard coded into the Java, http://build.fhir.org/... and that won't work when we go to STU 2. 16:34:29 eric: Granularity of versions, would be STU? 16:34:50 harold: Yes, STU is a sensible layer. 16:35:32 ... But nobody is going to remember to update that hard-coded URI when STU is released. 16:38:22 ISSUE: What FHIR ont version URI should we use, and where should it be defined (currently hard coded in java)? 16:38:22 Sorry, but no Tracker is associated with this channel. 16:38:46 (slide 10) 16:39:38 harold: One thing about the FHIR examples is that the subject varies and the interpretation changes dramatically. To make this work sensibly, we need to say "this only applies to subjects that are Patients". 16:39:59 ... But there's nothing to say "we expect this URI to ref a Patient". 16:40:44 ... Right now you have to parse the ref URI to guess that it is a patient. 16:41:26 ... And you cannot generate an rdf:type arc for it unless you know that it really is a Patient. 16:42:25 ... We should extend fhir:reference with the Linked Data profile to include an rdf:type for the target. 16:42:56 ... Because a lot of our reasoning will not work if we do not know the target type of the resource. 16:43:14 (slide 11) 16:44:37 harold: To interpret the status code, whose value is just a string literal, the reasoner needs to know which statuses are final. 16:44:54 ... Those status codes are a mini-ont, that need to go into the reasoner. 16:45:59 ... We need to generate OWL for the internal codes. 16:46:33 dbooth: How many of these mini-ont are needed? 16:46:37 harold: dozens. 16:47:07 ... I recommend we piggyback onto a terminology server, to have it server RDF. 16:48:44 ... The more we can move to object properties instead of datatype properties, the easier it will be with the classifiers/reasoners. 16:49:00 ... Working on a paper for AMIA about what was covered today. 16:50:46 ISSUE: Need to gen ~400 mini-ontologies for status codes, probably working with Rob Hausam on extending terminology server 16:50:46 Sorry, but no Tracker is associated with this channel. 16:57:13 dbooth: We'll plan to discuss mini-ontology generation next week. 16:57:23 rrsagent, draft minutes 16:57:23 I have made the request to generate http://www.w3.org/2017/02/28-hcls-minutes.html dbooth 16:58:31 Present+ Rob Hausam 16:58:37 rrsagent, draft minutes 16:58:37 I have made the request to generate http://www.w3.org/2017/02/28-hcls-minutes.html dbooth