{"action":"created","issue":{"url":"https://api.github.com/repos/radar-parlamentar/radar/issues/273","labels_url":"https://api.github.com/repos/radar-parlamentar/radar/issues/273/labels{/name}","comments_url":"https://api.github.com/repos/radar-parlamentar/radar/issues/273/comments","events_url":"https://api.github.com/repos/radar-parlamentar/radar/issues/273/events","html_url":"https://github.com/radar-parlamentar/radar/issues/273","id":70106051,"number":273,"title":"Interoperabilidade com LexML","user":{"login":"ppKrauss","id":1651447,"avatar_url":"https://avatars.githubusercontent.com/u/1651447?v=3","gravatar_id":"","url":"https://api.github.com/users/ppKrauss","html_url":"https://github.com/ppKrauss","followers_url":"https://api.github.com/users/ppKrauss/followers","following_url":"https://api.github.com/users/ppKrauss/following{/other_user}","gists_url":"https://api.github.com/users/ppKrauss/gists{/gist_id}","starred_url":"https://api.github.com/users/ppKrauss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ppKrauss/subscriptions","organizations_url":"https://api.github.com/users/ppKrauss/orgs","repos_url":"https://api.github.com/users/ppKrauss/repos","events_url":"https://api.github.com/users/ppKrauss/events{/privacy}","received_events_url":"https://api.github.com/users/ppKrauss/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":19,"created_at":"2015-04-22T11:58:41Z","updated_at":"2015-05-13T03:02:23Z","closed_at":null,"body":"Sugestão de se incluir [no SQL](http://radarparlamentar.polignu.org/static/db-dump/radar.sql) função de conversão de *ID da norma* (ex. Lei) ou proposição (ex. PL) em [URN LEX](https://en.wikipedia.org/wiki/Lex_(URN)).\r\n\r\n-------\r\nPara quem não conhece, o LexML é muito mais do que um \"site de busca\", \r\n> o Projeto LexML, http://projeto.lexml.gov.br/ , definiu uma série de **padrões para interoperabilidade** \r\n\r\nsendo talvez o padrão mais importante, aquele que define a [URN LEX](https://pt.wikipedia.org/wiki/Lex_(URN)) para todas as normas e proposições normativas (projetos de Lei) do Brasil. \r\n\r\n  * Toda Lei, e seu Projeto de Lei, tem um **identificador universal, transparente e único**. Por exemplo o Marco Civil da Intenet, tem um identificador único, [`urn:lex:br:federal:lei:2014-04-23;12965`](http://www.lexml.gov.br/urn/urn:lex:br:federal:lei:2014-04-23;12965), assim como o Projeto de Lei que lhe deu origem, o [`urn:lex:br:senado.federal:projeto.lei;pls:2000-05-24;151`](http://www.lexml.gov.br/urn/urn:lex:br:senado.federal:projeto.lei;pls:2000-05-24;151)<br/>PS: na maioria dos casos é possível omitir o mês e dia: ex. [`urn:lex:br:federal:lei:2014;12965`](http://www.lexml.gov.br/urn/urn:lex:br:federal:lei:2014;12965) também funcional (é uma \"URN de referência\" enquanto a data completa caracteriza a \"URN canônica\").\r\n\r\n  * Toda URN LEX-BR pode ser resolvida no http://www.lexml.gov.br/urn , e esse *URN Resolver* tem garantia de **estabilidade** (não falha nem sai do ar) e de **persistência** (em 2020 ainda vai estar resolvendo as URNs) ... Análogo do http://dx.doi.org.\r\n\r\nA proposições legislativas da base de dados do Radar Parlamentar poderiam ter já na base de dados uma expressão parcial das URNs, permitindo com isso:\r\n* oferecer trivialmente (não precisa de um template para cada autoridade) para os usuários links confiáveis para os documentos e metadados dos documentos\r\n* conferir consistência (e/ou corrigir automaticamente datas ou IDs) dos dados (com a lista de URNs válidas)  \r\n* \"falar a mesma língua\" com outros sistemas e com iniciativas de Dados Abertos, através das URNs (são padrão e-PING).\r\n* garantir rastreabilidade do projeto de Lei que foi aprovado (código da lei correspondente)\r\n* ...\r\n"},"comment":{"url":"https://api.github.com/repos/radar-parlamentar/radar/issues/comments/101491850","html_url":"https://github.com/radar-parlamentar/radar/issues/273#issuecomment-101491850","issue_url":"https://api.github.com/repos/radar-parlamentar/radar/issues/273","id":101491850,"user":{"login":"ppKrauss","id":1651447,"avatar_url":"https://avatars.githubusercontent.com/u/1651447?v=3","gravatar_id":"","url":"https://api.github.com/users/ppKrauss","html_url":"https://github.com/ppKrauss","followers_url":"https://api.github.com/users/ppKrauss/followers","following_url":"https://api.github.com/users/ppKrauss/following{/other_user}","gists_url":"https://api.github.com/users/ppKrauss/gists{/gist_id}","starred_url":"https://api.github.com/users/ppKrauss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ppKrauss/subscriptions","organizations_url":"https://api.github.com/users/ppKrauss/orgs","repos_url":"https://api.github.com/users/ppKrauss/repos","events_url":"https://api.github.com/users/ppKrauss/events{/privacy}","received_events_url":"https://api.github.com/users/ppKrauss/received_events","type":"User","site_admin":false},"created_at":"2015-05-13T03:02:23Z","updated_at":"2015-05-13T03:02:23Z","body":"Hum... puro Django, agora caiu a ficha(!)... ;-)\r\nJá usei CakePHP que é similar (framework MVC com scaffolding, etc.)... Nesses frameworks sempre tem como incluir mais MVC-Models, de modo que a sql-view seria um novo model... Mas, como imagino,  se a tabela envolve apenas leitura, sem gravação de dados (só Django `get`'s), podemos \"enganar\" o framework  oferecendo uma sql-view com o nome da sql-table (e  mudando o nome da tabela  original).\r\nUma segunda abordagem, daquelas que dão menos trabalho, seria gerar o código básico das interfaces dessa nova sql-view com o tal `django-admin`... São chutes... \r\n\r\nSem chutar, a sugestão seria compor por exemplo um *webservice* (sem DJango!), de uma interface AJAX de *modal dialog* abrindo com a listagem de leis associadas à votação, seria o caso típico: que tal começar por algo assim? "}}