TODO: ----- Clean this up and/or break into separate files. {"camliVersion": 1, "camliType": "claim", "camliSigner": "....", "claimDate": "2010-07-10T17:20:03.9212Z", // redundant with data in ascii armored "camliSig", // but required. more legible. takes precedence over // any date inferred from camliSig "permaNode": "dig-xxxxxxx", // what is being modified "claimType": "set-attribute", "attribute": "camliContent", "value": "dig-yyyyyyy", "camliSig": .........} claimTypes: ----------- "add-attribute" (adds a value to a multi-valued attribute (e.g. "tag")) "set-attribute" (set a single-valued attribute. equivalent to "del-attribute" of "attribute" and then add-attribute) "del-attribute" (deletes all values of "attribute", if no "value" given, or just the provided "value" if multi-valued) "multi".. atomically do multiple add/set/del from above on potentially different permanodes. looks like: {"camliVersion": 1, "camliType": "claim", "claimType": "multi", "claimDate": "2013-02-24T17:20:03.9212Z", "claims": [ {"claimType": "set-attribute", "permanode": "dig-xxxxxx", "attribute": "foo", "value": "fooValue"}, {"claimType": "add-attribute", "permanode": "dig-yyyyy", "attribute": "tag", "value": "funny"} ], "camliSig": .........} Attribute names: ---------------- camliContent: a permanode "becoming" something. value is pointer to what it is now. Old notes from July 2010 doc: ----------------------------- Claim types: permanode-become: -- implies either: 1) switching from typeless/lifeless virgin pnode into something (dynamic set, filesystem tree, etc) 2) changing versions of that base metadata (new filesystem snapshot) -- ‘permaNode’ is the thing that is changing -- ‘contents’ is the current node that represents what permaNode changes to set-membership: add a blobref to a dynamic set -- "permaNode" is blobref of the dynamic set delete-claim: delete another claim (target is claim to delete) -- "contents" is the claim blobref you’re deleting {set,add}-attribute: -- attach a piece of metadata to something. -- use set-attribute for single-valued attributes only: highest dated claim wins (of trusted person) e.g. "title", "description" -- use add-attribute for multi-valued things. e.g. "tag" Tagging something: {"claimType": "add-attribute", // "attribute": "tag", // utf-8, should have list of valid attributes names, preferrably not made up by us (open social spec?) "value": "funny", // value that doesn’t have lasting value "valueRef": "sha1-blobref", // hefty reference to a lasting value "claimer?": "sha1-of-the-dude-who’s-signing", "claimDate": "2010-07-10T17:20:03.9212Z", "claimType", "permanode-become", "permaNode": "sha1-pnode", } filesystem root claim: { "camliVersion": 1, "camliType": "claim", // Stuff for camliType "claim": "claimDate": "2010-07-10T17:20:03.9212Z", // redundant with data in ascii armored "camliSig". TODO: resolve "claimType", "permanode-become", // Stuff for "permanode-become": "permaNode": "sha1-pnode", "contents": "sha1-fs-node" ,"camliSigner": "digalg-blobref-to-ascii-armor-public-key-of-signer", "camliSig": "......"}