<!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>Distributed Social Benefit Allocation using Reasoning over Personal Data in Solid</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jonni Hanski</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pieter Heyvaert</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ben De Meester</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ruben Taelman</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ruben Verborgh</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>IDLab, Department of Electronics and Information Systems, Ghent University - imec</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>When interacting with government institutions, citizens may often be asked to provide a number of documents to various oficials, due to the way the data is being processed by the government, and regulation or guidelines that restrict sharing of that data between institutions. Occasionally, documents from third parties, such as the private sector, are involved, as the data, rules, regulations and individual private data may be controlled by diferent parties. Facilitating eficient flow of information in such cases is therefore important, while still respecting the ownership and privacy of that data. Addressing these types of use cases in data storage and sharing, the Solid initiative allows individuals, organisations and the public sector to store their data in personal online datastores. Solid has been previously applied in data storage within government contexts, so we decided to extend that work by adding data processing services on top of such data and including multiple parties such as citizen and the private sector. However, introducing multiple parties within the data processing flow may impose new challenges, and implementing such data processing services in practice on top of Solid might present opportunities for improvement from the perspective of the implementer of the services. Within this work, together with the City of Antwerp in Belgium, we have produced a proof-of-concept service implementation operating at the described intersection of public sector, citizens and private sector, to manage social benefit allocation in a distributed environment. The service operates on distributed Linked Data stored in multiple Solid pods in RDF, using Notation3 rules to process that data and SPARQL queries to access and modify it. This way, our implementation seeks to respect the design principles of Solid, while taking advantage of the related technologies for representing, processing and modifying Linked Data. This document will describe our chosen use case, service design and implementation, and our observations resulting from this experiment. Through the proof-of-concept implementation, we have established a preliminary understanding of the current challenges in implementing such a service using the chosen technologies. We have identified topics such as verification of data that should be addressed when using such an approach in practice, assumptions related to data locations and tight coupling between our logic between the rules and program code. Addressing these topics in future work should help further the adoption of Linked Data as a means to solve challenges around data sharing, processing and ownership such as with government processes involving multiple parties.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Solid</kwd>
        <kwd>Linked Data</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>When the government decides to ofer social benefits to its citizens, it will need some information
about those citizens to properly allocate the benefits. Furthermore, when the social benefit
concerns services ofered by the private sector, such as benefits that are aimed to help citizens
with electricity, gas or water invoices, the private sector may need to be involved in the process
to some extent. To eficiently manage the allocation of benefits, the necessary data and other
information needs to be accessible without unnecessary bottlenecks, such as manual labour in
sending and receiving the necessary information as traditional documents multiple times over.</p>
      <p>Together with the city of Antwerp in Belgium, we have produced an example use case in social
benefit allocation, where the government ofers eligible citizens a subsidy on utility invoices, in
the form of social tarif , by paying part of the eligible citizens’ utility invoices to private sector
service providers. To facilitate this social tarif use case, the government has provided a set of
rules that determine a citizen’s eligibility to this benefit. The citizen has personal information
associated with them that is evaluated against the rules to determine eligibility. The private
sector utility company possesses the information needed to produce invoices for the citizen.</p>
      <p>
        Decentralisation initiatives such as Solid [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] seek to enable data storage and control via
