See also: IRC log
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.
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.
https://github.com/w3c/hcls-fhir-rdf/issues
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.
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
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.
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
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. :)
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.
Harold: I'll be out on vac until Aug 1
ADJOURNED
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]