Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
propi committed Feb 13, 2019
2 parents 9cf81c6 + 66cfa53 commit 172fa71
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 30 deletions.
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
# RdfRules
# RDFRules

RdfRules is a fast analytics engine for rule mining in RDF knowledge graphs. It offers tools for complex rule mining process including RDF data pre-processing and rules post-processing. The core of RdfRules is written in the Scala language. Besides the Scala API,
RdfRules also provides a Java API, REST web service and a graphical user interface via a web browser. RdfRules uses the [AMIE+](https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/amie/) algorithm with several extensions as a basis for a complete solution for linked data mining.
RDFRules is a fast analytics engine for rule mining in RDF knowledge graphs. It offers tools for complex rule mining process including RDF data pre-processing and rules post-processing. The core of RDFRules is written in the Scala language. Besides the Scala API,
RDFRules also provides a Java API, REST web service and a graphical user interface via a web browser. RDFRules uses the [AMIE+](https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/amie/) algorithm with several extensions as a basis for a complete solution for linked data mining.

## Getting started

Requirements: Java 8+

RdfRules is divided into four main modules. They are:
- [Scala API](core): It is sutable for Scala programmers and for use RdfRules as a framework to invoke mining processes from Scala code.
RDFRules is divided into four main modules. They are:
- [Scala API](core): It is sutable for Scala programmers and for use RDFRules as a framework to invoke mining processes from Scala code.
- [Java API](java): Similar to Scala API but adapted for Java programmers.
- [Web Service](http): It is suitable for modular web-based applications and remote access via HTTP.
- [GUI](gui): It is suitable for anyone who wants to use the tool quickly and easily without any needs for further programming.

Detailed information about these modules with deployment instructions are described in their subfolders...

### Quick and easy run of RdfRules
### Quick and easy run of RDFRules

1. Clone or download this github repository
2. Run RdfRules HTTP API
- On Linux: ```./gui/dist/bin/main```
- On Windows: run this file ```./gui/dist/bin/main.bat```
3. Open ```./gui/webapp/index.html``` in a modern Internet browser
2. Run RDFRules HTTP API
- On Linux: ```./dist/bin/main```
- On Windows: run this file ```./dist/bin/main.bat```
3. Open ```./dist/webapp/index.html``` in a modern Internet browser

## Design and Architecture

![RdfRules main processes](rdfrules-processes.png)
![RDFRules main processes](rdfrules-processes.png)

The architecture of the RdfRules core is composed of four main data abstractions: RdfGraph, RdfDataset, Index and RuleSet. These objects are gradually created during processing of RDF data and rule mining. Each object consists of several operations which either *transform* the current object or perform some *action* to create an output. Hence, these operations are classied as transformations or actions.
The architecture of the RDFRules core is composed of four main data abstractions: RdfGraph, RdfDataset, Index and RuleSet. These objects are gradually created during processing of RDF data and rule mining. Each object consists of several operations which either *transform* the current object or perform some *action* to create an output. Hence, these operations are classied as transformations or actions.

![RdfRules main processes](rdfrules-abstractions.png)
![RDFRules main processes](rdfrules-abstractions.png)

### Transformations
Any transformation is a lazy operation that converts the current data object to another. For example a transformation in the RdfDataset
Expand Down
4 changes: 2 additions & 2 deletions core/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RdfRules Core - Scala API
# RDFRules Core - Scala API

