W3C

- DRAFT -

Semantic Web Health Care and Life Sciences Interest Group Teleconference

22 Apr 2015

See also: IRC log

Attendees

Present
DBooth, lloyd, Marc, Claude, Tony, rhausam, EricP
Regrets
Chair
David Booth
Scribe
dbooth

Contents


<trackbot> Date: 22 April 2015

Side-by-side example of two FHIR RDF approaches (Tony Mallia)

http://wiki.hl7.org/images/1/19/FHIR_RDF_Sample_side_by_side_comparisons_v2.pdf

Section 2.2 Subgroup example

We were discussing how to get the class name <http://loinc.org/54411-4.ttl>

<Claude> Hi David, could you please post the link again?

http://wiki.hl7.org/images/1/19/FHIR_RDF_Sample_side_by_side_comparisons_v2.pdf

https://global.gotomeeting.com/join/157514853

Access Code: 157-514-853

lloyd: Problem is not solvable. Every org that defines a coding.system can define the URLs however they want. We cannot control that, so there's no algorithmic way to determine the class URI from that and the Coding.code.
... Best we can do is to have a supplemental ont for that Coding.system that says "if you see a CodeableConcept that matches this, then the class is X"

David: That ont would define a mapping for that Coding.system from Coding.code to the class URI.

lloyd: For systems like SNOMED, that use post-coord expressions, it will be more complex.
... The string for Coding.code might be a post-coord expression.

david: In that case an algorithm would be needed.

<Lloyd> http://hl7.org/fhir/2015May/datatypes.html#code

Example from claude: "code":"2142|Suicide risk factor (observable entity)|53|IS ABOUT (attribute)|46206005|Mood disorder (disorder)|

(except that the display names are not allowed in the code)

lloyd: The mapping ont must enumerate every post-coord expression that needs to be mapped to a class.

Example from Marc: [[

@prefix loinc: http://loinc.org/owl# .

@prefix fhir: http://hl7.org/fhir/ .

@prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# .

@prefix dcterms: http://purl.org/dc/terms/ .

http://purl.bioontology.org/ontology/LNC/9279-1

a fhir:Code , fhir:VitalSign ;

dcterms: identifier "9279-1" ;
... title "Respiration rate" ;

fhir: system "http://purl.bioontology.org/ontology/LNC/" .

http://purl.bioontology.org/ontology/LNC/39156-5

a fhir:Code , fhir:VitalSign ;

<Lloyd> <coding> <system value="snomed..."/> <code value="2142:53=46206005"/> </system>

dcterms: identifier "39156-5" ;
... title "Body mass index" ;

fhir: system "http://purl.bioontology.org/ontology/LNC/" .

]]

marc: Queries on post-coord expr will be more difficult.

claude: you cannot have a pre-coord term for all post-coord expressions. it would explode.

lloyd: Not a lot of people use post-coord exprs, but they do solve particular problems.

claude: Concept of a code and concept of an expr, do we need two different classes in the ont? But the expr can have any kind of grammar.
... Maybe there should be two types of classes.

david: The mapping does not necessarily need to be limited to RDFS or OWL reasoning. It may need to use other inference rules that go beyond RDFS or OWL. That is not ideal, but it is workable.
... we can use other vocabularies with inference rules that are specific to the Coding.system

<Marc_Twagirumukiza> For post-coord we will need to set a limit in granularity ... how far we can go in post-cord?

tony: Could derive a turtle expression instead of a single class.

<Marc_Twagirumukiza> something like this would be complicated

