diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 24 |
1 files changed, 12 insertions, 12 deletions
| @@ -21,7 +21,7 @@ We assume you followed [these steps](https://docs.oxfordsemantic.tech/getting-st | |||
| 21 | 21 | ||
| 22 | The [documentation](https://docs.oxfordsemantic.tech/features-and-requirements.html#license-key), describes several ways to provide the license to RDFox. | 22 | The [documentation](https://docs.oxfordsemantic.tech/features-and-requirements.html#license-key), describes several ways to provide the license to RDFox. |
| 23 | 23 | ||
| 24 | One easy way is to put your license key in a file `RDFox.lic` in `$HOME/.RDFox/`, with adeguate read permissions for the user executing the program. | 24 | One easy way is to put your license key in a file `RDFox.lic` in `$HOME/.RDFox/`, with adequate read permissions for the user executing the program. |
| 25 | 25 | ||
| 26 | ### Compiling and running the project | 26 | ### Compiling and running the project |
| 27 | 27 | ||
| @@ -48,21 +48,21 @@ Note that the fat jar file distributed with this repository excludes the RDFox a | |||
| 48 | java -cp <path/to/JRDFox.jar>:<path/to/fat.jar> uk.ac.ox.cs.rsacomb.RSAComb [<option> ...] | 48 | java -cp <path/to/JRDFox.jar>:<path/to/fat.jar> uk.ac.ox.cs.rsacomb.RSAComb [<option> ...] |
| 49 | ``` | 49 | ``` |
| 50 | 50 | ||
| 51 | ### Running tests and examples | 51 | ### Running tests |
| 52 | 52 | ||
| 53 | TODO | 53 | To run the suit of unit test provided along with the code run |
| 54 | ``` | ||
| 55 | sbt test | ||
| 56 | ``` | ||
| 54 | 57 | ||
| 55 | ## Changes introduced | 58 | ## Changes introduced |
| 56 | 59 | ||
| 57 | We tried to implement the system as close as possible to the theoretical description provided in [[1](#references)]. | 60 | We tried to implement the system as close as possible to the theoretical description provided in [[1](#references)]. |
| 58 | 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. | 61 | 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. |
| 59 | The following is a summary of fixes (🔧), changes (🔄) and improvements (⚡), we introduced along the way: | 62 | The following is a (non exhaustive) summary of fixes (🔧), changes (🔄) and improvements (⚡), we introduced along the way: |
| 60 | 63 | ||
| 61 | + 🔄 [RDFox](https://www.oxfordsemantic.tech/product) is used instead of DLV as the underlying LP engine. | 64 | + 🔄 [RDFox](https://www.oxfordsemantic.tech/product) is used instead of DLV as the underlying LP engine. |
| 62 | 65 | ||
| 63 | + 🔄 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. | ||
| 64 | Materialisation is handled by RDFox, possibly computing answers in one go, without splitting the process in two separate steps. | ||
| 65 | |||
| 66 | + 🔧 In Def.4, the definition of built-in predicate `notIn` is wrong and should reflect the implicit semantics implied by the name, i.e., | 66 | + 🔧 In Def.4, the definition of built-in predicate `notIn` is wrong and should reflect the implicit semantics implied by the name, i.e., |
| 67 | 67 | ||
| 68 | > let [...] `notIn` be a built-in predicate which holds when the first argument is **not** an element of the set given as second argument | 68 | > let [...] `notIn` be a built-in predicate which holds when the first argument is **not** an element of the set given as second argument |
| @@ -83,7 +83,6 @@ The following is a summary of fixes (🔧), changes (🔄) and improvements (⚡ | |||
| 83 | rsa:congruent[?X, ?Z] :- rsa:congruent[?X, ?Y], rsa:congruent[?Y, ?Z] . | 83 | rsa:congruent[?X, ?Z] :- rsa:congruent[?X, ?Y], rsa:congruent[?Y, ?Z] . |
| 84 | ``` | 84 | ``` |
| 85 | defining equivalence as a congruence relation over terms in the ontology. | 85 | defining equivalence as a congruence relation over terms in the ontology. |
| 86 | *Substitution rules have not been entroduced yet.* | ||
| 87 | 86 | ||
| 88 | + 🔧 In Def. 4, the definition of built-in predicate `NI` is not consistent with its use in Table 3 and related description in Sec. 4.2. | 87 | + 🔧 In Def. 4, the definition of built-in predicate `NI` is not consistent with its use in Table 3 and related description in Sec. 4.2. |
| 89 | 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`). | 88 | 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`). |
| @@ -94,12 +93,13 @@ The following is a summary of fixes (🔧), changes (🔄) and improvements (⚡ | |||
| 94 | ``` | 93 | ``` |
| 95 | where `rsa:named` is an internal predicate keeping track of all constants in the original ontology. | 94 | where `rsa:named` is an internal predicate keeping track of all constants in the original ontology. |
| 96 | 95 | ||
| 97 | + âš¡ In Def. 3, regarding the generation of the logic program used for the RSA checkk, only T5 axioms involving an unsafe role will introduce the internal predicates `PE` and `U`. | 96 | + âš¡ In Def. 3, regarding the generation of the logic program used for the RSA check, only T5 axioms involving an unsafe role will introduce the internal predicates `PE` and `U`. |
| 98 | 97 | ||
| 99 | + âš¡ Both in the canonical model and the filtering program computations, rules without a body are loaded into RDFox as facts. | 98 | + âš¡ Both in the canonical model and the filtering program computations, rules without a body are loaded into RDFox as facts. |
| 100 | 99 | ||
| 101 | + ⚡ The `cycle` function introduced in Def.4 establishing the direction of the *unraveling* of loops is defined over triples `(A,R,B)`. We are currently limiting the triple only to those appearing in a T5 axiom `A ⊑ ∃R.B`. Note that this greatly limits the size of cycle for a given triple, and as a consequence limits the number of rules used to compute the canonical model. | 100 | + ⚡ The `cycle` function introduced in Def.4 establishing the direction of the *unraveling* of loops is defined over triples `(A,R,B)`. We are currently limiting the triple only to those appearing in a T5 axiom `A ⊑ ∃R.B`. Note that this greatly limits the size of cycle for a given triple, and as a consequence limits the number of rules used to compute the canonical model. |
| 102 | 101 | ||
| 102 | |||
| 103 | ## References | 103 | ## References |
| 104 | 104 | ||
| 105 | [1] Feier, Cristina, David Carral, Giorgio Stefanoni, Bernardo Cuenca Grau, and Ian Horrocks. | 105 | [1] Feier, Cristina, David Carral, Giorgio Stefanoni, Bernardo Cuenca Grau, and Ian Horrocks. |
| @@ -109,12 +109,12 @@ The following is a summary of fixes (🔧), changes (🔄) and improvements (⚡ | |||
| 109 | 109 | ||
| 110 | ## Acknowledgements | 110 | ## Acknowledgements |
| 111 | 111 | ||
| 112 | TODO | 112 | *temporarily redacted* |
| 113 | 113 | ||
| 114 | ## Credits | 114 | ## Credits |
| 115 | 115 | ||
| 116 | TODO | 116 | *temporarily redacted* |
| 117 | 117 | ||
| 118 | ## License | 118 | ## License |
| 119 | 119 | ||
| 120 | TODO | 120 | *temporarily redacted* |
