diff options
| author | Federico Igne <federico.igne@cs.ox.ac.uk> | 2022-05-18 15:05:44 +0100 |
|---|---|---|
| committer | Federico Igne <federico.igne@cs.ox.ac.uk> | 2022-05-18 15:38:12 +0100 |
| commit | 52bba67e640fb1e30817fd1114a54e1d38ad5a74 (patch) | |
| tree | 65cb37fc68f6dfbfaa2a3f5aec51b3d890fdc8e6 | |
| parent | ef4740a98f74b8111e202df01fcbe41bdeccccfd (diff) | |
| download | ACQuA-52bba67e640fb1e30817fd1114a54e1d38ad5a74.tar.gz ACQuA-52bba67e640fb1e30817fd1114a54e1d38ad5a74.zip | |
docs: update README.md
| -rw-r--r-- | README.md | 130 |
1 files changed, 100 insertions, 30 deletions
| @@ -1,47 +1,117 @@ | |||
| 1 | PAGOdA | 1 | <!-- TITLE --> |
| 2 | ====== | 2 | <p align="center"> |
| 3 | 3 | ||
| 4 | PAGOdA is a conjunctive query answering engine for OWL 2 ontologies. | 4 | <h1 align="center">· ACQuA ·</h1> |
| 5 | 5 | ||
| 6 | <p align="center"> | ||
| 7 | A hybrid architecture for conjunctive query answering overover OWL 2 DL. | ||
| 8 | <br/> | ||
| 9 | <a href="#">Read the thesis</a> | ||
| 10 | · | ||
| 11 | <a href="#">Read the journal paper</a> | ||
| 12 | · | ||
| 13 | <a href="https://github.com/KRR-Oxford/ACQuA/issues">Report bug</a> | ||
| 14 | <br/><br/> | ||
| 15 | <a href="https://github.com/KRR-Oxford/ACQuA/releases/latest"> | ||
| 16 | <img src="https://img.shields.io/github/release/KRR-Oxford/RSAComb.svg?style=for-the-badge" alt="Release badge"> | ||
| 17 | </a> | ||
| 18 | <a href="https://github.com/KRR-Oxford/ACQuA/issues"> | ||
| 19 | <img src="https://img.shields.io/github/issues/KRR-Oxford/RSAComb.svg?style=for-the-badge" alt="Issues badge"> | ||
| 20 | </a> | ||
| 21 | <!-- <a href="https://github.com/KRR-Oxford/ACQuA/actions"> --> | ||
| 22 | <!-- <img src="https://img.shields.io/github/workflow/status/KRR-Oxford/RSAComb/Scala%20CI/develop?label=TESTS&style=for-the-badge" alt="GitHub Actions badge"> --> | ||
| 23 | <!-- </a> --> | ||
| 24 | <a href="LICENSE"> | ||
| 25 | <img src="https://img.shields.io/github/license/KRR-Oxford/ACQuA.svg?style=for-the-badge" alt="License badge"> | ||
| 26 | </a> | ||
| 27 | <a href="https://doi.org/10.5281/zenodo.5047810"> | ||
| 28 | <img src="https://img.shields.io/badge/DOI-10.5281/zenodo.5047810-blue?style=for-the-badge" alt="DOI badge"> | ||
| 29 | </a> | ||
| 30 | </p> | ||
| 6 | 31 | ||
| 7 | Project dependencies/requirements | 32 | </p> |
| 8 | ================================= | ||
| 9 | 33 | ||
| 10 | - This software has been developed for Linux | 34 | ## About |
| 11 | - JavaSE 8 | ||
| 12 | - Maven | ||
| 13 | 35 | ||
| 36 | ACQuA is a hybrid query answering framework that combines black-box services to provide a CQ answering service for OWL. | ||
| 37 | Specifically, it combines scalable CQ answering services for tractable languages with a CQ answering service for a more expressive language approaching the full OWL 2. | ||
| 38 | If the query can be fully answered by one of the tractable services, then that service is used. | ||
| 39 | Otherwise the tractable services are used to compute lower and upper bound approximations, taking the union of the lower bounds and the intersection of the upper bounds. | ||
| 40 | If the bounds don’t coincide, then the “gap” answers are checked using the “full” service. | ||
| 14 | 41 | ||
| 15 | Building and packaging | 42 | This reference implementation combines [RSAComb], [PAGOdA], and [HermiT], but these tools can be potentially subtituted or augmented with more capable ones to improve the overall performance of the system. |
| 16 | ====================== | ||
| 17 | 43 | ||
| 18 | This is a Maven project, hence Maven should be used for building and packaging. | 44 | > ACQuA is still in its preliminary stage of development and might contain bugs. |
| 19 | * Compile `mvn compile` | ||
| 20 | * Create jars `mvn package`; | ||
| 21 | you will get a jar without dependencies *target/pagoda-x.y.z.jar* and a runnable jar with dependencies *target/pagoda-x.y.z-jar-with-dependencies.jar*. | ||
| 22 | * Execute tests `mvn test -DskipTests=false`; | ||
| 23 | 45 | ||
| 46 | ## Preliminaries | ||
| 24 | 47 | ||
| 25 | Configuring the engine | 48 | RSAComb uses a recent version of [RDFox] under the hood to offload part of the computation. |
| 26 | ====================== | ||
| 27 | 49 | ||
| 28 | The engine provides a standard configuration, but it is most likely that is not suitable for your purposes. | 50 | In order to run ACQuA you need to have [RDFox](https://www.oxfordsemantic.tech/product) available in your system, along with *a valid license*. |
| 29 | You should provide your own configuration in a file called `pagoda.properties` including it in the classpath. | 51 | RDFox is proprietary software and as such we are not able to distribute it along with our code. |
| 30 | Such a file should resemble the file `src/resources/_default_pagoda.properties`. | 52 | This software has been developed and tested with RDFox v5.5 |
| 31 | 53 | ||
| 54 | ### Installing RDFox | ||
| 32 | 55 | ||
| 33 | Executing | 56 | We refer to the [official documentation](https://docs.oxfordsemantic.tech/getting-started.html#getting-started) for a step-by-step guide on how to setup RDFox on your personal machine. |
| 34 | ========= | 57 | In particular, you will need to know the path to the RDFox Java API (usually called `JRDFox.jar`) that comes with the distribution. |
| 35 | 58 | ||
| 36 | Once you have the runnable jar, you can make the system answer queries through the command line interface. | 59 | Alternatively, run the following commands (on a Linux x86 machine) from the root of the project to install RDFox locally. |
| 60 | Download links for other versions, operating systems, and architectures can be found [here](https://www.oxfordsemantic.tech/downloads). | ||
| 37 | 61 | ||
| 38 | Run `java -jar pagoda-x.y.z-jar-with-dependencies.jar` for getting a list of the mandatory arguments and optional parameters. | 62 | ```{.bash} |
| 63 | mkdir -p lib && pushd lib | ||
| 64 | wget https://rdfox-distribution.s3.eu-west-2.amazonaws.com/release/v5.5/RDFox-linux-x86_64-5.5.zip | ||
| 65 | unzip RDFox-linux-x86_64-5.2.1.zip | ||
| 66 | ln -s RDFox-linux-x86_64-5.2.1.zip/lib/JRDFox.jar | ||
| 67 | popd | ||
| 68 | ``` | ||
| 39 | 69 | ||
| 40 | Run `java -cp pagoda-x.y.z-jar-with-dependencies.jar:<your_path_to_properties>/pagoda.properties arg [arg]...` for executing the engine with a custom configuration. | 70 | ### Providing an RDFox license |
| 41 | 71 | ||
| 42 | Using it as a library | 72 | The [documentation](https://docs.oxfordsemantic.tech/features-and-requirements.html#license-key), describes several ways to provide the license to RDFox. |
| 43 | ===================== | ||
| 44 | 73 | ||
| 45 | The API is offered by the class `QueryReasoner`, however we provide a more handy wrapper, that is the class `Pagoda`. | 74 | 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. |
| 46 | Thanks to such a wrapper, you can build an instance of `Pagoda` by specifying different parameters and after that you will get | 75 | |
| 47 | a runnable `Pagoda` object. | 76 | |
| 77 | ## Using the software | ||
| 78 | |||
| 79 | `TODO` | ||
| 80 | |||
| 81 | ### Running tests | ||
| 82 | |||
| 83 | `TODO` | ||
| 84 | |||
| 85 | ``` | ||
| 86 | mvn compile | ||
| 87 | mvn package | ||
| 88 | java -cp ... uk.ac.ox.cs.acqua.Acqua [OPTIONs] | ||
| 89 | ``` | ||
| 90 | |||
| 91 | ## References | ||
| 92 | |||
| 93 | [1] Horridge, Matthew and Bechhofer, Sean. | ||
| 94 | *The OWL API: A Java API for OWL Ontologies*. | ||
| 95 | Semantic Web Journal 2(1), Special Issue on Semantic Web Tools and Systems, pp. 11-21, 2011. | ||
| 96 | |||
| 97 | ## Acknowledgements | ||
| 98 | |||
| 99 | - OWLAPI [[2]](#references) | ||
| 100 | - [RDFox](https://www.oxfordsemantic.tech/product) | ||
| 101 | - [PAGOdA]() | ||
| 102 | |||
| 103 | ## Credits | ||
| 104 | |||
| 105 | - Federico Igne | ||
| 106 | - Stefano Germano | ||
| 107 | - Ian Horrocks (*Scientific Supervisor*) | ||
| 108 | |||
| 109 | From the [Knowledge Representation and Reasoning research group](https://www.cs.ox.ac.uk/isg/krr/) in the [Department of Computer Science](https://www.cs.ox.ac.uk/) of the [University of Oxford](https://www.ox.ac.uk/). | ||
| 110 | |||
| 111 | ## License | ||
| 112 | |||
| 113 | This project is licensed under the [Apache License 2.0](LICENSE). | ||
| 114 | |||
| 115 | ## TODOs | ||
| 116 | |||
| 117 | - [ ] Better integration between ACQuA, RDFox and PAGOdA configuration parameters. | ||
