WSCCI Serialized Data Format Evaluation Stub

Events happening in the community are now at Drupal community events on www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

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

chx's picture

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.

effulgentsia's picture

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*

chx's picture

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?

ethanw's picture

@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:

What is the best choice for a core-supported serialized data format for Drupal entities?

(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:

  • Writing a mobile or client side application and need to load individual entities from Drupal via JavaScript.
  • Integrating a back-office business intelligence system such as an internal CRM with Drupal entities so that user profile data updates a data warehouse nightly via a Java API call.

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?

Web Services and Context Core Initiative

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week