<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards Model-Driven Semantic Interfaces for Electronic Health Records on Multiple Platforms Using Notation3</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Community Health and Epidemiology, Faculty of Medicine, Dalhousie University</institution>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>NICHE Research Group, Faculty of Computer Science, Dalhousie University</institution>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Electronic Health Record (EHR) systems that aim to achieve data interoperability need to conform to established EHR standards, such as HL7 FHIR or openEHR. Manually developing EHR user interfaces (UIs) for the input of standards-compliant health data is not scalable and unsustainable, since this data no longer only originates from the health practitioner's desktop-given an increased focus on illness self-management, health data is being increasingly generated from patient-focused web or mobile applications. This has led to the collection of non-standards-compliant data from a variety of health apps, i.e., vitals, symptoms, treatments, and so on-this data is not interoperable and requires significant processing to load into an standards-compliant EHR system. A solution for the collection of interoperable health data is the (semi-)automatic generation of UIs, guided by standards-compliant descriptions of the required health data and their constraints. We present a framework to automatically generate UIs for the collection of interoperable health data, supporting different platforms (i.e., UI formats) and EHR standards. The generated UIs perform input validation and submit a self-contained, semantically annotated EHR record. Currently, we support HTML+RDFa (web) and Yail (mobile) as UI formats, and HL7 FHIR and openEHR as EHR standards. We utilize Notation3 (N3) to implement our UI generation pipeline, a Semantic Web language for decision-making in an open Web environment.</p>
      </abstract>
      <kwd-group>
        <kwd>Electronic Health Records</kwd>
        <kwd>Semantic User Interfaces</kwd>
        <kwd>Notation3</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        To increase self-sufficiency and curb rising healthcare costs, chronic patients are
increasingly being encouraged to self-manage their illness—this requires patient
educational and motivational resources [
        <xref ref-type="bibr" rid="ref1 ref2 ref3">1–3</xref>
        ] together with tools for self-reporting health data
(vitals, drugs, symptoms, and so on) [
        <xref ref-type="bibr" rid="ref4 ref5 ref6">4–6</xref>
        ]. To meet the reporting needs of a specific