<Marc_Twagirumukiza> There is a stenosis (11 mm diameter) extending from the proximal to the mid right coronary artery. From the data: 233970002|Coronary artery stenosis| : 363698007|finding site| = 91083009|Prox RCA| , 263556003|distal site| = 341000128101|Mid RCA| , 116676008|Associated morphology| = 415582006|Stenosis| , 81000128103|Interpreted From| = (397413000|Vessel lumen diameter| : 321000128109|Has quantitative value| = 138875[CUT]

lloyd: yes, but the hard part is the coding.system-specific logic that is needed to interpret the FHIR Coding.code expression.
... The FHIR message producer could choose to generate the class or expression. But if that doesn't then the consumer needs to use something to infer that class or expression from the Coding.system and Coding.code.
... we'd probably define two different extensions. One with a simple URI, and another with a full RDF expression.
... It would be a special extension that would show up in the XML but be directly in the RDF.
... You'd have to encode it back into XML when round tripping.
... I think we can do that, because the only types that should be asserted for CodeableConcept would be that it is a CodeableConcept and all of the concepts that are asserted based on the presence.

<Claude> <extension url="http://example.org/va/fhir/extensions#postCoordination" >

<Claude> <extension url="http://example.org/va/fhir/extensions#expressionLanguage">

<Claude> <valueString value="OWL DL" />

<Claude> </extension>

<Claude> <extension url="http://example.org/va/fhir/extensions#expression">

<Claude> <valueString>

lloyd: The only issue might be assertions that are being made that are tied to one coding versus another.

<Claude> Class(sdc:SystolicBloodPressure type(sdc:measurement) complete

<Claude> intersectionOf(

<Claude> restriction(sdc:measurement-location someValuesFrom(sdc:brachial-artery))

<Claude> restriction(sdc:measurement-laterality someValuesFrom(sdc:right))

<Claude> restriction(sdc:measurement-taken-with someValuesFrom(sdc:automatic-bp-cuff))))

<ericP> what do you mean by "based on one coding or another"?

<Claude> </valueString>

<Claude> </extension>

<Claude> </extension>

david: We need to cleanly differentiate between the minimum RDF that is needed to round trip from a FHIR XML message, without assuming access to non-required Coding.system information, versus additional ont information that MAY be available about that Coding.system.

<ericP> dbooth: need to separate between the minimal RDF required if nothing is known about some coding system vs. what's available if the coding system is known/understood

lloyd: Need to treat CodeableConcept as though they are specializations of Observation.code

tony: the thing you're trying to type is the AllergyIntolerance
... You're typing an instance of Observation.code.

<ericP> Tony, can you repeat your point for haroldS who just joined?

<ericP> We were looking at the Codableconcept, Coding and Code as something which is an instance which points at a class which is defined in the terminology

<ericP> the instances is e.g. the AllergyIntollerance

http://wiki.hl7.org/images/1/19/FHIR_RDF_Sample_side_by_side_comparisons_v2.pdf

https://global.gotomeeting.com/join/157514853

Access Code: 157-514-853

harold: where did you get the .ttl part of the loinc URI http://loinc.org/54411-4.ttl ?

<ericP> harold: you have the concept identifier, which is immutable in long term

harold: Ideally there would be a service at loinc.org that would do this. But you need a service somewhere that allows you to ask for a description given the Coding.system and Coding.code

tony: yes, there's some inaccuracy in this example. It's for discussion.
... But if you take the .ttl off the end, then that URI should give you the ont closure for that concept by importing it.

harold: Saying that the Observation.code is an instance of the loinc class?

tony: yes, it has two types. One says that it has the structure of a fhir:CodeableConcept. The other says it has a particular semantics.
... SNOMED would be a better example here than LOINC.

harold: SNOMED does not define data structures, it describes the world.
... But if that were a SNOMED code, . . . If I have a diagnosis of appendicitis, then the relationship should be an *about* relationship.
... Because it is a record that is *about* appendicitis, not the appendicitis itself.

tony: Yes, there's a real world appendicitis, and there'a health record about it.
... The Observation.code is representing the real world existence.

harold: You'll get into hot water with Barry Smith. :)
... You're conflating the description with the thing itself.
... Nothing is both an appendicitis and a description of it.
... Should discuss this with Stefan Shulz(sp?)
... issue that's been discussed: when they came up with the CD datatype, the distinction between the namespace and the coding system was fuzzy. one way to view it: when they say coding.system, you can treat that as a namespace (pre-URI days).
... Originally part of the OID grammar did not allow you to join the system and the code.
... In that interpretation, that's simply an alternate representation of you delete .ttl from the URI you show.

<ericP> _:X a fhir:Observation ; fhir:CodeableConcept.code [ fhir-magic:describesConcept <http://loinc.org/5411-4> ; fhir:CodeableConcept.codeing [ :system loinc: ; :code "5411-4" ] .

<ericP> _:X fhir:subject <Bob> ; fhir-magic:subjectNominallyHasDisease <http://loinc.org/5411-4> .

harold: need to dig up a good URI for "about" -- probably not rdf:about.

eric: No such URI as rdf:about.

<ericP> _:X a fhir:Observation ;

<ericP> fhir:CodeableConcept.code [

<ericP> fhir-magic:describesConcept <http://loinc.org/5411-4> ;

<ericP> fhir:CodeableConcept.codeing [ :system loinc: ; :code "5411-4" ] ] .

<ericP> _:X fhir:subject <Bob> ;

<ericP> fhir-magic:subjectNominallyHasDisease <http://loinc.org/5411-4> .

eric: Trying figure out, based on Coding.system and Coding.code, there's a relation betwen the patient and the disease.

tony: is describesConcept pointing to an instance or a class?

harold: please avoid the word 'concept', because it doesn't distinguish between the thing and the description of that thing.

david: Three things we're discussing: 1. differentiate minimum round trippable RDF; 2. should we treat Observation.code as an instance of a class? 3. Does that class represent the disease itself or a *description* of that disease?

<ericP> IAO

eric: We need to focus on this because it's a large part of our value prop.

<ericP> How to track absolutely everything

eric: We want to derive the disease class <http://loinc.org/5411-4> from Coding.system and Coding.code, and that's the link between the patient and the actual disease.
... We'll want to say that it is a class in order to leverage RDF inference, determining relationships between diseases, etc.

david: another thing discussed: 4. whether the Observation.code needs to be a URI instead of a blank node.

eric: never need to reference that blank node for the logic.

tony: Reasoner won't detect class membership if the thing is a blank node. But if I name it with a URI it works fine.

eric: OWL has a functional difference between URIs and blank nodes. That comes up when building an ont, but does that come up in this case?

ADJOURNED

ISSUE: should we treat Observation.code as an instance of a class?

<trackbot> Created ISSUE-7 - Should we treat observation.code as an instance of a class?. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/7/edit>.

ISSUE: If we treat Observation.code as an instance of a class, should that class represent the disease itself or a *description* of the disease?

<trackbot> Created ISSUE-8 - If we treat observation.code as an instance of a class, should that class represent the disease itself or a *description* of the disease?. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/8/edit>.

ISSUE: Does Observation.code need to be a URI instead of a blank node, to work well with OWL reasoners?

<trackbot> Created ISSUE-9 - Does observation.code need to be a uri instead of a blank node, to work well with owl reasoners?. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/9/edit>.

Summary of Action Items

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.140 (CVS log)
$Date: 2015/04/22 16:37:27 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.140  of Date: 2014-11-06 18:16:30  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

No ScribeNick specified.  Guessing ScribeNick: dbooth
Inferring Scribes: dbooth
Default Present: DBooth, lloyd, Marc, Claude, Tony, rhausam, EricP
Present: DBooth lloyd Marc Claude Tony rhausam EricP
Found Date: 22 Apr 2015
Guessing minutes URL: http://www.w3.org/2015/04/22-hcls-minutes.html
People with action items: 

[End of scribe.perl diagnostic output]