{"action":"created","issue":{"url":"https://api.github.com/repos/ionwg/ion-doc/issues/1","labels_url":"https://api.github.com/repos/ionwg/ion-doc/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/ionwg/ion-doc/issues/1/comments","events_url":"https://api.github.com/repos/ionwg/ion-doc/issues/1/events","html_url":"https://github.com/ionwg/ion-doc/issues/1","id":53076334,"number":1,"title":"RFC 5988 Conformance","user":{"login":"fosrias","id":73336,"avatar_url":"https://avatars.githubusercontent.com/u/73336?v=3","gravatar_id":"","url":"https://api.github.com/users/fosrias","html_url":"https://github.com/fosrias","followers_url":"https://api.github.com/users/fosrias/followers","following_url":"https://api.github.com/users/fosrias/following{/other_user}","gists_url":"https://api.github.com/users/fosrias/gists{/gist_id}","starred_url":"https://api.github.com/users/fosrias/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fosrias/subscriptions","organizations_url":"https://api.github.com/users/fosrias/orgs","repos_url":"https://api.github.com/users/fosrias/repos","events_url":"https://api.github.com/users/fosrias/events{/privacy}","received_events_url":"https://api.github.com/users/fosrias/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2014-12-29T22:15:39Z","updated_at":"2015-01-17T22:39:39Z","closed_at":null,"body":"Needs to address:\r\n\r\n* Conforming relation names as json keys\r\n* rel attribute in meta\r\n* custom link relation types including multiple (rel)\r\n* using profiles to define relation name like ALPS.\r\n* when IANA registered rels.\r\n\r\nBasically, address using keys as a 'relation name' that defaults to 'relation type' in supported cases. Otherwise, use rel in meta."},"comment":{"url":"https://api.github.com/repos/ionwg/ion-doc/issues/comments/70387657","html_url":"https://github.com/ionwg/ion-doc/issues/1#issuecomment-70387657","issue_url":"https://api.github.com/repos/ionwg/ion-doc/issues/1","id":70387657,"user":{"login":"smizell","id":130959,"avatar_url":"https://avatars.githubusercontent.com/u/130959?v=3","gravatar_id":"","url":"https://api.github.com/users/smizell","html_url":"https://github.com/smizell","followers_url":"https://api.github.com/users/smizell/followers","following_url":"https://api.github.com/users/smizell/following{/other_user}","gists_url":"https://api.github.com/users/smizell/gists{/gist_id}","starred_url":"https://api.github.com/users/smizell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smizell/subscriptions","organizations_url":"https://api.github.com/users/smizell/orgs","repos_url":"https://api.github.com/users/smizell/repos","events_url":"https://api.github.com/users/smizell/events{/privacy}","received_events_url":"https://api.github.com/users/smizell/received_events","type":"User","site_admin":false},"created_at":"2015-01-17T22:39:39Z","updated_at":"2015-01-17T22:39:39Z","body":"Sorry for the long delay here. I took a short sabbatical away from computers then was out of town, so just now catching up!\r\n\r\nThis is somewhat of my personal struggle for me with using JSON keys for data instead of structure. The only real reason I can see JSON keys being useful in hypermedia messages is to make it easy to interact directly with the JSON message itself. For instance, if I have this (as from above):\r\n\r\n```json\r\n{\r\n  \"users\": {\r\n    \"meta\": { \"href\": \"https://api.example.com/users\", \"rel\": [\"collection\"] }\r\n  }\r\n}\r\n```\r\n\r\nI can simply do `users.meta.rel` with the parsed JSON to get the rel and it's very simple. My issue is, I don't believe a user should ever interact directly with the JSON message. If this is true, then having `users` as a key provides me with no added benefit. I could just as easily have done:\r\n\r\n```json\r\n{\r\n  \"links\": [\r\n    {\r\n      \"rel\": [\"collection\"],\r\n      \"reference\": \"users\",\r\n      \"href\": \"/users\"\r\n  ]\r\n}\r\n```\r\n\r\nThis would have conveyed the same information, while also requiring me to define what a reference actually is. At that point, as @fosrias has said, we've introduced a new concept to the hypermedia world. In this example, it feels like this `users` is a link relation, just one that is not defined anywhere. \r\n\r\nBUT, if keys are going to be used, as in Ion's case, what is this key? Here are the ideas I see:\r\n\r\n1. It MAY be an IANA link relation\r\n1. It MAY be a link relation defined in a profile, such as an ALPS profile\r\n1. In the event it is not an IANA relation, not in an ALPS document, and is not a URL for a custom link relation, what is it?\r\n\r\nMaybe Ion Object is general enough to not introduce a new concept, while providing a blanket, Ion-specific term for it. An Ion Object can be many different types of hypermedia objects depending on what is in `meta`. Ion Reference could work too, so long as it's not really a new hypermedia concept. \r\n\r\nLots of thinking out loud here! Please pick apart :)"}}