Abstract
The paper analyzes and characterizes the algebraic and logical structure of the multiset semantics for SPARQL patterns involving AND, UNION, FILTER, EXCEPT, and SELECT. To do this, we align SPARQL with two well-established query languages: Datalog and Relational Algebra. Specifically, we study (i) a version of nonrecursive Datalog with safe negation extended to support multisets, and (ii) a multiset relational algebra comprising projection, selection, natural join, arithmetic union, and except. We prove that these three formalisms are expressively equivalent under multiset semantics.
Introduction
Informally speaking, multisets are sets in which each element could occur multiple times, that is, the number of “copies” of each element matters. In the field of databases, the notion of multisets (also called “duplicates” or “bags”) 1 has been studied in several contexts, including programming languages (Breazu-Tannen & Subrahmanyam, 1991; Lloyd, 1998), bag languages (Albert, 1991; Colby & Libkin, 1997; Grumbach et al., 1996; Grumbach & Milo, 1996; Libkin & Wong, 1994, 1997), relational algebra (Console et al., 2022; Dayal, Goodman, & Katz, 1982; Klausner & Goodman, 1985), Datalog (Afrati et al., 2010; Bertossi, Gottlob, & Pichler, 2019; Cohen, 2009; Mumick et al., 1990a, 1990b), SQL (Guagliardo & Libkin, 2017; Ricciotti & Cheney, 2019), SPARQL (Angles & Gutiérrez, 2016; Geerts et al., 2016; Kaminski et al., 2016; Polleres & Wallner, 2013), and data integration (Hernich & Kolaitis, 2017).
The incorporation of multisets in query languages is essentially due to practical concerns: duplicate elimination is expensive, and duplicates might be required for some applications, for example, for aggregation. Although this design decision may be debatable (see, e.g., Date, 2006), today multisets are an established reality in database systems (Green, 2009; Lamperti et al., 2001).
The classical theory behind declarative query languages includes formalisms (relational algebra or relational calculus) that, for sets, have a clear and intuitive semantics for users, developers, and theoreticians (Abiteboul et al., 1995). The same cannot be said for their extensions to multisets, whose theory is complex (particularly the containment of queries), and their practical use is not always clear (Green, 2009). Worst, there exist several possible ways of extending set relational operators to multisets, which makes the study and design of multiset semantics for query languages challenging.
To illustrate the variety of possible semantics, we will show the different extensions to multisets of set operators found in the literature. Consider the following multiset relations: The selection returns the tuples satisfying a given condition but keeping cardinalities. For example, The Cartesian product results in the multiplication of the cardinalities. For example, The join results in the multiplication of the cardinalities, as it is expressed as a Cartesian product followed by a selection. For example, The max-union takes the maximum number of occurrences of an element. For example, The arithmetic union adds up cardinalities. For example, The min-intersection takes the minimum number of occurrences of each element in the intersection. For example, The max-intersection returns the product of the cardinalities of each element in the intersection. For example, The arithmetic difference subtracts the cardinalities of the elements up to zero. For example The existential negation returns the elements in the first multiset that do not occur in the second one, and keeps the cardinalities of such elements in the first multiset. For example, the expression The projection reduces the number of attributes in each tuple, and gives rise to new cardinalities for the resulting tuples. For example
Table 1 shows a summary of the above operators, and their corresponding implementation in SQL and SPARQL. Note that SQL can express all the operators, whereas SPARQL does not support max-union, min-intersection, and arithmetic difference. Also note that SPARQL uses the AND operator to implement the Cartesian product and max-intersection. The first case occurs because
Possible Ways of Extending Set Operators With Multiset Semantics in SQL and SPARQL.
Note. The table shows several extended relational algebra operations for multisets currently present (or possible to implement) in SQL and SPARQL. Let
The landscape of operators over multisets poses important challenges for integrating multisets in query languages. First, as shown in Table 1, some operators exhibit different semantics when applied to multisets. Second, while relational algebra and SQL support all the semantics listed, SPARQL and Datalog only support a subset. Third—and this is the main motivation for our research—it remains unclear whether there exists an optimal set of multiset operators for SPARQL, and if so, which one it is. To tackle these questions, it is essential to understand how formalisms that are “closed” with respect to SPARQL behave, and how their design and behavior can inform or be translated into SPARQL. In technical terms, this means analyzing the expressive power of SPARQL regarding multisets. To this end, we focus on two natural and well-studied reference points: relational algebra and Datalog. That is the aim of this article. Next, we review the existing literature about multisets.
Related Work. First, we consider the research works that define general algebras for manipulating bags. Albert (1991) extended typical set operations (union, intersection, difference, and Boolean selection) to bags, and demonstrated that some of the algebraic properties for sets fail for multisets. Grumbach et al. (1996) introduced a bag algebra, called BALG, that extends relational operations to handle duplicates. This paper shows that BALG is more expressive than standard relational algebra because it can count duplicates, but it still has low data complexity (LOGSPACE). Grumbach and Milo (1996) focused on designing bag algebras that are both expressive and computationally tractable. They introduce restricted forms of projection and join to maintain tractable data complexity. Libkin and Wong (1994, 1997) introduced BQL, a query language for handling bags and aggregate functions (sum, count, and avg.). They show that BQL is more expressive than traditional set-based languages, and show that after incorporating structural recursion to BQL, it is able to express all primitive recursive functions, significantly increasing its computational power. Ricciotti and Cheney (2019) explored how to mix set and bag semantics in query languages, addressing practical needs found in SQL (e.g., SELECT vs. SELECT DISTINCT). They propose a formal model that supports both semantics and allows translation between them.
The first attempt to extend the relational algebra to include multisets was made by Dayal et al. (1982). In this work, the authors introduced a multiset relational algebra (MRA; formed by the operators of projection, selection, join, max-union, arithmetic union, min-intersection, and arithmetic difference) and studied their algebraic properties. This work laid the groundwork for formalizing bag semantics in relational query languages. Klausner and Goodman (1985) provided a semantic framework for understanding the role of multirelations (relations with duplicates) at the conceptual level. The authors explain how any query language can be extended consistently to have full multirelational expressiveness. Afrati et al. (2010) studied query containment in relational databases under bag semantics and bag-set semantics (duplicates allowed in intermediate steps but not in the final output). The authors identify conditions under which containment is decidable and provide complexity results. Console et al. (2022) investigated fragments of bag relational algebra, focusing on their expressive power. The authors also study query answering over bags with nulls (i.e., under incomplete data).
Multisets have also been the subject of study in the context of Datalog, with various extensions proposed to support bag semantics. Mumick et al. (1990a) defined the Magic Sets transformation for optimizing recursive queries, and described how to adapt this technique to support duplicates. They also showed how to efficiently evaluate recursive queries under multiset semantics. In a subsequent work (Mumick et al., 1990b), Mumick et al. extended the Magic Sets technique to support duplicates and aggregate functions in recursive queries. The authors also studied the challenges of preserving correct bag semantics when applying recursion and aggregation. Cohen (2009) studied the problem of query equivalence under bag semantics. This work includes complexity results and demonstrates that equivalence checking is significantly harder under bag semantics. Mumick et al. (1990a) developed a translation of Datalog under bag semantics into warded Datalog
For SPARQL—the standard query language for RDF databases—Pérez et al. (2006) provided the first formal treatment of its multiset semantics. This work influenced the definition of SPARQL 1.0 (Prud’hommeaux & Seaborne, 2008) and SPARQL 1.1 (Harris & Seaborne, 2013), whose semantics are based on operations over multisets of mappings (although a database is a set of RDF triples). Schmidt et al. (2010) presented a formal framework for SPARQL query optimization, addressing both set and bag semantics. The authors analyzed the algebraic properties of SPARQL operations such as OPTIONAL, UNION, and FILTER under multisets, and introduced equivalence rules and normal forms for optimizing queries. Kaminski et al. (2016) presented a formal investigation of subqueries and aggregate functions in SPARQL 1.1, focusing on their semantics under multisets. The authors analyzed the expressive power of these constructs, showing that SPARQL 1.1 is strictly more expressive than SPARQL 1.0 due to these features.
Finally, we review research articles that present comparisons and translations among SPARQL, relational algebra, and Datalog. Cyganiak (2005) was among the first to translate a core fragment of SPARQL into relational algebra. Polleres (2007) proved the inclusion of the fragment of SPARQL patterns with safe filters into Datalog by providing a precise and correct set of rules. Schenk (2007) proposed a formal semantics for SPARQL based on Datalog, but concentrated on complexity more than expressiveness issues. Both Polleres and Schenk did not consider the multiset semantics of SPARQL in their translations. Angles and Gutiérrez (2008) studied the expressive power of SPARQL by providing a translation to nonrecursive safe Datalog with negation. Chebotko et al. (2009) addressed the problem of translating SPARQL queries into SQL while preserving bag semantics. The authors proposed a formal translation framework that captures the subtleties of OPTIONAL, UNION, and FILTER, and ensures that duplicates in the result sets are handled correctly when mapped to relational databases. Angles and Gutiérrez (2016) studied the multiset semantics of SPARQL patterns by translating its patterns into two languages: a version of MRA and multiset nonrecursive Datalog with safe negation. Angles et al. (2023) implemented the translation from SPARQL to Datalog within the Vadalog system (Bellomarini et al., 2018).
Objectives and Contributions. The main objective of this article is to examine the theoretical foundations of SPARQL’s multiset semantics. To do so, we compare it with classical algebraic and logical frameworks—specifically, Relational Algebra and Datalog. We focus on the SPARQL fragment built from AND, UNION, FILTER, EXCEPT, and SELECT, characterizing its structure and proving its expressive equivalence with corresponding fragments of Relational Algebra and Datalog.
The specific contributions of our research are as follows: Based on the work of Mumick et al. (1990b), who defined the multiset semantics for Datalog without negation, we defined a version called nonrecursive multiset Datalog with safe negation ( Based on the work of Dayal et al. (1982), who extended the relational algebra to include multiset relations, we defined a multiset relational algebra (MRA. The definition of MRA includes the operators of projection ( We show the equivalence among the aforementioned SPARQL fragment, MRA, and
Schema of Correspondences Among: SPARQL Graph Patterns, MRA Expressions,
Note. MRA = multiset relational algebra;
This paper extends a previously published conference paper (Angles & Gutiérrez, 2016). Herein, we provide an extended discussion throughout. We extend the study to some operators that were introduced in version 1.1 of SPARQL after the publication of our previous work, and we extend the analysis to also consider bag semantics. Some of the additional contributions of this paper come from Hernández’s PhD thesis (Hernández, 2020).
The rest of the article is organized as follows. Section 2 presents basic concepts and notations. The SPARQL query language is defined in Section 3.
This section provides the concepts and formal notation we will follow regarding multisets and the expressive power of query languages.
Multisets
Informally, a multiset is an unordered collection of elements where each element may occur more than once. Formally, a multiset is a tuple
When dealing with multisets, formally describing each “copy” of an element is challenging. The notion of colored set (Mumick et al., 1990b) is a formalism to do this. Indeed, assuming that the set of colors is
Let
Next, we present the notion of query language and two notions of expressive power used in this paper.
Query language
A query language
Let
Given a query language
In this context, the expressive power of a query language
The query languages studied in this paper do not satisfy the aforementioned property of having a common set of databases and query answers. Thus, we need an extended version of the notion of expressive power as in Definition 2 below.
Generalized expressive power
Given two query languages
The above definition of generalized expressive power is implicit in the translations by Polleres (2007), Angles and Gutiérrez (2008, 2016), and Polleres and Wallner (2013).
Observe that the extended notion defined above defines a partial order: the containment relation on the equivalence classes over the relation

Transitivity of language containment. The figure represents three languages
In the remainder of this paper, we define three families of query languages:

The triangle of simulations among SPARQL,
SPARQL (Harris & Seaborne, 2013; Prud’hommeaux & Seaborne, 2008) is the standard query language for RDF. In this paper, we study a fragment of SPARQL, the “relational core,” described by Angles and Gutiérrez (2016), which considers the operators FILTER, SELECT, AND, UNION, and EXCEPT. This fragment captures the graph pattern queries in SPARQL essentially. In fact, it has been proved (Angles & Gutiérrez, 2016; Kontchakov & Kostylev, 2016) that it is mutually expressible with the standard-core consisting of the operators FILTER, SELECT, AND, UNION, OPTIONAL, and MINUS. (In what follows, when speaking of “SPARQL” we will mean this fragment.)
RDF Graphs
Assume two disjoint infinite sets
A SPARQL database will be a set of RDF triples.
Note: In addition to
SPARQL Syntax
Assume the existence of an infinite set
A SPARQL pattern is defined recursively as follows: A triple from If If If
A solution mapping (or just mapping from now on) is a partial function
Let
The evaluation of a filter condition
If If If If
Evaluation of Complex Filter Conditions (Prud’hommeaux & Seaborne, 2008, § 17.2), where
The evaluation of a pattern
If If If If If If
To facilitate the translation from SPARQL to relational algebra and Datalog, we use the difference operator
The solution mappings of a SPARQL pattern
Assume a pattern
In-scope variables are defined as follows. Let If If If If
So far, we have described how to translate the results of SPARQL queries to relations. However, languages built upon relations have some restrictions that make a straightforward translation of the SPARQL operations difficult. The relational selection operation requires all attributes in the selection formula to be attributes of the relation; the relational union is done over relations of the same schema; and the relational difference requires all variables in the subtrahend to be instanced in the minuend. Conversely, SPARQL does not have these restrictions. We next present a normal form to simplify the translation from SPARQL to relational languages by satisfying the constraints of the target languages.
A pattern For every subpattern For every subpattern For every subpattern
Every SPARQL query (in the fragment described in Section 3.2) can be rewritten as an equivalent normalized SPARQL query.
The conditions that make a pattern normalized refer to restrictions on the in-scope variables of patterns. Patterns that are not normalized include at least one subpattern that has either the form
Given a pattern
Let
Let
This section presents an extension of Datalog to support multiset semantics. Based on the work of Mumick et al. (1990b), a database is defined to allow duplicate facts, and the evaluation of a fact is given by the number of different proofs for that fact. We extended Mumick’s formalism in Angles and Gutiérrez (2016) to provide a more complete formalism including negation, which we call
Syntax
Assume three disjoint sets: variables, constants, and predicate names. A term is either a variable or a constant. An atom is an expression
A fact is a positive literal that does not contain any variables. A
A program
A variable
The dependency graph of a program
A goal clause is an atom without constants. An
Semantics
We follow the formalisms by Mumick et al. (1990b) and Bertossi et al. (2019) that use a proof-theoretic semantics for
A substitution is a partial function
The notion of “derivation tree” (Mumick et al., 1990b) will be used to count the number of proofs for an atom. Formally, a Derivation Tree is a connected, undirected graph, with no cycles, represented as a tuple
Let
Assume that
Let For every fact Assume that DT is the set of derivation trees obtained for the facts in
Let

Example of derivation trees. Let
The
Observe that the domain of the query answer for a query
The multiset Datalog query language presented here,
Next, we show the feasibility of this normalization.
Every
We provide a normalization algorithm that replaces every rule in the query by a set of rules that do not change the semantics of the query. Given an Rules Rules A rule
Let
The MRA used in this paper is based on the semantics defined by Dayal et al. (1982). This algebra considers the operations of selection, projection, natural join, and arithmetic union. Additionally, we include operators for renaming and filter difference (or “except”).
Multiset Relations
Assume that
A relation schema is given by a relation name
A tuple over a relation schema
A multiset relation
A relational database schema is a set of relation schemas. Given a relational database schema
Let
Syntax of MRA
The MRA defined in this paper includes the operators of selection (
A selection formula A relation name If If If If If If
Note that a selection operation
Given a selection formula If If If If If If
Now, the evaluation of an MRA expression
Let If If If If If If If
Hence, in MRA, the set of queries is the set of MRA expressions, the set of databases is the set of multiset relational databases, the set of results is the set of multiset relations, and the evaluation procedure is the aforementioned function
This section presents the simulations that prove that SPARQL and
From SPARQL to
This section shows that SPARQL can be simulated by function function function
Recall that a SPARQL database is a set of RDF triples, and an
Function
Let for each RDF term for each RDF triple
Intuitively: a fact of the form
Let
In general terms, any SPARQL graph pattern can be translated into a set of
An initial issue is the translation of a filter graph pattern
Consider the following equivalences:
To see why equivalence (2) is not valid, consider the case where for a solution To see why equivalence (3) is not valid, consider the case where for a solution mapping
Intuitively, equivalence (2) is no longer valid when we change from set semantics to bag semantics, whereas equivalence (3) is no longer valid when we change from two-valued logic to three-valued logic. In the following, we show how to solve these problems.
We say that two filter conditions
Given that
Now, consider the following equivalence:
Equivalence (4) solves one of the problems of equivalence (2), but it still has problems in evaluating formulas with errors. In order to solve them, we introduce the notion of “error filter condition.”
Let if if if if if if
For every filter condition
This lemma is proved by induction on the structure of the filter condition (see Claim 1 in the Appendix).
Let
As defined by Lemma 4, the filter condition
Now we present an equivalence for the disjunction that works in all cases.
Given two filter conditions
Since
Finally, we provide a translation for filter graph patterns that have a negation. Under two-valued logic, the evaluation of a pattern
Given a filter condition
The equivalence follows from the fact that the filter discards from the solutions of
Now we are ready to present the effectiveness of rewriting that allows for the reduction of complex filter conditions.
Given a pattern
Given a pattern
This lemma is proved by induction on the structure of the filter condition in the pattern. The base case consists of a filter condition
Translation of SPARQL Graph Patterns Into Datalog Rules
The translation essentially follows the idea presented by Polleres (2007), adapted to multisets by Angles and Gutiérrez (2016), and improved by Hernández (2020). Specifically, we cover the following issues: It considers the cases where a filter condition is evaluated as an error. Some solutions are lost when these cases are not considered. It considers that the equality
Given a SPARQL graph pattern
Definition of Function
Note.
A parse tree for a graph pattern
Given a graph pattern
Let
Assume that Parse tree of the normalized SPARQL graph pattern presented in Example 6. Each node represents a graph pattern, and each edge represents a composition relationship between graph patterns. The nodes were enumerated using a post-order traversal of the tree. In this figure:

Note that the predicate names are enumerated according to the parse tree shown in Figure 4. In this sense: the rule
Based on the function
Given a SPARQL query
Translating Query Answers From
to SPARQL
Recall that an
The main difference between a multiset of substitutions
Function
Given a multiset of Datalog substitutions
SPARQL can be simulated by
We need to show that, using the functions defined above,
This section shows that
In general terms, a fact
In what follows, we will assume that
Function
Assume that the
Then the function
Let
Intuitively, the SPARQL database corresponding to the
A notable difference between
In this case, we rewrite
Let If predicate name Otherwise, if If If If Note that, if there is just one rule
Consider the
The function
To solve the aforementioned issue of having an empty SPARQL query answer, we can extend the function
Given an
Consider the
Recall that a SPARQL query answer is a multiset of solution mappings, and an
Function
Let Given a SPARQL mapping
This is a long but straightforward induction on Datalog queries using as a hypothesis that
Putting together the simulations among SPARQL and
SPARQL and
The claim is based on the simulation of SPARQL with
This section presents the simulations that prove that MRA and
From MRA to
This section shows that MRA can be simulated by
Recall that an MRA database is a set of relations (where each relation is a multiset of tuples), and an
Assume the existence of functions that map: MRA relation names to
Given a multiset relation
Function
Given an MRA database For each MRA relation For each constant
Let
Note that the multiset of Datalog facts
Recall that an MRA query is a relational algebra expression, and an
First, we need to provide a recursive method to reduce MRA selection formulas into atomic formulas. Such a method is based on the following equivalences where
For every MRA expression
The proof follows from induction in the number
Definition of Function
Which Translates an MRA Expression Into a set of Datalog Rules.
Definition of Function
Note. MRA = multiset relational algebra. Given an MRA expression
Note that function
Recall that an
Function
Given an
MRA can be simulated by
Let
This section shows that
Translating Databases From
to MRA
Recall that a database in
Next, we define function
Function
Let
Let
Recall that an
Let
Given a literal If predicate name Otherwise, if
Given a rule If If If
Given a normalized
Translating Query Answers From MRA to
Recall that an MRA query answer is a multiset relation, and an
Function
Given an MRA relation
This is a long but straightforward induction on Datalog queries using as a hypothesis that
Putting together the simulations among MRA and
MRA and
The claim is based on the simulation of MRA with
This section presents the simulations that prove that MRA and SPARQL have the same expressive power. Specifically, we show that MRA can be simulated by SPARQL (Section 8.1), and SPARQL can be simulated by MRA (Section 8.2).
From MRA to SPARQL
This section shows that MRA can be simulated by SPARQL. To support this, we describe the following translation functions:
Recall that an MRA database is a set of relations (where each relation is a multiset of tuples), and a SPARQL database is a set of triples.
Assume the existence of functions that map relation names to IRIs, relation attributes to IRIs, and tuples to IRIs.
Let
Function
Given an MRA database For each multiset relation
Let
Recall that an MRA query is a relational algebra expression and a SPARQL query is a graph pattern.
First, consider the following issue. A query answer in MRA is a multiset relation
Given an MRA expression
Consider the MRA expression
Recall that an MRA query is an MRA expression, and a SPARQL query is a SPARQL graph pattern. We will show that every type of MRA expression can be translated to a specific type of SPARQL graph pattern. Table 6 shows the translation rules that are the basis for the following definition.
Definition of Function
Note. MRA = multiset relational algebra.
Given an MRA expression
Consider the MRA expression
Recall that a query answer in SPARQL is a multiset of mappings, and a query answer in MRA is a multiset relation (i.e., a multiset of tuples). Intuitively, a multiset of mappings
Function
Let For each variable The tuple
MRA can be simulated in SPARQL.
Let
This section shows that SPARQL can be simulated by MRA. To support this, we describe the following translation functions:
The translation presented here is inspired by the one presented by Cyganiak (2005). However, unlike Cyganiak, we do not use null values with the SQL semantics. Instead, we use a special constant, denoted
Recall that a SPARQL database is a set of RDF triples, and an MRA database is a set of multiset relations. The translation of a set of RDF triples
Function
Let
Let
Recall that a SPARQL query is a graph pattern, and an MRA query is a relational algebra expression. First, we define the function
Assume that if if if if if if if if if if if
Second, we define a function
Given an atomic filter condition If If If
In Definition 21, we introduced the relation named
Let
Let
Given two MRA expressions
To translate SPARQL queries
Next, we present the translation of SPARQL queries to MRA queries.
Definition of the Function
, Which Takes a Normalized SPARQL Pattern
as Input (Without Logical Connectives in Filter Conditions) and Returns an MRA Query.
Definition of the Function
Note. MRA = multiset relational algebra.
Let
Recall that an MRA query answer is a multiset of tuples, and a SPARQL query answer is a multiset of solution mappings. Next, we define the function
Intuitively, the translation of an MRA tuple
Function
Given an MRA tuple
SPARQL can be simulated by MRA.
This is a long but straightforward induction on the structure of SPARQL queries using as a hypothesis that
Putting together the simulations among MRA and SPARQL stated in this section, we get the following theorem:
MRA and SPARQL have the same expressive power.
The claim is based on the simulation of MRA with SPARQL (Lemma 13) and the simulation of SPARQL with MRA (Lemma 14).
We studied the algebraic and logic structure of the multiset semantics of the core SPARQL patterns, and compared it to the classical and well-studied formalisms of MRA and multiset Datalog. Our motivation was to shed light on the underlying theoretical structure of the multiset features of SPARQL that could help improve future designs and implementations. In this regard, the main discoveries of this research are: (1) the core fragment of SPARQL patterns matches precisely the multiset semantics of Datalog as defined by Mumick et al. (1990b); and (2) this logical structure corresponds to a simple multiset algebra, namely the MRA. These correspondences, besides showing a nice parallel to the one exhibited by classical set relational algebra and relational calculus, and thus transferring theoretical guarantees from these well-studied formalisms, could help to give new insights into possible optimizations and future extensions of SPARQL.
We think there are a couple of lessons learned in the investigation of the multiset features of SPARQL. First, contrary to the rather chaotic variety of multiset operators in SQL, it is interesting to observe that the SPARQL design comprises a more coherent body of multiset operators. We suggest that this asset should be considered and curated by designers in order to try to keep this clean design in future extensions of SPARQL. Second, there is a challenging goal for query language designers that work with multisets: given the diversity of multiset extensions for each of the classical set operators, it is not evident at all from a theoretical perspective how to develop a logically coherent formalism that could integrate all or most of them.
Our study shows that there are fragments that behave coherently, but that operators do not fit in this schema, when available (not always), have to be accessed in a very ad-hoc manner. Last but not least, this study shows (and adds evidence of) the complexities and challenges that the introduction of multisets brings to query languages, exemplified here in the case of SPARQL. Many more use cases are needed in order to match the theoretical restrictions and recommendations (e.g., as studied in this paper), and real-life use cases that, to the best of our knowledge, do not yet have a good systematization.
Footnotes
Funding
The authors disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: R. Angles was supported by ANID FONDECYT Chile through grant 1221727. D. Hernández was supported by the German Research Foundation, Deutsche Forschungsgemeinschaft (DFG), grant SFB-1574-471687386. This work was partly funded by ANID - Millennium Science Initiative Program—Code ICN17_002.
Declaration of Conflicting Interests
The authors declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Notes
Appendix A. Variable renaming in SPARQL
This appendix section defines function
