{"action":"created","issue":{"url":"https://api.github.com/repos/orientechnologies/orientdb/issues/2273","labels_url":"https://api.github.com/repos/orientechnologies/orientdb/issues/2273/labels{/name}","comments_url":"https://api.github.com/repos/orientechnologies/orientdb/issues/2273/comments","events_url":"https://api.github.com/repos/orientechnologies/orientdb/issues/2273/events","html_url":"https://github.com/orientechnologies/orientdb/issues/2273","id":32071793,"number":2273,"title":"Feature request: JSON-LD serializer","user":{"login":"phpnode","id":363611,"avatar_url":"https://avatars.githubusercontent.com/u/363611?v=3","gravatar_id":"","url":"https://api.github.com/users/phpnode","html_url":"https://github.com/phpnode","followers_url":"https://api.github.com/users/phpnode/followers","following_url":"https://api.github.com/users/phpnode/following{/other_user}","gists_url":"https://api.github.com/users/phpnode/gists{/gist_id}","starred_url":"https://api.github.com/users/phpnode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phpnode/subscriptions","organizations_url":"https://api.github.com/users/phpnode/orgs","repos_url":"https://api.github.com/users/phpnode/repos","events_url":"https://api.github.com/users/phpnode/events{/privacy}","received_events_url":"https://api.github.com/users/phpnode/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/orientechnologies/orientdb/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":17,"created_at":"2014-04-23T15:32:45Z","updated_at":"2016-01-13T16:05:59Z","closed_at":null,"body":"The default serializer uses a pseudo-JSON format because JSON itself does not have primitives that can express things like record ids, sets etc. This means that any client library consuming the binary protocol must not only write a parser for the protocol itself, they must also write a parser for the serialization format that gets sent over that protocol. \r\n\r\nWhile the format is quite simple and easy to parse, it's unlikely that the custom parser in the client library is going to be competitive performance wise with the native JSON implementation, especially so in e.g. JavaScript, PHP, Ruby, Python etc.\r\n\r\n[JSON-LD](https://json-ld.org/) is a w3c standardised schema layer for JSON which is growing in popularity and can accurately express all of Orient's custom data types and graph database concepts without any loss of fidelity.\r\n\r\nIf Orient supported JSON-LD natively, it would be faster to consume for many client libraries using the binary protocol, and fix some limitations of the existing REST API, see #2243 \r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/orientechnologies/orientdb/issues/comments/171343815","html_url":"https://github.com/orientechnologies/orientdb/issues/2273#issuecomment-171343815","issue_url":"https://api.github.com/repos/orientechnologies/orientdb/issues/2273","id":171343815,"user":{"login":"smolinari","id":3314957,"avatar_url":"https://avatars.githubusercontent.com/u/3314957?v=3","gravatar_id":"","url":"https://api.github.com/users/smolinari","html_url":"https://github.com/smolinari","followers_url":"https://api.github.com/users/smolinari/followers","following_url":"https://api.github.com/users/smolinari/following{/other_user}","gists_url":"https://api.github.com/users/smolinari/gists{/gist_id}","starred_url":"https://api.github.com/users/smolinari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smolinari/subscriptions","organizations_url":"https://api.github.com/users/smolinari/orgs","repos_url":"https://api.github.com/users/smolinari/repos","events_url":"https://api.github.com/users/smolinari/events{/privacy}","received_events_url":"https://api.github.com/users/smolinari/received_events","type":"User","site_admin":false},"created_at":"2016-01-13T16:05:59Z","updated_at":"2016-01-13T16:05:59Z","body":"Yes. That makes sense and thanks for the explanation. I think I understood that too, to some extent.  \r\n\r\nI guess I need to explain my perspective. I am a fan of GraphQL. \r\n\r\nhttp://graphql.org/docs/api-reference-graphql/\r\n\r\nTo me, GraphQL is a better alternative for an HTTP / database interface, because it covers both querying and mutating. It was created as a proper interactive API, with a lot of advantages over normal REST(with or without response format standards), and thus is better suited to support database communication. The only disadvantage it has currently is, it isn't a fully recognized web standard. But, being Facebook is a huge force on the Internet, I would bet it will only be a matter of time, before it really catches on.  \r\n\r\nScott"}}