<!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>Querying Heterogeneous Linked Building Data with Context-expanded GraphQL Queries?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jeroen Maurits Werbrouck</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Madhumitha Senthilvel</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jakob B</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept. of Architecture and Urban Planning, Ghent University</institution>
          ,
          <addr-line>9000 Ghent</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Faculty of Architecture, RWTH Aachen University</institution>
          ,
          <addr-line>52062 Aachen</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>21</fpage>
      <lpage>34</lpage>
      <abstract>
        <p>Linked Data in the construction industry is a topic gaining serious interest over the last years. However, this interest remains largely academic and has not sparked much adoption of web technologies in the field. To nourish adoption of Linked Data in practice, access to the data has to be made more easy. SPARQL, the recommended RDF query language, has proven very powerful for retrieving and updating RDF datasets. However, due to its verbosity and complexity, it is often considered a threshold for developers to implement in their tools. In this paper, we compare SPARQL with Linked Data querying languages that extend the GraphQL syntax, in context of querying building datasets: HyperGraphQL and GraphQL-LD. Since it went open source in 2015, GraphQL has been adopted by a large community of developers, partly due to its elegance and conciseness. As a use case, the queries are performed on an RDF-based multi-model that relies on the recent ISO standard ICDD (ISO 21597). ICDD interlinks information on a subdocument identifier level, based on OWL. It is aimed at the industry in that it adds a layer of Linked Data to documentation formats that are still widely used in practice: IFC, spreadsheets, imagery etc. Therefore, it is considered a tuned use case for comparing these different RDF query languages.</p>
      </abstract>
      <kwd-group>
        <kwd>Linked Data</kwd>
        <kwd>ICDD</kwd>
        <kwd>SPARQL</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>GraphQL.
The advent of Building Information Modelling (BIM) has brought a revolution
to the way a construction project is designed, constructed and maintained. BIM
addresses the need for an ‘information hub’ that contains and manages
information on architecture, engineering and ’Mechanical, Electrical, Plumbing’ (MEP)
topics. Through BIM, professionals in these disciplines are able to communicate
in a much more streamlined way than before.</p>
      <p>
        In an ideal building industry, linking of available information happens, and
happens on a data level. This has been proposed multiple times since the late
2000s [
        <xref ref-type="bibr" rid="ref1 ref2">2, 1</xref>
        ] and is therefore actively researched by multiple researchers. One of
the most known achievements is the translation of the IFC (Industry Foundation
Classes) schema into ifcOWL; its Linked Data equivalent [
        <xref ref-type="bibr" rid="ref2 ref5">2, 5</xref>
        ]. A more recent
