W3C

- DRAFT -

Semantic Web Health Care and Life Sciences Interest Group Teleconference

12 Jul 2016

See also: IRC log

Attendees

Present
David_Booth, EricP, Brian_Scheller, Rob_Hausam, Amol, 5PM_Call:, Harold_Solbrig, Grahame_Grieve
Regrets
Chair
David Booth
Scribe
dbooth

Contents


IG migration to CG

eric: Not enough paying membership to continue IG. Will be demoting HCLS to CG.
... Will be writing up what defines RDF, to publish before we turn into a CG, for higher status.
... Writing up a formal spec for structure def in RDF, how you turn it into shex and RDF graph template
... The process is more formal than what tony malia was doing.
... And I cannot finish it until FHIR is done, which will never be done. But I can publish something for a stake in the ground.
... There's a JAMIA paper that I want to post. Want to be sure that this is complementary to the JAMIA paper. Because they interact, I'd like others to look at it, but need to find out what's allowed to be used from the JAMIA paper first.

dbooth: When is the deadline for IG to CG?

eric: Deadline can be stretched if there's a doc in process, but theoretically end of July.

dbooth: What will others need to do?

eric: When I get clearance to share, I'll need people to proofread ASAP.

ShEx Validation

eric: I wrote an abstract syntax for shacl

<ericP> SHACL abstract syntax

eric: Allows round trip between shex and shacl
... shacl is a sublanguage of shex
... Hard things like repeated properties do not translate into shacl
... I'm supposed to work on a working draft of shex for the Data Shapes WG, which means there will be a rec track for shex
... In the process I tried to put all the advantages of shacl into shex. Made a branch called shex3, which I'm unsure of.
... it simplifies the model, but is more complex to describe what shex is doing.
... The surface syntax is the same, but the underlying json is different.
... Every value class is now a shape.
... More complex for people to get there head around, but now more powerful/general.
... Can do more validation that you used to.

Issues list

https://github.com/w3c/hcls-fhir-rdf/issues

Issue 29: Concept code URI: Should we have one? What should it be? #29

https://github.com/w3c/hcls-fhir-rdf/issues/29

eric: Code is in Coding in CodeableConcept in something else
... In principle, it isn't that Coding is a biopsy stain, it's that the Observation is a biopsy stain. So Grahame was bubbling all the way to the top, to Observation.
... But that meant it had lots of types on it.
... BiopsyStain, PositiveTestResult, etc.
... There's a ton of CodeableConcepts. One made sense to bubble to the top, but not all.
... How do we manage them? Is a blood pressure observation different?
... Or we could say that the typing of this Observation comes from this particular attribute.
... It doesn't make sense for ALL of the CodeableConcepts on it to become a type of the Observation.

dbooth: I don't see a problem semantically with attaching them all to the top.

eric: Interpretation is one. It would be dicey to say that something would be both an Interpretation and an Observation.
... Would want to say the Observation.dateTime is the same as Procedure.dateTime
... Is there a wish list of things for adding to structure definitions?

rob: IDK what's on the wish list currently. But if we want something added, put it in the tracker.
... For giving the same semantics to properties of the same name, there is discussion, but no global rule.
... wouldn't we declare them sameAs after the fact, in the RDF or OWL?

eric: Maybe it is only RDF people who care.

dbooth: How would equivalences between properties help?

eric: It is a similar example of what is needed. But we want closed shapes, so that if I send you clinical data and include an extra statement, you'll likely reject it.
... So if we add more type arcs we'll need to trim them off before sending to someone else.

dbooth: Should we leave the propagation of types upward to a downstream inference step?

eric: This typing info would be additional -- not on the wire

dbooth: How can we make progress now?

eric: need to wait on getting the wire FHIR RDF stablized.

Issue 18: How to determine the base URI for a FHIR document, and is it round trippable?

eric: Multiple issues here. Is the root node the name of the graph?
... Do we want to mandate different graphs for different resources?
... One obvious use case, is that when passing data one could put it into a named graph.

dbooth: Not sure that this issue is still relevant. Not sure that we have any relative URIs that are not strings.

