Skip to content

Commit 8507cc3

Browse files
authored
Update README.md
1 parent 78c0d19 commit 8507cc3

1 file changed

Lines changed: 77 additions & 1 deletion

File tree

README.md

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11
# kotgll
2+
[![Build](https://github.com/vadyushkins/kotgll/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/vadyushkins/kotgll/actions/workflows/build.yml)
3+
[![Test](https://github.com/vadyushkins/kotgll/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/vadyushkins/kotgll/actions/workflows/test.yml)
4+
25
* [About](https://github.com/vadyushkins/kotgll#about)
36
* [Usage](https://github.com/vadyushkins/kotgll#usage)
47
* [From sources](https://github.com/vadyushkins/kotgll#from-sources)
58
* [Using JAR](https://github.com/vadyushkins/kotgll#using-jar)
69
* [CFG Format Example](https://github.com/vadyushkins/kotgll#cfg-format-example)
710
* [RSM Format Example](https://github.com/vadyushkins/kotgll#rsm-format-example)
11+
* [Performance](https://github.com/vadyushkins/kotgll#performance)
12+
* [Graphs](https://github.com/vadyushkins/kotgll#graphs)
13+
* [Grammars](https://github.com/vadyushkins/kotgll#grammars)
14+
* [Results](https://github.com/vadyushkins/kotgll#results)
15+
* [More results](https://github.com/vadyushkins/kotgll#more-results)
16+
17+
> Note: project under heavy development!
818
919
## About
10-
GLL implementation in Kotlin
20+
**kotgll** is an open-source project for implementing the GLL algorithm and its modifications in Kotlin
1121

1222
## Usage
1323

@@ -98,3 +108,69 @@ NonterminalEdge(tail=4,head=5,nonterminal=Nonterminal("S"))
98108
TerminalEdge(tail=2,head=3,terminal=Terminal("subClassOf"))
99109
TerminalEdge(tail=5,head=6,terminal=Terminal("type"))
100110
```
111+
112+
## Performance
113+
114+
The GLL algorithm has been modified to support graph input.
115+
The proposed modification has been evaluated on several real graphs for the scenario of finding all pairs of reachability.
116+
117+
**Machine configuration**: PC with Ubuntu 20.04, Intel Core i7-6700 3.40GHz CPU, DDR4 64Gb RAM.
118+
119+
**Enviroment configuration**:
120+
* Java HotSpot(TM) 64-Bit server virtual machine (build 15.0.2+7-27, mixed mode, sharing).
121+
* JVM heap configuration: 55Gb both xms and xmx.
122+
123+
### Graphs
124+
125+
The graph data is selected from [CFPQ_Data dataset](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data).
126+
127+
A detailed description of the graphs is listed bellow.
128+
129+
#### RDF analysis graphs
130+
131+
| Graph name | \|*V*\| | \|*E*\| | #subClassOf | #type | #broaderTransitive |
132+
|:------------|----------:|------------:|-------------:|-----------:|--------------------:|
133+
| [Enzyme](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/enzyme.html#enzyme) | 48 815 | 86 543 | 8 163 | 14 989 | 8 156 |
134+
| [Eclass](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/eclass.html#eclass) | 239 111 | 360 248 | 90 962 | 72 517 | 0 |
135+
| [Go hierarchy](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/go_hierarchy.html#go-hierarchy) | 45 007 | 490 109 | 490 109 | 0 | 0 |
136+
| [Go](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/go.html#go) | 582 929 | 1 437 437 | 94 514 | 226 481 | 0 |
137+
| [Geospecies](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/geospecies.html#geospecies) | 450 609 | 2 201 532 | 0 | 89 065 | 20 867 |
138+
| [Taxonomy](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/taxonomy.html#taxonomy) | 5 728 398 | 14 922 125 | 2 112 637 | 2 508 635 | 0 |
139+
140+
### Grammars
141+
142+
All queries used in evaluation are variants of same-generation query.
143+
The inverse of an ```x``` relation and the respective edge is denoted as ```x_r```.
144+
145+
<br/>
146+
147+
Grammars used for **RDF** graphs:
148+
149+
**G<sub>1</sub>**
150+
```
151+
S -> subClassOf_r S subClassOf | subClassOf_r subClassOf
152+
| type_r S type | type_r type
153+
```
154+
155+
The representation of **G<sub>1</sub>** context-free grammar in the repository can be found [here](https://github.com/vadyushkins/kotgll/blob/main/src/test/resources/cli/TestCFGReadWriteTXT/g1.txt).
156+
157+
The representation of **G<sub>1</sub>** context-free grammar as recursive automaton in the repository can be found [here](https://github.com/vadyushkins/kotgll/blob/main/src/test/resources/cli/TestRSMReadWriteTXT/g1.txt).
158+
159+
### Results
160+
161+
The results of the **all pairs reachability** queries evaluation on graphs related to **RDF analysis** are listed below.
162+
163+
In each row, the best mean time in seconds is highlighted in **bold**.
164+
165+
| Graph | [CFG](https://github.com/vadyushkins/kotgll/tree/main/src/main/kotlin/org/kotgll/cfg/graphinput/withoutsppf) | [RSM](https://github.com/vadyushkins/kotgll/tree/main/src/main/kotlin/org/kotgll/rsm/graphinput/withoutsppf) | [GLL4Graph](https://github.com/FormalLanguageConstrainedPathQuerying/GLL4Graph) |
166+
|-------------- |:-----: |:---------: |:---------: |
167+
| [Enzyme](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/enzyme.html#enzyme) | 0.107 | **0.044** | 0.22 |
168+
| [Eclass](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/eclass.html#eclass) | 0.94 | **0.43** | 1.5 |
169+
| [Go hierarchy](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/go_hierarchy.html#go-hierarchy) | 4.1 | **3.0** | 3.6 |
170+
| [Go](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/go.html#go) | 3.2 | **1.86** | 5.55 |
171+
| [Geospecies](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/geospecies.html#geospecies) | 0.97 | **0.34** | 2.89 |
172+
| [Taxonomy](https://formallanguageconstrainedpathquerying.github.io/CFPQ_Data/graphs/data/taxonomy.html#taxonomy) | 31.2 | **14.8** | 45.4 |
173+
174+
#### More results
175+
176+
More results, but in raw form, can be found in repository [kotgll_benchmarks](https://github.com/vadyushkins/kotgll_benchmarks/)

0 commit comments

Comments
 (0)