trend is to focus on smaller, modular ontologies, often aligning with the Building
Topology Ontology (BOT) [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ]. Each one of these smaller ontologies targets
one aspect of the building industry, yielding a flexible and functional way for
knowledge modelling when combined with one another.
      </p>
      <p>
        In the building industry field, however, the use of RDF (Resource Description
Framework), OWL (Web Ontology Language) and other web technologies is still
largely an academic topic, and not all pitfalls are solved to convince BIM software
providers and the industry to dive into the world of Linked Building Data. More
achievable at the moment is a cross-document way of linking sources and BIM
documents, instead of implementing the project entirely in RDF. However, this
is not applied very frequently either. To improve an ontology-based, link
setoriented approach [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the Information Container for Data Drop (ICDD)3 is in
its final stages of international standardisation as ISO 21597. ICDD provides a
standard way to link documents with one another. It is a container-like structure
that uses a Container OWL ontology and a Linkset OWL ontology that contain
the definitions to describe and link document data with nodes in RDF graphs
or other document data. Using the provided terminologies, information linking
on sub-document level could be reached. This means that, for example, a single
cell in a spreadsheet can be linked to an identifier in an IFC document and a
pixel zone in an image. The resulting instance graphs describe metadata and
links between both internal sources included in the ICDD container folder, or
external data sets, located somewhere on the web.
      </p>
      <p>
        In the same ideal world, RDF data is queried by use of the official W3C
recommendation SPARQL (SPARQL Protocol and RDF Query Language)4. However,
SPARQL is often considered too high a threshold for developers to implement in
their tools as a querying language [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], which is why different initiatives are set
up to lower this threshold, often based on JSON-LD5 contexts. These initiatives
focus either on direct implementation in programming languages, such as LDflex6
for Javascript or on language-independent solutions such as GraphQL extensions
for Linked Data [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]: HyperGraphQL[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and GraphQL-LD [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. GraphQL[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] was
originally constructed by Facebook Inc. in 2012 and developed as an open
standard from 2015 on. It can be both used for data querying and as an API querying
language. A general overview on the main differences between HyperGraphQL
and GraphQL-LD for application in cloud-based collaboration networks for the
building industry is given in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. With respect to cloud-based applications, [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
conclude that GraphQL-LD is a more flexible approach, due to its server- and
      </p>
    </sec>
    <sec id="sec-2">
      <title>3 https://www.iso.org/standard/74389.html 4 https://www.w3.org/TR/sparql11-query/ 5 https://www.w3.org/2018/jsonld-cg-reports/json-ld/ 6 https://github.com/RubenVerborgh/LDflex</title>
      <p>
        schemaless deployment. In this paper, we investigate the potential of both
HyperGraphQL and GraphQL when querying a fixed, local dataset. The discussed
use case differs from the one in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] in that it does not focus on cloud-based
services, but on querying the available information in a link set container, namely
ICDD, as a dump file of the available project information. Using ICDD, the
ontologies that are used within a container are known, and most data can be
queried through a single endpoint.
2
      </p>
      <sec id="sec-2-1">
        <title>Related work</title>
        <p>2.1</p>
        <sec id="sec-2-1-1">
          <title>Information Container for Data Drop</title>
          <p>
            In its own words, ICDD has been developed ‘in response to the need of the
construction industry to handle multiple documents as one information delivery or
data drop.’ It is a successor of the Dutch COINS standard and fits in a tradition
of ontology-based management of multi-models [
            <xref ref-type="bibr" rid="ref13 ref4 ref8">8, 4, 13</xref>
            ]. Information elements
within a container can be linked with one another and with external data by
making use of Semantic Web technologies. These relationships strengthen the
semantic quality of the container, because they allow to refer to other data, even if
this data is not structured following RDF principles. For the construction
industry, typically slow in its adoption of new technologies, ICDD provides a bridge
between documents structured in previously incompatible data formats. From an
industry point of view, ICDD containers could be considered as a package used
to send a linked file repository, to store a particular version or state of a complex
project. Although it allows to refer to external documents, the standard focuses
on the description of internal documents, assuming that this scenario, where all
referred documents are contained in the ICDD folder, occurs more frequently.
In such situation, an efficient and accessible way to query the available project
data stored in the container could be of use. From a research point of view,
ICDD might provide an interesting way to store and link data formats for which
an RDF representation is not considered an efficient solution, such as imagery,
point clouds or geometric representations. A distributed web-based ecosystem
for building projects may use the ICDD ontologies to semantically link RDF
building data with non-RDF, document-based project information, rather than
focusing on creating a dump folder (although this might be an interesting side
effect) [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ].
          </p>
          <p>A container in .icdd format (using a ZIP-compression) consists of a fixed
folder structure, with separations between ontologies (Ontology resources ),
documents (Payload documents ), specific linksets (Payload triples ) and content
description (index.rdf ) (Fig. 1). Graphs that describe a container’s content and
links between documents are stored in different graphs, but refer to the same
URIs of documents. A visual graph depicting the link between two documents
is given in Fig. 2.
2.2</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>GraphQL in a Linked Data context</title>
          <p>GraphQL7 is both a data query language and a specification to minimise and
optimise data transfer over the web over a GraphQL API. It is specifically aimed
at improving client-server interactions and has been adopted by multiple large
players on the web. Its core exists of a schema that describes the data to use: its
class, its fields and the classes or datatypes those fields may refer to. From this
perspective, these schemes can be visualised as graphs. However, they should
not be interpreted as RDF graphs, as the types and fields that are used are not
uniquely identifiable, as is the case with RDF graphs. Nevertheless, this structure
allows to describe interlinked data in a coherent way, to query this data and to
update or delete it. One of the reasons GraphQL had such an adoption rate
over the last years, is the simplicity of querying: essentially, it requires the client
to state the desired classes and their fields, possibly accompanied by specific
parameters (Table 1). The response will be a JSON object. This simplicity stands
in contrast to, for example, SPARQL: although SPARQL is more expressive, a
lot of developers prefer the much more minimalistic syntax of GraphQL.
Although GraphQL has essentially no relationship to RDF, a GraphQL schema
could be provided with the universal context that is missing in the original
specification. Such context would extend the schema to the level of the semantic web,
using IRIs. Thus far, two open source projects have implemented this
extension in a slightly different way: either by implementing the original specification
7 https://graphql.org/
}
}
}
}
and schema syntax (HyperGraphQL) or by only adopting the query syntax and
translate it to SPARQL ‘under-the-hood’ (GraphQL-LD).</p>
          <p>HyperGraphQL In the approach of HyperGraphQL, an intermediary service is
