W3C

- DRAFT -

Semantic Web Health Care and Life Sciences Interest Group Teleconference

31 May 2016

See also: IRC log

Attendees

Present
David_Booth, Amol, Chad_Albert, Shahram, Rob_Hausam, Harold_Solbrig, EricP, Thomas, Lukasik, Grahame_Grieve, Jose_Labra, Wayne_Kubick
Regrets
Chair
David Booth
Scribe
dbooth

Contents


Semantics of Multiple Codings

harold: Nothing to report. Did not yet start the zulip discussion.

ShEx validator service

eric: Set one up for experimentation on horukuapp

<ericP> https://shexjs.herokuapp.com/

eric: A web hosting service.
... Worked over curl
... Simpler to run it locally.

<ericP> npm install shex

<ericP> cd shex

<ericP> cd rest

<ericP> ./server.js

<ericP> ----------------------

<ericP> npm install shex

<ericP> cd node_modules/shex/rest/

<ericP> ./server.js

<hsolbrig> curl https://shexjs.herokuapp.com/validate -F "schema=@../test/cli/1dotOr2dot.shex" -F "start=http://a.example/S1" -F "data=@../test/cli/p2p3.ttl" -F "focus=x"

eric: Still causing an internal service error sometimes

dbooth: Should be fine to host on yosemiteproject.org .
... Ready to put it there?

harold: close. next few days.

Resolving differences between github fhir and Harold's work

harold: Multiple codings issue is still outstanding.
... Also he switched to xsd prefix

<hsolbrig> strictly bugs:

<hsolbrig> using "xs:" in body and "xsd:" in the header

dbooth: we decided to use xs: instead of xsd:

eric: I misled people on that. Should use xsd instead. xs implies the whole of xml schema

<hsolbrig> fhir:DomainResource.text has to have a fhir:Narrative.div -- lacking at the moment

dbooth: Any objections to using xsd: instead of xs: ? (None stated)

harold: Narrative datatype requires a field called div .
... Don't know why grahame is not generating it. It is required in the FHIR model.
... We've been putting together a paper on this, and i've listed all of the additional validation things that should be in shex.
... There's a series of other things that we should consider, such as examples being fixed values, min/max values, etc.
... Some will fit into shex today.

<hsolbrig> missing slicing aspect

harold: Missing: slicing.
... If you take a FHIR def that includes slicing, we generate an invalid definition.
... Wrote it as TBD in the paper we're writing.

<hsolbrig> type.aggregation

harold: There's field called type.aggregation.

<hsolbrig> pattern[x]

harold: Three possible values: contained, referenced or bundled.

https://hl7-fhir.github.io/elementdefinition-definitions.html and scroll down to "ElementDefinition.type.aggregation"

ISSUE: How to handle FHIR slicing?

<trackbot> Created ISSUE-29 - How to handle fhir slicing?. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/29/edit>.

ISSUE: How to handle ElementDefinition.type.aggregation

<trackbot> Created ISSUE-30 - How to handle elementdefinition.type.aggregation. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/30/edit>.

ISSUE: How to handle FHIR pattern[x]

<trackbot> Created ISSUE-31 - How to handle fhir pattern[x]. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/31/edit>.

ISSUE: How to handle FHIR min/max value?

<trackbot> Created ISSUE-32 - How to handle fhir min/max value?. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/32/edit>.

ISSUE: How to handle ElementDefinition.defaultValue[x]?

<trackbot> Created ISSUE-33 - How to handle elementdefinition.defaultvalue[x]?. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/33/edit>.

ISSUE: How to handle ElementDefinition.meaningWhenMissing ?

<trackbot> Created ISSUE-34 - How to handle elementdefinition.meaningwhenmissing ?. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/34/edit>.

ISSUE: How to handle ElementDefinition.fixed[x] ?

<trackbot> Created ISSUE-35 - How to handle elementdefinition.fixed[x] ?. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/35/edit>.

