Semantic Web Health Care and Life Sciences Interest Group Teleconference

15 Dec 2015

See also: IRC log


David_Booth, EricP, Rob_Hausam, Tony_Mallia, Lloyd_McKenzie, Darrell_Woelk_(webex_only?), Bill_Kleinebecker_(webex_only?)
David Booth


Continuing on Side-by-Side Document


tony: Start on section 2
... line 66
... line 70: GET [base]/[type]/[id] {?_format=[mime-type]}
... line 76 root element will be the type.

lloyd: In JSON it will be a property.
... Three kinds of identity going on here. Resource identity: base + type + ID. That is independent of the format exposed.
... There is also the identity of a particular version: base + type + ID + version.
... Then if you care about the exact wire type then things fall out the bottom, because we have the MIME type, whether summaries are included, etc. There is no stable URI for a specific wire response type.

dbooth: I think it's okay that we don't have a stable URI for the exact wire response type.

lloyd: The current version is whatever the server gives you if you do not ask for a specific version.
... How to specify the media type for RDF that is FHIR?

<scribe> ACTION: DBooth to ask EricP about media types for RDF that is FHIR [recorded in http://www.w3.org/2015/12/15-hcls-minutes.html#action01]

<trackbot> Created ACTION-40 - Ask ericp about media types for rdf that is fhir [on David Booth - due 2015-12-22].

<ericP> text/fhir-on-fire

lloyd: For JSON it is application/json+fhir

<ericP> why application?

tony: section 2.2 is minimal file that would be transmitted

<ericP> note that turtle is text/turtle (i argued strenuously for that)

tony: line 108: <http://record/AllergyIntolerance/1> rdf:type owl:Ontology ; owl:imports <http://hl7.org/fhir> .
... protege needs both the owl:Ontology and the owl:imports statements.
... Protege will not be able to distinguish annotation from object properties without the owl:import.
... And if you take out owl:Ontology then when some other file tries to import this ontology it will not find it unless it is identified as an owl:Ontology.

dbooth: I think that tony's concern is that if the FHIR document does not contain line 108 (owl:Ontology and owl:imports) then protege will not understand which properties are object properties and which are annotation properties.

ericp: We normally factor out the schema from the data.

tony: You cannot even load it into protege without line 108.

dbooth: I think you can, but you may need to explicitly provide the separate ontology

eric: I think that works
... And when they use OWL APIs they often load several separate files.

<ericP> http://www.w3.org/2013/12/FDA-TA/tests/RenalTransplantation/

eric: The above URL has an example subjects.ttl that imports both ABox and TBox statement -- both subject-amy.ttl and bridg-classes , for example

dbooth: Actually, study1.ttl is an example of ABox data that does not have either owl:Imports or owl:Ontology statements.

<scribe> ACTION: Tony to try Eric's example of using abox data without owl:imports or owl:ontology statements inside it [recorded in http://www.w3.org/2015/12/15-hcls-minutes.html#action02]

<trackbot> Error finding 'Tony'. You can review and register nicknames at <http://www.w3.org/2014/HCLS/track/users>.

tony: line 110 has the type of this resource instance.
... <http://record/AllergyIntolerance/1> rdf:type <http://PatientSafetyProfile/AllergyIntolerance>
... Protege will infer its type if it is not declared, but for profiles we will want it.

dbooth: I definitely think we should include the top level element.
... as fhir:AllergyIntolerance
... And if it conforms to one or more profiles, then it should also be declared as those types.
... One reason is that anybody can define a new kind of profile, which we might know nothingn about, but we would still want to know that the document is a fhir:AllergyIntolerance document.

<inserted> ADJOURNED

RDF Identities


<scribe> Chair: David Booth

tony: line 138 shows a type, but it can be inferred: <http://record/AllergyIntolerance/1> rdf:type <http://PatientSafetyProfile/AllergyIntolerance>,

owl: NamedIndividual ;

tony: but the type can be declared inside the profile.
... David suggested that both the basic element type and any profile type be declared.

lloyd: Agreed. You can never guarantee that the recipient will have a clue what the profile means.

tony: if you import the profile ontology also, then it pulls in more restrictions.

dbooth: The base type fhir:AllergyIntolerance is needed to make the message be self-describing.
... You could potentially infer it, from a fhir:AllergyIntolerance.status predicate, for example, but is cleaner to have it at the top.


tony: line 1930

lloyd: why call out Bundle specifically?
... Should instead have in-line versus referenced content.
... Parameters are how you give arguments to an operation, and get results back. Kind of like Bundle, but every entry has a name, and entries can be full blown resources.
... Full URL might be different for Bundle, because that's outside of the resource.
... Different from Bundle than Contained.
... Full URL is in the HTTP header

tony: A Bundle can be segmented, and the first segment can point to the next segment.

lloyd: That's the most common use for link. There can also be a self link.
... But we don't constrain that, so there can be links for other purposes.

eric: You have a controlled vocabulary for the relations?

lloyd: We don't define them. We point to the W3C/IANA definitions.

tony: line 1953-1975 <entry>
... One resource defined for each entry -- root on 1956, with full URL on 1955.
... Does the bundle have identity?

lloyd: Yes, bundle is a resource.
... But it does not get narrative or contained.

tony: sec 6.2 is first cut at looking at the bundle.
... line 1986 has the resource URI, and that resource starts on line 1997.

dbooth: How will we know which RDF triples to serialize back to XML for the bundled resource?

<scribe> ACTION: Tony to add the XML instance data corresponding to section 6.2 RDF. [recorded in http://www.w3.org/2015/12/15-hcls-minutes.html#action03]

<trackbot> Error finding 'Tony'. You can review and register nicknames at <http://www.w3.org/2014/HCLS/track/users>.

lloyd: Need section on references, two types.
... And how direct refererences work. Then everything else in Bundle is the same as handling resource.

tony: line 2011, does a Bundle always have an ID?

lloyd: Every resource may or maynot have an ID, depending on circumstances. It won't for a new resource being created.

eric: When it is not anonymous, we still have an open issue ... when we have IDs in FHIR land, and node labels in RDF land, we do not seem to be able to take a FHIR resource ID and turn it into an RDF node URI.

dbooth: can we always take the base URI + type + ID to form a valid URI?

lloyd: There are some that only live inside bundles -- urn:uuid:someGUID
... We do that when you want to pass something around inside the doc, which is not used outside the bundle.
... it will be referenced inside the bundle.
... And it should be stable across messages, e.g., a patient URI.
... Two formats for URI in FHIR: BaseURL/ResourceType/ID
... You can GET on that resulting URL and get the resource.
... The other type of FHIR URI is no-resolvable. It's a URN, and used exclusively inside of bundles, where you use a UUID (or maybe an OID?). It is a unique ID for that instance, which SHOULD remain consistent across other bundles, but you cannot GET from it.
... Because it's a URN.
... Line 1955 must be a full URL if you give one. <fullUrl> and <resource> go together -- you either have both or none.

tony: Therefore 1986 will never be a blank node.

lloyd: Right.


tony: In this example, the profile changes the valueset

dbooth: restricts it, right?

tony: It could be changing it if the base was only an example.
... Binding strength called "example".

lloyd: There are multiple datatypes. If it is code, then it will never be "example", it will always be "required".
... Possibilities: Example, Required, Preferred, Extensible.
... If it's a Coding, you can only send one coded concept. In that case if there is an Example, then a downstream profile can require a different set of codes.
... But with CodeableConcept, you can sent multiple codings, so you could sent a coding from multiple fixed codings.
... Examples are there as a hint. The only bindings that should show up should be Fixed or Extensible.

tony: Recommend that when we do that in RDF, then Recommended and Example should be annotation properties.
... But Required is an object property.

lloyd: Extensible means that you either have to have one of the codes in the VS, or the concept of the code that you choose must be disjoint with the concepts represeentable by the codes in the VS.

rob: Not sure we have clear consensus on that.

lloyd: That becomes difficult when dealing with extensible VSs.
... Grahame and I argue about it.

rob: Not sure how enforceable that will be.

lloyd: Is Navy a kind of Blue? Probably. But what about AquaMarine? THere are gray areas.

dbooth: That's a pretty sophisticated semantics.

What else?

lloyd: Have we discussed invariants? Co-occurrence constraints, upper bounds on cardinalities, constraints on substring values. Currently expressed in xpath2, but evaluating a custom language.
... Should look at that language to determine how easy it would be to express it in OWL
... Called FHIRPath

Grahame's mention of it on his blog: http://www.healthintersections.com.au/

lloyd: Also need to address slicing.


lloyd: Slicing includes what you are slicing on. Slices can be partial and can be ordered. More than just subclassing.

Media Types

lloyd: May want to support more than just Turtle.

eric: We're safe saying "Thou shalt support Turtle", but very few are limited to RDF/XML, and they can always use a filter.

dbooth: Should also support a syntax that supports RDF Datasets.
... Maybe. Or maybe not needed?

lloyd: You can use bundles for that.

dbooth: Sounds reasonable.

lloyd: Also need to discuss extensions.
... There are a bunch of different kinds of structure definitions.
... Also need to discuss mapping the notion of search criteria and mechanisms to the RDF space. More implementation guidance.

eric: Harold and I have been representing the structure definitions in ShEx.
... There's still an interesting question, if we write things in OWL and ShEx, should we generate both OWL and ShEx?

lloyd: I'd like to OWL that does as much as possible. Much broader audience for OWL than ShEx (at this point).

eric: hoping to change that :)

Change 5pm ET meeting time?

lloyd: Check with grahame again first.

dbooth: Will do.



Summary of Action Items

[NEW] ACTION: DBooth to ask EricP about media types for RDF that is FHIR [recorded in http://www.w3.org/2015/12/15-hcls-minutes.html#action01]
[NEW] ACTION: Tony to add the XML instance data corresponding to section 6.2 RDF. [recorded in http://www.w3.org/2015/12/15-hcls-minutes.html#action03]
[NEW] ACTION: Tony to try Eric's example of using abox data without owl:imports or owl:ontology statements inside it [recorded in http://www.w3.org/2015/12/15-hcls-minutes.html#action02]

Summary of Resolutions

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.144 (CVS log)
$Date: 2015/12/15 23:35:43 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.144  of Date: 2015/11/17 08:39:34  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

Succeeded: s/Continuing on Side-by-Side Document/RDF Identities/
Succeeded: i/Zakim has left/ADJOURNED
No ScribeNick specified.  Guessing ScribeNick: dbooth
Inferring Scribes: dbooth
Present: David_Booth EricP Rob_Hausam Tony_Mallia Lloyd_McKenzie Darrell_Woelk_(webex_only?) Bill_Kleinebecker_(webex_only?)
Found Date: 15 Dec 2015
Guessing minutes URL: http://www.w3.org/2015/12/15-hcls-minutes.html
People with action items: dbooth tony

[End of scribe.perl diagnostic output]