How to address the issues of "opensocial" name space where it is
really not specific to opensocial?
Some examples:
opensocial-i18n - feature name
opensocial_proxied_content - a needed flag for proxied content
opensocial_viewer_id, opensocial_owner_id - if we keep the generic
concepts of viewer and owner
xmlns:os="
http://ns.opensocial.org/2008/markup" - pipelineing
namespace
type="text/os-data" - pipelining script type
opensocial-data - pipeline feature name
opensocial-templates - template feature name
type="text/os-template" - script type for templates
I don't think we want to break existing gadgets, so simply changing
the name is not a viable option.
Option 1: Grandfather in existing names
Simply keep them as is with a note, that these are for generic
functionality. Ugly, but perhaps for things that are rather difficult
to solve with the other methods (URL parameters:
opensocial_proxied_content, etc...)
Option 2: Deprecate current usage and rename
* This would be good for opensocial-i18n.
* Could work for opensocial_proxied_content, although not as clean
since each URL would need to carry both arguments.
* opensocial_viewer/owner_id - similar to above. One reason for
splitting that to the OpenSocial spec. (See Lane's comment on the
initial spec review)
Option 3: Detect application is OpenSocial, use "opensocial", else use
"gadget"
For the URL parameters opensocial_proxied_content and
opensocial_viewer/owner_id have some method for detecting if the
application is opensocial, if so use the opensocial qualified names,
else use the new gadget only names. I don't like this as much as I
like it, but it is an option.
Pipelining and Templating names are more interesting as they qualify a
group of operations that can be considered core gadget, as well as OS
extensions.
Option 4A: Complete separation
Have namespaces and types that either include gadget core, or OS.
gad:HttpRequest would be core, os:People would be OS. With the
requirement for the script blocks to include both core and OS, it
might be possible for pipelining, but what would we use as the type
for templating? Plus we would need to do some deprecation with this
method.
Option 4B: OpenSocial includes Gadget Core
There will be a namespace that is pure gadget core functionality.
There will be features gadget-data and gadget-templates that are also
pure gadget. Then there is the OpenSocial extensions that will
"include" all of the gadget core. Gadget authors will use the OS
namespace and script types, and will get all Gadget and OS
functionality. The opensocial-data and opensocial-templates features
will depend upon the gadget-* features. This is 100% backward
compatible, a "core only" gadget could be created and run cross-
container.