<!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>SWISH for prototyping Clinical Guideline Interactions Theory</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Veruska Zamborlini</string-name>
          <email>v.carrettazamborlini@vu.nl</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jan Wielemaker</string-name>
          <email>j.wielemaker@vu.nl</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marcos da Silveira</string-name>
          <email>marcos.dasilveira@list.lu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cedric Pruski</string-name>
          <email>cedric.pruski@list.lu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Annette ten Teije</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Frank van Harmelen</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Luxembourg Institute of Science and Technology - LIST</institution>
          ,
          <addr-line>Luxembourg [v.carrettazamborlini</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Vrije Universiteit Amsterdam</institution>
          ,
          <country country="NL">the Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>SWISH provides a general purpose collaborative infrastructure for applying Prolog reasoning over an RDF dataset together with features that facilitates prototyping Semantic Web applications. In this paper we report on the use of SWISH for efficiently developing a prototype for detection of clinical guideline interactions. These guidelines are a set of medical recommendations meant for supporting doctors on tackling a single disease. However, often guidelines need to be combined for treating patients that suffer from multiple diseases, and then a number of interactions can occur. The generic interaction rules are implemented in SWI-Prolog and the guideline RDF-data is enriched with clinical Linked Open Data (LOD) (e.g. Drugbank, Sider). We show the implementation of the proposed theory about interaction detection in a case-study on combining three guidelines. The experiment is interactively described using a SWISH notebook and the results are graphical visualised empowered by graphviz.</p>
      </abstract>
      <kwd-group>
        <kwd>SWISH</kwd>
        <kwd>clinical guideline interactions</kwd>
        <kwd>multimorbidity</kwd>
        <kwd>RDF</kwd>
        <kwd>Prolog</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Building semantic web applications classically follows a three-tier model: storage,
application logic (reasoning) and presentation. Many tools and languages have been
proposed for supporting these tiers. For the storage tier, LOD (Linked Open Data)
triplestores typically provide their data through a SPARQL endpoint. The application
logic (reasoning) tier can be implemented in many languages, where typical choices
are Java or Python. However, implementing a rule based reasoning layer in these
languages that bind to SPARQL is not trivial. Finally, the presentation tier can be
implemented using the web-page generation facilities of languages such as Java, Python,
Ruby or NodeJS, dedicated web programming systems such as PHP or ASP or in the
client using JavaScript. The language boundaries between the tiers are relatively hard
to maintain, which makes such as software stack mostly viable for large applications
that are designed in a top-down fashion and implemented by a team.</p>
      <p>
        Life Science researchers are currently benefiting and contributing to the Semantic
Web [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. For instance, LinkedLifeData (LLD) is an integrated linked data repository
for health care and life sciences promoted by the W3C Semantic Web for Health Care
and Life Sciences Interest Group3. In this context, semantic-web-based prototyping
can favour reducing the overhead for connecting the three tiers, while speeding up and
enhancing the interaction with domain experts. Moreover, to ensure that the results are
verifiable, reproducible and reusable [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], the code and data should be accessible in a
user friendly way, so that scientists, reviewers and domain experts can freely explore it.
      </p>
      <p>
        To this end, SWISH, and in particular the SWISH package for ClioPatria [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], offers
an infrastructure that supports all three tiers in an interactive, web-based and
cooperative environment for prototyping linked data applications. ClioPatria is a SWI-Prolog
based semantic web application framework. The RDF storage tier is implemented as a
low-level C module that is tightly integrated into Prolog, a perfect language for the
application logic tier due to its native support for rule based reasoning. SWISH enhances
Cliopatria’s support for prototyping4 by providing a web-based development
environment and, for the presentation tier, an infrastructure for user interfaces that act as a
shared platform, similar to a wiki. It supports both programmers and domain experts
with little or no programming experience and facilitates cooperation between them.
      </p>
      <p>
        In the first implementation of our theory [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] we followed the classical path
aforementioned: (i) we used Stardog for the storage tier, (ii) for the application logic tier
a combination of OWL2 inferencing, Stardog SPARQL rules (a SWRL dialect) and
custom SPARQL update queries to perform reasoning managed by a Python
serverapplication and (iii) we used html+javaScript for the presentation tier. Besides the
inherent complexity of assembling those tiers together, the limitations of OWL2 for
detecting the interactions, forced the use of multiple knowledge representation languages.
Altogether, the resulting system was expensive to build and maintain. Therefore, in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
we chose for SWI-Prolog via SWISH, which gave us an integrated environment for
prototyping our theory using a single language for expressing our inference rules,
benefiting understandability and maintainability. And finally, in the present work we also
benefit from SWISH for the presentation tier by automatically building a graphical
representation for the results.
      </p>
      <p>
        This paper reports on the use of SWISH for prototyping a theory about representing
knowledge underlying clinical guidelines with rules for detecting interactions among
recommendations [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] (TMR - Transition-based Medical Recommendation). It allowed
for efficiently developing a prototype that demonstrate the applicability of the theory
using both some clinical guideline data manually modelled in RDF and existing clinical
knowledge available as LOD such as Drugbank and Sider5. This online environment
allows for scientists to check, reuse, and modify the code and data. The use of notebooks
and graph visualizations favors the communication with scientists and domain-experts.
      </p>
      <p>The remainder of this paper describes background knowledge about SWISH
features (Sect. 2.1) and TMR theory (Sect. 2.2). Then Sect. 3 describes the use of SWISH
for prototyping the TMR theory and Sect. 4 provides the final considerations.</p>
    </sec>
    <sec id="sec-2">
      <title>3 See http://linkedlifedata.com and https://www.w3.org/wiki/HCLSIG. 4 In [3] we argue that ClioPatria is a suitable infrastructure for prototyping linked data apps. 5 http://www.drugbank.ca and http://sideeffects.embl.de</title>
      <sec id="sec-2-1">
        <title>Background</title>
        <sec id="sec-2-1-1">
          <title>SWISH</title>
          <p>The architecture of SWISH. SWISH started life as a Prolog oriented alternative to
jsfiddle,6 allowing people to write, save and share Prolog programs on the web. It was
further developed for prototyping data fusion tasks on relational databases in a project
called DataLab. For documentation and tutorial purposes we added notebooks, inspired
by iPython notebook, now called Jupyter7.</p>
          <p>
            SWISH is based on Pengines [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ], a SWI-Prolog infrastructure to create optionally
sandboxed Prolog engines on a server and to interact with them similarly to the Prolog
top level. A pengine is represented by a Prolog thread [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ] and a temporal module for
isolating the program. Prolog threads can be created quickly while they can access a
shared Prolog and RDF database. SWISH adds a web interface and a versioned store
for programs and notebooks to Pengines. Most of the web interface runs in the browser
and is written in JavaScript. The server side is written in Prolog and provides a
semantic highlighting service, documentation services, (optionally) authentication and a the
program store. Details about the architecture can be found in [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ].
          </p>
          <p>Using SWISH to prototype LOD applications SWISH is essentially a wiki providing
collaborative editing of programs as well as user interfaces ranging from plain Prolog
to full HTML5 web applications. At its core, Prolog allows a programmer to define
abstraction over the atomic RDF relations that model the data at a level that is more
suitable for defining the application logic. For example, if there are several datasets,
e.g., d1 and d2, which describe symptoms, we can define a predicate that unifies this
data, as showed in the code below. In the remainder of the application logic one could
simply refer to symptom(S) which makes the application logic clearer and more compact
while it greatly simplifies adding new datasets.
symptom(S) :- rdf(S, rdf:type, d1:’Symptom’).
symptom(S) :- rdf(I, d2:hasSymptom, S),</p>
          <p>rdf(I, rdf:type, d2:’Disease’).</p>
          <p>The basic abstraction layer can be included into one or multiple programs that define
the application logic. The abstraction layer as well as the application logic can be tested
interactively and incrementally using one of the several interface methods provided by
SWISH and described below.</p>
          <p>– While a programmer is exploring the data to find suitable abstractions and
prototype rules, the web-based version of the Prolog interactive top level is used to run
queries on these predicates. Note that, in contrast with e.g., SPARQL, queries can
be developed and tested in a modular fashion.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>6 https://jsfiddle.net</title>
      <p>7 http://jupyter.org
– Results can be presented in a domain specific format using rendering plugins.
Standard plugins may be used to create tables, charts and graphs (example in Fig. 3).
After being loaded, these plugins are triggered by specifically shaped Prolog terms.
For example, the graphviz8 plugin creates a simple graph with two nodes from a
term digraph([a-&gt;b]). Domain specific plugins can be added. These plugins can
exploit all facilities of modern browsers, notably HTML5, SVG and JavaScript.
– Once domain experts need to be involved, tasks may be documented and scripted
using a notebook. A notebook is an interactive document consisting of markdown
text for explaining the notebook, canned Prolog queries that are executed by
clicking a button and may use one of the above described rendering plugins to present
results in an attractive form. Finally, there are program fragments that include shared
programs and bind these together.
– Notebooks provide HTML cells that allow writing full web applications. Such
applications may be implemented fully interactively using the CodeMirror based
HTML/JavaScript editor. It is also possible to reuse externally developed JavaScript
libraries and use the SWISH environment merely to configure the interface and bind
it to the application logic.
– Finally, predicates can be accessed through an API. Currently there are clients for
this API for Prolog, bash (Unix shell), JavaScript (browsers and NodeJS), Java and
Ruby. Except for the bash client, all clients can request additional answers
incrementally while multiple answers can be returned in chunks for optimal performance
when downloading large sets of answers.</p>
      <p>The different interfaces allow a variety of users to cooperate. Initially, the Prolog
programmer typically wants access to the raw data rather than having to deal with
complex domain specific representations. The SWISH URI plugin renders URIs as links
that opens a page in the ClioPatria interface showing the URI in context. At the other
end of the spectrum, e.g., in the use case application described in this article, we have
computed interactions between medical guidelines and show these in a way that is
understandable to a doctor. Once the structure of the data and the notion of guideline
interaction diagrams becomes clear it is worthwhile exploiting the Graphviz plugin to
make a somewhat crude but usable graphical representation (see Fig. 3). This
representation helps the programmer evaluating the ruleset and can be used in discussions with
domain experts. In this scenario the programmer creates queries collaboratively with a
doctor and discusses the result using the presented diagram. HTML notebook cells can
be used to realised a modern web application that allows non-programmers to interact
with the system. HTML notebook cells will be used in future work.
2.2</p>
      <sec id="sec-3-1">
        <title>Clinical Guideline Interactions Theory</title>
        <p>
          This section briefly introduces the main concepts of the TMR model, the interaction
rules and the applied nanopublication structure (see [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] for more details).
        </p>
        <p>The graphical schema illustrated in Fig. 1 introduces the main concepts, including
one detected interaction. In the right side, the big rectangles (boxes) represent causation</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>8 http://www.graphviz.org/</title>
      <p>beliefs about transitions regarding a property, which are promoted by executing a
care action (e.g., blood pressure does change from high to normal by administering
Thiazide). A care action is represented as an ellipse within the causation-box, whilst a
transition is described by the affected property (e.g., blood coagulation described on
the top) and by the pre- and post-situations (whose values are described in the small
boxes connected via directed arrow from pre to post). They either contain the values
for the referred property (e.g. normal or low) or a question mark (‘?’) which indicates
that the initial or final values are not in the data. The gray-shaded boxes indicate that
the causation is imported from an external knowledge source, in this example, Sider.
A recommendation is represented as a rounded box, with an identifier for reference
(e.g., HT.1), and its deontic strength (e.g., should or should not) is indicated by a thick
directed arrow connecting it to the causation-box, blue for positive and red for negative.</p>
      <p>
        Finally, when combining clinical knowledge from different guidelines and external
sources, a number of interactions can be identified, e.g., drugs recommended more
than once or recommended drugs that have incompatible effects. These interactions can
be described in the form of rules, exemplified here in an intuitive simplified format:
IF R1 is a positive recommendation to action A1 to change situation S1
&amp; R2 is a positive recommendation to action A2 to change situation S2 (6= S1)
&amp; Action A2’ (A2’ 6= A1, A2’ A2 or A2’ A2) is believed to bring about S1
THEN R1 and R2 have ‘external’ incompatible effect
When applying this rule to the aforementioned example we have the positive
recommendation DB.3 (as R1) about Administering Insulin (A1) for changing High Blood
Sugar Level (S1). Next, the recommendation HT.1 (as R2) advises Thiazide
Administration (A2) to change something else. However, a subtype of Thiazide called
Bendroflumethiazide (A2’) is known to bring about High Blood Sugar Level (S1) according
to Sider. Therefore, there exists an interaction labeled in Fig. 1 as ‘External
Incompatible Effects’ connecting the interacting recommendations and refering to the external
causation. Observe that this interaction rule is generic, i.e., it applies not only to this
example but to whatever other similar scenario that might happen when combining
multiple guidelines. This and other generic rules are formally defined in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] for detecting
other external interactions (‘External Alternative Action’ and ‘External Incompatible
Action’), which also use external knowledge sources, and internal interactions, i.e.,
the detection rules use only knowledge provided within the guideline (‘Repeated
Action’, ‘Alternative Actions’, ‘Contradictory Norms’, ‘Repairable Transitions’).
The aforementioned data is provided in RDF format using the Nanopublication9
structure, which presupposes the use of Prov10 vocabulary as explained in detail in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
Roughly the goal is to look at recommendations and beliefs as assertions enriched with
provenance data. To illustrate this, Fig. 2 presents a (simplified) schema for the
nanopublication for the external causation belief mentioned in the previous section.
      </p>
      <p>On the left hand side the named-graph Assertion1 is of type Causation belief with
frequency always about Adm. Bendroflumethiazide causing a transition to High Blood
Sugar Level. On the right hand side, the named-graph Provenance1 says the assertion
was derived from Sider and was generated by an activity that used two resources from
Sider, i.e., the drug and the side-effect URIs. Within this structure, this and other
provenance information can be stored for further reference. For example, the beliefs imported
from a certain source can be considered not trustworthy and thefore can be skipped by
the inference rules. Or the external resources on which a certain causation relies can be
inspected by the experts in order to decide “on the fly” whether to trust it or not. The
graph visualization makes these resources accessible by clicking the external source.</p>
      <p>Assertion1
m2:CausationBelief
"always" m2:frequency</p>
      <p>a</p>
      <p>Adm.</p>
      <p>Bendroflum
ethiazide
m2:causes</p>
      <p>Tr. High Blood
Sugar Level</p>
      <p>Provenance1
prov:was prov:used
GeneratedBy sd:HighBSL</p>
      <p>a_ prov:ussde:dBendrofl...
prov:Activity
prov:wasDerivedFromSider</p>
      <sec id="sec-4-1">
        <title>A SWISH-based prototype for Clinical Guidelines Interactions</title>
        <p>This section describes the usage of SWISH to implement the three tiers previously
discussed and a case-study for illustrating the obtained results.
3.1</p>
        <sec id="sec-4-1-1">
          <title>Storage tier: TMR Model and Data as SWI-Prolog Facts</title>
          <p>SWISH relies on Cliopatria as a triple store where the OWL-RDF files for the TMR
model and the guidelines’ data are loaded via the web interface. The external data,</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>9 See http://nanopub.org/wordpress.</title>
      <p>10 See http://www.w3.org/TR/prov-o.
retrieved from the internet in RDF format, is also loaded into the Cliopatria server.
As previously mentioned, the tight integration of Cliopatria with the Prolog language
makes the loaded RDF data available as normal Prolog facts. SWI-Prolog queries can
be used for accessing the RDF data, such as the following one retrieves all the Event
types that are believed to cause another one:
?- rdf(EventT1, vocab:’causes’, EventT2, CBelief)</p>
      <sec id="sec-5-1">
        <title>3.2 Application logic tier: SWI-Prolog Rules</title>
        <p>Multiple Prolog programs are used to define rules for: (i) checking data properties:
defining predicates that return True if a certain graph pattern is found and False
otherwise (negation as failure); (ii) retrieving data: defining predicates that abstract from
complex graph patterns matching; (iii) asserting data: defining rules that assert new
RDF triples given given that a certain graph patterns is found.</p>
        <p>The code is implemented using the SWISH editor that allows for modular testing
of parts of the code. We divided the code into files that address different aspects of
the proposed theory. We briefly describe herewith the main issues addressed by three
relevant files and illustrate them with one rule.
guidelines.pl This file contains rules for querying and manipulating clinical data
according to the TMR model. Below, we present one predicate for retrieving data about
the causation relation between two event types:
causes(EventT1, EventT2, Freq, CBelief)
:rdfs_individual_of(CBelief, vocab:’CausationBelief’),
rdf(CBelief, vocab:’frequency’, literal(type(xsd:string, Freq)), CBelief),
rdf(EventT1, vocab:’causes’, EventT2, CBelief).
externalSources.pl External sources may adopt different vocabularies for
describing similar data. To allow for the interaction rules to be independent of specific
vocabularies, we provide importing rules for each source that reinterprets the data as
beliefs according to the TMR model. Naturally, we assume that the local data and the
external data share some properties (e.g., the UMLS code) that can be used to align the
entities. Below we illustrate the rule for asserting new data by importing side effects
from Sider as causation beliefs:
siderAssertCausationSideEffect
:forall(
( ( rdf(_, vocab:’hasTransformableSituation’, Situation)
; rdf(_, vocab:’hasExpectedSituation’, Situation)),
rdf(Situation, owl:sameAs, SideEffect),
rdf(DrugSider, sider:’sideEffect’, SideEffect),
rdf(DrugSider, owl:sameAs, DrugType),
rdfs_individual_of(DrugType, vocab:’DrugType’),
rdf(Action, vocab:’administrationOf’, DrugType)
),
( assertPartialTransition(Situation, NewTr),
rdf_global_id(data:’sider’, SourceURI),
assertCausation(Action, NewTr, ’always’, SourceURI, NanopubURI),
assertProvResourceUsed(NanopubURI, DrugSider),
assertProvResourceUsed(NanopubURI, SideEffect))).
interactionRules.pl Internal and external interaction rules are described in this
file, where different types of interactions are inferred based on patterns of
recommendations and beliefs. Hereby we illustrate the rule for asserting interactions of type External
Incompatible Effects (previously discussed as a simplified format in Sect 2.2):
detectExternalIncompatibleEffect
:forall(
( regulates(Reg, Norm1, Act1, Strength, CB1),
causes(Act1, Tr1, ’always’, CB1),
((Strength = ’should’, rdf(Tr1, vocab:’hasTransformableSituation’, St1))
;(Strength = ’should-not’, rdf(Tr1, vocab:’hasExpectedSituation’,St1))),
causes(Act, Tr, ’always’, CB), different(Act, Act1),
rdf(Tr, vocab:’hasExpectedSituation’, St1),
regulates(Reg, Norm2, Act2, ’should’, CB2),
relatedTypes(Act, Act2), different(CB2, CB)
),
(existsInteraction(’ExternalIncompatibleEffects’, Norm1, Norm2, CB))).</p>
      </sec>
      <sec id="sec-5-2">
        <title>3.3 Presentation tier: Notebook and Graph Visualization</title>
        <p>For the presentation tier we used graphviz to produce a graph visualization that
resembles the graphical schema manually designed in previous work and that was
successfully used for communication with domain experts. The Prolog code required to extract
the clinical data to be plotted and create a representation suitable for the graphviz plugin
is accessible via the main file interaction graph.pl.</p>
        <p>
          To enhance the communication with other researchers and domain experts we
composed a SWISH notebooks11 that explains step by step the initialization (data
acquisition and inferencing) of a case study described in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] on combining parts from 3
guidelines: Diabetes, Hypertension and Osteoarthritis. The notebook allows for users to
access partial results achieved in each step of the experiment. Fig. 3 presents a screenshot
of the notebook containing a graph visualization of the case-study described in this
section. Each of the elements in the graph can be clicked to explore its related data in the
ClioPatria interface. In particular, the small box representing external data redirects a
page referring to the used external resources.
        </p>
        <p>
          The case-study depicted in Fig. 3 demonstrates the detection of interactions12 of the