personal online datastores (pods), without tying pods strictly for personal use by individuals,
making them a generic means of storing data also in organisational contexts. Previous work [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
has demonstrated the benefits of applying the Solid initiative in government contexts to improve
the handling of data. We decided to apply Solid in our social tarif use case, and have thereby
decided to extend the previous work by introducing the private sector into the data processing
scenario and building services to process the data between the diferent parties.
      </p>
      <p>Following this introduction, section 2 will illustrate our use case and the service design,
section 3 will introduce the implementation decisions, and section 4 outlines the observations
and future work discovered during the experiment, with conclusions in section 5.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Social Tarif Use Case</title>
      <p>
        Preconditions: The government is ofering a subsidy on utility invoices to citizens who meet a
certain criteria. The subsidy is realised as a social tarif on invoices from utility company, where
the government pays part of the invoice of citizens eligible for that subsidy. To facilitate such
social tarif in practice, the government has defined a set of rules determining the eligibility of a
citizen based on data about that citizen. The utility company has the invoice for citizen together
with a set of rules to allocate that invoice between the citizen and the government based on
the eligibility of citizen. Within this use case, the government, citizen and utility company
have all chosen to use Solid pods to store their respective data and rules, and share that data
with each other as deemed appropriate. The tasks of determining social tarif eligibility and
allocating the invoice appropriately have been assigned to dedicated services. All five entities
– the government, citizen, utility company and the two services – are identified by their own
WebIDs [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and the parties involved have assigned the appropriate permissions to the data in
their pods. All use cases and services use a reasoner to process their data based on the rules
provided. The use case has been illustrated in 2, and we have identified the following four use
cases, of which 1A and 1B have been illustrated in 2:
      </p>
      <p>Use case 1B: The data associated with the citizen makes them eligible for social tarif
according to the government rules. The eligibility update service uses the rules to process the
data and saves the status as eligible into the pod of the citizen.</p>
      <p>Use case 1B: The data associated with the citizen does not make them eligible for social tarif
according to the government rules or the data is not accessible or is unreadable, causing the
system to fall back to not eligible. The eligibility update service saves the status as not eligible
into the pod of the citizen.</p>
      <p>Use case 2A: The user has been marked as eligible for social tarif. The invoice allocator
service reads this data, reads the invoice data from the company, processes the invoice using the
invoice splitting rules from the company, and then sends the invoice parts to the government
and citizen accordingly.</p>
      <p>Use case 2B: The user has been marked as not eligible for social tarif. The invoice allocator
service reads this data, reads the invoice data and splitting rules from the company, processes
the invoice using those rules and just sends the invoice to citizen without splitting it.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Prototype Implementation</title>
      <p>The proof-of-concept implementation was built using existing established open-source software
and libraries to the greatest extent possible at the time of implementation. Reducing the amount
of custom code to the minimum was deemed important for appropriate evaluation of existing
software available for implementing such a system. The system consists of three parts: Solid
pods, reasoner and services. The technology choices are outlined below, and the code has been
made available online1.</p>
      <p>
        The Solid pods were set up using the Community Solid Server [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], a modular open-source
Solid server implementation. Users were identified with their WebID [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] created for the purposes
of the proof-of-concept and data access was controlled through Web Access Control (WAC) [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ].
The demo data was RDF in Turtle serialization with example in listing 1.
@ p r e f i x s o c i a l : &lt; h t t p s : / / e x a m p l e . o r g / s o c i a l − b e n e f i t − v o c a b u l a r y
# &gt; .
&lt; h t t p s : / / e x a m p l e . o r g / p e o p l e / c i t i z e n #me&gt; s o c i a l :
g e t s I n c o m e G u a r a n t e e F o r E l d e r l y f a l s e .
      </p>
      <p>Listing 1: Sample of the social benefit status for a citizen, to be used with the rules.</p>
      <p>
        The rules from the government and the utility company were expressed through Notation3 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
logic with example in listing 2. The demo data and rules were stored in the Solid pods, highlighted
in blue and purple respectively, in figure 2 earlier.
@ p r e f i x s o c i a l : &lt; h t t p s : / / e x a m p l e . o r g / s o c i a l − b e n e f i t − v o c a b u l a r y
# &gt; .
{ ? p e r s o n s o c i a l : g e t s I n c o m e G u a r a n t e e F o r E l d e r l y t r u e . }
=&gt;
{ ? p e r s o n s o c i a l : i s S o c i a l T a r i f f E l i g i b l e t r u e . } .
      </p>
      <sec id="sec-3-1">
        <title>Listing 2: Sample of the social tarif eligibility rules used.</title>
        <p>
          The services were implemented in TypeScript. Data access was abstracted through the use
of Comunica [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], an open-source SPARQL query engine that supports link traversal query
processing within the context of Solid [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Example of data access can be found in listing 3.
PREFIX s o c i a l : &lt; h t t p s : / / e x a m p l e . o r g / s o c i a l − b e n e f i t − v o c a b u l a r y # &gt;
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>SELECT ? i d ? e l i g i b l e WHERE {</title>
        <p>? i d s o c i a l : i s S o c i a l T a r i f f E l i g i b l e ? e l i g i b l e
}
Listing 3: Sample SPARQL query used to abstract data access in Solid pods, taken from the
prototype implementation.</p>
      </sec>
      <sec id="sec-3-3">
        <title>1https://github.com/SolidLabResearch/a-solid-proof-of-concept</title>
        <p>
          Authentication was implemented using an existing library [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. The open-source EYE
reasoner [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] was used to process data based on rules in Notation3 format. While the use of
Notation3 rules and the reasoner was not necessary for this trivial use case, we chose this
method with a general-purpose approach in mind, where both the data and logic could be
expressed in RDF. We believe the potential decoupling of application logic from specific
implementations in program code is worth exploring.
        </p>
        <p>The observations from this proof-of-concept implementation are discussed in section 4. While
the specific use case here tackled a social tarif problem, the concept of building services running
on Solid and Linked Data could be generalised to other government services such as healthcare
or education eligibility, or be applied in business-to-business or other scenarios.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Discussion</title>
      <p>The main purpose of this proof-of-concept prototype was to demonstrate the feasibility of
implementing such a system between multiple parties to serve a real-life use case that takes
advantage of the decentralised aspects of Solid to ensure all parties maintain full control of
their own data, as well as identify potential shortcomings that could impact the implementation
of other similar systems in practice. We have identified a number of shortcomings with our
approach, outlined below, that when addressed, should help the implementation of Solid and
RDF-based services in practice.</p>
      <p>
        • Verification of information : The prototype operates on data spread across pods and
assumes it be accurate and up-to-date. The current approach allows citizens to make
themselves eligible for benefits if they know which data to modify in their pods, regardless
of whether they would be eligible in practice. This issue could be addressed through a
number of approaches, for example by digitally signing the relevant parts of the RDF
graph stored in the pod [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], or associating meta knowledge with RDF statements [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
such as credibility or provenance, together with Verifiable Credentials Data Model [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
• Hardcoded data location assumptions: The locations of data written into Solid pods
was hardcoded for the prototype. In practice [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], there needs to be a dynamic means of
detecting the location of such data, especially when no previous data of the kind exists.
• Use case-specific implementation of orchestration logic : All use cases performed
similar tasks by reading data, reading rules, sending them to a reasoner, and writing the
output somewhere, with potential splitting or other processing of that data. This resulted
in two service implementations for performing similar tasks. Therefore, a reusable
general-purpose orchestrator to handle data processing workflows within the context
of Solid, Linked Data and Notation3-based services should be of interest, where only
the truly unique parts would require custom code. Such an orchestrator could allow for
simple workflow definitions of input/output and the use of custom filters or other custom
components as needed.
• Tight coupling between rules, data and service code: Despite the service code, data
and rules being separated, the service code was dependent on the output defined by the
rules, and the output was dependent on the data processed by those rules. Diferent
types of logic output had to be parsed in the service code, and processed accordingly. For
example, after splitting the invoice using the rules, the service code was responsible for
parsing that split data and saving it in the correct locations. Therefore, we identify the
true decoupling of data, rules and code in actual service implementations to be of interest.
• Spreading of implementation between Notation3 logic and program code: While
the logic to process data was implemented in Notation3, the program code responsible for
authenticating for access control purposes, fetching the data, sending it to the reasoner
with the rules, and then parsing the output and performing the SPARQL queries was not
written in Notation3. This resulted in a mix of languages and a tight coupling between
the logic and the program code. Therefore, facilitating the implementation of the entire
service logic in Notation3 or other form should be of interest.
• Scalability, performance, adaptation and complexity concerns: As noted by a
reviewer, we have not explored non-trivial use cases that would better represent real world
scenarios. For example, scalability or performance issues could emerge when social
benefits need to be applied to a subset of the population, and this subset needs to be
calculated based on the entire population. Furthermore, application of our approach to
additional subsets such as households also remains an open question, where benefits
would be allocated on a household level rather than for individual citizens directly.
      </p>
      <p>Though our schedule prevented the investigation of solutions to these challenges, we believe
that addressing combinations of them will provide an interesting opportunity for future work.
We acknowledge the shortcomings of this paper with regards to insuficient eforts towards
developing solutions to these challenges and the associated reduction in the significance of this
paper’s contributions and the completeness of the work.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions</title>
      <p>
        We conclude that addressing the shortcomings in section 4 through future work should help the
adoption of Linked Data in practice, to solve real world challenges such as with GDPR but also
general eficiency of passing data around within government and non-government processes.
Services that need to process data should be possible to build on Linked Data and initiatives such
as Solid, without the developers of those services having to make unnecessary assumptions or
workarounds. Some of this work has been outlined previously in work on refining the definitions
of a Solid pod [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], but other points such as verification of data, orchestration frameworks with
reasoning and authentication, or scalability and adaptation to large-scale use over multiple
overlapping sets of citizens appear in need of investigation.
      </p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>The described research activities were supported by SolidLab Vlaanderen (Flemish Government,
EWI and RRF project VV023/10). The use case was created in partnership with, and co-funded
by, the City of Antwerp. Ruben Taelman is a postdoctoral fellow of the Research Foundation –
Flanders (FWO) (1274521N).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <article-title>Re-decentralizing the Web, for good this time</article-title>
          , in: O.
          <string-name>
            <surname>Seneviratne</surname>
          </string-name>
          , J. Hendler (Eds.),
          <article-title>Linking the World's Information: A Collection of Essays on the Work of Sir Tim Berners-Lee</article-title>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          ,
          <year>2022</year>
          . URL: https://ruben.verborgh.org/articles/ redecentralizing-the-web/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Buyle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Taelman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Mostaert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Joris</surname>
          </string-name>
          , E. Mannens,
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <article-title>Streamlining governmental processes by putting citizens in control of their personal data (</article-title>
          <year>2019</year>
          ). URL: https://drive.verborgh.org/publications/buyle_egose_
          <year>2019</year>
          .pdf.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>V.</given-names>
            <surname>Balseiro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Turdean</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zucker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Capadisli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <source>Solid webid profile</source>
          ,
          <year>2022</year>
          . URL: https://solid.github.io/webid-profile/.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>J. Van Herwegen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <source>Communitysolidserver/communitysolidserver: v5.1.0</source>
          ,
          <year>2022</year>
          . URL: https://doi.org/10.5281/zenodo.7595117. doi:
          <volume>10</volume>
          .5281/zenodo.7595117.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hollenbach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Presbrey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <article-title>Using rdf metadata to enable access control on the social semantic web</article-title>
          ,
          <source>in: Proceedings of the Workshop on Collaborative Construction, Management and Linking of Structured Knowledge (CK2009)</source>
          , volume
          <volume>514</volume>
          ,
          <year>2009</year>
          , p.
          <fpage>167</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Capadisli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <source>Web access control</source>
          ,
          <year>2022</year>
          . URL: https://solidproject.org/TR/ wac.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W.</given-names>
            <surname>Van Woensel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Arndt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Tomaszuk</surname>
          </string-name>
          , G. Kellogg, Notation3,
          <source>W3C Community Group Draft Report, W3C</source>
          ,
          <year>2023</year>
          . URL: https://www.w3.org/N3/.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>R.</given-names>
            <surname>Taelman</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Van Herwegen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Vander</given-names>
            <surname>Sande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <article-title>Comunica: a modular sparql query engine for the web</article-title>
          ,
          <source>in: ISWC</source>
          <year>2018</year>
          , Proceedings,
          <year>2018</year>
          . URL: https://comunica.github. io/Article-ISWC2018-Resource/.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>R.</given-names>
            <surname>Taelman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <article-title>Evaluation of link traversal query execution over decentralized environments with structural assumptions</article-title>
          ,
          <year>2023</year>
          . URL: https://arxiv.org/abs/2302.06933. doi:
          <volume>10</volume>
          .48550/ARXIV.2302.06933.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Inrupt</surname>
          </string-name>
          , Inc.,
          <article-title>Solid javascript authentication - solid-client-</article-title>
          <string-name>
            <surname>authn</surname>
          </string-name>
          ,
          <year>2023</year>
          . URL: https://github. com/inrupt/solid-client
          <article-title>-authn-js.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>J. De Roo</surname>
          </string-name>
          , Eye - euler
          <source>yet another proof engine</source>
          ,
          <year>2023</year>
          . URL: https://github.com/eyereasoner/ eye.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G.</given-names>
            <surname>Tummarello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Morbidoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Puliti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Piazza</surname>
          </string-name>
          ,
          <article-title>Signing individual fragments of an rdf graph</article-title>
          ,
          <source>in: Special interest tracks and posters of the 14th international conference on World Wide Web</source>
          ,
          <year>2005</year>
          , pp.
          <fpage>1020</fpage>
          -
          <lpage>1021</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>R.</given-names>
            <surname>Dividino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sizov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Staab</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schueler</surname>
          </string-name>
          ,
          <article-title>Querying for provenance, trust, uncertainty and other meta knowledge in rdf</article-title>
          ,
          <source>Journal of Web Semantics</source>
          <volume>7</volume>
          (
          <year>2009</year>
          )
          <fpage>204</fpage>
          -
          <lpage>219</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Sporny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Noble</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Longley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Burnett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Zundel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Den Hartog</surname>
          </string-name>
          , D. Chadwick,
          <source>Verifiable Credentials Data Model v1.1</source>
          ,
          <string-name>
            <given-names>W3C</given-names>
            <surname>Recommendation</surname>
          </string-name>
          ,
          <year>W3C</year>
          ,
          <year>2022</year>
          . URL: https: //www.w3.org/TR/vc
          <article-title>-data-model/.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>R.</given-names>
            <surname>Dedecker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Slabbinck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wright</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Hochstenbach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Colpaert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <article-title>What's in a pod?-a knowledge graph interpretation for the solid ecosystem</article-title>
          ,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>