This is the core of the RdfRules tool written in the Scala language. It has implemented main functionalities and four basic abstractions defined in the [root](https://github.com/propi/rdfrules).
This is the core of the RDFRules tool written in the Scala language. It has implemented main functionalities and four basic abstractions defined in the [root](https://github.com/propi/rdfrules).

## Getting Started

Expand Down
20 changes: 10 additions & 10 deletions gui/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# RdfRules: Graphical User Interface
# RDFRules: Graphical User Interface

The GUI for the RdfRules HTTP API is written as a HTML+JavaScript page which can be accessed from a browser. It offers simple interface to construct a mining pipeline, launch defined tasks and show a result, e.g., quads, rules, histograms, etc.
The GUI for the RDFRules HTTP API is written as a HTML+JavaScript page which can be accessed from a browser. It offers simple interface to construct a mining pipeline, launch defined tasks and show a result, e.g., quads, rules, histograms, etc.

## Getting Started

### Option 1: Existing RdfRules HTTP API + GUI
### Option 1: Existing RDFRules HTTP API + GUI

If you have launched the RdfRules HTTP API, then go to the "dist/webapp" directory and specify the endpoint variable. It should be an URL to the RdfRules HTTP API. After that, open "dist/webapp/index.html" with an internet browser and make a mining pipeline.
If you have launched the RDFRules HTTP API, then go to the `/dist/webapp` directory and specify the endpoint variable in the `index.html` file. It should be an URL to the RDFRules HTTP API. After that, open `/dist/webapp/index.html` with an internet browser and make a mining pipeline.

### Option 2: Run RdfRules HTTP API + GUI
### Option 2: Run RDFRules HTTP API + GUI

If you have not yet launched the RdfRules HTTP API, then go to the "dist/bin" directory and run the HTTP API by the "main" file (or "main.bat" for Windows). After that, open "dist/webapp/index.html" with an internet browser and make a mining pipeline.
If you have not yet launched the RDFRules HTTP API, then go to the `/dist/bin` directory and run the HTTP API by the `main` file (or `main.bat` for Windows). After that, open `/dist/webapp/index.html` with an internet browser and make a mining pipeline.

```
> cd dist/bin
Expand All @@ -20,9 +20,9 @@ or
> main.bat #for Windows
```

In the "dist/bin" directory, there should be created a "workspace" directory where you can put datasets for analysis. Then, if you click on the "Load graph" or "Load dataset" operation, the content of the "workspace" directory is displayed and you can select datasets to be loaded.
In the `/dist/bin` directory, there should be created a `workspace` directory where you can put datasets for analysis. Then, if you click on the "Load graph" or "Load dataset" operation, the content of the `workspace` directory is displayed and you can select datasets to be loaded.

### Option 3: Run RdfRules HTTP API + GUI in Docker
### Option 3: Run RDFRules HTTP API + GUI in Docker

```
> cd dist
Expand All @@ -32,14 +32,14 @@ In the "dist/bin" directory, there should be created a "workspace" directory whe

The GUI is available on this address: http://localhost:8899/api/webapp

You can copy datasets into the "workspace" directory in the running docker container by this command:
You can copy datasets into the `workspace` directory in the running docker container by this command:

```
> docker cp path/to/dataset rdfrules:/root/webapp/workspace
```

## Documentation

The GUI of RdfRules is suitable for fast pipeline construction of any mining task. If you click on the plus symbol you can add an operation to your pipeline. Operations are divided into two categories: **transformations** and **actions**. Transformations transforms results of previous operations whereas actions are final operations which launch the whole pipeline with all defined transformations. Hence, each pipeline must end with just one action operation and may contain any number of transformations.
The GUI of RDFRules is suitable for fast pipeline construction of any mining task. If you click on the plus symbol you can add an operation to your pipeline. Operations are divided into two categories: **transformations** and **actions**. Transformations transforms results of previous operations whereas actions are final operations which launch the whole pipeline with all defined transformations. Hence, each pipeline must end with just one action operation and may contain any number of transformations.

The GUI is only facade of the [http](../http) module. For more details about individual operations see the [http](../http) folder.
6 changes: 3 additions & 3 deletions http/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# RdfRules: Web Service
# RDFRules: Web Service

This is the HTTP REST web service of the RdfRules tool written in the Scala language with Akka Http. It has implemented http facades over the RdfRules core. All RdfRules operations are performed by a pipeline of tasks defined in one JSON document sent to the HTTP endpoint.
This is the HTTP REST web service of the RDFRules tool written in the Scala language with Akka Http. It has implemented http facades over the RDFRules core. All RDFRules operations are performed by a pipeline of tasks defined in one JSON document sent to the HTTP endpoint.

## Getting Started

[![](https://jitpack.io/v/propi/rdfrules.svg)](https://jitpack.io/#propi/rdfrules)

Clone the RdfRules repository and run following SBT commands. It starts the HTTP web server:
Clone the RDFRules repository and run following SBT commands. It starts the HTTP web server:
```sbt
> project http
> run
Expand Down
4 changes: 2 additions & 2 deletions java/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RdfRules: Java API
# RDFRules: Java API

This is the Java API of the RdfRules tool. It has implemented several facades over the Scala core.
This is the Java API of the RDFRules tool. It has implemented several facades over the Scala core.

## Getting Started

Expand Down

0 comments on commit 172fa71

Please sign in to comment.