Explanation of OWL BioPAX rdf:RDF Header

RDF/XML, as defined by the OWL specification and thus by BioPAX, requires a header to define standard and custom namespaces for the file.

    

The following lines define this XML document as RDF/XML using OWL. These are required as exact strings for the file to be readable to e.g. Protege. xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

The following line allows a user to abbreviate the BioPAX namespace and should correspond to the BioPAX ontology Level that you are using. This results in smaller, more easily readable files. This example corresponds to BioPAX Level 1:

xmlns:bp="http://www.biopax.org/release/biopax-level1.owl#"

Note: this allows XML/RDF to be written out like this: 

instead of this: 

The following lines define the namespace of the document. These lines are both required, but the namespace can be any string that corresponds to the XML namespace specification. Generally, the namespace corresponds to a web server URL that you may control followed by any string. This doesn't have to resemble a URL, but some people find it helpful. The namespace string itself that resembles a URL does not have to resolve to a real web page, it is just a string that should be reasonably unique in the world (there is no guarantee that it can be unique). Both lines must have the same namespace.

xmlns="http://www.biopax.org/examples/glycolysis#" xml:base="http://www.biopax.org/examples/glycolysis"

Note: the presence of the # at the end of the first line, but not of the second line does not seem to make a difference when reading into Protege 3.0, though this seems to be the default when Protege creates a file. Unfortunately, there does not seem to be any standard here and different versions of Protege seem to treat the # differently. It should be safe to assume that the above placement is valid.

It is recommended that the BioPAX ontology be imported for the following reasons:
 * The file size of a BioPAX file without the ontology is smaller and it is easier to see the instance data
 * Some OWL editors, like Protege, do not allow you to inadvertently change the ontology when it is imported (whereas an badly placed mouse click and drag will change the ontology if editable - we have noticed a number of errors to appear in BioPAX ontologies because of this, though the behavior can be turned off in Protege at least)
 * It is easier for a user of the data to tell that the instances follow the official BioPAX ontology.

To import an ontology the proper import statement in the ontology header is used:   ...  ...  

Though, only the  element is required.   </owl:Ontology>