What is XGMML?
XGMML is an XML version of GML.
XGMML in Cytoscape
In the future releases, Cytoscape's standard format for saving graph layout will be XGMML. Users can save graph topology AND attributes in the same file.
XML Schema
The code to manipulate data element in XML file will be generated by data binding package, called Java Architecture for XML Binding (JAXB). JAXB automatically generate JAVA code based on XML Schema. XML schema for XGMML is available here.
Metanode and XGMML
In Cytoscape v2.3, a new concept called Metanode will be introduced. In XGMML, metanode is a node which has a subgraph containing nodes and edges. For more information, please read Metanode_In_XGMML section.
File Format
Network file in XGMML has the following information:
- Interactions (Nodes/Edges)
- Attributes (annotation for nodes/edges)
- Graphical representation of nodes and edges
- Network meta-info in RDF
- This is a general information for the network. Generic information like network name, date modified, etc. will be inserted here. The data format used for network meta-information is RDF (Resource Description Framework). The supported attributes are taken from Dublin Core Metadata Element Set (DCMES):
- Title
- Creator
- Subject
- Description
- Publisher
- Contributor
- Date
- Type
- Format
- Identifier
- Source
- Language
- Relation
- Coverage
- Rights
Although internal data structure will support all of the above, GUI (Network Metadata Editor) supports subset of the elemets. For more information about DCMES, please visit here.
- This is a general information for the network. Generic information like network name, date modified, etc. will be inserted here. The data format used for network meta-information is RDF (Resource Description Framework). The supported attributes are taken from Dublin Core Metadata Element Set (DCMES):
JamesMcIninch 2006/04/20:
- Questions:
- Previously, attributes could be any Java type -- java.net.URL for instance -- and XGMML supports "list", "integer", "real", and "string". What thought has been given to restoring the ability to use other types?
The examples in the testData directory put the type of the attribute
in the label. For example,
<att value="YCK2" label="string" name="commonName"/>
- instead of the correct XGMML
<att value="YCK2" type="string" label="Common Name" name="commonName"/>
- .. should that not be fixed? Is Cytoscape doing the the right thing?
Pitfalls
You always get a null pointer exception instead of an decent error. Therefore finding the the source of the problem is pretty much trail an error. Besides doing smart guessing based an the call tree, here are some pitfalls:
- The file musst start with
<?xml version="1.0"?> <graph label="test" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cy="http://www.cytoscape.org" xmlns="http://www.cs.rpi.edu/XGMML" directed="1">
Even then XGML sample files fail to load. - Each ege must have a label
The weight must be an attribute (<att />)