Some IDL to focus minds

We considered recently the issue of the "key" that would be used to
store/retrieve descriptions from the repositories. The key would
identify the context in which the request was being made (i.e. the
physical client mechanism and/or the software user agent). The exact
nature of the key (or "context key", as I'm beginning to call it)
remains an open question. I thought perhaps it might be useful to see
where the context key would be used in the API, and as we're about to
start the API drafting now, here's a tiny seed IDL. We can build this up
on the wiki. Anyone who is familiar with designing interfaces for
databases/repositories is welcome to contribute some ideas. Just email
this list.

---Rotan.



// A simple seed IDL for the DDR.
// This one just has a Get method; no structured types or any
// other well-formed features we expect of the final API.

module ddrcore
{
  
  // Declarations
  typedef string OntologyIdentifier;   // Responsibility of the UWA
group
  typedef string RepositoryId;
  typedef string InformalDescription;  // i.e. Needs a human to
interpret
  interface Repository;

  // Definitions
  struct ContextKey {
    string agentSignature;
  };
  
  exception DDRException {
    unsigned short code;
  };

  const unsigned short UNSPECIFIED_ERROR     =  1;
  const unsigned short NOT_SUPPORTED_ERROR   =  2;
  const unsigned short ACCESS_VIOLATION      =  3;
  const unsigned short SYNTAX_ERROR          =  4;

  interface MinimalRepository {
    readonly attribute   string         name;
    readonly attribute   RepositoryId   id;
    InformalDescription  getInformalValue (
      in ContextKey          contextKey;
      in OntologyIdentifier  propertyName;
    ) raises(DDRException);
  }
  
};

Received on Sunday, 20 May 2007 23:06:00 UTC