> why the heck would you need to "parse" atomese?  

 What are you actually trying to do? 


I am converting it to JSON for graph visualization with Cytoscape.js for an 
annotation service. For example,
(EvaluationLink
 (PredicateNode "expresses")
 (ListLink 
    (GeneNode "MAP2K4")
    (MoleculeNode "Uniprot:Q5U0B8")))

The above will be "parsed" into the following JSON
{
  "data": {"source": "MAP2K4", "target": "Uniprot:Q5U0B8", "name": 
"expresses", "group": "edges"}
}


 Especially since it already comes with a built-in parser? 


Maybe I am confusing something here, but I didn't know any parser existed 
for my use case.

 
On Saturday, June 29, 2019 at 11:43:55 PM UTC+3, linas wrote:
>
> Dumb question: why the heck would you need to "parse" atomese? Especially 
> since it already comes with a built-in parser?  What are you actually 
> trying to do? --linas
>
> On Sat, Jun 29, 2019 at 10:04 AM Xabush Semrie <[email protected] 
> <javascript:>> wrote:
>
>> Hi,
>>
>> I have been working recently on LALR parser to parse atomese to JSON(code 
>> can be found here 
>> <https://github.com/Habush/annotation-scheme/blob/de66cd29c375321e5c7a14741a91c40ac40fb0b9/helpers/atomese-parser.scm#L98>).
>>  
>> I initially used the same LALR parser generator used by GHOST found in 
>> *(system 
>> base lalr)* module with a similar lexer generator (in my case I 
>> precompiled the regex patterns for performance gain). However, I was 
>> getting very bad performance and it took way too long to parse moderately 
>> sized atomese files. It didn't help that the module didn't provided its own 
>> lexer generator and in the case of the GHOST code, the regex patterns were 
>> not precompiled which would further degrade the performance. As a result, I 
>> started looking at alternatives and found the nyacc project.
>>
>> After rewriting the code using nyacc, I found that the nyacc parser 
>> generator on average is 5-6X faster than the previous parser generator 
>> (which used by GHOST) for the same file. In addition to the performance 
>> improvement, it removes the need to provide a manually written lexer 
>> generator, has support for mid-rule context actions for complicated 
>> production rules, has a better debugging and "logging" capabilities and 
>> (although minor) doesn't require to list all the terminal symbols. Also the 
>> project is also being actively developed.
>>
>> Hence, I deduced the GHOST parser could also benefit the same performance 
>> improvements and thought sharing this here. I am happy to work on porting 
>> the LALR parser from the current one to nyacc if this gets traction.
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "opencog" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/opencog.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/opencog/f3d23857-71b2-40a8-b99d-86249f9bd71a%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/opencog/f3d23857-71b2-40a8-b99d-86249f9bd71a%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
> -- 
> cassette tapes - analog TV - film cameras - you
>

-- 
You received this message because you are subscribed to the Google Groups 
"opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/opencog/c1ab0355-de77-428b-b8ce-baba885dd157%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to