{"action":"created","issue":{"url":"https://api.github.com/repos/jasnell/w3c-socialwg-activitystreams/issues/134","labels_url":"https://api.github.com/repos/jasnell/w3c-socialwg-activitystreams/issues/134/labels{/name}","comments_url":"https://api.github.com/repos/jasnell/w3c-socialwg-activitystreams/issues/134/comments","events_url":"https://api.github.com/repos/jasnell/w3c-socialwg-activitystreams/issues/134/events","html_url":"https://github.com/jasnell/w3c-socialwg-activitystreams/issues/134","id":82753788,"number":134,"title":"require explicit @vocab or define prefix if custom terms used, to remove current \"@vocab\": \"_:\" hack","user":{"login":"elf-pavlik","id":876431,"avatar_url":"https://avatars.githubusercontent.com/u/876431?v=3","gravatar_id":"","url":"https://api.github.com/users/elf-pavlik","html_url":"https://github.com/elf-pavlik","followers_url":"https://api.github.com/users/elf-pavlik/followers","following_url":"https://api.github.com/users/elf-pavlik/following{/other_user}","gists_url":"https://api.github.com/users/elf-pavlik/gists{/gist_id}","starred_url":"https://api.github.com/users/elf-pavlik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elf-pavlik/subscriptions","organizations_url":"https://api.github.com/users/elf-pavlik/orgs","repos_url":"https://api.github.com/users/elf-pavlik/repos","events_url":"https://api.github.com/users/elf-pavlik/events{/privacy}","received_events_url":"https://api.github.com/users/elf-pavlik/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/jasnell/w3c-socialwg-activitystreams/labels/proposal","name":"proposal","color":"009800"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-05-30T08:48:48Z","updated_at":"2015-07-20T18:58:47Z","closed_at":"2015-07-07T17:33:43Z","body":"I would like to propose requiring explicit `@vocab` in JSON-LD context, wherever data includes terms other than included in AS2.0 v2 context or already mapped to full URIs in local context. Those URIs only SHOULD (not MUST) to return useful description of a term - HTTP 404 also conforming in this case!\r\n\r\nhttp://jasnell.github.io/w3c-socialwg-activitystreams/activitystreams2.html#extension-round-trip\r\n\r\nwould change to\r\n\r\n```json\r\n{\r\n  \"@context\": [\r\n    \"http://www.w3.org/ns/activitystreams\",\r\n    {\"@vocab\": \"http://example.org/ns/\"}\r\n  ],\r\n  \"@type\": \"Note\",\r\n  \"content\": \"This is a simple note\",\r\n  \"foo\": 123,\r\n  \"bar\": 321\r\n}\r\n```\r\n\r\nor could define prefix instead of using`@vocab`\r\n\r\n```json\r\n{\r\n  \"@context\": [\r\n    \"http://www.w3.org/ns/activitystreams\",\r\n    {\"ex\": \"http://example.org/ns/\"}\r\n  ],\r\n  \"@type\": \"Note\",\r\n  \"content\": \"This is a simple note\",\r\n  \"ex:foo\": 123,\r\n  \"ex:bar\": 321\r\n}\r\n```\r\n\r\nand prevent error prone hack with blank node label `_:bar`, especially when it gets used in aggregated streams which should *NOT* consider both *bar* properties as same one!\r\n\r\nhttp://jasnell.github.io/w3c-socialwg-activitystreams/activitystreams2.html#aggregation-of-extensions\r\n\r\nI remember @sandhawke also expressing concern about AS2 use of `\"@vocab\": \"_:\"` hack!\r\n\r\nseeAlso: #108 "},"comment":{"url":"https://api.github.com/repos/jasnell/w3c-socialwg-activitystreams/issues/comments/122988851","html_url":"https://github.com/jasnell/w3c-socialwg-activitystreams/issues/134#issuecomment-122988851","issue_url":"https://api.github.com/repos/jasnell/w3c-socialwg-activitystreams/issues/134","id":122988851,"user":{"login":"elf-pavlik","id":876431,"avatar_url":"https://avatars.githubusercontent.com/u/876431?v=3","gravatar_id":"","url":"https://api.github.com/users/elf-pavlik","html_url":"https://github.com/elf-pavlik","followers_url":"https://api.github.com/users/elf-pavlik/followers","following_url":"https://api.github.com/users/elf-pavlik/following{/other_user}","gists_url":"https://api.github.com/users/elf-pavlik/gists{/gist_id}","starred_url":"https://api.github.com/users/elf-pavlik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elf-pavlik/subscriptions","organizations_url":"https://api.github.com/users/elf-pavlik/orgs","repos_url":"https://api.github.com/users/elf-pavlik/repos","events_url":"https://api.github.com/users/elf-pavlik/events{/privacy}","received_events_url":"https://api.github.com/users/elf-pavlik/received_events","type":"User","site_admin":false},"created_at":"2015-07-20T18:58:47Z","updated_at":"2015-07-20T18:58:47Z","body":"I would see in place a strong and to the point explanation, something in direction:\r\n\r\n> Given property *foo* - not defined by AS2 vocabulary and which does not have mapping to full URI, consuming systems MUST consider *foo* as **completely different property** (foo != foo) for any two AS documents, even if those two documents come from the same publisher! If you want consuming systems to interpret some property as the same one across multiple document, make sure that it has mapping to full URI, which makes it globally unique and possible to distinguish across any number of documents from any number of publishers."}}