Meeting minutes
Jim Balhoff, UNC Chapel Hill
FHIR RDF Minutes approval
dbooth: Minutes are here:
https://
dbooth: Motion to approve the above concatenated minutes
Jim seconded
APPROVED: 3-0-0
Next call
Jan 8, 2025, 3pm Boston time.
ADJOURNED
Jim Balhoff, UNC Chapel Hill
dbooth: Minutes are here:
https://
dbooth: Motion to approve the above concatenated minutes
Jim seconded
APPROVED: 3-0-0
Jan 8, 2025, 3pm Boston time.
ADJOURNED
No scribenick or scribe found. Guessed: dbooth
Maybe present: APPROVED, dbooth
All speakers: APPROVED, dbooth
Active on IRC: dbooth
erich: They're just DICOM files. So I added code to my parser to read them.
… I like Detlef's idea conceptually, but one ref to the pt may be problematic.
… Eg, pt age is the age at the time when the image was done. So merging files could give the pt multiple ages.
detlef: We found the same problem. In the rec there is something for the ID of pt data uses a study model rather than pt. The study is always unique in time. A different study could have a different age.
… So the age is associated w the study, not directly w the pt.
… If you want to merge the pt you need other unique pt IDs, like SSN.
erich: Which properties would roll up, and which would be taken out?
detlef: Every slice has its own file, up to 330 times if you don't merge them. But only one study and one pt.
erich: About a third of the data was redundant or not needed.
dbooth: Sounds like the semantics of the properties need to be understood, to know which ones can be rolled up to the pt, and which need to be rolled up to the study.
dbooth: What questions do we need to answer?
detlef: What is the use of RDF? Why use it?
ericp: On challenge in FHIR land, and you want to merge data, they say to make that other model a logical model.
… But we can say that there are people who want to use RDF, and we want to make it available to them.
dbooth: Agree. It's too difficult to convince people to use RDF. Let them come to us.
erich: What are the translational rules to produce RDF from DICOM?
… If we want to drop all of the redundancies, what would stay and what would merge?
detleft: Follow DICOM std. It says "If it is the same ID, then it SHALL be the same".
… If you follow that rule then merging is easy.
erich: I'll give that a whirl.
… I guess we'd have predicates like dcm:hasSeries
… Josh Moore is a fan of RDF, interested in how to get DICOM metadata into the zar file format.
… Guessing he's interested in FHIR also.
… That's OME.
… He's another use case.
ericp: I know Josh and can talk w him.
… about FHIR and LDP use cases.
jim: Tim Prudhomme set up a test file that makes it much easier to test the output, without running the whole build.
ericp: Canonical pretends that it's just an xsd:anyURI
… Canonical permits a pipe symbol in it, which is no longer anRFC3986 URI, but we allow it to be called an xsd:AnyURI
ericp: Also it would be nice to use boolean true symbol (in Turtle) instead of "true"^^xsd:boolean .
jim: Question about it. I'll reach out to ericp.
ADJOURNED
No scribenick or scribe found. Guessed: dbooth
Maybe present: dbooth, detlef, detleft, erich, jim
All speakers: dbooth, detlef, detleft, erich, ericp, jim
Active on IRC: dbooth
Jim's PRs: hapifhir/
hapifhir/
ericp: I'll try running the shex validation over the new output
dbooth: We'll need jira tickets for these PRs
ACTION: dbooth to make jira tickets for these
ericp: Would be nice to take advantage of Turtle's built-in types.
ACTION: Ericp to ask grahame about serving the examples from their logical URI
jim: the xsd:anyURI cannot be round-tripped with fhir:canonical .
ericp: The def of xsd:anyURI was relaxed.
ACTION: Ericp to ask W3c folks about interp of xsd:anyURI
Jim returns Jan 6
ADJOURNED
Succeeded: s/Topic: Output type triple for [x] properties/Topic: Fixing RDF examples
No scribenick or scribe found. Guessed: dbooth
Maybe present: dbooth, jim
All speakers: dbooth, ericp, jim
Active on IRC: dbooth
erich: Suggest we close issue 146, as addressed.
detlef: RDF lists sounds fine.
detlef: But it might cause problems for something that points to an item in the list.
… Want to investigate further.
ACTION: Detleft to investigate 146
erich: Also looking at 142 w3c/
erich: detlef suggested using instance UID. Two different files might use the same one, causing a clash. Should we worry about that?
detlef: In our case, the first wins and the other goes into quarantine for human intervention.
erich: That's similar to other clashes that can happen. I'm okay with that. I used to use a file hash to avoid clash.
… But my DCM to RDF converter allows either. I'm fine w your suggestion.
detlef: THere's a second in DICOM to use your own IDs without registering your root ID, like for research projects that need to shuffle around file. They use their own IDs.
… So there's one that means "locally generated" ID
erich: If someone copies a folder (w copy of original files) the metadata will be identical. If I use the SOP instance UID, I won't get duplicate because they're literally the same file.
… But for a SOP instance ID in converstion to RDF, I want to see 'derived from ...'
… I want to see that there are multiple files that are really the same thing.
… Want to avoid duplicate series.
… Want to avoid accidental file duplication: same file but different folders.
detlef: But what if the data is transferred over a network? The info is lost.
detlef: We treat them as completely different files.
… If there are different sub-instance UIDs, they'll be treated as different.
erich: I need a way to detect duplicated files.
detlef: Need to recognize that subinstance UID is always part of it. Might need to look into the file.
erich: I was using prov:derivedFrom
… So I might have 10 prov:derivedFrom but they're all copies of the same file.
detlef: Sometimes the original file program is not relevant. subinstance UID is enough to find a local copy.
dbooth: Pack system?
erich: Main engine for imaging system.
dbooth: Any harm in having also the prov:derivedFrom ?
detlef: No harm, but could be confusing.
erich: It would expose details of the original system that might not want to be exposed.
… I'm fine w leaving it as an option on my own converter.
AGREED: Use SOP instance UID
w3c/
gaurav: We had a spreadsheet of all of the naming and code systems in HL7 UTG. Updated that, and added a link to the issue.
… It's in its own branch. A Scala script creates it. Probably don't want to integrate the script into UTG itself. Where to put it?
dbooth: I suggest the HCLS github space.
ACTION: Gaurav to look at where to store the scala script
gaurav: Also created a ticket for IRI stem lookup code being out of date.
jim: I opened 3 PRs on the HAPI core repo.
https://
jim: I think there were other issues I was going to address.. I'll look.
… I also opened an issue a out xsd:anyURI strings that have pipe symbols. Jena doesn't complain about them.
… HAPI FHIR code says "Illegal URI". It has a regex.
… Jena doesn't complain, but only because it's not parsing any URIs.
… In w3c/
dbooth: We need ericP for further discussion.
erich: Want to look more at 144 and check w our radiology people.
erich: Suggest we use w3id URI until we get an official DICOM URI
dbooth: There might be a danger of establishing a w3id if an official DICOM URI is later issued.
dbooth: Suggest waiting until a common URI is really needed
ADJOURNED
No scribenick or scribe found. Guessed: dbooth
Maybe present: AGREED, dbooth, detlef, erich, gaurav, jim
All speakers: AGREED, dbooth, detlef, erich, gaurav, jim
Active on IRC: dbooth
erich: It would need the SOP instance ID to make a reusable URI for it
detlef: An example: http://
(Discussing the bnode object in the list in the example Erich provided at the beginning of issue 146.)
erich: Maybe could use <urn:oid:somethingrandom/
Maybe use a relative URI like: Maybe relative URI like: <dcm:30060080/0>
erich: That's similar to my suggestion after it is expanded w the base URI
dbooth: Yes.
eric: Or we could go with a simpler solution that would allow users to choose their own URI namespace for it, which would not guarantee that indpendent users would detect the same object.
dbooth: If you use bnodes, then RDF cannot link them automatically even though, using DICOM knowledge, two bnodes are intended to represent the same thing.
ACTION: Erich to try this in his converter, w URN
erich: I'm also working on a SHACL representation of DICOM
dbooth: Relative URIs only exist at the syntactic level, for example in Turtle. RDF itself has no notion of relative URIs. They are immediately converted to absolute URIs (using whatever base URI is currently applicable) when a Turtle document is loaded into a triple store.
dbooth: In summary, if we leave those list item identifiers as bnodes, then two independent users who load the same file and understand DICOM could infer that those two first items in that list are actually the same thing, but the triplestore would not know to join them for you automatically.
ADJOURNED
Succeeded: s/http/An example: http/
Succeeded: i/erich: Maybe could us/(Discussing the bnode object in the list in the example Erich provided at the beginning of issue 146.)
No scribenick or scribe found. Guessed: dbooth
Maybe present: dbooth, detlef, eric, erich
All speakers: dbooth, detlef, eric, erich
Active on IRC: dbooth
detlef: Would like to be able to reference each item within a list
erich: Want to also be able to reference the list itself?
detlef: We have both arrays and sequences. Sequences can be complex objects, whereas an array can only hold primitive objects.
… And a sequence has a common template for all objects in it.
eric: I'll try generating a URN for each element of the list.
dbooth: In detlef's example of a sequence in which one item is the heart, and you want to reference it, how is that done in DICOM?
ACTION: Detlef to provide an exmaple of how he currently references the heart in an example like that
detleft: They look like foreign key references
detlef: Also, DICOM has an ER model, that says how these objects reference each other. It is hierarchical, and uses relationship links. These could be easily modeled in RDF.
… But it broke down into FKs in RDMSs, because the std they were implementing didn't allow them to implement the ER model directly. But I think we could in RDF. Hierarchy is just a special case for an RDF graph.
ACTION: Detlef to create an issue for that
eric: Is there a std for the relational model? Detlef: No. The official std is the ER model.
eric: What about ordering of attributes?
detlef: The order is sometimes very important.
ACTION: Erich to add another option to turn list elements that start w bnode, turn it into a URN indicating the index into the list.
detlef: I'll be out next week.
ADJOURNED
No scribenick or scribe found. Guessed: dbooth
Maybe present: dbooth, detlef, detleft, eric, erich
All speakers: dbooth, detlef, detleft, eric, erich
Active on IRC: dbooth
gaurav: This is is logged w FHIR folks: https://
… One of the docs refer to rdf.html but not the full path, so i submitted a request and they decided to make it a link. Hasn't been done yet.
… And I did a PR to make the change.
HL7/
… Also, I have a script to gen all the code systems and naming systems. We decided it should go into the HCLS FHIR RDF repo, and I've got that ready.
… Someone needs to review it.
jim: I have 3 PRs. Eric, turtle generation?
eric: Claude and w get together at beginning of SWAT4LS Feb 24-27, I want to use it at that time and get your help then.
ACTION: David to figure out what Jira tickets we need for Jim's PRs
hapifhir/
erich: Working on the list stuff we discussed last week. But every time you go into a sublist, you're appending it to the upper list. Prob done by next wk. Skolemizing each bnode item in a list.
https://
Issue 120: w3c/
jim: Haven't figured out how to fix this. Will continue looking.
ACTION: David to see if issue 100 is already covered by other issues.
AGREED: Close issue 82 as not needed
eric: We should abandon existing Playground, and build a new one not based on JSON-LD, if/when someone has the time to do it.
All agreed
<dbooth> s/All Agreed/AGREED: Close the existing playground issues, and open a new one about creating a new Playground
ADJOURNED
Failed: s/All Agreed/AGREED: Close the existing playground issues, and open a new one about creating a new Playground
No scribenick or scribe found. Guessed: dbooth
Maybe present: AGREED, eric, erich, gaurav, jim
All speakers: AGREED, eric, erich, gaurav, jim
Active on IRC: dbooth
https: //build.fhir.org/rdf.html#instance
dbooth: Noticed that the property names need to be uncurried and type arcs added for the fhir:effective[x] properties. Filing this as a technical correction. Agreed?
jim, gaurav: Yes.
https: //github.com/w3c/hcls-fhir-rdf/issues/154
jim: I have a fix for using native Turtle types.
... Do we want decimals have a decimal point added to use the shorthand turtle?
eric: Look on datatypes page
jim: The date one is handled in the code already.
eric: The FHIR SheX schema tries for maximal typing.
... Suggest having a ToShorthand function, that sometimes gives real Turtle shorthand, and sometimes uses hat types when needed.
dbooth: Could we map any FHIR datatype to double?
eric: Not safely. If FHIR were later to use double then we'd be stuck if we mapped something to double now.
dbooth: Helpful to gen diffs of the examples, so that reviewers can easily see the resulting changes.
gaurav: If it’s helpful, here’s the source code: https://github.com/HL7/fhir/blob/a4d7a5c163c3a7d39c598701cd7b09ab10d101aa/source/rdf.html#L102-L116
gaurav: Got the FHIR RDF playground repo set up on my Mac. Can now make PRs against it.
... Will work on concept IRIs for it
gaurav: My funding for this work is ending. will tie things up in the next month.
jim: Me too
Issue 146 https://github.com/w3c/hcls-fhir-rdf/issues/146
erich: Want to use a reference off the SOP instance OID, w the property appended.
dbooth: Need to be careful not to squat on URN space. We'd have to register a subspace of URN space and insert something before the OID part.
erich: Is it syntactically legal to append things to a URN using slashes?
example URN Erich generated: <urn:oid:1.3.6.1.4.1.5962.99.1.2280943358.716200484.1363785608958.60.0/00120064/0>
eric: You're allowed to have two URIs for the same thing, but encouraged to use the same URI
... Eg, ideally wikipedia and dppedia would use the same URIs, but they don't.
... If we provide an algorithm that let's people invent identifiers that share things, they could use the same IDs for the same thing where it's practical.
... I.e., we don't need a soln that will guarantee the same URIs, but give them a pattern they can use to use the same URIs if desired.
... E.g., something in the OID space, or something in a URL space of ours.
<scribe> ACTION: EricP to make a wiki page for discussing options, and link it from issue 146
ADJOURNED
dbooth: URNs as of 2017 allow slashes: https://
erich: DICOM OIDs are limited to 64 chars
… But that restriction would not apply in RDF
ericp: concerned about other tools that people might want to use on our proposed extended OIDs (with list item index added)
… Sometimes things from RDF land bleeds back to other lands, like JSON.
dbooth: We could tack that info onto the front of the URN instead, before "oid:".
eric: Could register a new OID for our RDF stuff, then prefix the list index to the OID.
erich: The 64 char limit comes from DICOM.
ACTION: Erich to check on allows syntax for OIDs, to add chars at the end
gaurav: Grahame merged all of Jim's open PRs. He's going to work on a PR next, for shorthand values in Turtles.
ADJOURNED
No scribenick or scribe found. Guessed: dbooth
Maybe present: dbooth, eric, erich, gaurav
All speakers: dbooth, eric, erich, ericp, gaurav
Active on IRC: dbooth
gaurav: Made a punch list for me: w3c/
… On vac the next 2 weeks.
erich: RFC 8141 introduces extra components to URNs
https://
erich: If you add a frag ID to the URN, then you aren't squatting on someone else's namespace.
… How to refer to subportions of files? DICOM is a container format, and we want to to refer to a subsection.
eric: The frag ID can also just provide additional info, not necessarily related to the URI on which it is affixed.
dbooth: Media type seems to own the frag ID interpretation
erich: Should get DICOM's buy-in to treat the frag ID as identifying a portion of the DICOM file
eric: Media type is used for both semantics and format. The pluses try to make that less painful.
… If we're trying to identify the 5th item of list 7, that's applicable to more than just RDF.
https://
https://
dbooth: DICOM media registration does not specify frag ID semantics: https://
… Can propose it to the DICOM folks when we propose the rest.
detlef: Would this allow us to identify any attribute in DICOM?
eric: Like JSON path
… Suppose you have a JSON path in JSON-LD, then that would effectively give you a URI for it, instead of just a bnode.
erich: The problem we want to solve is to have an identifier for each element of a list.
… I want to talk w DICOm folks soon, bc they want to be involved.
dbooth: specifically suggest using JSON path in the frag ID?
AGREED: suggest using JSON path in the DICOM frag ID
ADJOURNED
Succeeded: s/frag ID/DICOM frag ID/
No scribenick or scribe found. Guessed: dbooth
Maybe present: AGREED, dbooth, detlef, eric, erich, gaurav
All speakers: AGREED, dbooth, detlef, eric, erich, gaurav
Active on IRC: dbooth
jim: Made another PR
… Linked from repo issue
… Also make a branch from that branch and committed all the TUrtle outputs for the examples, and then commited that, to make it easy to see the changes on github.
erich: I can change the slash to a hash, to make it a frag ID on the URN.
… Might write a paper on this.
… And think others on this call should also be co-authors.
dbooth: I'd be happy to help edit.
erich: I'm also interested in using a SOLID pod for this.
detlef: We have a DICOM ont, but it's closed source.
erich: Can we converge on a single representation, instead of having multiple dialects?
ACTION: Erich to change his code to gen URNs with JSON path frag ID
ADJOURNED
Succeeded: s/Make another/Made another/
No scribenick or scribe found. Guessed: dbooth
Maybe present: dbooth, detlef, erich, jim
All speakers: dbooth, detlef, erich, jim
Active on IRC: dbooth
jim: Grahame merged my PRs
dbooth: ITS call is next week.
Gaurav: I can join
jim: Issue 155 shows how the parser responds
dbooth: See my comment about the pipe needing to be converted to a query parameters, as recorded in issue 120
gaurav: Will work on https://
(erich demo of his DICOM conversion)
eric: It includes a -detlef option, to convert item references to URNs
dbooth: Looks really nice!
erich: I'll share my paper draft with this group
dbooth: How to you intend to encourage community around this, and find out about others who are interested in your work?
erich: The github repo, the HCLS list, etc.
… I wish there were a JS library for this.
… Would be nice if webassembly could do it.
erich: Hope to have a paper draft in the next 2 weeks
… And others are invited to edit also.
… Also, how will this DICOM RDF relate to FHIR RDF?
ADJOURNED
Succeeded: s/example/examples/
Succeeded: s/sion/sion)/
No scribenick or scribe found. Guessed: dbooth
Maybe present: dbooth, eric, erich, Gaurav, jim
All speakers: dbooth, eric, erich, Gaurav, jim
Active on IRC: dbooth