Sprint-2012.41-Block.6.1 Notes (07Oct2012 to 27Oct2012)
=======================================================

Topics to discuss
-----------------
Changes to the dataoneTypes.xsd schema (discussion lower in the epad)
Ben
---
Robert
------
Skye
----
Rob
---
Roger
-----
Chris B.
--------
Bruce
-----
Matt
----
Dave
----
Chris
-----
Jing
----






Supporting schema changes discussion
------------------------------------

Note: DataONE ultimately provides interoperbility mechanisms
1) Type Definitions
2) Service Definitions

Premise:
We won't add/change Types in the v1 schema
We won't change APIs in the v1 services
We will add APIs to the v1 services

Proposal 1
-----------
Create new schema namespace (v2 schema?), only contains new types or changed versions of old types
 -- new versions of old types can extend old types
 -- import old types as needed for extension/restriction
 -- http://ns.dataone.org/service/types/v2
 -- REST endpoint: /cn/v2/
     examples: /cn/v1/formats              --> Types.ObjectFormatList (v1)
               /cn/v2/formats              --> Types.ObjectFormatList (v2)
               /cn/v1/search/solr/{query}  --> Types.ObjectList (v1)
               /cn/v1.1/search/solr/{query}--> Types.OctetStream (v1.1?)
               /cn/v1/query/solr/{query}   --> Types.OctetStream (v1)

(Note: We had a discussion between use of v1 vs v2. There are complexities of functional relatedness that may be solved by considering them totally separate releases, meaning duplicate all methods.. incompatibility with mixing and matching versioned methods)

Proposal 2
----------
Add functions only to client tools (libclient) -- i.e., don't standardize formally yet 
Only add a API service for /cn/v1/query/solr/{query}      (query())
Don't implement            /cn/v1/query/{queryEngineType} (getQueryEngineDescription())
Don't implement            /cn/v1/query                   (listQueryEngines())

- Enables required functionality without changing the schema

Proposal 3:
----------
Create new mapping functions. MN will call CN to obtain mapping from ObjectFormat to MimeType.

Proposal 4
----------
No changes made to D1 at all; any system that needs formatid/mime type does it themselves. (doesn't solve QueryEngine additions)

Proposal 5
----------
Create a separate (but not v2) schema for query types
http://ns.dataone.org/service/queryTypes/v1 or
  <-- preferablema
http://ns.dataone.org/service/bolt-ons/v_1_1

- create new schema
- regenerate code bindings
- can new classes be placed in the same v1 package (java)?
- Python - can pyxb route to the appropriate structure?

Will generate:

org.dataone.service.types.v1.{Class}
org.dataone.service.types.v1.1.{Class} ?
org.dataone.service.types.v1_1.{Class} ?

example:
org.dataone.service.types.v1.ObjectFormat
org.dataone.service.types.v1_1.ObjectFormat <-- extends the former



Two kinds of changes
1. Add new types
2. Change existing types
     org.dataone.service.types.v1.ObjectFormat
     org.dataone.service.types.v2.ObjectFormat


Current proposed changes:
1) QueryEngine types
2) ObjectFormat extension

Issues to address to support multiple type namespaces
1) New schema documents will import the v1 schema
2) How will class generation work with jibx and pyxb when refering to 2 namespaces
3) The CN will need to send v1 types to MNs that only support v1 types












[1] The following tasks can likely be excluded from the CCI-1.1 milestone:
https://redmine.dataone.org/issues/3305
https://redmine.dataone.org/issues/3253
https://redmine.dataone.org/issues/3110
https://redmine.dataone.org/issues/3084
https://redmine.dataone.org/issues/3062
https://redmine.dataone.org/issues/3061
https://redmine.dataone.org/issues/3056
https://redmine.dataone.org/issues/3043
https://redmine.dataone.org/issues/3042
https://redmine.dataone.org/issues/3024
https://redmine.dataone.org/issues/3023
https://redmine.dataone.org/issues/3022
https://redmine.dataone.org/issues/3010
https://redmine.dataone.org/issues/3000
https://redmine.dataone.org/issues/2968
https://redmine.dataone.org/issues/2967
https://redmine.dataone.org/issues/2944
https://redmine.dataone.org/issues/2922
https://redmine.dataone.org/issues/2840
https://redmine.dataone.org/issues/2833
https://redmine.dataone.org/issues/2804
https://redmine.dataone.org/issues/2778
https://redmine.dataone.org/issues/2743
https://redmine.dataone.org/issues/2679
https://redmine.dataone.org/issues/2661
https://redmine.dataone.org/issues/2606
https://redmine.dataone.org/issues/2605
https://redmine.dataone.org/issues/2487
https://redmine.dataone.org/issues/2403
https://redmine.dataone.org/issues/2253
https://redmine.dataone.org/issues/2175
https://redmine.dataone.org/issues/2014
https://redmine.dataone.org/issues/2012
https://redmine.dataone.org/issues/2001
https://redmine.dataone.org/issues/1866
https://redmine.dataone.org/issues/1855
https://redmine.dataone.org/issues/1559
https://redmine.dataone.org/issues/1553
https://redmine.dataone.org/issues/1551
https://redmine.dataone.org/issues/817