set up, connecting the GraphQL client with the RDF graphs to be queried. Just
like in a ’classic’ GraphQL approach, HyperGraphQL needs a schema that
defines the right types and fields. In RDF terms, the types that are defined relate to
the resources defined in an ontology, which means instances of owl:Class as well
as instances of owl:Property. The GraphQL types that refer to an owl:Class
are then extended by fields that relate to the properties that have this class as
a domain, ‘pointing’ at their range. Types that are not included in the schema,
cannot be queried. This provides the data supplier with a mechanism of
finegrained selection of which datatypes can be queried via the ‘lens’ of a GraphQL
schema. A subset of a schema applied to the ICDD, is depicted in Listing 1.1.
type __Context {</p>
          <p>InternalDocument : _@href ( i r i : " c t : InternalDocument ")
f i l e t y p e : _@href ( i r i : " c t : f i l e t y p e ")
b e l o n g s T o C o n t a i n e r : _@href ( i r i : " c t : b e l o n g s T o C o n t a i n e r " )
C o n t a i n e r D e s c r i p t i o n : _@href ( i r i : " c t : C o n t a i n e r D e s c r i p t i o n ")
type InternalDocument @ s e r v i c e ( i d : " i c d d ") {
f i l e n a m e : S t r i n g @ s e r v i c e ( i d : " i c d d " )
b e l o n g s T o C o n t a i n e r : [ C o n t a i n e r D e s c r i p t i o n ] @ s e r v i c e ( i d : " i c d d ")
}
Listing 1.1. Fragment of a HyperGraphQL schema. &lt;Container&gt; in the Context
should be replaced with the original URI.</p>
          <p>Apart from that, a HyperGraphQL instance needs a config.json file as a setup
guide (Listing 1.2. The config.json file states data for setting up the server, such
as its name, the schema to use and the hosting port. Furthermore, it defines the
RDF graphs that can be queried by providing a local path or URI to the graph.
Multiple graphs can be included in one configuration file, although types in a
schema can only be used to query one service. For example, the types defined
in Listing 1.1 are set to be queried against the graph with ‘icdd’ as a name
(defined in the config.json file). This means that for querying multiple graphs with
the same types, these should be merged before querying. Listing 1.2 depicts a
schema that uses a schema with name schemaICDD.graphl (relative path) and
queries a local TTL graph with id ‘icdd’.
{
}
" i d " : " i c d d " ,
" t y p e " : " LocalModelSPARQLService " ,
" f i l e p a t h " : " s r c / main / r e s o u r c e s /ICDD . t t l " ,
" f i l e t y p e " : "TTL"</p>
          <p>
            Listing 1.2. Example of a config.json file used by a HyperGraphQL service.
GraphQL-LD In contrast with the HyperGraphQL approach, GraphQL-LD
does not require an additional service to be set up between server and client
[
            <xref ref-type="bibr" rid="ref11">11</xref>
            ]. Instead, it takes a GraphQL query and expands it with a JSON-LD
context. These are then translated into a SPARQL equivalent using a module called
‘GraphQL to SPARQL algebra’ 8. The RDF datastore can then be queried
using the resulting SPARQL query. A second module, called ‘SPARQL results to
tree’9 translates the results of such query to a tree structure that resembles
the structure of a ‘classic’ GraphQL query. GraphQL-LD can also directly be
implemented in Javascript applications, due to its integration in the Comunica
Framework [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ].
          </p>
          <p>Comparison Both solutions have their merits and disadvantages. As they are
essentially querying tree structures, they are less expressive than SPARQL, but
they allow a more accessible way of querying basic RDF datasets. Nevertheless,
neither of them has the option to perform ‘mutations’, which can alter an existing
database. Developers who want their apps to work with existing RDF databases
(i.e. creating, reading, updating, deleting), can currently only read data if they
use a GraphQL syntax. Furthermore, both are works in progress, which means
not all expressivity of GraphQL can be implemented. For example, the concept</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>8 https://github.com/rubensworks/graphql-to-sparql.js 9 https://github.com/rubensworks/sparqljson-to-tree.js</title>
      <p>
        of subclasses is available in GraphQL, but not in HyperGraphQL: querying some
fields of a product:BuildingElement will not automatically query these fields
for subclasses defined in the ontology (product:Door or product:Window will
not be included in the results), because, as far as we know, there is currently no
equivalent of GraphQL Union or Interface implemented in HyperGraphQL. In
the case of GraphQL-LD, this is less of a problem, since the eventual query is
performed using SPARQL. If the query is performed against a SPARQL endpoint
with reasoning, there is no real difference with an ‘original’ SPARQL query.
A disadvantage (in certain contexts) of GraphQL-LD, on the other hand, is
that it is ’predicate-oriented’, which makes it difficult to perform subject-based
queries, requiring a workaround that complicates the GraphQL query itself. A
more detailed comparison between both query languages has been made by [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ],
focusing on their potential for distributed services in the building industry.
      </p>
      <p>In the next section, an ICDD container will be queried using these
approaches: HyperGraphQL, GraphQL-LD and SPARQL. A GraphQL schema and
config.json for HyperGraphQL is automatically generated with a basic convertor
tool in development10, as well as a JSON context for GraphQL-LD.
3</p>
      <sec id="sec-3-1">
        <title>Use case: querying an ICDD container</title>
        <p>The sample dataset ‘usecase_1b_delivery’11 is used as a case study. It is a
lightweight ICDD container that fits for demonstration purposes. Using the
abovementioned query languages, the container will be queried for available
sources, their name and filetype. Secondly, the container will be searched for
links between the documents on a sub-document level. We will compare the
results of different query types.
3.1</p>
        <sec id="sec-3-1-1">
          <title>Querying with HyperGraphQL</title>
          <p>In order to set up a query engine with HyperGraphQL, some pre-processing
steps need to be carried out first:
1. config.json: First, a configuration file is made, containing the information
to be used by the HyperGraphQL engine (e.g. the schema that is used and
the services that are queried).
2. Schema conversion: The next step is the conversion of the ontologies that
are present in the ICDD folder into a HyperGraphQL schema. Each type in
the schema refers to the service that it needs to query.
3. Data preparation: It has been mentioned that types in a HyperGraphQL
schema are working on only one service, while a linked ICDD container
essentially contains at least two describing graphs: the index.rdf graph and
the links.rdf (or content.rdf ). Both need to be parsed into a single graph
that can be used as one service in the config.json file, and to which the types
in the schema can refer.
10 https://github.com/JWerbrouck/Ontology2GraphQL
11 http://www.iso-icdd.org/examples/part1/usecase_1b_delivery.icdd
4. Service setup: Quering with HyperGraphQL requires the setup of an
intermediary service. This HyperGraphQL engine is bound to the schema, so
if the schema alters, the engine needs to be restarted. After the startup of
the service, a graphical interface (GraphiQL) for querying the graph is set
up, which can be used for performing GraphQL queries.
The first query is aimed at finding all documents that are linked in the
container (Fig. 3). A first issue is that only subclasses of ct:Document are present
in the folder. As mentioned, subclass inference is not implemented, so the
different types of documents need to be queried explicitly. The second query searches
for links between identifiers within documents (Fig. 4). However, the schema
had to be adapted manually, for the range of ls:hasDocument to focus on
InternalDocument instead of its superclass ct:Document. This is possible
because we knew before that there were no other types of documents in the ICDD
sample datasets. In a real world situation, this will not always be the case,
which makes it quite a large disadvantage. The reason that it was possible
in the first scenario to query withouth adapting the scheme, is because there,
InternalDocument was queried as a GraphQL type, not as a field.
3.2</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Querying with GraphQL-LD</title>
          <p>For querying with GraphQL-LD, only a JSON-LD context is needed (e.g. Listing
1.3). Since we focus on querying, we only use the GraphQL-to-SPARQL module
and perform the resulting SPARQL query on a triple store (Fuseki) that contains
both the index.rdf and links.rdf graphs. The same query looks slightly different
when compared to the query performed in section 3.1, due to the difference
in processing. Because GraphQL-LD is predicate-oriented, a workaround has to
be made to query for an object with given class (Listing 1.4). Furthermore,
the variables of the query are automatically set to the fields that are queried,
ignoring the GraphQL classes. Because there is no field ‘uri’ (cf. the ‘_id’ field
that is assigned to every type in HyperGraphQL), it is therefore difficult to get
the URI of a queried type.</p>
          <p>The same first query from Section 3.1 (Fig. 3) can be written in GraphQL-LD
as depicted in Listing 1.4. This can be queried against any SPARQL endpoint,
after conversion by the GraphQL-to-SPARQL module. This yields the SPARQL
query that is shown in Listing 1.5.
{
" InternalDocument " :</p>
          <p>" ht tp : / /www. i s o i c d d . org / [ . . . ] / C o n t a i n e r#InternalDocument " ,
" f i l e t y p e " : " http : / /www. i s o i c d d . org / [ . . . ] / C o n t a i n e r#f i l e t y p e " ,
" f i l e n a m e " : " http : / /www. i s o i c d d . org / [ . . . ] / C o n t a i n e r#f i l e n a m e " ,
"a " : " http : / /www. w3 . org /1999/02/22 r d f syntax ns#type "
}</p>
          <p>Listing 1.3. JSON-LD context for querying with GraphQL-LD
{
}</p>
          <p>Listing 1.5. SPARQL translation of GraphQL query no. 1
Listing 1.6 shows the second query (Fig. 4), which is translated into SPARQL in
Listing 1.7. Note that, in this SPARQL translation, only the document and the
id were included as variables. A workaround for this could be to simply query for
all variables, by either replacing them with an asterisk manually or by means of
a code snippet. To avoid having identical variables, a concatenation takes place
to join the variable name with the previous ‘branches’ in the GraphQL query. A
naming of the fields is not required, but can be added for more clarity.
{ a (_: Link ) {
l i n k E l e m e n t : hasLinkElement {
document : hasDocument
i d U r i : h a s I d e n t i f i e r {</p>
          <p>i d : i d e n t i f i e r
SELECT ? linkElement_document ? linkElement_idUri_id
WHERE {
? b1 r d f : type l s : Link ;</p>
          <p>l s : hasLinkElement ? l i n k E l e m e n t .
? l i n k E l e m e n t l s : hasDocument ? linkElement_document ;</p>
          <p>l s : h a s I d e n t i f i e r ? l i n k E l e m e n t _ i d U r i .
? l i n k E l e m e n t _ i d U r i l s : i d e n t i f i e r ? linkElement_idUri_id .</p>
          <p>Listing 1.7. SPARQL translation of GraphQL query no. 2
3.3</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Querying with SPARQL</title>
          <p>Finally, the ICDD container is queried using SPARQL. Here, the two queries
can be combined into one (1.8). However, in this case the container only has
one ct:ContainerDescription, which is why this variable is somewhat obsolete
and therefore not listed in the results. Furthermore, the query searches for the
links, the name and extension of the documents they refer to and the identifiers
at sub-document level.
PREFIX c t : &lt;http : / /www. i s o i c d d . org / p a r t 1 /2019/ C o n t a i n e r#&gt;
PREFIX l s : &lt;ht tp : / /www. i s o i c d d . org / p a r t 1 /2019/ L i n k s e t#&gt;
SELECT ? l i n k ?name ? type ? i d
WHERE {
? i n d e x a c t : C o n t a i n e r D e s c r i p t i o n ;</p>
          <p>c t : containsDocument ? doc .
? doc c t : f i l e n a m e ?name ;</p>
          <p>c t : f i l e t y p e ? type .
? l i n k a l s : Link ;</p>
          <p>l s : hasLinkElement ? LinkElement .
? LinkElement l s : hasDocument ? doc ;</p>
          <p>l s : h a s I d e n t i f i e r ? id_guid .</p>
          <p>? id_guid l s : i d e n t i f i e r ? i d .
}</p>
          <p>Listing 1.8. SPARQL translation of GraphQL query no. 2
As was the case in section 3.2, this query can be performed against all SPARQL
endpoints, which makes it possible to enable reasoning engines. The results are
depicted in Table 2. Three links are present in this ICDD container, two of which
connect the IDs within two documents, one of them relates to three IDs.
In this paper, three query syntaxes were discussed to retrieve data from an
RDF dataset. The first two rely on the GraphQL syntax, but extend it towards
linked data. While HyperGraphQL uses a schema that is fully compliant with
the GraphQL specifications, GraphQL-LD translates the syntax of a GraphQL
query into SPARQL ‘under-the-hood’. Another way for easily querying Linked
Data, LDflex, was not included in the discussion because of its dependency on
Javascript.</p>
          <p>ICDD presents an interesting way of interlinking document-based
information with RDF information, providing a way to use RDF to semantically
annotate information that is nevertheless stored in a non-Linked Data way. ICDD
datasets have a clear structure and are not overly complex, making them suitable
to serve as use cases for testing the abovementioned query syntaxes. As ICDD is
intended for use within the industry, being able to query it in a simple manner
could certainly lower the threshold for developers to use Linked Data in their
applications.</p>
          <p>
            It is clear that SPARQL is the most expressive of these three languages.
SPARQL also inherently uses context, while for the other two, a context needs
to be provided. This makes it difficult to include external data sets on the web,
because the statements used in such datasets might not be explicitly available in
the context used for querying. However, for simple queries on a known dataset
(such as an ICDD container), GraphQL-based queries find their worthiness in
the fact that they hide the verbosity of SPARQL behind the elegant and concise
syntax of GraphQL. When a fixed dataset is present, such as an ICDD container
that contains only internal documents, HyperGraphQL offers a clean way of
querying, also due to its ‘introspection’ feature that helps querying the correct
schema definitions. On the other hand, as indicated in [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ], the use of
GraphQLLD is preferable in situations in which several endpoints need to be queried, with
flexible context adaptation. In other words, when decentralised applications are
developed to query distributed datasets. The ICDD ontologies may be of use
to link such datasets, owned by different project stakeholders, without the need
of creating an ICDD dump file. Querying with HyperGraphQL is somewhat
limited in such scenario, since it is more cumbersome to set up and less flexible
to incorporate changing query situations. Querying distributed datasets requires
a more ‘open world’ approach that is difficult to implement in HyperGraphQL
schemas. It can be argued that the use of fixed HyperGraphQL schemas can
be of use to allow fine-grained access to certain building data, based on the
role of the person that queries the data, since types that are not present in
the schema cannot be queried. However, further research needs to be carried
out to gain insight in this potential benefit. Lastly, both GraphQL solutions are
essentially only query languages. There are currently no translations to SPARQL
CONSTRUCT, or respectively GraphQL mutations. If, in the future, one of these
would provide functionality to also update the data using GraphQL syntax, this
would open a lot of options for development and querying of basic Linked
Databased services, all behind a clean GraphQL facade.
5
          </p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Acknowledgements</title>
        <p>The authors would like to acknowledge the support by both the Special
Research Fund (BOF) from Ghent University and the BIM4REN project, which
has received funding from the European Union’s Horizon 2020 Research and
Innovation Program under grant agreement No 820773.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Beetz</surname>
          </string-name>
          , J.,
          <string-name>
            <surname>Van Leeuwen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Vries</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Ifcowl: A case of transforming express schemas into ontologies</article-title>
          .
          <source>Ai Edam</source>
          <volume>23</volume>
          (
          <issue>1</issue>
          ),
          <fpage>89</fpage>
          -
          <lpage>101</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Beetz</surname>
          </string-name>
          , J.,
          <string-name>
            <surname>Van Leeuwen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Vries</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>An ontology web language notation of the industry foundation classes</article-title>
          .
          <source>In: Proceedings of the 22nd CIB W78 Conference on Information Technology in Construction</source>
          . vol.
          <year>2006</year>
          , p.
          <fpage>670</fpage>
          . Technical University of Dresden (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Facebook</given-names>
            <surname>Inc</surname>
          </string-name>
          .: GraphQL, https://facebook.github.io/graphql/June2018/
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Gürtler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baumgärtel</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scherer</surname>
          </string-name>
          , R.J.:
          <article-title>Towards a workflow-driven multi-model bim collaboration platform</article-title>
          .
          <source>In: Working Conference on Virtual Enterprises</source>
          . pp.
          <fpage>235</fpage>
          -
          <lpage>242</lpage>
          . Springer (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Pauwels</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Terkaj</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Express to owl for construction industry: Towards a recommendable and usable ifcowl ontology</article-title>
          .
          <source>Autom. Constr</source>
          <volume>63</volume>
          ,
          <fpage>100</fpage>
          -
          <lpage>133</lpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Rasmussen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pauwels</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lefrançois</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schneider</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hviid</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karlshøj</surname>
          </string-name>
          , J.:
          <article-title>Recent changes in the building topology ontology</article-title>
          .
          <source>In: LDAC2017-5th Linked Data in Architecture and Construction Workshop</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Rasmussen</surname>
            ,
            <given-names>M.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pauwels</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hviid</surname>
            ,
            <given-names>C.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karlshøj</surname>
          </string-name>
          , J.:
          <article-title>Proposing a central aec ontology that allows for domain specific extensions</article-title>
          .
          <source>In: 2017 Lean and Computing in Construction Congress</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Schapke</surname>
            ,
            <given-names>S.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katranuschkov</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scherer</surname>
          </string-name>
          , R.J.:
          <article-title>Towards ontology-based management of distributed multi-model project spaces</article-title>
          .
          <source>In: Proceedings of the CIB-W78 conference on IT in construction (</source>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>9. Semantic Integration Ltd.: HyperGraphQL, https://www.hypergraphql.org/</mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Taelman</surname>
            , R., Van Herwegen,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vander</surname>
            <given-names>Sande</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Verborgh</surname>
          </string-name>
          , R.:
          <article-title>Comunica: a modular sparql query engine for the web</article-title>
          . In: International Semantic Web Conference. pp.
          <fpage>239</fpage>
          -
          <lpage>255</lpage>
          . Springer (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Taelman</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Vander</given-names>
            <surname>Sande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Verborgh</surname>
          </string-name>
          , R.: GraphQL-LD:
          <article-title>Linked Data Querying with GraphQL</article-title>
          .
          <source>In: ISWC2018, the 17th International Semantic Web Conference</source>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Taelman</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Vander</given-names>
            <surname>Sande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Verborgh</surname>
          </string-name>
          , R.:
          <article-title>Bridges between graphql and rdf</article-title>
          .
          <source>In: W3C Workshop on Web Standardization for Graph Data. W3C</source>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Törmä</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Semantic linking of building information models</article-title>
          .
          <source>In: 2013 IEEE Seventh International Conference on Semantic Computing</source>
          . pp.
          <fpage>412</fpage>
          -
          <lpage>419</lpage>
          . IEEE (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Verborgh</surname>
          </string-name>
          , R.:
          <article-title>Designing a linked data developer experience (</article-title>
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Werbrouck</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pauwels</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beetz</surname>
            , J., van Berlo,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Towards a decentralised common data environment using linked building data within the solid ecosystem</article-title>
          .
          <source>In: Proceedings of the 36th CIB W78 Conference on Information Technology in Construction. CIB W78</source>
          (
          <article-title>Under review)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Werbrouck</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Senthilvel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beetz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bourreau</surname>
          </string-name>
          , P.,
          <string-name>
            <surname>van Berlo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Semantic query languages for knowledge-based web services in a construction context</article-title>
          .
          <source>In: 26th International Workshop on Intelligent Computing in Engineering. EG-ICE (Under review)</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>