aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix NI predicate computationFederico Igne2020-11-144-37/+76
| | | | | | Now NAMED is introduced during the canonical model computation, while NI instances are computed and introduced in the filtering program generation phase.
* Add diagnostic queries along main queryFederico Igne2020-11-131-26/+83
|
* Add first implementation of top and equality axiomatizationFederico Igne2020-11-131-2/+58
| | | | | | This is a first stab of the axiomatization. For equality we are deriving owl:sameAs triples (not ideal) and did not yet introduced "substitution" rules.
* Simplify role extraction from axiomsFederico Igne2020-11-131-58/+18
| | | | | | | | The previous implementation was using the visitor pattern suggested by the OWLAPI. This was buggy for some reasons and resulting in runtime exceptions (probably due to the complex class tree of the API). In Scala using type pattern matching results in a shorter and more readable way of traversing an AST.
* Fix suffix generation in filtering programFederico Igne2020-11-132-15/+15
| | | | Also a small step into generalizing the concept of suffix
* Add NAMED facts to filtering programFederico Igne2020-11-121-1/+2
| | | | | The difference between NAMED and NI facts still needs to be clarified but this is the implementation closest to the paper description.
* Remove debug outputFederico Igne2020-11-101-1/+0
|
* Add missing rule generated per roleFederico Igne2020-11-101-0/+43
| | | | | This is temporarily required while we reorganize the way suffixes for roles are handled.
* Fix SKOLEM call creation during function skolemizationFederico Igne2020-11-102-8/+20
| | | | | The first argument of a SKOLEM call needs to be a literal string. Note that this is not enforced in any way by RDFox, that will fail silently.
* Generalize axiom hashing for constant generationFederico Igne2020-11-103-12/+44
|
* Improve query pretty printingFederico Igne2020-11-101-1/+1
|
* Add OWLClassAssertionAxiom to axioms handled during translationFederico Igne2020-11-101-1/+22
|
* Expose ABox in RSAOntology classFederico Igne2020-11-101-2/+9
|
* Fix `notIn` implementation in canonical modelFederico Igne2020-11-091-17/+18
| | | | | The informal definition provided by the paper in wrong, and it turns out `notIn` just means "not in".
* Simplify reification process and add negation reificationFederico Igne2020-11-092-68/+42
|
* Update canonical model unit testsFederico Igne2020-11-061-11/+11
|
* Rework canonical model computationFederico Igne2020-11-063-323/+332
| | | | | | | | | | | | | | | | | | | | This is a first attempt to avoid a bug triggered by the nature of the class RSAOntology and CanonicalModel. An OWLOntology is converted implicitly to an RSAOntology object whenever it is needed. From within the RSAOntology class we used to create a CanonicalModel object (and pass the underling OWLOntology object as a parameter). Inside CanonicalModel we require RSAOntology functionalities from the OWLOntology, triggering a new conversion into RSAOntology (that would compute a new CanonicalModel and so on in a loop). While declaring the CanonicalModel as lazy in RSAOntology could solve the problem, it does not fix the underlying issue of having a class strictly related to RSAOntology as a top level class. As a first attempt we moved CanonicalModel as an object inside RSAOntology.
* Fix bug in the filtering program generationFederico Igne2020-11-061-4/+4
| | | | Variables where generated as IRI.
* Update tests to RDFox v4.0Federico Igne2020-11-056-306/+313
|
* Update code to RDFox v4.0Federico Igne2020-11-0511-172/+247
|
* Simplify prettyprinting of queries in testFederico Igne2020-11-021-8/+8
|
* Update duplicate test queriesFederico Igne2020-11-021-17/+93
|
* Introduce workaround to RDFox Query parsing bugFederico Igne2020-11-021-113/+246
| | | | | | For now we are building queries manually. This allows us to work on testing the modules involved but it would be nice to have the bug fixed later on.
* Add partial unit tests for filtering program computationFederico Igne2020-10-293-4/+178
| | | | The committed tests will fail, but the reason is still not clear.
* Add unit tests for example2.owl for the canonical model computationFederico Igne2020-10-282-4/+153
|
* Adapt test to new `cycle` methodFederico Igne2020-10-282-17/+29
|
* Implement naive version of 'cycle' as in paperFederico Igne2020-10-231-17/+54
| | | | | | | | | | | | This implementation is more closely related to the paper definition of 'cycle'. The initial implementation was an improvement on the generation of the logic program (but not necessarely on the Datalog engine side) because it generate far fewer new constants. We decided to stick with the naive version to be as close as possible to the paper description. This temporarely breaks some tests.
* Add tests for 'subObjectPropertyOf' axiomsFederico Igne2020-10-231-5/+34
|
* Add additional tests for T5 axiom rule generationFederico Igne2020-10-231-1/+58
|
* Fix bug in computation of 'cycle' functionFederico Igne2020-10-231-1/+5
| | | | | | | The ordering among triples that 'cycle' use to introduce new individuals is considering only triples involving safe roles. This was not the case for us and triples with unsafe roles where considered towards the generation of logic rules.
* Fix bug in conflict set computationFederico Igne2020-10-213-5/+23
|
* Temporary remove `roles` from RSAOntologyFederico Igne2020-10-211-7/+7
| | | | | This is not needed at the time of writing. Also it is not clear why I decided to instantiate it with the RBox roles only.
* Fix issue with introduction of new version of OWLAPIFederico Igne2020-10-212-17/+23
|
* More details in build.sbt and updated dependenciesStefano Germano2020-10-193-6/+13
| | | | | While updating the dependencies, I noticed that v3.2 of scalatest is very different from v3.1 (https://www.scalatest.org/release_notes/3.2.0). Therefore, I also needed to update the test files. But, there is a "too many arguments" error that needs to be solved (I do not know why it was working before).
* Add some tests for canonical model computationFederico Igne2020-10-102-14/+70
|
* Fix bug with conflict set computationFederico Igne2020-10-101-8/+7
| | | | | | Conflicting roles w.r.t. to an input role where initially searched among the roles named in the ontology. This excludes all those roles that are only implicitly part of an ontology (e.g., inverse of named roles).
* Add skeleton file for CanonicalModel testingFederico Igne2020-10-091-0/+46
|
* Simplify ProgramGenerator constructorFederico Igne2020-10-094-16/+32
| | | | | If we pass the whole ontology there is no need to also provide the set of unsafe roles.
* Fix problem with testsFederico Igne2020-10-093-11/+11
| | | | Tests where not ported to the new (slightly more generic) interface.
* Complete generation of logic program for the canonical modelFederico Igne2020-10-064-33/+75
|
* Add generation of rules for safe T5 axiomsFederico Igne2020-10-051-4/+139
|
* Implement `cycle()` and `unfold()` methodsFederico Igne2020-10-021-1/+29
|
* Implement `self()` method for the computation of canonical modelsFederico Igne2020-10-021-2/+16
|
* Implement method to find conflicting rolesFederico Igne2020-10-011-5/+39
|
* Add rule generation for unsafe T5 axioms for canonical modelFederico Igne2020-09-307-34/+88
|
* Add generation for forward/backwards rulesFederico Igne2020-09-251-5/+34
|
* Add skeleton for canonical model generationFederico Igne2020-09-241-0/+57
|
* Add method to parse a string into a QueryFederico Igne2020-09-233-14/+16
| | | | This is using `SPARQLParser`, an undocumented class provided by JRDFox
* Add method to compute the set of individuals in an input ontologyFederico Igne2020-09-221-3/+7
|
* Fix RDFox query execution helperFederico Igne2020-09-222-6/+19
|