html added and odt removed

This commit is contained in:
2013-04-22 21:28:01 +05:30
parent ecb187cbfd
commit f4ee632238
5 changed files with 481 additions and 0 deletions
+481
View File
@@ -0,0 +1,481 @@
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=Generator content="Microsoft Word 14 (filtered)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin-top:0in;
margin-right:0in;
margin-bottom:10.0pt;
margin-left:0in;
line-height:115%;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
h1
{mso-style-link:"Heading 1 Char";
margin-top:24.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
line-height:115%;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Cambria","serif";
color:#365F91;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{mso-style-link:"Title Char";
margin-top:0in;
margin-right:0in;
margin-bottom:15.0pt;
margin-left:0in;
border:none;
padding:0in;
font-size:26.0pt;
font-family:"Cambria","serif";
color:#17365D;
letter-spacing:.25pt;}
p.MsoTitleCxSpFirst, li.MsoTitleCxSpFirst, div.MsoTitleCxSpFirst
{mso-style-link:"Title Char";
margin:0in;
margin-bottom:.0001pt;
border:none;
padding:0in;
font-size:26.0pt;
font-family:"Cambria","serif";
color:#17365D;
letter-spacing:.25pt;}
p.MsoTitleCxSpMiddle, li.MsoTitleCxSpMiddle, div.MsoTitleCxSpMiddle
{mso-style-link:"Title Char";
margin:0in;
margin-bottom:.0001pt;
border:none;
padding:0in;
font-size:26.0pt;
font-family:"Cambria","serif";
color:#17365D;
letter-spacing:.25pt;}
p.MsoTitleCxSpLast, li.MsoTitleCxSpLast, div.MsoTitleCxSpLast
{mso-style-link:"Title Char";
margin-top:0in;
margin-right:0in;
margin-bottom:15.0pt;
margin-left:0in;
border:none;
padding:0in;
font-size:26.0pt;
font-family:"Cambria","serif";
color:#17365D;
letter-spacing:.25pt;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-link:"Balloon Text Char";
margin:0in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{margin-top:0in;
margin-right:0in;
margin-bottom:10.0pt;
margin-left:.5in;
line-height:115%;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
line-height:115%;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
line-height:115%;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{margin-top:0in;
margin-right:0in;
margin-bottom:10.0pt;
margin-left:.5in;
line-height:115%;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
span.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-link:"Balloon Text";
font-family:"Tahoma","sans-serif";}
span.Heading1Char
{mso-style-name:"Heading 1 Char";
mso-style-link:"Heading 1";
font-family:"Cambria","serif";
color:#365F91;
font-weight:bold;}
span.TitleChar
{mso-style-name:"Title Char";
mso-style-link:Title;
font-family:"Cambria","serif";
color:#17365D;
letter-spacing:.25pt;}
.MsoChpDefault
{font-family:"Calibri","sans-serif";}
.MsoPapDefault
{margin-bottom:10.0pt;
line-height:115%;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=WordSection1>
<h1>&nbsp;</h1>
<div style='border:none;border-bottom:solid #4F81BD 1.0pt;padding:0in 0in 4.0pt 0in'>
<p class=MsoTitle>JavaScript JSON convertors for Cytoscape 3.0 file formats</p>
</div>
<p class=MsoNormal>&nbsp;</p>
<h1>Project Idea:</h1>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>The project title is: JavaScript JSON convertors for
Cytoscape 3.0 file formats.</p>
<p class=MsoNormal> The idea is based upon suggested Idea 19: JavaScript JSON
convertors for graph file formats, but I would like to drop the word “graph”
from it, because this project will support virtually all formats accepted by
Cytoscape 3.0 .</p>
<h1>Synopsis:</h1>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>This project deals with the conversion of different graph
and other  formats used in Cytoscape 3.0 to Json used in cytoscape.js and vice
versa. </p>
<p class=MsoNormal>Cytoscape 3.0 accepts file formats like xgmml, graphml, gml,
nnf, sif, xls, sif, csv whereas cytoscape.js currently accepts only json
representations of the data. It is not an easy task to create json
representation of a required graph by hand. This is where this project comes
in. I will develop some converters using JavaScript which will automate this generation
of json representation.  Cytoscape-web, the predecessor of Cytoscape.js
supported only sif files, but this project will support import and export to
all the formats mentioned earlier.</p>
<h1>Implementation details:</h1>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>The Cytoscape 3.0 file formats that will be supported are:</p>
<p class=MsoNormal>Xgmml, Graphml, Sif, Nnf, Gml (,Csv, Xlsx).</p>
<p class=MsoNormal>They are arranged according to their priority and so this is
the order in which their json converters will be implemented. The last two (in
bracket) will be kept as extras, meaning that they will be implemented only if
the project is finished well before the deadline (see the timeline for details)
.</p>
<p class=MsoNormal><img width=624 height=416 id="Picture 2"
src="cyto_proposal_draft_files/image001.png"
alt="Description: C:\Users\Abhas_2\Desktop\cyto\cyto_proposal.png"></p>
<p class=MsoNormal>Now, this is how I plan to deal with each of them.</p>
<p class=MsoListParagraph style='text-indent:-.25in'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Xgmml: This is the top priority format and hence will be dealt with
first. Xml parsers available in native javascript and jquery will be used for
parsing the xgmml file. Then some JavaScript code (using looping and if needed,
regular expressions) will deal with the parsed xml file to convert them
correctly into javascript variables and objects. Finally, they can be used to
generate its json representation. (Maybe, take some inspiration from this
library in Gremlin (written in java): <a
href="https://github.com/tinkerpop/blueprints/wiki/GraphSON-Reader-and-Writer-Library">https://github.com/tinkerpop/blueprints/wiki/GraphSON-Reader-and-Writer-Library</a>
)</p>
<p class=MsoNormal style='margin-left:.5in'>This required some separate
functions which can:</p>
<p class=MsoListParagraphCxSpFirst style='margin-left:1.0in;text-indent:-.25in'><span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>convert parsed xml to jS variables and objects</p>
<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;text-indent:-.25in'><span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>create xml from given jS variables and objects</p>
<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;text-indent:-.25in'><span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>save given jS variables and objects as json</p>
<p class=MsoListParagraphCxSpLast style='margin-left:1.0in;text-indent:-.25in'><span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>convert json into given jS variables and objects</p>
<p class=MsoNormal style='margin-left:.5in'>&nbsp;</p>
<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in'>2.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Graphml: 
Graphml is also a xml-based format, so the implementation process is same as
that of the previous one. Only the code will be different to take care of the
syntax difference of these formats.</p>
<p class=MsoListParagraphCxSpMiddle>&nbsp;</p>
<p class=MsoListParagraphCxSpMiddle>Before  I move on to the other ones, here
is a small chart for reference:</p>
<p class=MsoListParagraphCxSpLast>&nbsp;</p>
<p class=MsoNormal><img border=0 width=623 height=363 id="Picture 1"
src="cyto_proposal_draft_files/image002.jpg"
alt="Description: C:\Users\Abhas_2\Desktop\cyto\cyto_implementation.png"></p>
<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in'>3.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Sif
and Nnf: Very simple jS code needs to be written to take care of these file
formats. There is already a python-based implementation of these converters
(written by me) available at <a
href="https://github.com/bendtherules/GSOC_13/tree/master/nnf_and_sif_to_json_py%20%20">https://github.com/bendtherules/GSOC_13/tree/master/nnf_and_sif_to_json_py
</a> . Nnf files will be stripped off its network information and treated just
like a Sif file (Possible problem with multi-network files ??)</p>
<p class=MsoListParagraphCxSpLast style='text-indent:-.25in'>4.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GML: 
A custom-made parser needs to be built based on regular expressions (native js
or possibly using xregexp library <a href="http://xregexp.com/">http://xregexp.com/</a>
). The rest of the plan is the same as that of xgmml, only this new parser will
be used.</p>
<p class=MsoNormal>Few words on the extras:</p>
<p class=MsoNormal>These extras will be done only if there is ample time left
after the completion of the whole project, so there is no way that they will
harm the main project. I am aware that new GSOC applicants like me tend to
propose a lot more than they can actually complete, so I have tried not to fall
in that trap. But these extras are here, because I plan to do them in the
future, within or after GSOC.  Also, as a side note, in future, I wish to
release this codes as a separate jS library for converting customized-xml
formats into json (I hope my mentoring org will allow this).</p>
<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in'>5.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Csv: 
Use any well-documented csv parser and rest is the same.</p>
<p class=MsoListParagraphCxSpLast style='text-indent:-.25in'>6.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Xlsx:
This is the most challenging part. I wouldnt have tried this if there was no
cross-browser external library to read and write xlsx format. But thankfully
and quite surprisingly, there is one called Xlsx.js <a
href="https://github.com/stephen-hardy/xlsx.js">https://github.com/stephen-hardy/xlsx.js</a>
. I am not much sure if I can pull off this part, but I am still including this
in the proposal mostly for my inspiration than anything else. Also, I know that
the Cytoscape project originally supported .xls, but I think its best kept to
Microsoft Excel for converting .xls into .xlsx .</p>
<p class=MsoNormal>&nbsp;</p>
<h1>Timeline:</h1>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>Before June 17 : </p>
<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%;font-family:"Courier New"'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>Learn
more about:</p>
<p class=MsoListParagraphCxSpMiddle style='margin-left:1.5in;text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%;font-family:"Courier New"'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>   Jquery,
xregexp, csv-parser, json, xlsx.js and the graph formats.</p>
<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%;font-family:"Courier New"'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>Set up
development environment</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>June 17 July 6 (18 days): Implement xgmml converter</p>
<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%;font-family:"Courier New"'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>June 17
June 29 (12 days): Implement xgmml parser</p>
<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%;font-family:"Courier New"'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>July 30
July 5 (6 days): Rest of the converter</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>July 5 July 7 (3 days): Test converter with different xgmml
files.</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>4.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>July 8 July 25 (18 days): Implement graphml converter</p>
<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%;font-family:"Courier New"'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span> July 8
July 19 (12 days): Implement graphml parser</p>
<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%;font-family:"Courier New"'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>July 20
July 25 (6 days): Rest of the converter</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>5.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span> July 26 July 28 (3 days): Test graphml converter</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>6.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>July 29 (Mid-term evaluation):  Deliver fully-implemented xgmml
and graphml parser.</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>7.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>July 30: Take a day off from coding and analyze what went right
and wrong in the first-term. (How about a blog post? :D)</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>8.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>July 31 August 2 (3 days): Implement and test Sif and Nnf
converter.</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>9.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>August 3 August 20 (18 days): Implement Gml converter (First 12
days for the parser).</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>10.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span>August 21 August 23 (3 days): Test Gml converter</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>11.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span>August 24 August 27 (4 days):  Put all the converters together
and test them (Packaging).</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>12.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span>August 28 September 3 (10 days): Prepare documentation and add
inline comments in the code.</p>
<p class=MsoListParagraphCxSpLast style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>13.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;
</span></span>September 4 September 16 (13 days): Buffer time (If everything
is working, work on the extras) </p>
<p class=MsoNormal>(Feedback will be obtained for all the converters from the
community and they will be of more importance than the extras)</p>
<h1>Possible hurdles:</h1>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>Json handler in Cytoscape.js might not be able to handle objects
within the “data” section. If so, request the developer or send a patch to the
core project so that it is supported.</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>Make sure the regular-expression based Gml parser is not buggy.</p>
<p class=MsoListParagraphCxSpLast style='text-indent:-.25in'><span
style='font-size:10.0pt;line-height:115%'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span>The input graph formats might not be well-formed (if manually
created). (Maybe, add a xml-checker and discard non well-formed files. Such a
checker might not be possible in case of non-xml based formats. )</p>
<h1>What can I bring to the team?</h1>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in'><span
style='font-family:Wingdings'>ü<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span></span>Yes, I am committed in working hard for this GSOC project this
summer.  I do not have any other commitment during the summer other than my
college internals for the next session which should be held near the end of
August or the start of September. I am not yet sure about the date, but I will
ask for a one-week break during that time. I hope it wont be much of a
problem.</p>
<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in'><span
style='font-family:Wingdings'>ü<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span></span>Being my first GSOC project, I am also super-excited about it,
cant wait to have a fruitful summer this year.</p>
<p class=MsoListParagraphCxSpLast style='text-indent:-.25in'><span
style='font-family:Wingdings'>ü<span style='font:7.0pt "Times New Roman"'>&nbsp;
</span></span>I wish to learn some more about the core Cytoscape project but as
I am not a Java developer, I wish to linger with the Cytoscape.js project.</p>
</div>
</body>
</html>
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.