GithubHelp home page GithubHelp logo

balaio's Introduction

See more information about this project at http://docs.scielo.org

https://secure.travis-ci.org/scieloorg/balaio.png?branch=master

See Build details

Use License

FreeBSD 2-clause:

Copyright (c) 2012, SciELO <[email protected]>
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    Redistributions of source code must retain the above copyright notice,
    this list of conditions and the following disclaimer.

    Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.

balaio's People

Contributors

fabiobatalha avatar gustavofonseca avatar jamilatta avatar robertatakenaka avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

balaio's Issues

[periódico] publisher-name

Mesmo que haja mais de uma instituição o elemento contém apenas uma ocorrencia.
Validar este valor contra SciELO Manager ou Title Manager (v62)

[artigo] Validação automática de afiliações

- Verificar se o nome da organização, subdivisões, departamentos, cidade, estado e país foram marcados (exemplo abaixo):

2
Seção N, Biotecnologia  Subdivisões de terceiro nível ou de terceiro em diante (orgdiv3).
Departamento de Ciência Segundo nível (orgdiv2).
Museu de Tecnologia  Primeiro nível (orgdiv1).
Universidade de São Patrono  Nome da Instituição (orgname)
Caixa Postal 12.345, 01234-567, São Paulo, SP, Dentro de devem ser marcados no mínimo cidade e estado para gerar indicadores.
Brasil  País
[email protected]  E-mail

Diferentemente do PMC:

Set any label or symbol in the element. Do not create symbols or labels in the XML if they do not exist in the published article. Follow copy for all punctuation. Tag all non-label content as simple text within the element. Do not tag individual address elements in the affiliation. The only exception is email addresses which should be identified in . See Author/Affiliation Relationship for information on how authors and affiliations are “linked”. See Samples 1 and 2 for examples. http://www.ncbi.nlm.nih.gov/pmc/pmcdoc/tagging-guidelines/article/tags.html#el-aff

[artigo] Validar o DOI no CrossRef caso exista no XML

Tag: article-id/@pub-id-type="doi"

Considerando que existe revistas que enviam artigos com o número de DOI e outras não, deve-se validar o DOI no CrossRef os XML submetido com DOI, caso contrário, adicionar uma mensagem de alerta.

Validar a presença da tag mixed-citation em ref

mixed-citation deve estar presente dentro de ref e coexistir com element-citation. Pois mixed-citation é a citação completa e a element-citation é a citação com cada elemento identificado.

Ajuste no SPSMixin.meta e ArticlePkg para tratar de suplementos de número e de volume

No XML o suplemento pode vir junto com o número do fascículo , já que é uma exigência do PMC.

http://www.ncbi.nlm.nih.gov/pmc/pmcdoc/tagging-guidelines/article/tags.html#el-issue

<issue>
Tag numeric issues as an integer only. If Roman numerals are used, tag as the Roman numeral only. Do not include the word "issue" in the tag.
Tag "Part" issues as "Pt [integer]". If the Part or Supplement has no integer, then tag as "Pt" or "Suppl" only.
Do not use <supplement> to identify a supplementary issue in <article-meta>, instead capture as "Suppl [integer]" in <issue>.
If there is no issue number, do not tag at all.

No entanto, pela DTD é permitido haver no article-meta/supplement

[fascículo] article-meta/pub-date

article-meta/pub-date é um elemento que pode ocorrer pelo menos uma vez.

Validar article-meta/pub-date, de modo que pelo menos uma das ocorrências de article-meta/pub-date deve ser equivalente a registrada nos dados do fascículo correspondente.

Informações suplementares:
há pelo menos 1, com atributos:

Na versão 3.0:
@pub-type:

  • epub - quando documento é publicado online (ahead ou há somente em versão eletrônica)
  • ppub - quando publicado tb na impressa/ no fascículo
  • epub-ppub quando é periódico impresso/eletrônico

http://www.ncbi.nlm.nih.gov/pmc/pmcdoc/tagging-guidelines/article/dobs.html#dob-dates

http://www.ncbi.nlm.nih.gov/pmc/pmcdoc/tagging-guidelines/article/tags.html#el-pubdate

Validar também o conteúdo de day, year, month (numérico). Tem que ser correspondente ao fascículo. Há também season, quando é um período de meses, sendo válido as abreviações dos meses em inglês e também os nomes das estações do ano em inglês.

Na versão JATS 1.0, estão permitidos outros atributos:

@Calendar Calendar

@date-type Type of Date
Event in the lifecycle of an article that this date is marking (for example, the date the manuscript was received or accepted, the date the electronic preprint was published, or the date of any revision or retraction).
Values: accepted, received, rev-recd, rev-request

@iso-8601-date ISO-8601 Formatted Date

@pub-type Type of Publication
A combination of the format/medium of a document with one or more events from its lifecycle, for example, “epub” for publication in an electronic format or “ppub” for print publication.

@publication-format
(Best Practice: This attribute should be used when the value is known. Values may include such formats as “print”, “electronic”, “video”, “audio”, “ebook”, “online-only”.)

@xml:lang Language

http://www.ncbi.nlm.nih.gov/pmc/pmcdoc/tagging-guidelines/article/dobs.html#dob-dates

[pub-date] must have either [@pub-type] or [@date-type + @publication-format]. Do not use [@pub-type] with [@publication-format]

Validar requisitos não-funcionais

Requisitos não-funcionais do Gateway HTTP

