This is a proposed "stub" page for evaluations of serialization formats proposed as candidates for the core-supported format in the WSCCI initiative.
For Background on the project of researching proposed formats, see the initial reportback from some preliminary research and the "Call to Help" post, in which the proposed task list for WSCCI was laid out.
General Information
Provide a short overview of the format here, to come before the summary break.
Homepage and Specification
Additional Resources and Links
Format Expressiveness/Hypermedia Linking
Overview of resource structure
Example Hypermedia node content
Should includes local file link, local resource link, remote resource link and remote file link. Remote resource links should be Youtube, Flickr and/or other demonstrative examples.
Support for ad-hoc/configurable resource definitions
Breifly descibe how Drupal content and fieldable entity types might be handled with this format. This would include how the format can include flexible data schemas and any discovery functionality that might be relevant.
Formatter Implementation/Handling
One challenge with hypermedia resources is the need for either formatted or unformatted values depending on use case (displaying vs. editing the URI of a video, for example). Discuss how this format might address this issue.
Internationalization
Support for localized API requests
Encoding of internationalized content
Support for Collections
Collection Overview
Discuss houw this format implements collections/lists of resources, including any other standards leveraged.
Collection Example
Provide a mock views output for this format.
UUID
Does this format have support for UUID, and if so, how are UUIDs represented?
Versioning/Conflict Resolution/Locking
What facilities does the format have for time-stamping, versioning, conflict resolution etc.?
Specifically, how might it handle the case of the same resource edited simultaneously by two users via the API?
PHP Libraries
PHP Libraries Available
List the PHP librraries available for this format, along with homepages and repository links for each.
PHP Library Development Status
Please note any relevant information pertaining to the maturity, project activity level and/or community health for these libraries.
JS Libraries
JS Libraries Available
List the JS librraries available for this format, along with homepages and repository links for each.
JS Library Development Status
Please note any relevant information pertaining to the maturity, project activity level and/or community health for these libraries.
Drupal
Current Drupal Projects and Groups
List any Modules and/or groups.drupal.org groups implementing or related to this format.
Community Experts
List any drupal.org users with experience integrating this module with Drupal, such as module maintainers, presenters, etc.
Add yourself if you are one!
Other Drupal Resources
List any other resources around the web, such as tutorials, case studies, etc. related to this format.
Anticipated "Lift" for Core Implementation
Based on format specifics, existing server and client library project statuses, and Drupal implementations to date, how much work will be required to implement this format for D8 WSCCI? Please note any specific development tasks needed.
Marketshare
Other CMS's supporting
List any other CMS solutions which implement this format. Provide links summarizing implementation where available.
Client platforms supporting
List any client platforms that might be integrated with Drupal and implement this standard.
Other languages/platforms
List any notable examples from other languages using this standard, such as those demonstrating best practices, strength in other markets, development momentum, etc.
JSON/XML Flexibility
Can this format render to XML AND JSON? If so, please discuss and provide examples.
Semantics
Semantic Entity Format
Discuss how this format presents semantic metadata. Provide example snippets where possible.
Support for Semantic Querying
Does this format have an associated/supported semantic querying standard? If so, please provide information and links.
Semantic Libraries/Tools Using
Is this format used in any semantic toolsets, platforms or other projects?
Comments
This is not what serialization is
I fail to see how these questions relate to serialize. Here are examples of serializations: http://pecl.php.net/package/igbinary . http://bsonspec.org/ , ASN.1 and so on. These are black boxes that you feed a data structure into , put the results on the wire and marshall the results on the other end to get back the data structure. What the data structure represents is irrelevant to the serializer. A serializer deals with integers, strings, lists and so on. Nothing to do with versioning, hypermedia and whatnot. So what am I misunderstanding? There's some fundamental misunderstanding here because "Can this format render to XML AND JSON?" well, XML and JSON are both serialization formats (although really crappy ones) and so ... well, marshall your objects and serialize to JSON or some XML DTD if you so wish... but that's not rendering. Something is amiss.
We want one more level of concreteness for entities
More info on http://groups.drupal.org/node/229318, but specifically for entities, we want to standardize on a canonical data structure to serialize. CMIS and JSON-LD are two common specifications that attempt to do this, at least partially.
*blink*
Let me change the topic because this is leading nowhere. In other words I have problems formulating a question to which the answer is "a wheelbarrow or a Mack truck" :)
What are you trying to achieve? What are the use cases? User stories? Whatnot?
Serialization formats vs. Data formats?
@chx, I think that you are correct: in a sense what we are talking about here is more than just serialization format. The question I've been researching is something like:
(that's a rough summary, and I'm sure it's full of caveats and such, but it should get across the general idea).
So far we have been looking at standards like CMIS and JSON-LD which could be seen as data standards combined with/delivered via XML and/or JSON serialization standards, which, I suppose, is basically the basic definition of a data format.
I see the support for various serialization formats as an important consideration in evaluating the data formats, since different serialization formats often have different domains and trade-offs (browser JS API consumers vs. back-end systems integration, for instance), but one among many.
I think this links to your question of use cases. The general use case is "I need to get Drupal data via an API call," and some specific use cases for such a format might include:
Depending on use case, there are a number of other considerations that come into play. For those creating various forms of API-based client applications questions of REST-related support are important (linked data, hypermedia, collections, etc.) while for systems integrators others might be significant (feature discovery, UUID support). Many of the criteria we're evaluating the data formats on have to do with such considerations.
As a side note, it is overwhelmingly likely that multiple serialized data formats will be needed to address the range of API use cases out there, so the format chosen as core's supported format choice will be one among others provided in contrib.
Does that help clarify the issue for you?
Do you see advantages for defining our own data format and implementing in one of the more basic serialization formats vs. working from a more structured, robust data format standard?