W3C

– DRAFT –
FHIR RDF

04 September 2025

Attendees

Present
David Booth, Detlef Gritner, Eric Jahn, Erich Bremer, EricP, Guarav Vaidya, Jim Balhoff, Tim Prudhomme
Regrets
-
Chair
David Booth
Scribe
dbooth

Meeting minutes

Issues with using FHIR R5 ShEx

w3c/hcls-fhir-rdf#172

tim: bnodes are a problem. Want IRIs for the structure defs.

ericp: We now have IRIs for the top of the structure def, based on the IDs.

jim: w3c/hcls-fhir-rdf#172

tim: Still need to link the class using rdfs:isDefinedBy , as described in issue 133.

ericp: The FHIR examples are not compliant w the FHIR REST protocol. It would be nice if they were resolvable.

tim: I can work on linking the classes.

jim: The roots of the structure defs now have IRIs, in the latest. And in the examples.
… But they were accidentally bnodes before, in R5.

tim: There's still a problem w imports: https://build.fhir.org/fhir.shex
… The first two there.

tim: Also it looks like it uses shex 2.2 . It would be good to what version of shex it uses.

ericp: It uses a version we haven't yet merged back into jena.
… We're still working on usability for it.

tim: Also he FHIRPath constraints are not in the pubic shex.

ericp: Yes, the need a lot of debugging.
… Also the jena shex version that iovka put together is much faster, so we hope to use that one.

tim: So far I've been getting around these issues.
… I'm using it for encoding more of the valueset bindings.
… this issue: w3c/hcls-fhir-rdf#167
… using a reasoner with valuesets
… I think I have a solution for doing that w an ontology, e.g., SNOMED
… Basically because of the OWA you need to use shex for the validation part.
… Did you consider: What was the status on making a SHACL version?

ericp: Probably possible, but wouldn't give you as good validation because of no notion of closed shapes.
… Would probably work for base resources, but not well for profiles.
… You'd have to customize it for each profile.
… SHACL was meant to be easy to implement; ShEx was meant to be easy on users.

FHIR R5 RDF Support broken

w3c/hcls-fhir-rdf#174

detlef: Want to receive FHIR R5 and convert it to FHIR R5 RDF.
… But found that HAPI does not contain a real R5 parser.
… Tim said I should look at the FHIR core for the real parser.
… But then we ran into multiple issues.
… Went back to HAPI FHIR base, and found that this parser is generic, and creates the correct RDF and JSON in R5 but not R4.
… And we asked it for a FHIR context for R5, but it turns out it is a hybrid version that uses R4 syntax but has some R5 contexts. Broken.
… tried to replace it w the R5 parser, but has implementatoin of 28k lines in one class.

ericp: That's grahame's implementaion.

detlef: I was guessing it was generated.
… Also serializatoin is completely missing.
… Lots of comments of implementation missing.
… My colleague changed the generic parser to support proper R5 (we think). That work is ongoing.
… HAPI FHIR base has some tests for it. Converted XML to RDF and see if that creates the correct XML again.
… ANd my colleage was checking agains the examplex, but they're created from a third implementation.
… My colleague collected issuee believing he would get an R5 parser. E.g., still uses fully qualified property names, still uses the R4 list syntax, etc.
… Looks like nobody actually implemented the R5 parser. Should have caused an exception if it isn't implemented.

tim: We switched to using a class called turtle parser.

w3c/hcls-fhir-rdf?tab=readme-ov-file#rdf--shex-generation

tim: Decent examples of how to use it https://github.com/hapifhir/org.hl7.fhir.core/blob/master/org.hl7.fhir.r5/src/test/java/org/hl7/fhir/r5/test/TurtleGeneratorTests.java
… The maintainers of this repo have not done a good job of clearly separating R5 code from R4 code. That has causd me some confusion.
… There's also a turtle generator classe.

jim: But that's only serialization.

ericp: I think I have the generic parser updated for R5 rdvch.

ericp: https://github.com/fhircat/hapi-fhir/tree/update-rdf-parser-to-rdvCh

tim: This work should go into the core llibrary, because it's not specific to HAPI.
… THat would allow it to be shared by the FIHR build and HAPI.

ericp: There's a test that does round tripping.

ericp: https://github.com/fhircat/hapi-fhir/tree/update-rdf-parser-to-rdvCh

tim: So the 28k like class should be replaced by what ericp has.
… But the code is up to date, but in the turtle classe.

detlef: We like that the FHIR base is integrated.

tim: The core lib is hosted in HAPI's repo (the hapi fhir prefix), but the namespace is just core fhire.
… But the updated parser https://github.com/fhircat/hapi-fhir/tree/update-rdf-parser-to-rdvCh should be brought into FHIR core.

ericp: i'm confused by why

https://github.com/hapifhir/hapi-fhir/tree/master/hapi-fhir-base/src/test/java/ca/uhn/fhir/parser

doesn't have the test for

https://github.com/hapifhir/hapi-fhir/blob/master/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/RDFParser.java

ericp: If detlef's colleague wants to work togheter over signal, we can get the properly merged into FHIR core.

ericp: In japan Sep 12-22.

gaurav: Out next week

ADJOURNED

Minutes manually created (not a transcript), formatted by scribe.perl version 244 (Thu Feb 27 01:23:09 2025 UTC).

Diagnostics

Succeeded: s|Issues with using FHIR R5 ShEx|https://build.fhir.org/fhir.shex

Succeeded: s/rdbch/rdvch/

Succeeded: s/24/22/

No scribenick or scribe found. Guessed: dbooth

Maybe present: detlef, gaurav, jim, tim

All speakers: detlef, ericp, gaurav, jim, tim

Active on IRC: dbooth