chronic illness, a tailored patient diary is typically developed and deployed for the web,
desktop, or mobile platform. Cross-platform development tools, such as Apache
Cordova [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], allow re-using the same code base for multiple platforms. The authors have
developed custom patient diaries in the past for Atrial Fibrillation [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and
* Copyright © 2021 for this paper by its authors. Use permitted under Creative Commons
      </p>
      <p>
        License Attribution 4.0 International (CC BY 4.0).
developmental delay in the context of the Zika outbreak [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Currently, we aim to do
the same for Chronic Obstructive Pulmonary Disease (COPD)¾however, we want to
avoid the large development effort of yet another patient diary.
      </p>
      <p>
        In this vein, the goal of this paper is to study the automatic generation of UIs for
collecting interoperable, standards-compliant health data. Indeed, due to (a) different
reporting needs of chronic illnesses (e.g., AFib, COPD), (b) the need to support
multiple platforms (e.g., desktop, web, mobile), and (c) different EHR standards currently in
use, development of UIs for collecting interoperable health data has become an almost
combinatorial effort. The good news is that both HL7 FHIR [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and openEHR [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], two
popular open EHR standards, offer structured descriptions of relevant health data and
their constraints. Prior work has shown that it is feasible to automatically generate
health data interfaces based on openEHR artifacts [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. We further note that parts of
these EHR standards (GLD [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]; CQL [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]), and existing guideline languages
(PROForma [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], SDA* [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]), offer the ability to computerize clinical guidelines for
decision support, acting on interoperable health data to issue care recommendations
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. This paper thus fits into our ultimate goal of model-driven (EHR, guideline
models) and low-code (reduced development effort) clinical decision support (CDS).
      </p>
      <p>
        The objective of this particular work is to move towards a generic framework that
generates UIs for collecting standards-compliant, interoperable health data, based on
structured descriptions of health input data and their constraints. This generic
framework aims to support different EHR standards (e.g., HL7 FHIR, openEHR); data
collection platforms (desktop, mobile, web), and thus UI formats (e.g., HTML, XUL [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ],
Yail [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]); and data reporting needs, as per the chronic illnesses. Our generated UI
submits a self-contained, semantically annotated EHR record, and performs input
validation to the extent supported by the UI format. Both features reduce the need for
server-side processing, for instance, needed to convert raw input into a
standards-compliant EHR record, and issuing feedback on input data validity. We utilize Notation3
(N3) [
        <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
        ]—a Semantic Web language for decision-making in an open Web
environment—to implement our UI generation framework. By supporting if-then style
decision making, a scoped negation-as-failure, and quoting of graphs, N3 offers the
expressivity needed to implement our UI framework with minimal effort; moreover, we
posit that N3 is highly suitable for CDS in general. While we lack the space to detail
our N3 implementation, the code is available in an online repository [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related work</title>
      <p>
        Open Electronic Health Record standards. The HL7 FHIR and openEHR are both
open standards that are actively being utilized to represent EHR data. However, they
have a wholly different focus: FHIR targets standards-based data exchange between
systems, which may use any underlying EHR model; whereas openEHR focuses on
standardizing the underlying data model within EHR systems. In a nutshell, FHIR
defines exchangeable data in terms of resources, which are used individually or composed
to satisfy a use case, with a built-in extension mechanism to cope with uncommon cases
(80% rule: standardizing an element requires 80% of systems to require it). FHIR offers
a serialization in RDF (Turtle syntax) to support inference and shared semantics across
multiple standards; this facilitates our work since we utilize N3 in our implementation.
OpenEHR follows a two-level modeling approach by Beale [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], where a reference
model (RM) defines a complete set of low-level, core EHR terms; higher-level models,
called archetypes, represent information structures (such as an blood pressure
observation) in terms of the RM. Hence, a system implementing the RM does not need to be
re-coded for new observations, but merely requires plugging in new archetypes.
OpenEHR does not have an RDF syntax; several works have targeted the mapping of
openEHR to ontologies [
        <xref ref-type="bibr" rid="ref22 ref23">22, 23</xref>
        ]. In this paper, we applied a straightforward conversion
to N3 to illustrate our UI generation framework.
      </p>
      <p>
        Automated Health UI generation from EHR descriptions. Schuler et al. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
showed the feasibility of generating UIs based on openEHR archetypes that are similar
to hard-coded interfaces in medical applications. As the number of types in the
openEHR RM is relatively small, customized controls can easily be developed for each
of them [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The authors generated UIs in the Mozilla XML User Interface Language
(XUL) from openEHR templates, and hence did not target different platforms or EHR
standards. The Medblocks platform [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] aims to convert openEHR templates into Web
Components [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], with experimental support for FHIR resources. It is unclear whether
different platforms will be supported. A UITemplate Model Specification has been
discussed on the openEHR discourse forum [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] that expresses UI metadata and
constraints for UI generation for different platforms. However, this effort seems incomplete
at this time, and would only target openEHR.
      </p>
      <p>
        Notation3 Semantic Web Language. Notation3 (N3) is a Semantic Web language,
originally proposed by Berners-Lee et al. [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], with its formal semantics fleshed out by
Arndt et al. [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], and, recently, the topic of a W3C CG [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. As mentioned in the draft
community report [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], N3 is a superset of Turtle, adding (1) if-then style decision
making in terms of logic implications and variables, (2) a scoped negation-as-failure,
(3) quoting graphs of statements, and (4) set of powerful built-ins. We posit that these
features make N3 highly suitable for semantic EHR in general, and we aim to study the
utility of N3 for model-driven CDS: (1) if-then reasoning is prevalent in clinical
decision making, and (2) it is often useful to check, within an EHR scope, whether a patient
does not have certain properties (e.g., symptoms). Moreover, there is a well-known
impedance mismatch between RDF and EHR [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]: the latter is geared towards
recording who did what (e.g., “Dr. X diagnosed patient Y with flu”), but RDF focuses on
stating absolute facts (e.g., “patient Y has flu”). Quoted graphs in N3 can thus allow a
more accurate image of EHR, describing actors, times, and degrees of belief. We have
shown that N3 can support different quoted graph semantics [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]. While we lack the
space to detail our N3 implementation, the code is available online [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and future work
will describe it in more detail.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Artifacts for Health User Interface Generation</title>
      <p>Our work targets the automated generation of UIs for interoperable health data
collection, based on descriptions of health data and constraints using EHR standards. We
start by describing these EHR artifacts in more detail (Sections 3.1 and 3.2), as well as
artifacts needed to support a particular UI format (Section 3.3). Finally, we introduce
templates that tie these artifacts together to guide UI generation (Section 3.4).
3.1</p>
      <sec id="sec-3-1">
        <title>EHR Health Data Descriptions and Constraints</title>
        <p>
          EHR standards offer high-level descriptions of EHR data in terms of codes from
well-known terminologies (e.g., SNOMED-CT [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ]), labels in different languages, and
constraints such as the expected datatype (e.g., numeric, boolean), relevant units (e.g.,
BPM, percentage), and valid data ranges. Collectively, these high-level descriptions
can be utilized to describe the data reporting needs for a (chronic) illness, and thus
offer a starting point for automated UI generation [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>FHIR includes a plan definition resource with activity definitions, which themselves
may have observation definitions. Below, we describe constraints related to a particular
data reporting need, i.e., scoring cough severity on a scale of 1-10, using FHIR (Turtle
syntax):
:diary_observations a fhir:PlanDefinition ;
fhir:PlanDefinition.action ( [</p>
        <p>fhir:PlanDefinition.action.definitionUri :diagnose_cough_wheezing_stridor
] … ]
:diagnose_cough_wheezing_stridor a fhir:ActivityDefinition ;</p>
        <p>fhir:ActivityDefinition.title "Is your cough, wheezing or stridor less, the same or
worse than usual?" ;
fhir:ActivityDefinition.observationResultRequirement [
fhir:ObservationDefinition.code :code_cough ; …
fhir:ObservationDefinition.permittedDataType :dt_integer, :1_10_scale
] .
:1_10_scale a fhir:Range ;
fhir:Range.low [ fhir:Quantity.value 1 ] ;
fhir:Range.high [ fhir:Quantity.value 10 ] ;
rdfs:label "(1-10, 1 is least, 5 is same, 10 is worst)" .</p>
        <p>The :diary_observations plan definition has a multiple activity definitions, including
:diagnose_cough_wheezing_stridor, which describes requirements on associated observations:
i.e., values must be integers that lie within a 1-10 scale, and any observation will have
a specific code (:code_cough) associated with it. The :code_cough term represents a
codeable concept that encodes the SNOMED code for “cough (finding)” (not shown). FHIR
directly supports the Turtle syntax (Section 2), of which N3 is a superset, meaning that
our N3 implementation can directly operate on FHIR data.</p>
        <p>OpenEHR targets the holistic modeling of EHR data (Section 2) and descriptions of
EHR data thus tend to be far more elaborate. Firstly, an openEHR archetype details all
relevant data and constraints for a single observation (e.g., body temperature):
archetype (adl_version=1.4; uid=…)</p>
        <p>
          openEHR-EHR-OBSERVATION.body_temperature.v2
…
definition
1 We refer to our code repository [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] for full code samples.
OBSERVATION[at0000] matches { -- Body temperature
…
ELEMENT[at0004] occurrences matches {0..1} matches { -- Temperature
value matches {
        </p>
        <p>C_DV_QUANTITY &lt;
list = &lt; ["1"] = &lt;
units = &lt;"Cel"&gt; magnitude = &lt;|0.0..&lt;100.0|&gt; precision = &lt;|1|&gt; &gt;</p>
        <p>["2"] = &lt;
units = &lt;"[degF]"&gt; magnitude = &lt;|30.0..&lt;200.0|&gt; precision = &lt;|1|&gt;
&gt; &gt; &gt; } … }</p>
        <p>The archetype stipulates that observations must either use the Celsius scale, where
values must lie between 0 – 100 with 1 decimal place; or the Fahrenheit scale with its own
constraints. Codes such as “at0004” are linked to terminology codes and translations
into different languages in the ontology component of the archetype (not shown).</p>
        <p>Secondly, an openEHR template composes archetypes for a particular purpose (e.g.,
vital signs report). Since an archetype covers all possibly relevant data (e.g., the BP
archetype lists mean arterial pressure, pulse pressure, tilt, and so on), a template often
applies constraints on composed archetypes to rule out unneeded data input:
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;template xmlns="openEHR/v1/Template"&gt;
…
&lt;definition archetype_id="openEHR-EHR-COMPOSITION.encounter.v1" …&gt;
&lt;Content archetype_id="openEHR-EHR-OBSERVATION.body_temperature.v2" …&gt;
&lt;Rule path="/data[at0002]/events[at0003]/data[at0001]/items[at0004]"&gt;
&lt;constraint xsi:type="tem:quantityConstraint"&gt;</p>
        <p>&lt;excludedUnits&gt;[degF]&lt;/excludedUnits&gt; …
&lt;/constraint&gt;
&lt;/Rule&gt;
&lt;Rule max="0" path="/data[at0002]/events[at0003]/data[at0001]/items[at0063]"/&gt; …
… &lt;/definition&gt;&lt;/template&gt;</p>
        <p>The template includes the body temperature archetype (content element), applying a
rule on the temperature element that excludes Fahrenheit as a unit (part of constraint),
and another rule that hides (max="0") body exposure as data input.</p>
        <p>The openEHR template can be “flattened” into a more usable “operational
template”—a process that injects all data from referenced archetypes and applies any
constraints. We utilized the openEHR java-libs3 library to perform this flattening.
Moreover, since openEHR does not directly support an RDF syntax (Section 2), we
implemented a visitor object to convert the flattened template into N3.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>EHR Data Structures to Report Health Observations</title>
        <p>Aside from data reporting needs, an EHR standard also dictates a particular
observation structure, i.e., how to concretely encode patient data as observations. In general,
this varies greatly between EHR standards: FHIR reports input data using a distinct set
2 openEHR code samples were obtained from https://ckm.openehr.org/ckm/.
3 https://github.com/openEHR/java-libs
of predicates and nesting structures, whereas openEHR utilizes a similar structure as
found under the definition element (Fig. 2). To support multiple EHR standards, our UI
generation framework allows defining an observation structure per EHR standard and
observation type. In particular, an observation structure describes the predicates and
structures used to report different types of observations (e.g., numeric scale, quantified
value), and is annotated to guide the UI generation process.</p>
        <p>
          Below, we show part of the observation structure for FHIR (RDF-star syntax [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ]):
:x fhir:DiagnosticReport.result :ui-int_input , :ui-quant_input , … .
:ui-int_input fhir:Observation.valueInteger :v ; {| tpl:inputType xsd:integer |}
fhir:Observation.code :c . {| tpl:hidden true |}
:ui-quant_input fhir:Observation.code :c ; {| tpl:hidden true |}
fhir:Observation.valueQuantity [
fhir:Observation.Quantity.system :s ; {| tpl:hidden true |}
fhir:Observation.Quantity.code :c ; {| tpl:hidden true |}
fhir:Observation.Quantity.value :v . {| tpl:inputType xsd:numeric |} ] .
        </p>
        <p>
          In FHIR, an observation is indicated using the fhir:DiagnosticReport.result predicate. A
concrete integer-type observation (:ui-int_input) is reported using the
fhir:Observation.valueInteger predicate; we annotate this statement with its expected integer
datatype (tpl:inputType xsd:integer). The associated terminology code is reported using
fhir:Observation.code; the annotation indicates that the code will be hidden in a UI
(tpl:hidden true). A quantified observation (:ui-quant_input) reports on quantified
values, and uses the fhir:Observation.valueQuantity predicate to indicate a nested value
composed of the coding system (tpl:hidden), a unit code (tpl:hidden), and the concrete input
value (tpl:inputType xsd:numeric); similar annotations are provided as above. Hence, an
observation structure contains all data needed for a self-contained EHR record;
reporting concrete input values as well as relevant terminology and unit codes. In Section 4.1,
we show how the aforementioned annotations are utilized to guide automated UI
generation. We utilize the RDF-star annotation syntax [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ] to conveniently annotate this
code to guide the UI generation process; we use Apache Jena [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ] to convert RDF-star
syntax into N3 code.
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Parametrized Semantic User Interface Code</title>
        <p>
          To support a particular UI format (e.g., HTML+RDFa), our UI generation framework
is loaded with snippets of parametrized UI codes per observation type (e.g., integer,
string, boolean). The UI code is parametrized in that it includes placeholders for
attributes both from the data input needs (Section 3.1) and observation structure (Section
3.2), which will be filled in during UI generation. After generation, the instantiated UI
code will be used to submit a semantically annotated, self-contained health data record.
As noted by Schuler et al. [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], the overall number of datatypes in openEHR is small,
as is the case for FHIR datatypes, meaning that these UI code snippets can be easily
4 Concrete objects (e.g., _:v, _:c) are not meaningful and not part of the generated UI.
developed. Below, we show parametrized HTML+RDFa and Yail code for numeric
observation input (placeholders are wrapped in “_”):
_prefix-label_&lt;input type='number' id='_id_' min='_min_' max='_max_' step='_step_'
property='_property_' /&gt;_suffix-label_
} ] }
        </p>
        <p>The observation structure (Section 3.2) will determine the utilized _property_ (e.g.,
fhir:valueInteger); whereas data reporting needs (Section 3.1) will dictate the label
(_label_), and, for HTML+RDFa, the id value (_id_), value ranges (_min_, _max_) and required
precision (_step_); for Yail, the expected datatype (_datatype_).
3.4</p>
      </sec>
      <sec id="sec-3-4">
        <title>UI Templates to Guide User Interface Generation</title>
        <p>A UiTemplate indicates what observation structure (Section 3.2) to utilize for a
concrete data reporting need (Section 3.1), and guides the instantiation of the UI code
(Section 3.3). Hence, a UiTemplate is specific to both an EHR standard and UI format.
Below, we show an example UiTemplate for FHIR and HTML+RDFa:
:tpl-int_range_field a tpl:UiTemplate ;
tpl:select :select-int_range_field
tpl:generate [
tpl:ui :ui-int_input ;
tpl:placeholders ('_code_' '_prefix_' '_id_' '_min_' '_max_' '_step_' '_suffix_') ;
tpl:values ( ?code ?label ?id ?min ?max ?step ?range ) ] .</p>
        <p>The selector (tpl:select) will select certain data reporting needs, in this case, pertaining
to range-restricted integer inputs such as :diagnose_cough_wheezing_stridor (Fig. 1):</p>
        <p>The generator (tpl:generate) will select the observation structure item to be utilized, in
this case, element :ui_int_input (Fig. 4); and instantiate the associated parametrized UI
code, replacing the listed placeholders with variable values from the selector.</p>
        <p>In the following section, we detail the process that applies these UiTemplates to
generate an output UI.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Health User Interface Generation Pipeline</title>
      <p>This section describes the UI generation pipeline based on the input artifacts described
in the prior section. Fig. 9 gives an overview of this pipeline:</p>
      <p>
        Per new EHR standard and UI format, step 1 will prepare tailored UI code from the
parametrized UI snippets (e.g., Fig. 5) to report on EHR observation structures (e.g.,
Fig. 4)—resulting in prepared UI code. This step is only needed when supporting a
new EHR standard or UI format (or, when using new UI elements to represent a
datatype, such as a slider). For a given set of data reporting needs (e.g., Fig. 1), as
required by a particular illness, step 2 will fully instantiate the prepared UI code,
guided by a set of UiTemplates (e.g., Fig. 7)—resulting in instantiated UI code per
concrete reporting need. Finally, step 3 will collect these instantiated UI codes into a
single UI structure. Below, we describe each step in more detail. Our code repository
includes the intermediate output for each step in the pipeline [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
Each individual observation type (e.g., integer, string, boolean) is encoded using a
custom UI code snippet (Section 3.3). After this step, each item in an observation structure
(Section 3.2) will be represented using a group of suitable UI codes.
      </p>
      <p>
        For instance, the :ui-int_input observation item (Fig. 4) includes multiple predicates
that are annotated to guide UI generation (e.g., tpl:hidden, tpl:inputType). Based on these
annotations, together with parametrized UI code snippets, N3 rules [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] will generate
the following HTML+RDFa code:
&lt;div property='fhir:DiagnosticReport.result'&gt;
&lt;span style='display: none' property='fhir:Observation.code'
      </p>
      <p>resource='_code_'&gt;&lt;/span&gt;
&lt;input type='number' id='_id_' min='_min_' max='_max_' step='_step_'
property='fhir:Observation.valueInteger' /&gt;</p>
      <p>A hidden &lt;span&gt; element is utilized to represent the tpl:hidden terminology code; an
&lt;input&gt; element represents the input value with tpl:inputType xsd:integer; and a container
&lt;div&gt; element represents the entire observation. Filled-in placeholders, using the
predicates from the observation structure, are underlined (e.g., fhir:Observation.valueInteger).</p>
      <p>This step only needs to be performed once, per pair of EHR observation structure
and UI format. As can be seen in Fig. 10, several placeholders are remaining (e.g., _id_,
_min_, _max_), which will be instantiated in the following step.
A particular data reporting need (e.g., cough severity; Section 3.1) will have to be
reported using a certain observation structure (Section 3.2). This step will fully instantiate
the UI codes prepared in the prior step for each data reporting need. After this step,
each concrete data reporting need (e.g., :diagnose_cough_wheezing_stridor) will be
represented with a fully instantiated UI code.</p>
      <p>The UiTemplate :tpl-int_range_field (Fig. 7) selects all data reporting needs
associated with ranged-integer inputs (:select-int_range_field), such as :diagnose_cough_
wheezing_stridor (Fig. 1). For each selected reporting need, the template then copies and
instantiates the UI code prepared for :ui-int_input (see prior step), filling in the listed
placeholders using variable values returned by the selector. E.g., for
:diagnose_cough_wheezing_stridor, the following output HTML+RDFa code is generated
(placeholders filled in this step are underlined):
&lt;div property='fhir:DiagnosticReport.result'&gt;
&lt;span style='display: none' property='fhir:Observation.code'</p>
      <p>resource='copd:code_cough'&gt;&lt;/span&gt;
&lt;input type='number' id='code_cough' min='1' max='10' step='1'</p>
      <p>property='fhir:Observation.valueInteger' /&gt;
&lt;/div&gt;
Finally, instantiated UI codes will be collected into a single UI structure, such as an
HTML &lt;table&gt; or Yail screen (JSON object). This will represent a concrete report of
observations: in openEHR, this is called a composition, in FHIR, a diagnostic report.
Per UI format, an enclosing container structure is specified, and an N3 rule will collect
the instantiated UI codes into this container.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>
        In this paper, we presented a UI generation framework based on (a) semantic
descriptions of required health data and their constraints, (b) semantically annotated structures
for reporting observations, (c) a set of parametrized UI codes in a target UI format, and
(d) a set of UiTemplates to guide UI generation. We gave a short overview of two open
Electronic Health Record (EHR) standards, namely HL7 FHIR and openEHR, and
showed how they can be utilized to encode (a) and (b). Further, we showed how
semantic UI formats, i.e., supporting the semantic annotation of input data (e.g.,
HTML+RDFa, Yail), can be instantiated into a UI that submits a self-contained EHR
record and performs input validation (to the extent allowed by the UI format). The N3
code implementing our UI generation framework is online [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>
        Future work involves trying out different input artefacts (e.g., openEHR archetypes
and templates) and testing the robustness of our framework. Further, we aim to
customize the presentation of certain datatypes, such as limited-range integers, with more
suitable UI elements (e.g., sliders). We will investigate the generation of other UI formats
(e.g., Android XML, XUL). To ensure a good user experience, a generated UI will have
to be manually customized, since generated UIs rather straightforwardly represent the
data reporting needs in a single container. E.g., when faced with large numbers of
inputs, it may be needed to spread input fields over multiple screens. Also, our UI
generation implementation expects a strictly hierarchical UI structuring (although this is
rather standard for UIs). Regarding openEHR, N3 represents yet another openEHR
serialization on top of AOM, XML and JSON. Moreover, the N3 serialization is rather
adhoc and not a proper semantic representation: e.g., ADL2OWL [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] converts
cardinality and range constraints into OWL restrictions. Another approach could be to
representing ADL constraints using SHACL [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ].
      </p>
      <p>Acknowledgements. Funding for this research is provided by University of New
Brunswick Research Fund Competition 2020 (RF Explore).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Packer</surname>
            ,
            <given-names>T.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boldy</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghahari</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Melling</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsons</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Osborne</surname>
            ,
            <given-names>R.H.</given-names>
          </string-name>
          :
          <article-title>Selfmanagement programs conducted within a practice setting: who participates, who benefits and what can be learned? Patient Educ</article-title>
          .
          <source>Couns</source>
          .
          <volume>87</volume>
          ,
          <fpage>93</fpage>
          -
          <lpage>100</lpage>
          (
          <year>2012</year>
          ). https://doi.org/10.1016/j.pec.
          <year>2011</year>
          .
          <volume>09</volume>
          .007.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Van</given-names>
            <surname>Woensel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Baig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.H.</given-names>
            ,
            <surname>Abidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.S.R.</given-names>
            ,
            <surname>Abidi</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.R.:</surname>
          </string-name>
          <article-title>A Semantic Web Framework for Behavioral User Modeling and Action Planning for Personalized Behavior Modification</article-title>
          .
          <source>In: 10th International Conference on Semantic Web Applications and Tools for Life Sciences. CEUR</source>
          , Rome, Italy (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Rose-Davis</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Woensel</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stringer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abidi</surname>
            ,
            <given-names>S.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abidi</surname>
            ,
            <given-names>S.S.R.</given-names>
          </string-name>
          :
          <article-title>Using Artificial Intelligence-Based Argument Theory To Generate Automated Patient Education Dialogues For Families Of Children With Juvenile Idiopathic Arthritis</article-title>
          .
          <source>In: 17th World Congress on Medical and Health Informatics (MEDINFO'19)</source>
          , Aug 26-
          <fpage>30</fpage>
          . , Lyon, France (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Johnston</surname>
            ,
            <given-names>N.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lambert</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hussack</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Al</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Detection of COPD Exacerbations and compliance with patient-reported daily symptom diaries using a smart phone-based information system [corrected]</article-title>
          .
          <source>Chest</source>
          .
          <volume>144</volume>
          ,
          <fpage>507</fpage>
          -
          <lpage>514</lpage>
          (
          <year>2013</year>
          ). https://doi.org/10.1378/chest.12-
          <fpage>2308</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Van</given-names>
            <surname>Woensel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Roy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.C.</given-names>
            ,
            <surname>Abidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.R.</given-names>
            ,
            <surname>Abidi</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.S.R.:</surname>
          </string-name>
          <article-title>A Mobile and Intelligent Patient Diary for Chronic Disease Self-Management. In: Studies in Health Technology and Informatics (</article-title>
          <year>2015</year>
          ). https://doi.org/10.3233/978-1-
          <fpage>61499</fpage>
          -564-7-118.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>da Luz</surname>
            <given-names>Diaz</given-names>
          </string-name>
          , R., de Oliveira Lima,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Alves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.G.B.</given-names>
            ,
            <surname>Van Woensel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Naqvi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Take</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Abidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.S.R.: A Digital</given-names>
            <surname>Health</surname>
          </string-name>
          <article-title>Platform to Deliver Tailored Early Stimulation Programs for Children With Developmental Delay</article-title>
          .
          <source>In: 17th World Congress on Medical and Health Informatics (MEDINFO'19)</source>
          , Aug 26-
          <fpage>30</fpage>
          . , Lyon, France (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Apache</given-names>
            <surname>Foundation</surname>
          </string-name>
          : Cordova, https://cordova.apache.org/,
          <source>last accessed</source>
          <year>2021</year>
          /07/15.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>HL7</given-names>
            <surname>International: HL7 Fast Health Interop Resources</surname>
          </string-name>
          (FHIR), https://www.hl7.org/index.cfm.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>9. openEHR Foundation: openEHR, https://specifications.openehr.org/.</mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Schuler</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garde</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heard</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beale</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Towards automatically generating graphical user interfaces from openEHR archetypes</article-title>
          .
          <source>Stud. Health Technol. Inform</source>
          .
          <volume>124</volume>
          ,
          <fpage>221</fpage>
          -
          <lpage>226</lpage>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. openEHR Foundation:
          <article-title>Guideline Definition Language (GDL)</article-title>
          , https://specifications.openehr.org/releases/CDS/latest/GDL.html.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. HL7 International:
          <article-title>Clinical Quality Language (CQL)</article-title>
          , https://cql.hl7.org/.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Sutton</surname>
            ,
            <given-names>D.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fox</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>The syntax and semantics of the PROforma guideline modeling language</article-title>
          .
          <source>J. Am. Med</source>
          . Inform. Assoc.
          <volume>10</volume>
          ,
          <fpage>433</fpage>
          -
          <lpage>43</lpage>
          (
          <year>2003</year>
          ). https://doi.org/10.1197/jamia.M1264.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Riano</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>The SDA Model: A Set Theory Approach</article-title>
          .
          <source>In: Twentieth IEEE International Symposium on Computer-Based Medical Systems (CBMS'07)</source>
          . pp.
          <fpage>563</fpage>
          -
          <lpage>568</lpage>
          . IEEE (
          <year>2007</year>
          ). https://doi.org/10.1109/CBMS.
          <year>2007</year>
          .
          <volume>110</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Brush</surname>
            ,
            <given-names>J.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Radford</surname>
            ,
            <given-names>M.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krumholz</surname>
            ,
            <given-names>H.M.</given-names>
          </string-name>
          :
          <article-title>Integrating Clinical Practice Guidelines Into the Routine of Everyday Practice</article-title>
          .
          <source>Crit. Pathways Cardiol. A J. Evidence-Based Med</source>
          .
          <volume>4</volume>
          ,
          <fpage>161</fpage>
          -
          <lpage>167</lpage>
          (
          <year>2005</year>
          ). https://doi.org/10.1097/01.hpc.
          <volume>0000173342</volume>
          .41305.
          <year>b0</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Wusteman</surname>
          </string-name>
          , J.:
          <string-name>
            <surname>About</surname>
            <given-names>XML</given-names>
          </string-name>
          :
          <article-title>from Ghostbusters to libraries - the power of XUL</article-title>
          .
          <source>Libr. Hi Tech</source>
          .
          <volume>23</volume>
          ,
          <fpage>118</fpage>
          -
          <lpage>129</lpage>
          (
          <year>2005</year>
          ). https://doi.org/10.1108/07378830510586757.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Patton</surname>
            ,
            <given-names>E.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tissenbaum</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harunani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          : MIT App Inventor: Objectives, Design, and
          <article-title>Development</article-title>
          . In: Kong, S.-C. and
          <string-name>
            <surname>Abelson</surname>
          </string-name>
          , H. (eds.) Computational Thinking Education. pp.
          <fpage>31</fpage>
          -
          <lpage>49</lpage>
          . Springer Singapore, Singapore (
          <year>2019</year>
          ). https://doi.org/10.1007/
          <fpage>978</fpage>
          -981-13-6528-
          <issue>7</issue>
          _
          <fpage>3</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Connolly</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>Notation3 (N3): A readable RDF syntax</article-title>
          , https://www.w3.org/TeamSubmission/n3/, last accessed
          <year>2021</year>
          /07/15.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Arndt</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Woensel</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tomaszuk</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          : Notation3: Draft Community Group Report, https://w3c.github.io/N3/spec/,
          <source>last accessed</source>
          <year>2021</year>
          /07/15.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Van Woensel</surname>
            ,
            <given-names>W.:</given-names>
          </string-name>
          <article-title>UI generation from EHR data descriptions</article-title>
          , https://github.com/william-vw/ui_gen.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Beale</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Archetypes: Constraint-based Domain Models for Future-proof Information Systems</article-title>
          .
          <source>In: Eleventh OOPSLA Workshop on Behavioral Semantics. Serving the Customer</source>
          (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Fernández-Breis</surname>
            ,
            <given-names>J.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maldonado</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marcos</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Legaz-García</surname>
            ,
            <given-names>M. del C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Torres-Sospedra</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Esteban-Gil</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martínez-Salvador</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Robles</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Leveraging electronic healthcare record standards and semantic web technologies for the identification of patient cohorts</article-title>
          .
          <source>J. Am. Med</source>
          . Inform. Assoc.
          <volume>20</volume>
          ,
          <fpage>e288</fpage>
          -
          <lpage>96</lpage>
          (
          <year>2013</year>
          ). https://doi.org/10.1136/amiajnl-2013-
          <year>001923</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Lezcano</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>On the Integration of Clinical Archetypes with Ontologies and Rules</article-title>
          . Presented at the (
          <year>2013</year>
          ). https://doi.org/10.4018/978-1-
          <fpage>4666</fpage>
          -3000-0.
          <year>ch005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Ramesh</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Medblocks</surname>
            <given-names>UI</given-names>
          </string-name>
          , https://medblocksui.vercel.app/?path=/story/introduction--page,
          <source>last accessed</source>
          <year>2021</year>
          /07/15.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25. Mozilla: Web Components, https://developer.mozilla.org/enUS/docs/Web/Web_Components, last accessed
          <year>2021</year>
          /07/15.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Pazos</surname>
          </string-name>
          , P.: openEHR Discussion Forums: post, https://discourse.openehr.org/t/willan
          <article-title>-openehr-implementation-provide-ui-to-create-and-render-records-based-on-atemplate/799/3</article-title>
          , last accessed
          <year>2021</year>
          /07/15.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          : Notation 3 Logic, https://www.w3.org/DesignIssues/Notation3, last accessed
          <year>2021</year>
          /07/15.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Arndt</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schrijvers</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Roo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verborgh</surname>
          </string-name>
          , R.:
          <article-title>Implicit quantification made explicit: How to interpret blank nodes and universal variables in Notation3 Logic</article-title>
          .
          <source>J. Web Semant</source>
          .
          <volume>58</volume>
          ,
          <issue>100501</issue>
          (
          <year>2019</year>
          ). https://doi.org/10.1016/J.WEBSEM.
          <year>2019</year>
          .
          <volume>04</volume>
          .001.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>29. Word Wide Web Consortium: W3C Notation 3 Community Group, https://www.w3.org/community/n3-dev/.</mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30. HL7 International:
          <article-title>Resource Description Framework (RDF) Representation</article-title>
          , https://www.hl7.org/fhir/rdf.html.
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Arndt</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Woensel</surname>
            ,
            <given-names>W. Van:</given-names>
          </string-name>
          <article-title>Towards Supporting Multiple Semantics of Named Graphs Using N3 Rules</article-title>
          .
          <source>In: Proceedings of the 13th RuleML+RR 2019 Doctoral Consortium and Rule Challenge, September 16-19</source>
          ,
          <fpage>2019</fpage>
          - Bolzano, Italy,
          <source>September 16-24</source>
          ,
          <year>2019</year>
          . CEUR-WS.org (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>SNOMED</surname>
            <given-names>CT</given-names>
          </string-name>
          , http://www.snomed.org/.
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Hartig</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Champin</surname>
          </string-name>
          , P.-A.,
          <string-name>
            <surname>Kellogg</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seaborne</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>RDF-star</article-title>
          and SPARQLstar: Draft Community Group Report, https://w3c.github.io/rdf-star/cgspec/editors_draft.html,
          <source>last accessed</source>
          <year>2021</year>
          /07/16.
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>34. Apache: Apache Jena, https://jena.apache.org/.</mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Knublauch</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kontokostas</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Shapes Constraint Language (SHACL): W3C Recommendation</article-title>
          , https://www.w3.org/TR/shacl/,
          <source>last accessed</source>
          <year>2021</year>
          /07/16.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>