Hi all,

The thread relating to supporting a more full RDF API doesn't seem to 
have reached any consensus, but I haven't seen any objection to the 
proposal to move the functions to fetch RDF/XML from element to model, 
and making them return RDF documents equivalent to all the RDF in the model.

I propose that the following changes are made to the CellML_APISPEC 
interface definition:

1) "RDFRepresentation getRDFRepresentation(in wstring type) 
raises(CellMLException);" is removed from interface Element.

2) The following is added to the end of interface Model:

    /**
     * The RDF metadata associated with this element.
     * @param type The URN describing the type of RDF metadata. 
Implementations
     *             are free to add new types by creating new type names 
at URNs
     *             under their jurisdiction. New URNs under 
http://www.cellml.org
     *             are reserved for future versions of this specification.
     * @return The object containing the RDF representation. The object may
     *         be cast in an application defined manner depending on the 
type
     *         returned.
     * @raises CellMLException if type isn't supported.
     * All implementations must implement the following types:
     *             http://www.cellml.org/RDFXML/string
     *             http://www.cellml.org/RDFXML/DOM
     */
    RDFRepresentation getRDFRepresentation(in wstring type) 
raises(CellMLException);

3) The RDFXMLDOMRepresentation and RDFXMLStringRepresentation interfaces 
are removed, and replaced with:
  /**
   * The RDF representation for type="http://www.cellml.org/RDFXML/DOM";
   */
  interface RDFXMLDOMRepresentation : RDFRepresentation
  {
    /**
     * A complete RDF/XML document (including a single top-level RDF:rdf
     * element) as a DOM document. The document fetched is a copy of the RDF
     * in the model (that is, it is not live). However, fetching the 
attribute
     * again will update to the latest data. Assigning this attribute to
     * a new document (or a changed version of the previous document) will
     * replace all the RDF in the model with the contents of the new 
document.
     */
    attribute dom::Document data;
  };

  /**
   * The RDF representation for type="http://www.cellml.org/RDFXML/string";
   */
  interface RDFXMLStringRepresentation : RDFRepresentation
  {
    /**
     * A complete RDF/XML document (including a single top-level RDF:rdf
     * element) as a serialised string. The document fetched is a copy 
of the RDF
     * in the model (that is, it is not live). However, fetching the 
attribute
     * again will update to the latest data. Assigning this attribute to
     * a new document (or a changed version of the previous document) will
     * replace all the RDF in the model with the contents of the new 
document.
     */
    attribute wstring serialisedData;
  };

Please let me know (via [email protected]) if you have any 
objections or comments about the above changes. I would be particularly 
interested to know if anyone is currently using getRDFRepresentation on 
Element (in which case these changes will introduce an incompatibility).

Best regards,
Andrew

_______________________________________________
cellml-discussion mailing list
[email protected]
http://www.cellml.org/mailman/listinfo/cellml-discussion

Reply via email to