There seems to be three possible ways to enforce a schema in wave: 1. Play nice: Clients are expected to play nice together. 2. Server enforced: The server (specifically the federation host) enforces the schema. 3. Agent enforced: Extend the existing agent interface so that the server can pass an transformed but unapplied delta to a "schema" agent for verification.
The play nice has fundamental problems with trust and consistency. All it takes is one rogue client (accidental or intentional) and many a wave go "shiny". The server enforced model can work, but there's a question of how the server would know what schema to enforce on which documents (or set of documents). For some common schemas a fixed namespace to schema mapping might work. But for less well know clients, this could become problematic. Defining a schema in a wave might work, but only if there was a way to assign that "schema" wave to the "content" wave and ensure that the "schema" wave was propagated along with the "content" wave. The existing wave mechanisms don't support this. The agent approach has the potential to make things a little simpler. We already have the concept of agents that perform actions within a wave (spelly for example). And some robots being developed are performing content control type actions. And users are becoming familiar with the idea of adding a robot/agent to their wave to enhance it. So perhaps we can extend this "plug-able capability" concept to include the addition of content enforcement capabilities to agents. So, for example, when I create a "conversation" wave the "conversation" agent is added as a non-removable participant to the wave and acts as the schema enforcement agent. All deltas would be passed to the agent prior to being applied. The agent would have the option of requesting additional content from the wave before approving/disproving the delta. This might also work with robots, but has the potential to cause a serious bottleneck if the robot isn't implemented/provisioned appropriately. -Tad -- You received this message because you are subscribed to the Google Groups "Wave Protocol" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en.