original case study [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. The presented recommendations are:
11 Accessible via http://guidelines2.eculture.labs.vu.nl/swish/p/guidelinesGraph.swinb and
http://guidelines2.eculture.labs.vu.nl/swish/p/datasetMaintenance.swinb
12 The example is reduced due to space restrictions, but recommendations’ ID’s are the original.
        </p>
        <p>Finally, the following interactions are detected by applying the interaction rules:
1. DB.2 and OA.1 are (can be) contradictory norms since the NSAID in DB.2 can be
prescribed as Aspirin, which is non-recommended by OA.1.
4</p>
        <sec id="sec-5-2-1">
          <title>Discussion &amp; Conclusion</title>
          <p>
            This paper shows that SWISH was successfully applied for prototyping the Clinical
Guideline Interaction theory [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ] (extended version in [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]) by providing a single
environment that supports the three tiers of a semantic web application: storage, application
logic and presentation. This allows for the medical informatics researcher to focus on
the solution to be provided rather than on connecting the tiers together using different
languages and tools. Prolog alone now provides the rule-based reasoning required for
our purpose, as opposed to the previous implementation when we tried to be compliant
to the “Semantic Web Standard Languages” such as OWL and SPARQL (see Sect. 1).
Finally, the resulting prototype favors the communication with other researches and
domain experts by providing (i) a notebook where the case-study experiment is described
step by step and (ii) the dynamic graphical visualization of the inferred interactions. In
the future we will improve the implementation to calculate the relevance of interactions
so that they can be filtered to favor readability, specifically when many interactions are
inferred. We will provide a more user-friendly interface prototype by adding HTML
cells to the notebook that allows domain experts to interact with the system. A
dedicated web application can be built using any web application framework that reuses our
application logic tier by means of the API provided by the Prolog/SWISH.
          </p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Cheung</surname>
            ,
            <given-names>K.H.</given-names>
          </string-name>
          , Prud'hommeaux, E.,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stephens</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Semantic Web for Health Care and Life Sciences: a review of the state of the art</article-title>
          .
          <source>Briefings in bioinformatics 10</source>
          (
          <year>2009</year>
          )
          <fpage>111</fpage>
          -
          <lpage>3</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Mesirov</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          : Accessible reproducible research.
          <source>Science</source>
          <volume>327</volume>
          (
          <issue>5964</issue>
          ) (
          <year>2010</year>
          )
          <fpage>415</fpage>
          -
          <lpage>416</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Wielemaker</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beek</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hildebrand</surname>
          </string-name>
          , M.,
          <string-name>
            <surname>van Ossenbruggen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Cliopatria: A swi-prolog infrastructure for the semantic web</article-title>
          .
          <source>Semantic Web</source>
          <volume>7</volume>
          (
          <issue>5</issue>
          ) (
          <year>2015</year>
          )
          <fpage>529</fpage>
          -
          <lpage>541</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Zamborlini</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoekstra</surname>
            , R., da Silveira,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pruski</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ten Teije</surname>
          </string-name>
          , A.,
          <string-name>
            <surname>van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Inferring Recommendation Interactions in Clinical Guidelines: Case-studies on Multimorbidity</article-title>
          .
          <source>Semantic Web Journal</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Zamborlini</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoekstra</surname>
            , R., da Silveira,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pruski</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ten Teije</surname>
          </string-name>
          , A.,
          <string-name>
            <surname>van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Generalizing the Detection of Internal and External Interactions in Clinical Guidelines</article-title>
          .
          <source>In: Proc. of the 9th Int. Conference on Health Informatics (HEALTHINF2016)</source>
          , Rome, Italy (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Lager</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wielemaker</surname>
          </string-name>
          , J.: Pengines:
          <article-title>Web logic programming made easy</article-title>
          .
          <source>TPLP</source>
          <volume>14</volume>
          (
          <issue>4-5</issue>
          ) (
          <year>2014</year>
          )
          <fpage>539</fpage>
          -
          <lpage>552</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Wielemaker</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lager</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>SWISH: swi-prolog for sharing</article-title>
          .
          <source>CoRR abs/1511</source>
          .00915 (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Zamborlini</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoekstra</surname>
            , R., da Silveira,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pruski</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ten Teije</surname>
          </string-name>
          , A.,
          <string-name>
            <surname>van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Generalizing the Detection of Clinical Guideline Interactions enhanced with LOD</article-title>
          .
          <source>In: Communications in Computer and Information Science (Print)</source>
          . Springer (2016 to appear)
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>