eric: Need to interpret FHIR XML relative URIs in order to generate FHIR RDF.
... Could come from three places: FHIR XML, FHIR JSON, or a FHIR object store.

dbooth: I think the problem was what to do when you don't know the server base URI.
... Such as when submitting data to a server
... I think we currently handle this by assigning a blank node to the resource if we do not know the server base URI.

eric: Possible to get to that state?
... If you don't say that every resource has a base, then you don't know if <1234> is the same as x:1234 .

ADJOURNED

<trackbot> Meeting: Semantic Web Health Care and Life Sciences Interest Group Teleconference

<trackbot> Date: 12 July 2016

================ 5PM Call ===================

ShEx for FHIR RDF

harold: New converter (not yet submitted). Have comments in. Have required valuesets. Not sure what to do about anything other than required.

grahame: For non-required, you cannot validate anything that's not required. Even if VS is extensible, there's no way to know if a code is correct.
... But it's still useful to provide the expansion for computability purposes.

harold: For extensible, we looked at the possibility of giving a warning.
... At the moment we're doing require code VSs.
... It will be trickier when we get to coding structures.
... Turning out to be pretty useful.
... But comments are redundant. Might take them out after review.
... Re closed definitions, w'ere now generating in two forms. You'll get observation and all of its type descendents. But if we generate shex to comletely validate a resource, there woudl be exactly one shex definition. We generate that: fhir.shex . I've closed that one, in the sense that a resource is defined as either an AllergyIntolerance, or ... so that everything validates completely.
... Eric came up with a way of resolving the starting shape issue.

eric: That may be credited to grahame.

harold: It's a series of NOTs.

eric: like how you do a series of if-thens in propositional logic.

<hsolbrig> start=<All>

