aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Igne <federico.igne@cs.ox.ac.uk>2022-05-18 15:05:44 +0100
committerFederico Igne <federico.igne@cs.ox.ac.uk>2022-05-18 15:38:12 +0100
commit52bba67e640fb1e30817fd1114a54e1d38ad5a74 (patch)
tree65cb37fc68f6dfbfaa2a3f5aec51b3d890fdc8e6
parentef4740a98f74b8111e202df01fcbe41bdeccccfd (diff)
downloadACQuA-52bba67e640fb1e30817fd1114a54e1d38ad5a74.tar.gz
ACQuA-52bba67e640fb1e30817fd1114a54e1d38ad5a74.zip
docs: update README.md
-rw-r--r--README.md130
1 files changed, 100 insertions, 30 deletions
diff --git a/README.md b/README.md
index 663b6cb..13fe729 100644
--- a/README.md
+++ b/README.md
@@ -1,47 +1,117 @@
1PAGOdA 1<!-- TITLE -->
2====== 2<p align="center">
3 3
4PAGOdA is a conjunctive query answering engine for OWL 2 ontologies. 4<h1 align="center">&middot; ACQuA &middot;</h1>
5 5
6<p align="center">
7A hybrid architecture for conjunctive query answering overover OWL 2 DL.
8<br/>
9<a href="#">Read the thesis</a>
10&middot;
11<a href="#">Read the journal paper</a>
12&middot;
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
7Project dependencies/requirements 32</p>
8=================================
9 33
10- This software has been developed for Linux 34## About
11- JavaSE 8
12- Maven
13 35
36ACQuA is a hybrid query answering framework that combines black-box services to provide a CQ answering service for OWL.
37Specifically, it combines scalable CQ answering services for tractable languages with a CQ answering service for a more expressive language approaching the full OWL 2.
38If the query can be fully answered by one of the tractable services, then that service is used.
39Otherwise 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.
40If the bounds don’t coincide, then the “gap” answers are checked using the “full” service.
14 41
15Building and packaging 42This 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
18This 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`;
21you 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
25Configuring the engine 48RSAComb uses a recent version of [RDFox] under the hood to offload part of the computation.
26======================
27 49
28The engine provides a standard configuration, but it is most likely that is not suitable for your purposes. 50In order to run ACQuA you need to have [RDFox](https://www.oxfordsemantic.tech/product) available in your system, along with *a valid license*.
29You should provide your own configuration in a file called `pagoda.properties` including it in the classpath. 51RDFox is proprietary software and as such we are not able to distribute it along with our code.
30Such a file should resemble the file `src/resources/_default_pagoda.properties`. 52This software has been developed and tested with RDFox v5.5
31 53
54### Installing RDFox
32 55
33Executing 56We 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========= 57In particular, you will need to know the path to the RDFox Java API (usually called `JRDFox.jar`) that comes with the distribution.
35 58
36Once you have the runnable jar, you can make the system answer queries through the command line interface. 59Alternatively, run the following commands (on a Linux x86 machine) from the root of the project to install RDFox locally.
60Download links for other versions, operating systems, and architectures can be found [here](https://www.oxfordsemantic.tech/downloads).
37 61
38Run `java -jar pagoda-x.y.z-jar-with-dependencies.jar` for getting a list of the mandatory arguments and optional parameters. 62```{.bash}
63mkdir -p lib && pushd lib
64wget https://rdfox-distribution.s3.eu-west-2.amazonaws.com/release/v5.5/RDFox-linux-x86_64-5.5.zip
65unzip RDFox-linux-x86_64-5.2.1.zip
66ln -s RDFox-linux-x86_64-5.2.1.zip/lib/JRDFox.jar
67popd
68```
39 69
40Run `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
42Using it as a library 72The [documentation](https://docs.oxfordsemantic.tech/features-and-requirements.html#license-key), describes several ways to provide the license to RDFox.
43=====================
44 73
45The API is offered by the class `QueryReasoner`, however we provide a more handy wrapper, that is the class `Pagoda`. 74One 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.
46Thanks to such a wrapper, you can build an instance of `Pagoda` by specifying different parameters and after that you will get 75
47a runnable `Pagoda` object. 76
77## Using the software
78
79`TODO`
80
81### Running tests
82
83`TODO`
84
85```
86mvn compile
87mvn package
88java -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
109From 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
113This project is licensed under the [Apache License 2.0](LICENSE).
114
115## TODOs
116
117- [ ] Better integration between ACQuA, RDFox and PAGOdA configuration parameters.