W3C

- DRAFT -

FHIR RDF

28 Feb 2017

See also: IRC log

Attendees

Present
EricP, Harold_Solbrig, Pivonka, David_Booth, Gopi, Rob, Hausam
Regrets
Chair
David Booth
Scribe
dbooth

Contents


Review new FHIR ontology drafts and example (Harold)

Harold's slides: https://lists.w3.org/Archives/Public/www-archive/2017Feb/att-0013/HCLS_Feb28.pdf

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.
... It complements shex. FHIR ont defines classes and categories of records.
... Subject of an observation is a patient, but really in FHIR it is a patient *record*.
... 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.
... 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.
... 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.
... With Jena you create an ontology, add property, etc. At some point I'll revise that to use the actual Jena ontology API.
... I was told to put in just the predicates, domains ranges and cardinalities.
... But there are a few edge cases left out because of issues with FACT++ reasoner.

(slide 5)

scribe: Those issues are way down in the datatype space.
... 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.
... One nice thing about Grahame's parser is that it output things in a nice order with comments.
... Those other things were in as annotation properties.
... Some of the mapping info is meta info about the FHIR.

(slide 6)

harold: I also built a W5 Ontology: who, what, when, where, why
... I am actually using the reasoner with the W5 ont.

eric: So you could do some workflow reasoning with it? harold: yes

harold: There are some useful predicates in there.
... 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.
... I put in those declarations, but they should have been there already.

(slide 7)

harold: The other change I've done in the generated examples: added owl:Ontology and owl:imports declaration at the bottom of each example.
... This allows them to be used in Protege easily

(slide 8)

harold: We need a permanent identity, independent of where the ont is in the FHIR release process.
... This is the purpose of the owl:Ontology statement. And then we need a version also.

(slide 9)

harold: One issue right now is that the FHIR ont namespace does not resolve.
... 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.

eric: Granularity of versions, would be STU?

harold: Yes, STU is a sensible layer.
... But nobody is going to remember to update that hard-coded URI when STU is released.

ISSUE: What FHIR ont version URI should we use, and where should it be defined (currently hard coded in java)?

<trackbot> Sorry, but no Tracker is associated with this channel.

(slide 10)

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".
... But there's nothing to say "we expect this URI to ref a Patient".
... Right now you have to parse the ref URI to guess that it is a patient.
... And you cannot generate an rdf:type arc for it unless you know that it really is a Patient.
... We should extend fhir:reference with the Linked Data profile to include an rdf:type for the target.
... Because a lot of our reasoning will not work if we do not know the target type of the resource.

(slide 11)

harold: To interpret the status code, whose value is just a string literal, the reasoner needs to know which statuses are final.
... Those status codes are a mini-ont, that need to go into the reasoner.
... We need to generate OWL for the internal codes.

dbooth: How many of these mini-ont are needed?

harold: dozens.
... I recommend we piggyback onto a terminology server, to have it server RDF.
... The more we can move to object properties instead of datatype properties, the easier it will be with the classifiers/reasoners.
... Working on a paper for AMIA about what was covered today.

ISSUE: Need to gen ~400 mini-ontologies for status codes, probably working with Rob Hausam on extending terminology server

<trackbot> Sorry, but no Tracker is associated with this channel.

dbooth: We'll plan to discuss mini-ontology generation next week.

Summary of Action Items

Summary of Resolutions

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.152 (CVS log)
$Date: 2017/02/28 16:58:42 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.152  of Date: 2017/02/06 11:04:15  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: Irssi_ISO8601_Log_Text_Format (score 1.00)

Present: EricP Harold_Solbrig Pivonka David_Booth Gopi Rob Hausam
No ScribeNick specified.  Guessing ScribeNick: dbooth
Inferring Scribes: dbooth
Got date from IRC log name: 28 Feb 2017
Guessing minutes URL: http://www.w3.org/2017/02/28-hcls-minutes.html
People with action items: 

[End of scribe.perl diagnostic output]