REF Requisito Descrição Qualidade
RNF-001 Disponibilidade Uptime semanal de 99,97% (Downtime: 30 minutos)
RNF-002 Performance Deve atender 6000rpm 95% das reqs<=600ms
RNF-003 Eficiência-Mem <=500MB consumo total(app) 98% do tempo<=500MB
RNF-004 Robustez Para todas as requisições deve haver uma resposta HTTP
RNF-005 Escalabilidade Capacidade de rodar N processos

Links interessantes sobre requisitos não funcionais:

http://www.scaledagileframework.com/nonfunctional-requirements/
http://en.wikipedia.org/wiki/Non-functional_requirement
http://broadcast.oreilly.com/2010/02/nonfunctional-requirements-how.html
http://leadinganswers.typepad.com/files/non-functional-requiements.pdf
http://codesqueeze.com/the-7-software-ilities-you-need-to-know/

Permissões para os pacotes SPS

O PackageAnalyzer deve garantir as seguintes modificações:

  1. Remover a permissão de escrita para o dono e outros;
  2. Altere para um grupo que o Balaio participe.

[periódico] issn

issn/@pub-type="ppub"
issn/@pub-type="epub"

Verificar se o conteúdo é do periódico

Garantir pelo menos um ISSN (Eletrônico ou Impresso)

Nem todas as revistas tem os dois ISSN (Eletrônico ou Impresso), dessa forma, deve-se considerar apenas um entre esses.

No xml-scielo a tag que representa esse dados é:

.//issn[@pub-type='epub']

.//issn[@pub-type='ppub']

Em models.py, ArticlePkg, ajustar a identificação do fascículo

  1. Retirar a obrigatoriedade de issue_volume e issue_number

  2. issue_volume e issue_number podem ser String, especialmente issue_number (número especial, 3A, 3/4, etc)

  3. Acrescentar issue_supplnum e issue_supplvol (isso já está no SciELO Manager, e também, em scieloapi)

Idéias para a especificação do Gateway HTTP

  1. Quais as funcionalidades a serem expostas para o SciELO Manager
  2. Segurança
  3. Requisitos não-funcionais
  4. Documentação de API
  5. Prova de conceito
  6. Frameworks disponíveis

Definições:

Premissas:

  • Essa API estará disponível apenas internamente(intranet).

Funcionalidades do Gateway HTTP

Funcionalidade Descrição Parâmetros Recurso Métodos Retorno
Inspecionar o pacote SPS e RSPS válidos ou inválidos. Permitir que os usuários possam obter os pacotes que desejam para identificar ajustes ou erros. id ou checksum do pacote. /packages/ /packages/:id/ GET Download do pacote comprimido.
Obter informações isoladas de cada pacote. Através do id do pacote retornar suas tentativas. id do pacote. /attempts/ /attempts/:id GET Lista com links para as tentativas.
Histórico de validação por tentativa. Permitir que através da tentativa seja visualizado as validações e status de cada etapa possibilitando rastreabilidade. id da tentativa. /attempts/ /attempts/:id GET Lista com as etapas e seus status.
Abrir ticket para corrigir o pacote Quando o pacote tem algumas pendências, o usuário da equipe de produção pode abrir um ticket solicitando as correções que são necessárias. id do pacote /ticket/ /ticket/:id/ PUT
Fechar ticket Quando o pacote tem as pendências resolvidas, o usuário da equipe de produção pode fechar o ticket. id do ticket /ticket/ /ticket/:id/ PUT

Obs.: Observem que a coluna retorno está em alto nível, estou colocando necessidades futuras do cliente HTTP, a forma como o Gateway irá disponibilizar esses dados estará documentado na API.

A coluna Recurso é padrão, portanto, falta adicionar e avaliar os parâmetros opcionais.


Segurança

Perante as respostas e discussões realizadas pela equipe, ficou decidido que a segurança REST fica restrita a um basic autentication, lembrando que a maioria das requisições serão métodos GET.


Requisitos não-funcionais do Gateway HTTP

REF Requisito Descrição Qualidade
RNF-001 Disponibilidade Uptime semanal de 99,97% (Downtime: 30 minutos)
RNF-002 Performance Deve atender 6000rpm 95% das reqs<=600ms
RNF-003 Eficiência-Mem <=500MB consumo total(app) 98% do tempo<=500MB
RNF-004 Robustez Para todas as requisições deve haver uma resposta HTTP
RNF-005 Escalabilidade Capacidade de rodar N processos

Links interessantes sobre requisitos não funcionais:

http://www.scaledagileframework.com/nonfunctional-requirements/
http://en.wikipedia.org/wiki/Non-functional_requirement
http://broadcast.oreilly.com/2010/02/nonfunctional-requirements-how.html
http://leadinganswers.typepad.com/files/non-functional-requiements.pdf
http://codesqueeze.com/the-7-software-ilities-you-need-to-know/


Documentação

http://docs.scielo.org/projects/balaio/en/latest/


Prova de conceito em Pyramid

Gist: https://gist.github.com/jamilatta/6463527

[artigo] Automatizar a identificação de autores

- Verificar marcação de autores (nome, sobrenome e, quando houver, sufixo e prefixo etc). Abaixo as tags a serem verificadas:


- Verificar se contém prefixos como "Dr.", "Professor", "Sir" etc.
- Sobrenome do autor
- Primeiro nome e sobrenomes do meio
- Verificar se contém sufixos como "Filho", "Neto" etc.

- Quando houver, verificar se contém o cargo do autor de acordo como PDF, como por exemplo "Editor-In-Chief", "Research Director" etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.