October 23, 2025
Knowledge graph alignment is the task of matching equivalent entities (that is, instances and classes) and relations across two knowledge graphs. Most existing methods focus on pure entity-level alignment, computing the similarity of entities in some embedding space. They lack interpretable reasoning and need training data to work. In this paper, we propose FLORA, a simple yet effective method that (1) is unsupervised, i.e., does not require training data, (2) provides a holistic alignment for entities and relations iteratively, (3) is based on fuzzy logic and thus delivers interpretable results, (4) provably converges, (5) allows dangling entities, i.e., entities without a counterpart in the other KG, and (6) achieves state-of-the-art results on major benchmarks.
The task of Knowledge Graph (KG) alignment consists in matching both entities and relations in one KG to their equivalents in another. Figure 1 shows a toy example of alignment between DBpedia and Wikidata. KG alignment is useful for knowledge fusion [1], [2] and thus for a wide range of downstream applications like question answering [3], [4], common-sense reasoning [5], and recommender systems [6], [7]. It is a challenging task for several reasons. First, KGs are generally heterogeneous and incomplete: One KG may contain information that the other one does not contain. Second, entity names can differ vastly across KGs (in Figure 1 for instance, entities in Wikidata are represented by non-readable IDs, unlike in DBpedia). Third, training data are most often not available in practice, due to the high cost of manual annotation. Finally, the alignment of entities and relations is interdependent.
Many approaches exist for KG alignment, but most focus on the alignment of entities only. Moreover, they generally require training data [8] or assume a one-to-one entity mapping from one KG to the other (i.e, ignore dangling entities) [9]. A notable exception is PARIS [10], an approach based on the iterative computation of probabilistic equations that has been shown to outperform other methods in recent studies [11], [12]. However, this approach (1) lacks convergence guarantees, (2) does not achieve good performance when functional relations are absent, and (3) cannot see similarities between literals beyond a strict identity.
To address these shortcomings, we present FLORA1, a novel unsupervised approach for aligning both entities and relations. FLORA formalizes the alignment in Fuzzy Logic, in a principled framework that integrates various signals, both semantic and structural, and yields human-interpretable explanations for the results. FLORA works even in the presence of dangling entities and in the absence of functional relations. It relies on an iterative algorithm that provably converges. Our contributions are the following:
FLORA, an approach based on Fuzzy Logic for aligning entities and relations that accounts for the asymmetry of relation alignments and the incompleteness of KGs. Although unsupervised by nature, FLORA can optionally exploit training data if available.
An iterative algorithm that provably converges towards the optimal solution of the problem, as formalized in Fuzzy Logic.
Extensive experiments on five entity alignment datasets across four languages, as well as two KG alignment datasets from the OAEI KG Track, showing that FLORA consistently outperforms both unsupervised and supervised baselines.
In what follows, Section 2 reviews related work, Section 3 provides preliminaries, Section 4 introduces our Fuzzy Logic formalism, Section 5 presents our method, Section 6 shows experimental results, and Section 7 concludes and outlines future work. All our code and data are publicly available at https://github.com/dig-team/FLORA.
Many existing approaches to entity alignment (EA) work in a supervised setting [8]. They use either translation-based embedding [13]–[17], GNN encoders [18]–[22] or fine-tuned language models [23]–[26]. Different from these approaches, FLORA does not require training data. In the unsupervised setting, non-neural methods such as LogMap [27], PARIS [10], PRASE [28], and NALA [29] exploit logical reasoning and lexical matching. Other methods transform the EA task into an optimal assignment problem [9], [30], [31], or leverage names, attributes and relations to improve the alignment of entities [32]. Neural methods, such as ICLEA [33], SelfKG [34], LLM4EA [35] and HLMEA [36], adopt a self-supervised setting or leverage large language models (LLMs) in a zero-shot manner. Unlike FLORA, these methods are black-box methods, i.e., they cannot explain why a given alignment was found. Besides, we show in our experiments that FLORA outperforms all of the above approaches on standard benchmark datasets. Moreover, FLORA aligns not just entities, but also relations at the same time.
The task of KG alignment (also known as KG matching or holistic KG alignment) extends EA by aligning not only instances, but also classes and relations. Unlike Ontology Alignment [37], KG Alignment takes a simplistic view on classes, and typically does not consider asymmetric class subsumptions across KGs. The Ontology Alignment Evaluation Initiative (OAEI)2 organizes a KG track tailored for KG alignment. Methods such as OLaLa [38] and SOBERT [39] align only classes. Our work, in contrast, aims at performing a holistic matching of instances, classes, and relations. Some methods like PARIS [10], LogMap [27], ATMatcher [40], and AgreementMakerLight [41] are based on lexical matching. Others, such as Wiktionary [42] or ALOD2Vec [43] incorporate external background knowledge. We can show that FLORA achieves better results than these methods without requiring additional external datasets.
Very few approaches use Fuzzy Logic for KG alignment. FuzzyEA [16] relies on a standard embedding approach for entity alignment and Fuzzy Logic is used only to filter candidate entity pairs. This is very different from our approach, where Fuzzy Logic is central in the alignment process, for both entities and relations. In other works [44]–[47], Fuzzy Logic is used for ontology alignment, but is limited to either class matching or instance matching.
A knowledge graph \(\mathcal{G}\) is based on a set of entities \(\mathcal{E}\) and a set of relations \(\mathcal{R}\). In this paper, in line with [2], [48], [49], we see a KG as a set of triples (or facts) \(\mathcal{T}\subset \mathcal{E}\times \mathcal{R} \times \mathcal{E}\). Each triple \((h, r, t)\in \mathcal{T}\) represents a semantic relationship between the head entity \(h\) and the tail entity \(t\) with the relation \(r\). We denote by \(r(h,t)\) the corresponding boolean proposition, which evaluates to true if and only if \((h, r, t)\in \mathcal{T}\). Without loss of generality, we assume that each relation \(r\in \mathcal{R}\) has an inverse relation \(r^{-1}\in \mathcal{R}\), such that \(r(h,t)\) if and only if \(r^{-1}(t,h)\). In this paper, the entity set \(\mathcal{E}\) includes literals, instances, and classes.
Like PARIS [10], our approach exploits the notion of functionality of a relation, i.e., the degree to which a relation tends to map the head entity to a unique tail entity. Formally, the functionality of a relation \(r\in \mathcal{R}\) is: \[\textit{fun}(r) = \frac{\left| \{ h \mid \exists t: \;r(h,t) \} \right|}{\left| \{ (h, t) \mid r(h,t) \} \right|}\] Note that \(\textit{fun}(r)\in [0,1]\) with \(\textit{fun}(r)=1\) if and only if the relation \(r\) is functional: It maps any head entity to a unique tail entity. For example, the relation hasCapital generally assigns exactly one capital city to each country, so that \(\textit{fun}(\textit{hasCapital}) \approx 1\). If the entities referring to France in each KG are aligned, the corresponding entities referring to Paris can then be aligned as well.
Our approach also uses the notion of local functionality, which is specific to the head entity \(h\): \[\textit{fun}(r,h) = \frac{1}{\left| \{ t \mid r(h,t) \} \right|}\] Again, \(\textit{fun}(r,h)\in [0,1]\) with \(\textit{fun}(r,h)=1\) if and only if there is a unique entity \(t\) such that \(r(h,t)\) is true. The local functionality is needed to deal with relations that are globally functional, but have local exceptions. For instance, South Africa has three capitals, Pretoria, Bloemfontein, and Cape Town, so that the relation hasCapital is not locally functional for the head entity South Africa.
Given two knowledge graphs \(\mathcal{G} =\langle\mathcal{E},\mathcal{R}, \mathcal{T}\rangle\), \(\mathcal{G'} =\langle\mathcal{E'},\mathcal{R'}, \mathcal{T'}\rangle\), entity alignment (EA) is the task of finding the set \[\mathcal{M}_e = \{(e, e') \mid e \equiv e', e \in \mathcal{E}, e' \in \mathcal{E}'\}\] where \(e \equiv e'\) means that entity \(e\) is semantically equivalent to \(e'\). Relation alignment is the task of finding the set \[\mathcal{M}_{r} = \{(r, O, r') \mid r O r', r \in \mathcal{R}, r' \in \mathcal{R}', O \in \{\subseteq, \supseteq, \equiv\}\},\] where \(\subseteq, \supseteq, \equiv\) refer to subrelation, superrelation, or equivalence, respectively. KG alignment is the task of doing the alignment of both entities and relations at the same time.
Our method, FLORA, is based on Fuzzy Logic. This allows us to integrate signals of different nature, semantic and structural, in a single principled framework. Our framework can use arbitrary aggregation functions, as long as they are continuous and non-decreasing. This distinguishes our framework from Probabilistic Soft Logic [50], which commonly requires linear aggregation functions (usually Łukasiewicz T-norms, or Gödel T-norms for negatively weighted rules [51]), and from standard propositional Gödel logic, which uses min aggregation [52].
A fuzzy set \(A\) over a universe of discourse \(X\) is given by a membership function \(\mu_A\), which maps every element of \(X\) to a value in \([0,1]\). In an often-used example, \(X\) is the range of temperatures in degrees Celsius and \(A\) is the fuzzy set that describes “hot temperatures”. The membership function of \(A\) is then, for example, \(\mu_A(x)=0\) for \(x\leq 10^{\circ}\), \(\mu_A(x)=(x-10^{\circ})/15^{\circ}\) for \(x\) between \(10^{\circ}\) and \(25^{\circ}\), and \(\mu_A(x)=1\) for \(x\geq 25^{\circ}\). In its simplest form, a Mamdani-style Fuzzy Rule Based Reasoning System [53], or Fuzzy Inference System (FIS), consists of a set of rules of the form \[p_1~ \textit{is } P_1 \wedge ... \wedge p_n ~\textit{is } P_n \Rightarrow c~ \textit{is } C\] Here, \(p_1,...,p_n\) are input variables (we call them premises), \(P_1,...,P_n\) are fuzzy sets, \(c\) is the output variable (which we call the conclusion), and \(C\) is a fuzzy set. For example, \(p_1\) can be the temperature of the room in degrees Celcius, \(P_1\) is the fuzzy set that describes “hot temperature”, \(p_2\) is the number of people in the room, \(P_2\) is the fuzzy set of “a crowded room”, \(c\) is the desired speed of the fan (say, in rotations per minute), and \(C\) is the fuzzy set of “a fast rotation”. The expression “\(p_i~ \textit{is}~ P_i\)” (for \(i=1,...,n\)) evaluates to \(\mu_{P_i}(p_i)\) (in a process called fuzzification). In our example, a room temperature of \(p_1=20^{\circ}\) belongs to the fuzzy set \(P_1\) of hot temperatures to a degree of \(\frac{2}{3}\), and a number of people \(p_2=10\) could belong to “a crowded room” \(P_2\) to a degree of 0.5.
The firing strength of the rule is then computed by aggregating the individual fuzzified values of each premise using a custom aggregation function \(\phi\). Usually, \(\phi\) is a T-norm [54], but we will not impose this restriction in this paper. A common choice for \(\phi\) is min, which yields 0.5 in our example. The output of the rule is a fuzzy set for \(c\), which is given by the membership function of \(C\), capped at the firing strength of the rule. In our example, \(\mu_C\) could assign a value of 1 to a speed of more than 60 rotations per minute, and would be capped to 0.5. If several rules have the same output variable (\(c\) in our example), their fuzzy sets (\(C\) in our example) are combined, usually using a point-wise max operation on the membership functions. This yields one final fuzzy set for the output variable, which is then defuzzified into a single scalar value \(c^*\).
For our work, we need a simpler form of FIS, where all membership functions are identity functions, there is no negation, and defuzzification is done by the First of Maxima (FoM) method, i.e., the aggregated fuzzy set \(C\) is defuzzified into the scalar value \(c^*=\min \{ c | \forall x, \mu_C(c) \ge \mu_C(x) \}\). Our example rule can thus be written more simply as: \[\textit{temperature} \wedge \textit{crowded} \Rightarrow \textit{fanspeed}\] Here, temperature is a normalized value for the temperature in \([0,1]\), crowded is a normalized value for the degree of crowdedness in \([0,1]\), and fanspeed is the normalized speed of the fan in \([0,1]\). If we use min as aggregation, this rule means that fanspeed must be identical to the minimum of temperature and crowdedness. If several rules have fanspeed as conclusion, then it will be the maximum of the firing strengths of the rules. More formally:
Definition 1 (Simple Positive FIS). A Simple Positive FIS \(F\) is a set of rules of the form \(P_1 \wedge ... \wedge P_n \stackrel{\phi}{\Longrightarrow} C\), where \(P_1,...,P_n\) are input variables (premises) that have a given value in \([0,1]\), \(C\) (the conclusion) is an output variable whose value is to be computed, and \(\phi:\mathbb{R}^n \rightarrow [0,1]\) is an aggregation function. A rule of \(F\) is satisfied* if the value of the conclusion is greater than or equal to the rule strength \(\phi(P_1,...,P_n)\). A solution of \(F\) is an assignment of each output variable to a value so that (1) all rules are satisfied, and (2) no output variable can be assigned a smaller value and still satisfy all rules.*
We now extend the Simple Positive FIS by allowing the conclusions to appear as premises of rules:
Definition 2 (Recursive FIS). A recursive FIS is a Simple Positive FIS where the output variables can appear as premises.
In our example, a fast-running fan may attract more people seeking chilling air: \[\textit{fanspeed} \Rightarrow \textit{crowded}\] The notions of rule satisfaction and solution carry over to recursive FISs.
Algorithm 2 computes the solution of a Recursive FIS. It starts by assigning all output variables the value of zero, computes the firing strength of each rule, and updates the value of the output variable of this rule. This process is iterated until convergence.
Theorem 1. If each aggregation function is continuous and non-decreasing, then Algorithm 2 converges to the solution of the input recursive FIS.
Proof. Let \(K\) be the number of output variables. Let us see the assignment \(v\) of Algorithm 2 as a vector \(\overrightarrow{v}\in [0,1]^K\), with one value per output variable. Each iteration of the algorithm corresponds to the update \(\overrightarrow{v}\gets f(\overrightarrow{v})\) for some mapping \(f:[0,1]^K\to [0,1]^K\). A solution to the FIS must satisfy \(\overrightarrow{v}\ge f(\overrightarrow{v})\) component-wise so that all rules are satisfied. Since \(\overrightarrow{v}\le f(\overrightarrow{v})\) component-wise, this means that \(\overrightarrow{v}=f(\overrightarrow{v})\), i.e., \(\overrightarrow{v}\) is a fixed point of \(f\). Now since \(f\) is non-decreasing, because so are the aggregation functions involved in \(f\), as well as the \(\textit{max}\) operator, it follows from the Knaster-Tarski fixed point theorem [55] that the set of fixed points is a lattice and that there is a unique least fixed point. It remains to prove that Algorithm 2 converges to this least fixed point.
The algorithm computes a sequence of vectors \(\overrightarrow{v_0}=0,\overrightarrow{v_1},\overrightarrow{v_2},\ldots\) by applying \(f\) at each iteration. Since \(\overrightarrow{v}\le f(\overrightarrow{v})\) component-wise for any vector \(\overrightarrow{v}\), we have \(\overrightarrow{v_0} \le \overrightarrow{v_1}\) component-wise. Since \(f\) is non-decreasing, we deduce that \(f(\overrightarrow{v_0}) \le f(\overrightarrow{v_1})\) component-wise, that is \(\overrightarrow{v_1} \le \overrightarrow{v_2}\). By induction, we obtain that the sequence \(\overrightarrow{v_0}, \overrightarrow{v_1}, \overrightarrow{v_2},\ldots\) is non-decreasing. Since this sequence is upper bounded by the vector of ones, it has some limit \(\overrightarrow{v}^\star\) in \([0,1]^K\), showing that the algorithm converges.
To prove that \(\overrightarrow{v}^\star\) is a fixed point of \(f\), we use the continuity of \(f\), which again follows from the fact that the aggregation functions involved in \(f\) and the \(\textit{max}\) operator are continuous. We have: \[f(\overrightarrow{v}^\star) = f(\lim_{t\to \infty} \overrightarrow{v_t}) = \lim_{t\to \infty} f(\overrightarrow{v_t}) = \lim_{t\to \infty} \overrightarrow{v_{t+1}} = \overrightarrow{v}^\star.\] Finally, \(\overrightarrow{v}^\star\) is the least fixed point of \(f\) because for any other fixed point of \(f\), say \(\overrightarrow{v}\), we have \(\overrightarrow{v_0}=0 \le \overrightarrow{v}\) and thus \(\overrightarrow{v_1} = f(\overrightarrow{v_0}) \le f(\overrightarrow{v}) = \overrightarrow{v}\) component-wise. By induction, we get \(\overrightarrow{v_{t+1}} = f(\overrightarrow{v_{t}}) \le f(\overrightarrow{v}) = \overrightarrow{v}\) component-wise for all \(t\ge 0\). Taking the limit gives \(\overrightarrow{v}^\star\le \overrightarrow{v}\) component-wise. \(\Box\) ◻
Our result extends to the scenario where some or all output variables have an initial value that shall not be undercut. It suffices to add a rule of the form \(\textit{c} \Rightarrow x\) for each output variable \(x\) with initial value \(c\). This allows for an alternative definition of a recursive FIS: A recursive FIS is a set of rules of the form \(P_1 \wedge ... \wedge P_n \stackrel{\phi}{\Longrightarrow} C\), where \(\phi\) is an aggregation function, and \(P_1,...,P_n\) and \(C\) are variables, each of which has an initial value in \([0,1]\). A solution is then an assignment of each variable to a value so that (1) all variables have values that are larger than or equal to their initial value, (2) all rules are satisfied, and (3) no variable can be assigned a smaller value and still satisfy all rules. Such an alternative FIS can be translated to a FIS according to Definition 2 by considering all variables that appear in conclusions as output variables, considering the others as input variables, and adding a rule \(c\Rightarrow x\) for any output variable \(x\) with initial value \(c\).
We now apply our framework of Fuzzy Logic to the task of KG alignment. We first extend the notion of functionality to relation lists, which is exploited in FLORA to align entities that are objects of multiple facts.
For an alphabetically sorted list \(R=(r_1,\ldots,r_n)\) of relations, a list of head-entities \(H=(h_1,\ldots,h_n)\), and a tail entity \(t\), we define \(R(H,t)\) as the boolean proposition that all corresponding facts exist: \[R(H,t) := r_1(h_1,t)\land \ldots \land r_n(h_n,t).\] By convention, the head entities corresponding to the same relation are sorted in alphabetic order. This ensures that there is a unique way to write \(R(H,t)\) even if several relations in \(R\) are identical. We can then define the functionality of the relation list \(R\) as: \[\textit{fun}(R) = \frac{\left| \{ H \mid \exists t,\;R(H, t)\} \right|}{\left| \{ (H, t) \mid R(H,t) \} \right|}\] For instance, the relations BirthDateOf and FamilyNameOf are themselves not functional, but their combination is, as few people have both the same birth date and family name. Similarly, the local functionality of relation list \(R\) and entity list \(H\) is defined as: \[\textit{fun}(R, H) = \frac{1}{\left| \{ t \mid R(H, t) \} \right|}\] We have \(\textit{fun}(R, H)=1\) if and only if there is a unique tail entity \(t\) such that \(R(H,t)\) is true. Again, this notion is used to cope with relation lists that are globally functional, but have local exceptions.
In order to align two KGs \(\mathcal{G}\) and \(\mathcal{G'}\), we construct a recursive Fuzzy Inference System. The key insight, similar to PARIS [10], is the following: If there exist facts \(r(h,t)\) and \(r'(h',t')\) such that entities \(h, h'\) have already been matched and \(r,r'\) are functional, then entities \(t,t'\) are matched. FLORA goes beyond PARIS by generalizing this insight to lists of relations, by embedding it in the framework of Fuzzy Logic, and by proving its convergence.
For each pair of entities \(t\in \mathcal{E}\) and \(t'\in \mathcal{E}'\) that are not literals, and for each list of relations \(R\) and list of head entities \(H\) with \(R(H,t)\) in \(\mathcal{G}\), and for each list of relations \(R'\) and list of head entities \(H'\) with \(R'(H',t)\) in \(\mathcal{G'}\), we use: \[\begin{align} R(H, t) &\land R'(H', t') \land H \equiv H' \land R \cong R' \nonumber \\ &\land \textit{fun}(R) \land \textit{fun}(R,H) \land \textit{fun}(R') \land \textit{fun}(R', H') \quad \stackrel{\text{min}}{\Longrightarrow} \quad t \equiv t' \label{eq:generic} \end{align}\tag{1}\] Here, \(R(H, t)\) and \(R'(H', t')\) are input variables whose value is, by construction, 1. \(H \equiv H'\) is an output variable that is implied by the equivalences of each pair of head entities of \(H\) and \(H'\) through the following rule: \[\label{eq:entityset} h_1\equiv h'_1\land \ldots \land h_n\equiv h'_n \quad \stackrel{\text{hmean}}{\Longrightarrow} \quad H \equiv H'\tag{2}\] The premises of this rule are either themselves output variables of other rules, or literals, whose similarity is computed upfront (see Section 5.3). The aggregation function of this rule is the harmonic mean hmean, which allows taking into account high evidence (which would be ignored if we used the minimum) while penalizing strong conjunctions with low evidence (unlike the arithmetic mean).
The term \(R \cong R'\) is an output variable that means “\(R\) is similar to \(R'\)”. It is constrained by the following rule: \[\label{eq:relset}r_1\cong r'_1 \land \ldots \land r_n\cong r'_n \quad \stackrel{\text{hmean}}{\Longrightarrow}\quad R \cong R'\tag{3}\] Here, each statement of the form \(r\cong r'\) is itself an output variable, which is implied by two rules as follows: \[\begin{align} \label{eq:sub}r \subseteq r' \quad {\Longrightarrow} \quad r\cong r'\\ r' \subseteq r \quad {\Longrightarrow} \quad r\cong r' \end{align}\tag{4}\] This means that two relations are considered similar if one is a subrelation of the other (and aggregation is the identity function as there is only one premise).
The functionality terms are input variables whose values correspond to the functionality or local functionality of the respective lists of relations. Note that we cannot resort to local functionality only, due to the incompleteness of KGs. For example, people generally have two parents. If one person happens to have only a single parent in one KG, and a single parent in the other, this does not entitle us to match these two parents (as one could be, e.g, the mother and the other the father). The imposition of global functionality avoids such matches. We cannot use only global functionality either, as a globally functional relationship (such as hasCapital) can be non-functional in some cases (such as South Africa).
Finally, \(t\equiv t'\) is an output variable that determines to what degree \(t\) and \(t'\) are matched. We use the min aggregation function to make sure all premises of the rule are fulfilled (and a strong premise cannot make up for a weak one).
To find that one relation \(r \in \mathcal{R}\) is a subrelation of another relation \(r' \in \mathcal{R'}\), we first build the following rule for all entities \(h, t \in \mathcal{E}, h', t' \in \mathcal{E'}\) with \(r(h, t), r'(h',t')\): \[r(h, t) \land r'(h', t') \land h \equiv h' \land t \equiv t' \quad \stackrel{\text{min}}{\Longrightarrow} \quad r\equiv_{h,t}r'\] As before, \(r(h, t), r'(h',t')\) are input variables that evaluate to 1 by construction, while \(h \equiv h'\) and \(t \equiv t'\) are output variables of Equation 1 . Then \(r\equiv_{h,t}r'\) is an output variable that says that \(r\) and \(r'\) coincide on \(h\) and \(t\). The subrelation alignment can then be written as: \[\label{eq:subrel} \bigwedge_{h,t:\, r(h,t)} r\equiv_{h,t}r' \quad \stackrel{\alpha\text{-mean}}{\Longrightarrow} \quad r \subseteq r'\tag{5}\] This rule means that \(r\) is a subrelation of \(r'\) if all facts of \(r\) are also facts of \(r'\). To make the degree of \(r \subseteq r'\) reflect the proportion of facts of \(r\) that are facts of \(r'\), we use the arithmetic mean as the aggregation function. However, the arithmetic mean alone is not enough: Under the Open World Assumption, the KG \(\mathcal{G}'\) can be incomplete. Thus, some facts \(r'(h',t')\) might be missing, which would jeopardise our subrelation alignment. Therefore, we multiply the arithmetic mean by a constant \(\alpha\), which we call the benefit of the doubt (we show different values of \(\alpha\) in our experiments). The aggregation function \(\alpha\)-mean is then the arithmetic mean multiplied by \(\alpha\) and capped to \([0,1]\).
Our method for KG alignment is shown in Figure 3. It receives as input two knowledge graphs to be matched, optionally with training data.
We first compute the similarities between the literals of the two KGs (see details below). All literal similarity values are computed only once, belong to \([0,1]\), and remain fixed throughout the algorithm. We integrate training data in the same way: If two entities are matched in the training data, we set their matching score to 1, and treat this match as an input variable that will never be changed. To bootstrap the rule of entity alignment of Equation 1 , relation similarities are initially set to some small value \(\theta_r\). This value is superseded by the value of the subrelation alignment of Equation 5 in the following iterations.
After initialization, the steps of entity alignment (Equation 1 ) and subrelation alignment (Equation 5 ) are applied alternately. If multiple rules imply the same output variable, its score is the maximum of the rule strengths, in line with Algorithm 2. Since all our aggregation functions are continuous and non-decreasing, Theorem 1 applies after the first iteration (when initial values have been set for both entity and relation alignments), proving the convergence of the iterative process to the solution of the corresponding FIS.
The similarity between strings is computed by a (small) language model. To reduce the computational cost, we identify, for each string literal, its most similar string counterparts in the other KG by cosine similarity, and retain only those above some threshold \(\theta_s\). Dates are matched exactly, and numbers are matched with a similarity score of 1 if they are approximately equal within a relative error of \(10^{-9}\). While more complex matching strategies for dates are possible, experiments in Section 6 show that FLORA performs well even with simple exact matching.
Performing a full search over all possible entity and relation combinations would be prohibitively expensive. Therefore, we first perform a candidate search to identify the most structurally similar counterpart for each entity. Specifically, we select for each entity \(t\in \cal{E}\) those entities \(t'\in \cal{E}'\) with the maximum number of counterpart triples. These triples are ranked in decreasing order of matching scores and then considered in this order.
We assume that there are no duplicate entities within each KG, i.e., each entity \(e\in {\cal E}\) has at most one counterpart \(e'\in {\cal E'}\). Therefore, we store only the highest-scored alignments in the matching set: \[\label{eq:max95assign} \mathcal{M}_e \leftarrow \left\{ (e, e') \;\middle|\; e \equiv e' = \max \left\{ \max_{e'' \in \mathcal{E}'}(e \equiv e''),\; \max_{e''' \in \mathcal{E}}(e''' \equiv e') \right\} \right\}\tag{6}\] We do not impose this one-to-one assumption on relations, and thus store all relation pairs \(r\subseteq r'\) with scores greater than 0 in \(\mathcal{M}_r\).
The iterations terminate when the total matching score increases by less than some threshold \(\varepsilon\) (early stopping). We keep only those entity matches that exceed a threshold \(\theta_e \in [0,1]\). The final alignment between two relations \(r\) and \(r'\) can be a subrelation \(r\subseteq r'\), a superrelation \(r\supseteq r'\), or an equivalence \(r\equiv r'\) if both \(r\subseteq r'\) and \(r'\subseteq r\) holds.
We evaluate FLORA on five widely-adopted entity alignment datasets, including two monolingual datasets (D-W-15K-V1/V2) from OpenEA [12] and three cross-lingual datasets from DBP15K [13]. D-W-15K is based on DBpedia and Wikidata and comes in two versions: Sparse version (D-W-15K-V1) and Dense version (D-W-15K-V2). DBP15K consists of three cross-lingual KG pairs extracted from DBpedia: Chinese and English (DBPZH-EN), Japanese and English (DBPJA-EN), French and English (DBPFR-EN). For holistic evaluation, we also include two datasets from the OAEI Knowledge Graph Track [56], memoryalpha-stexpanded (Mem-ST) and starwars-swtor (Star-SWT), which have non-trivial matches for relations, classes, and instances.
As in PARIS [10], the relation similarity of FLORA is initialized to \(\theta_r=0.1\). We choose the benefit of doubt as \(\alpha=3\) (we show other values in the ablation study). We choose \(\theta_s=0.7\) and \(\theta_e=0.1\), which maximizes the F1 value in our experiments (a smaller value favors recall, a larger value favors precision). Early stopping is set to \(\varepsilon=0.01\) (a smaller value improves precision but increases the execution time). Regarding the language models used for string similarity, we use LaBSE3 [57] for the multilingual datasets, and PEARL4 [58] for the monolingual datasets (because of its good performance on phrases).
On D-W-15K-V1/V2 and the OAEI KGs Track, we use standard classification-based metrics (Precision, Recall, F1), while on DBP15K, we follow existing EA baselines by reporting Hit@K and MRR, which measure top-K accuracy and mean reciprocal rank, respectively. To evaluate our model in ranking-based metrics, we directly output all possible entity pairs with scores instead of selecting the top-scoring ones.
We select more than 30 competitors. For the EA task, we include the supervised methods JAPE [13], BootEA [14], RDGCN [19], OntoEA [59], PARIS+ [11], RHGN [22], GCNAlign [18], TransEdge [17], FuzzyEA [16], SelfKG [34], AttrGNN [20], TEA [24], SDEA [25], LLMEA [60], ChatEA [26] and the unsupervised methods AttrE [15], PARIS [10], PRASE [28], FGWEA [28], NALA [29], LLM4EA [35], CPL-OT [30], MultiKE [32], ICLEA [33], BERT-INT [23], HLMEA [36], and EmbMatch, a simple method using embedding similarity between entity names. For BERT-INT, which uses entity descriptions, we replace the descriptions with entity names for a fair comparison, following [25]. For holistic KG alignment, we choose classical methods LogMap [27], AML [41], and the most recent ATMatcher [40], ALOD2Vec [43], and Wiktionary [42]. We report the results available from the original papers.
max width=
max width=
max width=
Table [tab:openea] shows the results on monolingual EA in both unsupervised and supervised settings. FLORA achieves considerable improvements over all baselines, with and without training data. Table [tab:dbp15k95results] shows the results for multi-lingual EA. FLORA consistently performs the best or the second-best across all datasets. FLORA does not beat FGWEA, which is designed for multilingual datasets and exploits the name bias present in such benchmarks [20]. Therefore, FGWEA performs worse than FLORA when entity names are incomplete, as observed in the monolingual EA datasets. FGWEA further assumes that each entity of one KG has one match in the other KG, which is not representative of real-world scenarios. Regarding ChatEA, it is supervised and additionally uses the background knowledge of LLMs to generate entity descriptions. In contrast, FLORA is unsupervised, relies solely on the given KGs data, and needs only a small language model for string similarity. Overall, the difference of FLORA to the best performer is less than 1 percentage point – a price we pay for a fully transparent unsupervised algorithm that works across different scenarios.
Table [tab:ontology95matching] further shows the performance of FLORA on the KG alignment task. FLORA achieves the highest overall F1 score with an average of 96%, outperforming competitors for the alignment of classes, relations, and instances. It falls within 2 percentage points of the best model for relation matching precision on the Star-SWT dataset. This slight drop is because FLORA finds structural matches (apprentice matches padawan, which also means apprentice) rather than the intended semantic matches (apprentice matches apprentices).
max width=
Figure 4: Sensitivity to the benefit of doubt \(\alpha\). a — D-W-15K-V2, b — DBPFR-EN, c — DBPZH-EN
We first experimented with different values of the benefit-of-doubt parameter \(\alpha\) (see Figure 4). We find that setting \(\alpha = 1\) is ineffective and leads to a significant reduction in performance, thus proving the necessity of \(\alpha>1\). Beyond \(\alpha=2\), the performance does not change much while computation time first decreases and then remains stable. However, a larger \(\alpha\) does not necessarily yield better results, as the performance degrades once \(\alpha\) goes beyond 100 (see Table [tab:ablation]). In practice, we set \(\alpha=3\) to balance effectiveness and efficiency. We also replaced the language model used for string similarity by simple string identity (see Table [tab:ablation]). This leads to an overall performance drop, especially on DBPZH-EN, where entities have very different literal values across languages. But even with identity literal initialization, the score drops by 3 percentage points at most, and FLORA still outperforms strong baselines such as RDGCN and SelfKG, underscoring the strength of our structural matching. Next, we restrict the list of relations in entity alignment (Equation 1 ) to length 1, thereby removing the structural signal from our rules. In this setting, our system can propagate only alignment scores through flat triples, similar to PARIS [10]. This significantly degrades performance, demonstrating the importance of structural information in the absence of functional relations. Finally, using the min aggregation function for all inference rules significantly degrades the performance across all datasets.
A salient feature of FLORA is that its results are interpretable by humans. For any pair of aligned entities, the corresponding rule with the highest firing strength, as given by Equation 1 , explains the alignment. In the dataset D-W-15K-V1 for instance, the entities \(t\)=Lady Gaga of DBPedia and \(t'\)=Q19848 of Wikidata are aligned with a value of \(0.984\). The rule leading to this alignment states that Lady Gaga was born on 1986-03-28 and featured in the song 3-Way; it is the alignment of the relations musicalArtist \(\cong\) P175 and birthDate\(^{-1}\cong\) P569\(^{-1}\), the functionality of the corresponding relation set, and the alignment of the birth dates and of the entities 3-Way and Q659417, that lead to the final alignment of Lady Gaga and Q19848.
max width=
Finally, we evaluate the scalability and efficiency of our approach. For scalability, we use a larger-scale entity alignment dataset from OpenEA, D-W-100K (with 100k gold alignments). As shown in Table [tab:larger], FLORA outperforms both advanced unsupervised and supervised baselines.
For efficiency, we measured the run time of FLORA on datasets of different sizes from our previous experiments, using a Linux server with an AMD EPYC 9374F CPU and 519 GB of RAM. FLORA takes approximately 7 min on D-W-15K(V1/V2) and 48 min on the larger dataset D-W-100K-V1. This is comparable to most state-of-the-art methods [12]. However, the other methods are executed in GPUs, while our approach needs only CPUs. On the DBP15K datasets, FLORA is much slower than on the D-W-15K datasets, with around 2 hours on average. This is likely due to the amount of auxiliary information (i.e., attribute values), which is about five times larger in the DBP15K datasets than in the D-W-15K datasets. On the OAEI KG Track datasets, FLORA completes the alignment process in about 1h45min. This is much slower than the runtime of lexical-based methods (e.g, 4 min on average for ALOD2Vec) that has been reported by the OAEI platform on a virtual machine with 32GB of RAM and 16 vCPUs (2.4 GHz) [61]. This is because FLORA relies more on structural reasoning, which, in turn, leads to better performance, allows for explainability, and can find not only relation equivalence but also relation subsumption.
In this paper, we have introduced FLORA, an iterative method based on Fuzzy Logic that aligns entities and relations across knowledge graphs. FLORA provably converges to the solution of the corresponding Fuzzy Inference System. It can find subrelation matches, it can deal with dangling entities, it does not need training data, and it provides interpretable results. Comparative experiments on major EA and KG alignment benchmarks show that FLORA outperforms all competitors on nearly all datasets. Future work could extend FLORA to more complex taxonomy structures, for example, by exploring cross-KGs subclasses, computing deductive closures, and taking into account the graph structure.
Supplementary Material Statement. The dataset, source code, supplementary material, and hyperparameters are available at our GitHub repository https://github.com/dig-team/FLORA.
Fuzzy-Logic based Object and Relation Alignment↩︎