<html>
<head></head>
<body>
<div style="background-color:white; width=100%;">
<div>
I hope this doesn't clash with the existing KML file format which can be read by Marble:
<br />
<br />
<a href="https://en.m.wikipedia.org/wiki/Keyhole_Markup_Language" target="_top">https://en.m.wikipedia.org/wiki/Keyhole_Markup_Language</a>
<br />
<br />BR
<br />Torsten
</div>
<div>
<br />
<br />
<br />
<hr />Gesendet mit der
<a href="https://kommunikationsdienste.t-online.de/redirects/email_app_android_sendmail_footer">Telekom Mail App</a>
</div>
<div>
<br />
<br />--- Original-Nachricht ---
<br />
<b>Von: </b>Shivam Balikondwar
<br />
<b>Betreff: </b>Season of KDE 2020 - ROCS IDE - Add File backends, Week : 1
<br />
<b>Datum: </b>21.01.2020, 12:49 Uhr
<br />
<b>An: </b>tcanabrava@kde.org, Caio Tonetti, kde-soc@kde.org
<br />
<br />
<br />
</div>
</div>
<div>
<div>
<div dir="ltr">
<br />Hi there, Shivam here
<br />I did research on KML file format , i am working to add support to import and export graphs in KML format.
<br />This is a short explanation of my understanding, I request Caio and Tomaz to go through it and help me finalize the grammer for this parser.
<br />
<br />KML is an easy to interpret file format written in the form of nested html like tags "<>". The attributes( values ) are in the <> </> tag present which can be parsed by spirit parser.
<br />In the past week I did research and studied the spirit boost library.
<br />I have become familiar with both the parser and generator (qi and karma)
<br />qi's API , skipper function. Also how the current implementation of rocs uses this library to parse the files.
<br />
<br />Long story short, i think this grammar definition might be enough for importing/exporting graph.
<br />
<br /><Graph> : tells the nested tags will contain, graph nodes, edges etc
<br /> <id> : can be a number, name , etc symbol denoting graph
<br /> <type> : digraph(directional), graph specifying the type of graph
<br /><Node> : each node present inside the graph
<br /> <id> : a visual id for the node, can be name or digit
<br /> <unq id> : a unique id to be used later in joining edges.
<br /> <color> : node color
<br /> <style> : just a generalised definition for all the less required attributes like text size, etc
<br /><Edge> : contains all the edges and shows how they are interconnected
<br /> <Nodes>: a comma seperated parameter which will speficy the two nodes connect.
<br />In case of directed graph the parser will assume it to be first points to the second. Eg: for a and b nodes it will be as a,b and when its directed it will be as a,b but interpreted as a->b
<br /> <color> : color of the edge
<br /> <wieght> : wieght of the edge
<br /> <style> : other less important attributes.
<br />
<br />An example
<br />
<br /><Graph>
<br /><Node>
<br /><id>A</id>
<br /><color> blue </color>
<br /></Node>
<br /><Node>
<br /><id>B</id>
<br /><color> blue </color>
<br /></Node>
<br /><Node>
<br /><id>C</id
<br /><color> blue </color>
<br /></Node>
<br /><Edge>
<br /><color>
<br /><connect>
<br />A,B
<br /></connect>
<br />blue
<br /></color>
<br /></Edge>
<br /></Graph>
<br />
<br />This above parser can be realised using spirit boost library as used in rocs/libgraphtheory/fileformats/grammer files
<br />
<br />Looking forward for everyone's reply on what changes are required.
<br />
</div>
</div>
</div>
</body>
</html>