See also: IRC log
dbooth: Should do a review of where we are
http://wiki.hl7.org/index.php?title=File:FHIR_RDF_Sample_side_by_side_comparisons.pdf
Geoffry: Working with NIST. Looking into RDF use cases. Want to know more.
tony: Missing things: Slicing,
Invariants, Extension Definition, Extensions to Structural
Definition, Structural Definition Mapping.
... Section 1.3, looking at Structural Definition
Mapping.
... Section 6 was renamed to be more general, covering all
kinds of bundling.
... line 17 and continuing
lloyd, sec 1.3.2, we don't care about DataElement at all. We want Structure Definition -- not DataElement.
scribe: All the datatype definitions are in a single bundle.
<scribe> ACTION: Tony to add breadcrumb links to his document that show where examples came from [recorded in http://www.w3.org/2016/01/05-hcls-minutes.html#action01]
<trackbot> Error finding 'Tony'. You can review and register nicknames at <http://www.w3.org/2014/HCLS/track/users>.
tony: line 150, Reference.display
becomes a property in OWL -- not a class.
... The cardinalities in RDF will be on the enclosing
class
... line 185 fhir:Reference class and its cardinalities
lloyd: May want to talk about
cardinality sometime
... Cardinality of the root element sets the max occurs for
everywhere that element is ever used.
... Probably cannot deal with that in RDF world.
... But within a context we can constrain the cardinality
http://hl7.org/fhir/profiles-types.xml
eric: In XML, everything is in a context. Max cardinality on an element.
lloyd: Structure def in FHIR
defines a complex type. There's a row for the property, and a
row for the complext type itself also has a cardinality. It
gives an upper/lower bound on the cardinaliities.
... If you specify a min less than the one in the structure
def, then you are non-conformant.
... It places constraints on use. We also have other similar
constraints.
... "By the way, you are only allowed to use this particular
extension inside these elements"
... Not sure how we'll do this in RDF world.
... For cardinality assertion, we'd make an assertion that says
if you have an element of type X, then max cardinality on that
is Y.
... The only places you should see cardinality other than 0..*
is where we're defining extensions.
... For resources or datatypes we shouldn't be setting them to
anythign other than 0..*
... But for extensions there may be strict constraints. We
often set upper cardinalities; not often lower.
eric: We could pick an extension
like SystemID and say there must not be more than one.
... And a profile with more than one should cause the static
analysis to whine.
tony: line 169 is saying that Reference.display as a max cardinality of 1.
llloyd: Root element of
Reference.display would be Reference.
... It's the first element that appears in the snapshot.
Rob: I will bring my teleconference equipment
dbooth: Wed Q1 - 9-10:30am
http://wiki.hl7.org/index.php?title=File:FHIR_RDF_Sample_side_by_side_comparisons.pdf
tony: Need to know whether something is a property or a class.
lloyd: Every element will be a
class. Every element with a preceding element will be a
property.
... But it will get messy when we get into profiling.
... if we;'re just defining a resource or datatype, we dont'
step inside it.
... We don't say what is inside it. But when we're profiling,
we may well step inside those things -- defining constraints on
existing types and properties.
... So the way you handle structure kind will change depending
on ... when you turn a structure defin into RDF, you'll look at
its kind, and handle it differently if it is a datatype,
extension def or profile.
tony: Where is structure definition kind?
lloyd: Every one should have it declared.
tony: Lipid profile didn't have it. But I probably didn't update my XML. Need to download new changes.
lloyd: You'll want to look at the various kinds of structure defs.
tony: this will affect the other
sections considerably.
... But this is all in the schema transformation -- not
instance.
lloyd: structure def has two
pieces: snapshot and differential. We'll generally ignore the
differential.
... In profiling, we might only pay attention to
differentials.
tony: We'll probably map this to subclassing.
lloyd: Subclass will end up
getting inferred. Want to say profile B is an A where the
following holds.
... When we're processing a datatype or a resource, we'll look
at the snapshot. When we're processing an extension def or a
profile, we'll look at the differential.
... And both snapshot and differential contain a flat list of
elements, representing the hierarchy of properties and complex
types, and it's derived or inferred from the element
path.
... It's a serialization approach, but from a logical
perspective they are hierarchical.
http://hl7.org/fhir/profiling.html
lloyd: search for slicing on that
page
... There are two types. The most common type is slicing an
element that is allowed to repeat. E.g., an observation has
components, and one looks one way and another looks another
way.
... For that kind of slicing, you say 'here's the element, and
my discriminator will be ...'
... And the discriminator should the set of elements that have
distinct values.
... For extensions we're always slicing using URLs.
... For Observation component, we'd probably want to slice
based on the child.
... We don't have to declare a discriminator. Sometimes
difficult to say what are the boundaries.
... E.g., two different components: one will have observations
of this kind, and the other have this kind, but I cannot
enumerate them all.
eric: In theory there could be an
included middle, right? An element that matches both? non
disjoint
... When you have a discriminator they should be disjoint
... But when you don't, you cannot verify.
... Is slicing associated with the container or the shapes that
you are dredging out of that container?
lloyd: When you slice you declare
the discriminator, and then you use it.
... You could slice within a slice, but developers would hate
you.
... Each slice has a name, so they'll end up as named
classes.
... The fact that slicing is happening, when you declare it you
indicate your discriminator, and say whether they're ordered,
and whether the slicing is open or not.
... The RDF will have to reflect whether order is required,
etc. Then each slice will become a class.
tony: we have a slicing declaration in the XML. We'll need to translate it into something understandable in RDF.
lloyd: Second type of slicing
occurs when you have an element that has a choice of types. The
base set of types is a union.
... "If it's an integer, here are constraints that apply. If
it's a string, here are constraints..."
... in theory you can even do that kind of slicing on an
element with a single type, but we haven't implemented that
kind. It just makes life hard for implementers.
... When there's a union of types, you can have distinct
profiles on each of the types.
eric: The slicing stuff is a big source of conflict in the Shapes working group.
lloyd: It's pretty fundamental to what we're doing.
dbooth: No teleconference Tue next week (orlando meeting), but we'll have one Wed Jan 13 9-10:30am live from Orlando, courtesy of Rob Hausam.
<scribe> ACTION: Eric to set up separate webex for Wed Jan 13 9-10:30am [recorded in http://www.w3.org/2016/01/05-hcls-minutes.html#action02]
<trackbot> Created ACTION-41 - Set up separate webex for wed jan 13 9-10:30am [on Eric Prud'hommeaux - due 2016-01-12].
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) No ScribeNick specified. Guessing ScribeNick: dbooth Inferring Scribes: dbooth Present: David_Booth EricP Tony_Mallia Rob_Hausam Brian_Pech Geoffry_Roberts Lloyd_McKenzie Found Date: 05 Jan 2016 Guessing minutes URL: http://www.w3.org/2016/01/05-hcls-minutes.html People with action items: eric tony[End of scribe.perl diagnostic output]