index.md 2.92 KB
Newer Older
1
# Overview {#overview}
2
3
The [Dare2Del](http://dare2del.de) system identifies irrelevant files in the user's file system and provides suggestions to delete them. 
The Reasoning WebAPI (this system) provides the required reasoning facilities as Service over HTTP. The exposed API facilitates 
4

5
6
7
8
9
10
11
 - querying whether some file is irrelevant,
 - querying an explanation why some file is irrelevant, and
 - modifying and querying the stored (meta) information on the file system.
 
Additionally, it contains the (domain specific) logic to decide whether a file is irrelevant and how the application of this logic may be transfered into natural language explanations. However, these parts may and should be decoupled from the core system in a later version (see [issue #34](https://gitlab.rz.uni-bamberg.de/cogsys/dare2del/demonstrator/-/issues/34)).

The WebAPI provides an interface to the underlying reasoning logic (the irrelevance theory). The client sends an HTTP request to the API endpoint provided by the server. For irrelevance and explanation queries, the server queries the theory and answers with the respective HTTP response.
12
13
14

[[image/architecture.svg]]

Siebers, Michael's avatar
Siebers, Michael committed
15
If the HTTP reques or response requires additional payload, it is formatted as JSON object. This documentation provides a list of [API endpoints](<api_endpoints.html>) including requirements for the HTTP request.
16

17
18
19
20
21
22
23
## Multiple Clients and Security
The Reasoning WebAPI supports multiple clients. The underlying server architecture spawns worker threads as required. However, all clients share the irrelevance theory and the background knowledge. 
Concurrent requests to change the background will result in a valid background knowledge state. However, the exact result and thus the HTTP responses are unpredictable.

No security measures have been implemented. The server API is accessible without authentication. The data stored on the file system is not encrypted.


24
25
## Documentation
The Reasoning WebAPI server provides its own documentation. It is split in three parts:
26

27
28
29
30
31
    $ User Documentation: How to interact with a running server? How to use the API endpoints?
    $ Admin Documentation: How to run and configure the server? How to write irrelevancy rules?
    $ Developer Documentation: How does the server work under the hood?
    
### User documentation
Siebers, Michael's avatar
Siebers, Michael committed
32
33
    1. [User Guide](<user_guide.html>) (incomplete)
    1. [API endpoints](<api_endpoints.html>)
Siebers, Michael's avatar
Siebers, Michael committed
34
    1. [JSON Schemas](<schema/index.html>)
35
36
    
### Admin documentation
Siebers, Michael's avatar
Siebers, Michael committed
37
    1. [Admin Guide](<admin_guide.html>) (incomplete)
38
### Developer documentation
Siebers, Michael's avatar
Siebers, Michael committed
39
    1. [Developer Guide](<dev_guide.html>) (incomplete)
40
    1. Core Modules
Siebers, Michael's avatar
Siebers, Michael committed
41
42
43
44
        - [Main Server](<module_web_api.html>)
        - [Managing Background Knowledge](<module_theory_bg.html>)
        - [Checking Type Conformity](<module_types.html>)
        - [Explanation Generation](<module_explanations.html>)
45
    1. [Startup Scripts](<startup_scripts.html>)
46
    1. [Local SWI-Documentation](<pldoc/refman/>)