diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 37 |
1 files changed, 32 insertions, 5 deletions
@@ -35,11 +35,38 @@ We tried to implement the system as close as possible to the theoretical descrip | |||
35 | Regardless, we had to deal with the fact that we where using different tools to carry out reasoning tasks and we where probably using a different language to implement the system. | 35 | Regardless, we had to deal with the fact that we where using different tools to carry out reasoning tasks and we where probably using a different language to implement the system. |
36 | The following is a summary of fixes (🔧), changes (🔄) and improvements (⚡), we introduced along the way: | 36 | The following is a summary of fixes (🔧), changes (🔄) and improvements (⚡), we introduced along the way: |
37 | 37 | ||
38 | + 🔧 FIX | 38 | + 🔄 [RDFox](https://www.oxfordsemantic.tech/product) is used instead of DLV as the underlying LP engine. |
39 | 39 | ||
40 | + 🔄 CHANGE | 40 | + 🔧 In [[1](#references) - Def.4], the definition of built-in predicate `notIn` is wrong and should reflect the implicit semantics implied by the name, i.e., "let [...] `notIn` be a built-in predicate which holds when the first argument is **not** an element of the set given as second argument". |
41 | 41 | This has been fixed by (1) introducing a built-in predicate `In` (note that instances of `In` can be computed beforehand since they only depend on the input ontology), and (2) implement `notIn` as the negation of `In` using RDFox NaF built-in support. | |
42 | + âš¡ IMPROVEMENT | 42 | |
43 | + 🔄 Top (`owl:Thing`) axiomatisation is performed introducing rules as follows. | ||
44 | Given *p* predicate (arity *n*) *in the original ontology*, the following rule is introduced: | ||
45 | ``` | ||
46 | owl:Thing[?X1], *...*, owl:Thing[?Xn] :- *p*(?X1, *...*, ?Xn) . | ||
47 | ``` | ||
48 | Note that by definition arity can be either 1 or 2. | ||
49 | |||
50 | + 🔄 Equality axiomatisation is performed introducing the following rules: | ||
51 | ``` | ||
52 | rsa:congruent[?X, ?X] :- owl:Thing[?X] . | ||
53 | rsa:congruent[?Y, ?X] :- rsa:congruent[?X, ?Y] . | ||
54 | rsa:congruent[?X, ?Z] :- rsa:congruent[?X, ?Y], rsa:congruent[?Y, ?Z] . | ||
55 | ``` | ||
56 | defining equivalence as a congruence relation over terms in the ontology. | ||
57 | *Substitution rules have not been entroduced yet.* | ||
58 | |||
59 | + 🔧 In [[1](#references) - Def. 4], the definition of built-in predicate `NI` is not consistent with its use in [[1](#references) - Table 3] and related description in [[1](#references) - Sec. 4.2]. | ||
60 | We redefined `NI` as the set of all constants that are *equal* to a constant in the original ontology (according to the internal equality predicate `rsa:congruent`). | ||
61 | Note that, in this scenario, there is no need to introduce `NI` instances as facts in the system; | ||
62 | instead we can add a rule to populate the new predicate: | ||
63 | ``` | ||
64 | NI[?X] :- rsa:congruent[?X, ?Y], rsa:named[?Y] . | ||
65 | ``` | ||
66 | where `rsa:named` is an internal predicate keeping track of all constants in the original ontology. | ||
67 | |||
68 | + 🔄 While the system is described as a two-step process (computing the canonical model and applying the filtering program), the adoption of RDFox allows us to abstract from the underlying engine implementation. | ||
69 | Materialisation is handled by RDFox, possibly computing answers in one go, without splitting the process in two separate steps. | ||
43 | 70 | ||
44 | ## References | 71 | ## References |
45 | 72 | ||