<hsolbrig> <All> (NOT { fhir:nodeRole [fhir:treeRoot] ; a [fhir:Appointment] } OR @<Appointment>) OR (NOT { fhir:nodeRole [fhir:treeRoot] ; a [fhir:Account] } OR @<Account>) OR (NOT { fhir:nodeRole [fhir:treeRoot] ; a [fhir:ReferralRequest] } OR @<Referr

<hsolbrig> <Resource> CLOSED {@<Appointment> OR @<Account> OR @<ReferralRequest> OR @<DomainResource> OR

<hsolbrig> Closed definitions are done

harold: Closed definitions are done. (Though still have batch validation step to be tweaked.)

<hsolbrig> required code value sets are done

harold: Required code value sets are done

<hsolbrig> extensions -- partly done

harold: Extensions are partly done

<hsolbrig> correct starting shape - done

<hsolbrig> comments - done

<hsolbrig> Proposed approach for reference

(Harold shows fhir valuesets in shex)

dbooth: I like the VS comments in the shex. they save the reader from having to chase the reference

harold: But it would help if the page could be rendered a little wider.
... Slicing will be a challenge. Eric is working on that (uniqueness).
... An Constraints have not been done yet.

Issue 30; What should the type of fhir:link target be in the ShEx?

https://github.com/w3c/hcls-fhir-rdf/issues/30

harold: I'm working on Option B
... The reference declares the target to be a fhir:Patient
... and if the patient resource is loaded, then it will also (redundantly) declare it to be a fhir:Patient.

<hsolbrig> <PatientReference> {fhir:link CLOSED {a [fhir:Patient]} OR @<{Patient}>}

harold: And we declare it CLOSED or just a patient type to allow it to be either loaded or not
... and if you want to force them all to be loaded, then you leave out the CLOSED line from the shex.

<hsolbrig> <Reference> @<PatientReference> OR @<DeviceReference> ...

harold: and we can also specify the kinds of references permitted

grahame: What if you don't know what kind of thing is referenced?

eric: Doesn't the URL pattern have to match a particular regex?

grahame: If you know that it's to a FHIR URI, but that's not required. It does not have to be a FHIR server.
... It does point to a resource, but you don't necessarily know what kind.

harold: This also brings up extensions: will we be expected to consume extensions that we know nothing about?

grahame: In general, you can read/write/process/store them. But for profiles, you can say "we don't do that here"

eric: There are scenarios where the profiles enumerate the permitted extensions.
... Three cases: promiscuous (any extensions allowed); conservative FHIR core only; enumerated set of extensions in a profile.

grahame: 3 cases: 1. whatever extensions are there we see, and use what we know about. that's what we encourage. 2. here's a list of extensions. and only these are allowed. 3. Here's what we know about, but we allow others too.
... Kind of like closed, open and extensible.
... The profile says which situation it is.

dbooth: Returning to references?

harold: Similar problem in references

Slicing

https://hl7-fhir.github.io/profiling.html (half way down the page)

harold: At a basic level of slicing, you'll have only a discriminator.
... That's what i'm trying to implement, using unique.

grahame: Tim Bray has been going off about how XMl is useless, and it's obvious that what he wants is Discriminator. So Lauren's getting me to write an article about Discriminator.

eric: You can't say that two types are identical except that one has a value 1 and the other has value 2. Is that the right mental model?

grahame: In XML schema case, a bunch of elements, each with a type model.
... If layering a schema on top of existing schema, the names are all the same, so discriminator tells you which property to use.
... Discriminator allows you to use a switch statement

harold: From CIMI and OpenEHR perpsective, want to be able to say we have a bu nch of observations, each of which has a unique code.
... Because it is open ended, you need to be able to say "and everything that;s left must also have unique identifiers"
... If we always knew everything that coudl be in Observation then we could close it off, but we can't. But we do want to say that it cannot repeat twice.

eric: That's a use case for unique.
... So FHIR discriminators have constants in the values. If I have multiple slices in the same collection, do they have to be different?

grahame: They all have to be fixed bindings to value sets.
... The Discriminator is set on the collection -- not the slice.
... They all have to be provably distinct.

eric: Are they nullable?

grahame: Some in a set can be optional, but they must be provably unique. Need to be careful if you make some optional.

eric: short valuesets, you don't allow ambiguous combinations?

grahame: Have to be provably distinct at static analysis time -- not instance data.

harold: what to work on next?

eric: slicing please, to get bad news as early as possible. :)

Changing HCLS IG to CG

eric: Trying to get a doc out before the IG changes to a CG at W3C.

<ericP> http://w3c.github.io/hcls-fhir-rdf/spec/

eric: Drafting a doc (linked above)
... Will define the default mapping, and then explain the exceptions.

harold: I'm expressing this in java :)
... Should son of QVT be another way to express this?

grahame: Don't think so. QVT is focused on expressing relationship on models in common syntax, to transform instances.
... But this is a more cerebral question.
... Translating one way of representing models to another.

harold: But on the source side it is talking about instances.

eric: But they're not the same structures.

grahame: Given a common metalanguage, you could define a transform between them. but it seems hard.
... Not needed by many people.
... Whereas with StructureMapping there will be lots of people wanting to do it.

dbooth: Jointly publish with W3C and HL7?

eric: Possibly, but there's a very short timeline.

dbooth: Would be good to promote the fact that W3C and Hl7 are working together.

grahame: Fill in the trademark request form, and I'll approve.

Next meeting

Harold: I'll be out on vac until Aug 1

ADJOURNED

Summary of Action Items

Summary of Resolutions

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.144 (CVS log)
$Date: 2016/07/12 22:37:05 $

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/<dbooth> Topic: ShEx Validation//
Succeeded: s/graph/named graph/
Succeeded: s/eric;/eric:/
Succeeded: s/3/and only these are allowed.  3/
Succeeded: s/W3C and HL7./W3C and HL7?/
No ScribeNick specified.  Guessing ScribeNick: dbooth
Inferring Scribes: dbooth
Present: David_Booth EricP Brian_Scheller Rob_Hausam Amol 5PM_Call: Harold_Solbrig Grahame_Grieve
Found Date: 12 Jul 2016
Guessing minutes URL: http://www.w3.org/2016/07/12-hcls-minutes.html
People with action items: 

[End of scribe.perl diagnostic output]