In version 2.3, a function to save entire Cytoscape session will be added. The file will be called ".cys" (cys = CYtoscape Session). Basically, this is a zip file containing the following: 1. CySession.xml 1. vizmap.prop 1. cytoscape.prop 1. Arbitrary number of network files written in [[XGMML]]. [[http://chianti.ucsd.edu/kono/images/session2.png]] A timestamped directory will be created and files above will be stored in the dir. This function is implemented using [[JAXB]]. == How to use CytoscapeSessionReader class == Session file will be read through a class called CytoscapeSessionReader. This class has two types of constructor: * CytoscapeSessionReader(String fileName) * CytoscapeSessionReader(URL source) The first one is for local files and the second is mainly for remote files. The parameter''source ''should be the location of the''.cys ''file. For example, if plugin writer want to load a session file in a web server http://www.example.net/cytoscape/sample.cys, the code to call the reader will be: CytoscapeSessionReader csr = new CytoscapeSessionReader(new URL(http://www.example.net/cytoscape/sample.cys)) === On-demand Loader for Gene Ontology Server (tentative, 2.3 or 2.4) === It is not realistic to save entire biodataserver object to the session file. Also, loading entire Gene Ontology data into memory is not space-efficient. To avoid this problem, some sort of mechanism to load GO data only for loaded network files. This can be done with the following: 1. Prepare GO file in RDF-XML format (available [[http://www.godatabase.org/dev/database/|here]]). 1. Save the GO server's location in CySession.xml or cytoscape.prop 1. Create a checkbox "Load GO data for the network" in the "load network" dialog. 1. Generate query to select annotation only for nodes to be loaded. 1. Execute query and store them drectry into CyAttributes or add it to BDS object We need to refactor biodataserver class and add XQuery/SPARQL libraly to the Cytoscape. This method is universal to all data sources written in XML. I.e., if the database is available in XML format, we can query/load the data as a part of attributes in Cytoscape. ==== List of XML Technologies Related to This Topic ==== * [[http://www.w3.org/XML/|Extensible Markup Language (XML)]] * [[http://www.w3.org/XML/Schema|XML Schema]] * [[http://java.sun.com/webservices/jaxb/|Java Architecture for XML Binding (JAXB)]] * [[http://www.w3.org/TR/xquery/|XQuery 1.0: An XML Query Language]] * [[http://www.godatabase.org/dev/index.html|GO-DEV: The GO Software Developers Toolkit]] * [[http://www-128.ibm.com/developerworks/java/library/j-sparql/|Search RDF data with SPARQL]] * [[http://www-128.ibm.com/developerworks/java/library/j-jena/|Introduction to Jena (Semantic Web Framework)]] ---- . Discussion: * GaryBader - Jan.13.2006 - With the GO parser, we have some experience parsing RDF and Ethan has created a very lightweight class that he wrote to perform some basic Xquery like tasks. It was built for OWL, which is a layer on top of RDF, but it would probably still be useful. Jena is a large and slow library. We should try to avoid adding in large libraries if we only need a few features, since each library increases the size of the Cytoscape distribution and the download time of webstarts (webstarts will probably get more popular over time, especially when we make it easier to create them). Ethan's RDF parser is part of the [[http://cbio.mskcc.org/cytoscape/plugins/biopax/|BioPAX Plugin source code]]. * KeiichiroOno - Jan.19.2006 - Sounds great. I'll look into the Ethan's source code.