Nota: ¡Proyecto bajo un gran desarrollo!
UCFS es un O Olver de U NUVersal C OnText : una herramienta para resolver problemas relacionados con la intersección del lenguaje libre y sin contexto y sin contexto. Ejemplos de tales problemas:
Usage: kotgll options_list
Options:
--input -> Input format (always required) { Value should be one of [string, graph] }
--grammar -> Grammar format (always required) { Value should be one of [cfg, rsm] }
--sppf [ON] -> Sppf mode { Value should be one of [on, off] }
--inputPath -> Path to input txt file (always required) { String }
--grammarPath -> Path to grammar txt file (always required) { String }
--outputPath -> Path to output txt file (always required) { String }
--help, -h -> Usage info
git clone https://github.com/FormalLanguageConstrainedPathQuerying/kotgll.git
o
git clone [email protected]:FormalLanguageConstrainedPathQuerying/kotgll.git
o
gh repo clone FormalLanguageConstrainedPathQuerying/kotgll
cd kotgll
gradle run --args="--help"
Verá el mensaje "Lista de opciones".
gradle run --args="--input graph --grammar rsm --sppf off --inputPath src/test/resources/cli/TestGraphReadWriteCSV/dyck.csv --grammarPath src/test/resources/cli/TestRSMReadWriteTXT/dyck.txt --outputPath ./result.txt"
curl -L -O https://github.com/FormalLanguageConstrainedPathQuerying/kotgll/releases/download/v1.0.0/kotgll-1.0.0.jar
java -jar kotgll-1.0.0.jar --input graph --grammar rsm --sppf off --inputPath src/test/resources/cli/TestGraphReadWriteCSV/dyck.csv --grammarPath src/test/resources/cli/TestRSMReadWriteTXT/dyck.txt --outputPath ./result.txt
StartNonterminal("S")
Nonterminal("S") -> Terminal("subClassOf_r") Nonterminal("S") Terminal("subClassOf")
Nonterminal("S") -> Terminal("subClassOf_r") Terminal("subClassOf")
Nonterminal("S") -> Terminal("type_r") Nonterminal("S") Terminal("type")
Nonterminal("S") -> Terminal("type_r") Terminal("type")
StartState(id=0,nonterminal=Nonterminal("S"),isStart=true,isFinal=false)
State(id=0,nonterminal=Nonterminal("S"),isStart=true,isFinal=false)
State(id=1,nonterminal=Nonterminal("S"),isStart=false,isFinal=false)
State(id=4,nonterminal=Nonterminal("S"),isStart=false,isFinal=false)
State(id=3,nonterminal=Nonterminal("S"),isStart=false,isFinal=true)
State(id=2,nonterminal=Nonterminal("S"),isStart=false,isFinal=false)
State(id=6,nonterminal=Nonterminal("S"),isStart=false,isFinal=true)
State(id=5,nonterminal=Nonterminal("S"),isStart=false,isFinal=false)
TerminalEdge(tail=0,head=1,terminal=Terminal("subClassOf_r"))
TerminalEdge(tail=0,head=4,terminal=Terminal("type_r"))
TerminalEdge(tail=1,head=3,terminal=Terminal("subClassOf"))
NonterminalEdge(tail=1,head=2,nonterminal=Nonterminal("S"))
TerminalEdge(tail=4,head=6,terminal=Terminal("type"))
NonterminalEdge(tail=4,head=5,nonterminal=Nonterminal("S"))
TerminalEdge(tail=2,head=3,terminal=Terminal("subClassOf"))
TerminalEdge(tail=5,head=6,terminal=Terminal("type"))
El algoritmo GLL se ha modificado para admitir la entrada de gráficos. La modificación propuesta se ha evaluado en varios gráficos reales para el escenario de encontrar todos los pares de accesibilidad.
Configuración de la máquina : PC con Ubuntu 20.04, CPU Intel Core i7-6700 3.40GHz, DDR4 64GB RAM.
Configuración de entorno :
Los datos del gráfico se seleccionan del conjunto de datos CFPQ_DATA.
Una descripción detallada de los gráficos se enumera a continuación.
Nombre del gráfico | | V | | | E | | #subclassof | #tipo | #Broadertransitive |
---|---|---|---|---|---|
Enzima | 48 815 | 86 543 | 8 163 | 14 989 | 8 156 |
Eclado | 239 111 | 360 248 | 90 962 | 72 517 | 0 |
Jerarquía | 45 007 | 490 109 | 490 109 | 0 | 0 |
Ir | 582 929 | 1 437 437 | 94 514 | 226 481 | 0 |
Geoespecies | 450 609 | 2 201 532 | 0 | 89 065 | 20 867 |
Taxonomía | 5 728 398 | 14 922 125 | 2 112 637 | 2 508 635 | 0 |
Todas las consultas utilizadas en la evaluación son variantes de consulta de la misma generación. El inverso de una relación x
y el borde respectivo se denota como x_r
.
Gramáticas utilizadas para gráficos RDF :
G 1
S -> subClassOf_r S subClassOf | subClassOf_r subClassOf
| type_r S type | type_r type
La representación de G 1 Gramática libre de contexto en el repositorio se puede encontrar aquí.
Aquí se puede encontrar la representación de la gramática sin contexto G 1 como autómata recursiva en el repositorio.
Los resultados de la evaluación de consultas de accesibilidad de todos los pares en gráficos relacionados con el análisis RDF se enumeran a continuación.
En cada fila, el mejor tiempo medio en segundos se destaca en negrita .
Gráfico | CFG | RSM | Gll4graph |
---|---|---|---|
Enzima | 0.107 | 0.044 | 0.22 |
Eclado | 0.94 | 0.43 | 1.5 |
Jerarquía | 4.1 | 3.0 | 3.6 |
Ir | 3.2 | 1.86 | 5.55 |
Geoespecies | 0.97 | 0.34 | 2.89 |
Taxonomía | 31.2 | 14.8 | 45.4 |
Se pueden encontrar más resultados, pero en forma bruta, en el repositorio kotgll_benchmarks