See also: IRC log
http://wiki.hl7.org/index.php?title=File:FHIR_RDF_Sample_side_by_side_comparisons.pdf
tony: Start on section 2
... line 66
... line 70: GET [base]/[type]/[id]
{?_format=[mime-type]}
... line 76 root element will be the type.
lloyd: In JSON it will be a
property.
... Three kinds of identity going on here. Resource identity:
base + type + ID. That is independent of the format
exposed.
... There is also the identity of a particular version: base +
type + ID + version.
... Then if you care about the exact wire type then things fall
out the bottom, because we have the MIME type, whether
summaries are included, etc. There is no stable URI for a
specific wire response type.
dbooth: I think it's okay that we don't have a stable URI for the exact wire response type.
lloyd: The current version is
whatever the server gives you if you do not ask for a specific
version.
... How to specify the media type for RDF that is
FHIR?
<scribe> ACTION: DBooth to ask EricP about media types for RDF that is FHIR [recorded in http://www.w3.org/2015/12/15-hcls-minutes.html#action01]
<trackbot> Created ACTION-40 - Ask ericp about media types for rdf that is fhir [on David Booth - due 2015-12-22].
<ericP> text/fhir-on-fire
lloyd: For JSON it is application/json+fhir
<ericP> why application?
tony: section 2.2 is minimal file that would be transmitted
<ericP> note that turtle is text/turtle (i argued strenuously for that)
tony: line 108: <http://record/AllergyIntolerance/1>
rdf:type owl:Ontology ; owl:imports <http://hl7.org/fhir> .
... protege needs both the owl:Ontology and the owl:imports
statements.
... Protege will not be able to distinguish annotation from
object properties without the owl:import.
... And if you take out owl:Ontology then when some other file
tries to import this ontology it will not find it unless it is
identified as an owl:Ontology.
dbooth: I think that tony's concern is that if the FHIR document does not contain line 108 (owl:Ontology and owl:imports) then protege will not understand which properties are object properties and which are annotation properties.
ericp: We normally factor out the schema from the data.
tony: You cannot even load it into protege without line 108.
dbooth: I think you can, but you may need to explicitly provide the separate ontology
eric: I think that works
... And when they use OWL APIs they often load several separate
files.
<ericP> http://www.w3.org/2013/12/FDA-TA/tests/RenalTransplantation/
eric: The above URL has an example subjects.ttl that imports both ABox and TBox statement -- both subject-amy.ttl and bridg-classes , for example
dbooth: Actually, study1.ttl is an example of ABox data that does not have either owl:Imports or owl:Ontology statements.
<scribe> ACTION: Tony to try Eric's example of using abox data without owl:imports or owl:ontology statements inside it [recorded in http://www.w3.org/2015/12/15-hcls-minutes.html#action02]
<trackbot> Error finding 'Tony'. You can review and register nicknames at <http://www.w3.org/2014/HCLS/track/users>.
tony: line 110 has the type of
this resource instance.
... <http://record/AllergyIntolerance/1>
rdf:type <http://PatientSafetyProfile/AllergyIntolerance>
... Protege will infer its type if it is not declared, but for
profiles we will want it.
dbooth: I definitely think we
should include the top level element.
... as fhir:AllergyIntolerance
... And if it conforms to one or more profiles, then it should
also be declared as those types.
... One reason is that anybody can define a new kind of
profile, which we might know nothingn about, but we would still
want to know that the document is a fhir:AllergyIntolerance
document.
<inserted> ADJOURNED
http://wiki.hl7.org/index.php?title=File:FHIR_RDF_Sample_side_by_side_comparisons.pdf
<scribe> Chair: David Booth
tony: line 138 shows a type, but it can be inferred: <http://record/AllergyIntolerance/1> rdf:type <http://PatientSafetyProfile/AllergyIntolerance>,
owl: NamedIndividual ;
tony: but the type can be
declared inside the profile.
... David suggested that both the basic element type and any
profile type be declared.
lloyd: Agreed. You can never guarantee that the recipient will have a clue what the profile means.
tony: if you import the profile ontology also, then it pulls in more restrictions.
dbooth: The base type
fhir:AllergyIntolerance is needed to make the message be
self-describing.
... You could potentially infer it, from a
fhir:AllergyIntolerance.status predicate, for example, but is
cleaner to have it at the top.
tony: line 1930
lloyd: why call out Bundle
specifically?
... Should instead have in-line versus referenced
content.
... Parameters are how you give arguments to an operation, and
get results back. Kind of like Bundle, but every entry has a
name, and entries can be full blown resources.
... Full URL might be different for Bundle, because that's
outside of the resource.
... Different from Bundle than Contained.
... Full URL is in the HTTP header
tony: A Bundle can be segmented, and the first segment can point to the next segment.
lloyd: That's the most common use
for link. There can also be a self link.
... But we don't constrain that, so there can be links for
other purposes.
eric: You have a controlled vocabulary for the relations?
lloyd: We don't define them. We point to the W3C/IANA definitions.
tony: line 1953-1975
<entry>
... One resource defined for each entry -- root on 1956, with
full URL on 1955.
... Does the bundle have identity?
lloyd: Yes, bundle is a
resource.
... But it does not get narrative or contained.
tony: sec 6.2 is first cut at
looking at the bundle.
... line 1986 has the resource URI, and that resource starts on
line 1997.
dbooth: How will we know which RDF triples to serialize back to XML for the bundled resource?
<scribe> ACTION: Tony to add the XML instance data corresponding to section 6.2 RDF. [recorded in http://www.w3.org/2015/12/15-hcls-minutes.html#action03]
<trackbot> Error finding 'Tony'. You can review and register nicknames at <http://www.w3.org/2014/HCLS/track/users>.
lloyd: Need section on
references, two types.
... And how direct refererences work. Then everything else in
Bundle is the same as handling resource.
tony: line 2011, does a Bundle always have an ID?
lloyd: Every resource may or maynot have an ID, depending on circumstances. It won't for a new resource being created.
eric: When it is not anonymous, we still have an open issue ... when we have IDs in FHIR land, and node labels in RDF land, we do not seem to be able to take a FHIR resource ID and turn it into an RDF node URI.
dbooth: can we always take the base URI + type + ID to form a valid URI?
lloyd: There are some that only
live inside bundles -- urn:uuid:someGUID
... We do that when you want to pass something around inside
the doc, which is not used outside the bundle.
... it will be referenced inside the bundle.
... And it should be stable across messages, e.g., a patient
URI.
... Two formats for URI in FHIR: BaseURL/ResourceType/ID
... You can GET on that resulting URL and get the
resource.
... The other type of FHIR URI is no-resolvable. It's a URN,
and used exclusively inside of bundles, where you use a UUID
(or maybe an OID?). It is a unique ID for that instance, which
SHOULD remain consistent across other bundles, but you cannot
GET from it.
... Because it's a URN.
... Line 1955 must be a full URL if you give one.
<fullUrl> and <resource> go together -- you either
have both or none.
tony: Therefore 1986 will never be a blank node.
lloyd: Right.
tony: In this example, the profile changes the valueset
dbooth: restricts it, right?
tony: It could be changing it if
the base was only an example.
... Binding strength called "example".
lloyd: There are multiple
datatypes. If it is code, then it will never be "example", it
will always be "required".
... Possibilities: Example, Required, Preferred,
Extensible.
... If it's a Coding, you can only send one coded concept. In
that case if there is an Example, then a downstream profile can
require a different set of codes.
... But with CodeableConcept, you can sent multiple codings, so
you could sent a coding from multiple fixed codings.
... Examples are there as a hint. The only bindings that should
show up should be Fixed or Extensible.
tony: Recommend that when we do
that in RDF, then Recommended and Example should be annotation
properties.
... But Required is an object property.
lloyd: Extensible means that you either have to have one of the codes in the VS, or the concept of the code that you choose must be disjoint with the concepts represeentable by the codes in the VS.
rob: Not sure we have clear consensus on that.
lloyd: That becomes difficult
when dealing with extensible VSs.
... Grahame and I argue about it.
rob: Not sure how enforceable that will be.
lloyd: Is Navy a kind of Blue? Probably. But what about AquaMarine? THere are gray areas.
dbooth: That's a pretty sophisticated semantics.
lloyd: Have we discussed
invariants? Co-occurrence constraints, upper bounds on
cardinalities, constraints on substring values. Currently
expressed in xpath2, but evaluating a custom language.
... Should look at that language to determine how easy it would
be to express it in OWL
... Called FHIRPath
Grahame's mention of it on his blog: http://www.healthintersections.com.au/
lloyd: Also need to address slicing.
http://www.healthintersections.com.au/?p=2400
lloyd: Slicing includes what you are slicing on. Slices can be partial and can be ordered. More than just subclassing.
lloyd: May want to support more than just Turtle.
eric: We're safe saying "Thou shalt support Turtle", but very few are limited to RDF/XML, and they can always use a filter.
dbooth: Should also support a
syntax that supports RDF Datasets.
... Maybe. Or maybe not needed?
lloyd: You can use bundles for that.
dbooth: Sounds reasonable.
lloyd: Also need to discuss
extensions.
... There are a bunch of different kinds of structure
definitions.
... Also need to discuss mapping the notion of search criteria
and mechanisms to the RDF space. More implementation
guidance.
eric: Harold and I have been
representing the structure definitions in ShEx.
... There's still an interesting question, if we write things
in OWL and ShEx, should we generate both OWL and ShEx?
lloyd: I'd like to OWL that does as much as possible. Much broader audience for OWL than ShEx (at this point).
eric: hoping to change that :)
lloyd: Check with grahame again first.
dbooth: Will do.
ADJOURNED
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/Continuing on Side-by-Side Document/RDF Identities/ Succeeded: i/Zakim has left/ADJOURNED No ScribeNick specified. Guessing ScribeNick: dbooth Inferring Scribes: dbooth Present: David_Booth EricP Rob_Hausam Tony_Mallia Lloyd_McKenzie Darrell_Woelk_(webex_only?) Bill_Kleinebecker_(webex_only?) Found Date: 15 Dec 2015 Guessing minutes URL: http://www.w3.org/2015/12/15-hcls-minutes.html People with action items: dbooth tony[End of scribe.perl diagnostic output]