[occi-wg] Query uniqueness
Gary Mazz
garymazzaferro at gmail.com
Mon Apr 11 10:57:14 CDT 2011
Hi Ralf,
I think the rule is on page 5 of the http document in section 3.3.1:
/Location paths tell the client where all resource instance *of one
Kind or Mixin *(in case
the Mixin is used as a tag) can be found regardless of the hierarchy
the service provider defines./
This should be made clearer..
Other stuff inline
I think your explanation needs to go in section 3.3.1
-gary
On 4/11/2011 9:21 AM, Ralf Nyren wrote:
>
> Category.location (as found in the query interface) maps to an URI.
> The term of the Category us unrelated to the location.
>
> The following is valid:
>
> Category: compute;
> scheme="http://schemas.ogf.org/occi/infrastructure#"; location=/my/vms/
>
ok ---good. We can have a unique Kind/Mixin instance, each with a unique
named space. If one or more are of same Kind/Mixin specification, they
can share a named space
>
> The only rule is that two Categories cannot map to the same location.
> So you cannot have two different Categories mapping to e.g. /compute/.
>
But, Kind/Mixin instances with different specifications cannot resolve
to the same named space.
>
> This means that with user-defined Mixins an OCCI service must refuse
> to create a Mixin for which the specified location path already is taken.
>
Ok, I guess this would pertain to other 'locationed" objects.
> /Ralf
>
> On Sun, 10 Apr 2011 14:34:12 -0600, Gary Mazz
> <garymazzaferro at gmail.com> wrote:
>
> Ok,
> In this example:
>
> *Retrieving All Resource Instances Belonging to Mixin or
> Kind* The HTTP verb GET must be used to
> retrieve all resource instances. The service provider MUST
> return a listing containing all resource
> instances which belong to the requested Mixin or Kind:
> > GET /compute/ HTTP/1.1
> > [...]
> < HTTP/1.1 200 OK
> < [...]
> <
> < X-OCCI-Location: http://example.com/vms/user1/vm1
> < X-OCCI-Location: http://example.com/vms/user1/vm2
> < X-OCCI-Location: http://example.com/vms/user2/vm1
>
> An OCCI implementation MUST support a filtering mechanism.
> If a HTTP Category is provided in the
> request the server MUST only return the resource instances
> belonging to the provided Kind or Mixin.
> The provided HTTP category definition SHOULD be different
> from the Kind or Mixin definition which
> defined the location path used in the request.
>
> If an OCCI Entity attribute (X-OCCI-Attribute) is provided
> in the request the server MUST only return
> the resource instances which have a matching attribute value.
>
>
> We see the the URI path '/compute/'. This name space confusion
> comes into the picture.. Is the URI path, indicating the
> 'location' specified by a category or is it the 'term' of the
> category? If it is the "location" there is the possibility of
> returning back multiple categories if the 'location' attribute is
> the same across multiple categories. If it is the "term", there
> can be resources based on categories using the same 'term' but
> using differnt schemes.
>
> -gary
>
>
>
> On 4/10/2011 12:59 PM, Ralf Nyren wrote:
>
> please see below:
>
> On Sun, 10 Apr 2011 19:08:44 +0200, Gary Mazz wrote:
>
> Maybe I'm looking that the specifications too long, but it
> seems you can
> place more than one term in a query named space... for
> example, a query
> named space '/network/' could refer to both the occi
> scheme and a
> private scheme.
>
>
> The namespace for different Category/Kind/Mixin instances is
> defined by the scheme, e.g. http://schemas.ogf.org/occi/core#.
> In this case we talk about the namespace for different types,
> i.e. Entity, Resource, Link, Compute, Storage, etc.
>
> We also talk about the namespace used for Entity IDs, i.e. the
> IDs of resource instances in a system. In the case of the HTTP
> Rendering this namespace is mapped to the URL namespace of HTTP.
>
> To further complicate things we have a mechanism of hooking a
> Kind/Mixin instances into this HTTP URL namespace by use of
> the "location" parameter. As you know a Kind or Mixin instance
> represents a collection of all resource instances (Entity
> sub-type instances) associated with the Kind or Mixin. This
> collection can be retrieved by querying the "location" URL.
>
> So to answer your question on the mapping of e.g. the
> "/network/" HTTP path it depends if you have a Kind/Mixin
> hooked into that path or not. If there is such a hook (i.e.
> you have a Category: ... location=/network/ somewhere in the
> query interface) you will find the collection of the
> Kind/Mixin. However if you do not have a Kind/Mixin location
> mapped at /network/ you must follow the rules in section 3.4.2
> "Operation on Paths in the Name-space".
>
> hmm... makes sense? :P
>
> There is no requirement that identical 'terms' used to
> describe a
> resource category to have a similar or the same functional
> characteristics as terms defined in the occi scheme.
>
>
> You are free to define e.g. Category: compute;
> scheme=http://provider.com/blah# which is represents a coffee
> machine. It might be slightly misleading but as long as you
> use your own scheme namespace you can essentially do whatever
> you want.
>
> There is a mention of an "entity_type" to "Entity type
> uniquely
> identi%0Cfied by the Kind instance." However it doesn't
> say "entity_type"
> uniquely "identifies" the Kind Instance. The only way to
> uniquely
> identify a Kind is by scheme:term. And this leads back to
> the issue
> with the query
>
>
> The Kind.entity_type is intended to contain a reference to the
> type (a class in most OO langs) which is identified by the
> Kind. Example (python-ish):
>
> # Compute is a class which inherits Resource which inherits
> Entity.
>
> # Thus is the Kind instance which identifies the Compute type
> (class) defined:
> compute_kind = Kind()
> compute_kind.term = "compute"
> compute_kind.scheme = "http://schemas.ogf.org/occi/core#"
> compute_kind.entity_type = Compute
>
> # If you want to create a new Compute instance you could do:
> class_ref = compute_kind.entity_type
> my_compute = class_ref()
>
> So Kind.entity_type is a reference to the type which the Kind
> instance identifies. This is of course not applicable to all
> programming languages but the idea is that given an instance
> of Kind you should be able to find out the Entity type it
> identifies.
>
> /Ralf
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/occi-wg/attachments/20110411/1e1e4204/attachment.html
More information about the occi-wg
mailing list