How to handle ElementDefinition.pattern[x] ?

ISSUE: How to handle required/extensible/example in shex?

<trackbot> Created ISSUE-36 - How to handle required/extensible/example in shex?. Please complete additional details at <http://www.w3.org/2014/HCLS/track/issues/36/edit>.

eric: slicing was the most interesting of these.
... In principle I think we can address it well in shex.

https://hl7-fhir.github.io/profiling.html#slicing

<scribe> ACTION: Harold to work on minValue/maxValue and other obvious fhir features that are missing from FHIR RDF [recorded in http://www.w3.org/2016/05/31-hcls-minutes.html#action01]

<trackbot> Created ACTION-58 - Work on minvalue/maxvalue and other obvious fhir features that are missing from fhir rdf [on Harold Solbrig - due 2016-06-07].

harold: next step is to get a batch validator working.

dbooth: I'm assuming that round-trip validation will be done in the FHIR build process for FHIR RDF

harold: We also need some failing shex test cases. Part of the rationale is to generate FHIR RDF as the initial source.

eric: This is a need for all of the formats. For passing test cases you can just load it into the ref impl, map it to another format. But for failing you cannot do that. We'll need to make one-off variants for each format. Should make the same (parallel) errors in all formats.

harold: I think they have it somewhere. When you write a profile you need to demonstrate that your inputs and responses are valid. They must have a way to test their validators.

<scribe> ACTION: Harold to check on validating the validators with failing test cases. [recorded in http://www.w3.org/2016/05/31-hcls-minutes.html#action02]

<trackbot> Created ACTION-59 - Check on validating the validators with failing test cases. [on Harold Solbrig - due 2016-06-07].

What should the fhir:link target be in the ShEx?

https://www.w3.org/2016/05/17-hcls-minutes.html

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

<hsolbrig1> Grahame is generating a URL and that is what ShEx expects.

harold: We're generating it as a URL.

<hsolbrig1> fhir:link <http://hl7.org/fhir/Practitioner/f005>;

<hsolbrig1> ShEx: fhir:link IRI?;

<hsolbrig1> https://hl7-fhir.github.io/observation.shex.html

<hsolbrig1> http://hl7-fhir.github.io/observation-example-f005-hemoglobin.ttl.html

<hsolbrig1> fhir:Observation.performer [

an example:

fhir: Observation.performer [
... index 0;
... link <http://hl7.org/fhir/Practitioner/f005>;
... Reference.reference [ fhir:value "Practitioner/f005" ];
... Reference.display [ fhir:value "A. Langeveld" ]

];

dbooth: Do we place any constraints on what the fhir:link URI must be?

harold: Eric suggested that we add one more line, but I'm not sure what to do about it in shex.

<hsolbrig1> <http://hl7.org/fhir/Practitioner/f005> a fhir:Practitioner.

harold: If we had a type arc like that, and we loaded the reference in, it would be a duplicate triple.

dbooth: But it would not be a duplicate if it were not loaded in.

<hsolbrig1> a fhir:PractitionerReference;

harold: We also discussed the idea of giving it a type fhir:PractitionerReference

<hsolbrig1> xsd:token

<hsolbrig1> xsd:anyURI

harold: When FHIR defines anyURI we map it to a string. We map xsd:token to xsd:string in FHIR RDF
... We also map xsd:anyURI to a string.

dbooth: In some cases we also map it to a URI, i.e., we do both.

harold: I liked fhir:PractitionerReference until eric suggested fhir:Practitioner .

dbooth: How would shex validate it, if it were declared to be a fhir:Practitioner but not loaded in?

harold: don't know.

ADJOURNED

============== 5pm Call ===============

Alignment between Grahame and Harold's code

grahame: Up to date on example code
... In a bundle, I ignored the identity of resources in a bundle. Fixed now.
... Can parse resource now. Updated to validate turtle resources. Turtle syntax is not perfect.

eric: In shex validator, I wrote my own turtle parser also, because I also wanted line numbers.

grahame: My validation of the turtle itself is weak, but it validates the FHIR.
... I read all the shex files from the build, but it does not validate the shex yet.
... I only need to close the loop on the shex validation.

eric: Willing to use javascript?

grahame: I don't know how to invoke JS from my java code.

* rhausam (~rhausam@public.cloak) has joined #HCLS

eric: Call a shell script from java?

grahame: Yes, but want to allow multiple OSes.

eric: Is there a single command that you can run from java, that will run node.js on different OSes?

grahame: I'll try to run the scala version of shex first, which runs on the jvm.

dbooth: validating the examples from the build process, using shex?

grahame: yes

dbooth: round tripping?

grahame: no, because it involves canonicalization, which I dont' have in turtle.

dbooth: How about round tripping from xml/json to turtle, then back to xml/json, so that you can use your existing xml/json canonicalization?

eric: when you are invoking, do you know the focus node where you want to validate?

grahame: I could.

jose: Jena function: isIsomorphicWith

grahame: Need to know how to invoke shex, given some turtle

eric: Can you add a selection feature that allows the starting node to be identified by a predicate and object? x fhir:nodeRole fhir:treeRoot

(grahame shows his code)

grahame: I need the libraries for Jose's code

https://bintray.com/labra/maven/shexcala

jose: The prefixmap is in this jar: https://bintray.com/labra/maven/srdf-jena/view/files/es/weso/srdf-jena_2.11/0.0.2#files/es/weso/srdf-jena_2.11/0.0.6

https://github.com/labra/shexjava

https://github.com/labra/shexjava/blob/master/pom.xml

grahame: it still does not include the prefixmap

jose: I'll look into it.

* ericP apparently a paste of a paste of a paste, given the text "[11/05/2016 1:02:56] James Agnew:" in there

grahame: I'll talk to jose to resolve this.
... Big task after this is to update the underlying turtle file, to declare the relationships that we are using, such as fhir:concept
... More resolution to do. Will join next week, same time.

Failing (negative) validation tests

grahame: We have a bunch of unit tests. See test/validation/examples. Includes good and bad examples.
... I will auto-convert as many as I can to turtle.

dbooth: Have a file naming convention for good/bad tests?

grahame: no, but I'll do that.

Summary of Action Items

[NEW] ACTION: Harold to check on validating the validators with failing test cases. [recorded in http://www.w3.org/2016/05/31-hcls-minutes.html#action02]
[NEW] ACTION: Harold to work on minValue/maxValue and other obvious fhir features that are missing from FHIR RDF [recorded in http://www.w3.org/2016/05/31-hcls-minutes.html#action01]
 

Summary of Resolutions

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.144 (CVS log)
$Date: 2016/05/31 22:59:14 $

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)


WARNING: Possible internal error: join/leave lines remaining: 
        <dbooth> * rhausam (~rhausam@public.cloak) has joined #HCLS


No ScribeNick specified.  Guessing ScribeNick: dbooth
Inferring Scribes: dbooth

WARNING: Dash separator lines found.  If you intended them to mark
the start of a new topic, you need the -dashTopics option.
For example:
        <Philippe> ---
        <Philippe> Review of Action Items

Present: David_Booth Amol Chad_Albert Shahram Rob_Hausam Harold_Solbrig EricP Thomas Lukasik Grahame_Grieve Jose_Labra Wayne_Kubick
Found Date: 31 May 2016
Guessing minutes URL: http://www.w3.org/2016/05/31-hcls-minutes.html
People with action items: harold

WARNING: Possible internal error: join/leave lines remaining: 
        <scribe> * rhausam (~rhausam@public.cloak) has joined #HCLS



WARNING: Possible internal error: join/leave lines remaining: 
        <scribe> * rhausam (~rhausam@public.cloak) has joined #HCLS



[End of scribe.perl diagnostic output]