Estrutura do inquérito em valores separados por tabulações
From LimeSurvey Manual
Importação e exportação da estrutura do inquérito em valores separados por tabulações
Esta funcionalidade foi concebida para facilitar a utilização de um programa de folha de cálculo, como o LibreOffice, o Excel ou o Google Docs, para criar e editar inquéritos. Elimina completamente a dependência dos códigos SGQA.
Esta funcionalidade suporta a importação de ficheiros de valores separados por tabulações (TSV) codificados em ASCII ou UTF-8 e com a extensão .txt.
Primeiros passos
A forma mais fácil é pegar num inquérito existente e exportá-lo no formato de valores separados por tabulações. Utilize o botão normal de exportação do inquérito e, em vez de selecionar o formato .lss, selecione "Tab Separated Values format (*.txt)". O inquérito será guardado como um ficheiro de valores separados por tabulações no formato correto (ficheiro Unicode delimitado por tabulações), com todos os cabeçalhos de coluna corretos.
Qualquer programa de folha de cálculo que suporte valores separados por tabulações serve (p. ex., OpenOffice ou LibreOffice). O LimeSurvey ignora qualquer formatação existente na folha de cálculo, mas pode adicionar alguma se isso o ajudar.
Haverá uma linha para cada grupo, pergunta, pergunta secundária e resposta. Existem também linhas para as variáveis globais do inquérito e para as variáveis do inquérito específicas de cada idioma. O idioma principal será listado em primeiro lugar, seguido de quaisquer idiomas secundários. Assim, se existirem vários idiomas, todo o conteúdo do idioma base aparecerá primeiro (p. ex., todos os grupos, perguntas, perguntas secundárias e respostas). Seguir-se-á uma cópia traduzida para cada idioma secundário (com exatamente o mesmo número e a mesma ordem de linhas para o conjunto traduzido).
As relações são inferidas por proximidade. Assim, as perguntas que se seguem a um grupo fazem parte desse grupo; as perguntas secundárias que se seguem a uma pergunta fazem parte dessa pergunta, e as respostas que se seguem a uma pergunta fazem parte dessa pergunta. Deste modo, não precisa de conhecer os IDs (gid, qid, sqid) de nenhuma pergunta. Estes serão calculados automaticamente na importação. Na verdade, este formato não utiliza gid, qid nem sqid (nem códigos SGQA).
Dicas
O objetivo da importação/exportação em valores separados por tabulações é permitir-lhe conceber rapidamente o seu inquérito com uma folha de cálculo. Esperamos que importe a folha com frequência, verifique a sua validade com a funcionalidade "Show Survey Logic" e a teste. De cada vez que a importar, obterá um novo inquérito. Assim, poderá acabar com muitos inquéritos parcialmente desenvolvidos, mas não há problema. Habitue-se apenas a registar qual é o mais recente, ou elimine o antigo depois de importar os novos. Como nunca utiliza códigos SGQA nos valores separados por tabulações, nunca precisa de se preocupar com os códigos que o LimeSurvey atribui às chaves principais do inquérito, do grupo, da pergunta e da resposta. Por isso, importe e exporte tantas vezes quantas quiser.
Eis algumas coisas úteis que pode fazer com esta abordagem de criação de instrumentos:
- Utilizar as mesmas respostas em várias perguntas. Basta copiar as linhas 'A' e colá-las depois de cada pergunta que deva ter o mesmo conjunto.
- Utilizar as mesmas perguntas secundárias em várias perguntas. Basta copiar as linhas 'SQ' e colá-las depois de cada pergunta que precise delas.
- "Ciclos" - utilizar o mesmo grupo várias vezes. Depois de o grupo estar como pretende, copie-o as vezes que forem necessárias. Utilize a filtragem do Excel para ver apenas as linhas 'G' (de grupos) e utilize a funcionalidade de arrastar colunas do Excel para atualizar as equações de relevância de cada grupo (p. ex., num recenseamento, a primeira relevância poderia ser "numPeople > 1" e a seguinte deveria ser "numPeople > 2". A funcionalidade de arrastar atualizará automaticamente o número). Filtre pelas linhas 'Q' e assegure-se de que cada pergunta tem um valor único (p. ex., se atribuir às suas variáveis os nomes g1_q1, g1_q2, g1_qN, utilize localizar/substituir para converter g1 em g2 no segundo grupo; g3 no terceiro, etc.).
- Reordenar perguntas/grupos. Basta reordenar as linhas do ficheiro da folha de cálculo.
- Testar módulos do inquérito. Em inquéritos longos, pode querer dividir os testes em módulos. Basta criar novos ficheiros de folha de cálculo para cada módulo, eliminando as linhas de que não precisa. Isto evita ter de introduzir muitos dados para testar as secções posteriores do inquérito.
- Testar perguntas obrigatórias. Uma queixa frequente não é a necessidade de tornar muitas perguntas obrigatórias, mas sim a necessidade de desativar a opção de obrigatoriedade para efeitos de teste. Basta criar a folha de cálculo principal com a opção obrigatória definida com os valores finais pretendidos. Depois, para a testar, elimine a coluna "mandatory" e guarde a versão de teste da folha de cálculo. Ao importar essa versão, nenhuma das perguntas será obrigatória. Depois de concluir os testes, importe a cópia principal.
- Definir valores por defeito. Em vez de utilizar a interface gráfica, pode introduzir quaisquer valores por defeito pretendidos na coluna default. Isto é especialmente útil nos casos em que a interface gráfica não permite introduzir o valor pretendido, como expressões para definir o valor por defeito de itens de lista (por exemplo, preencher uma lista a partir de um atributo de participante no inquérito).
- Tradução. Pode criar cópias da sua folha de cálculo - uma por idioma. Inclua todas as linhas do idioma principal, depois copie-as e cole-as abaixo, e utilize o arrastar para alterar o campo de idioma para o idioma de destino. Estas folhas podem ser distribuídas aos seus tradutores e reintegradas num único ficheiro de folha de cálculo quando eles terminarem.
- Definição em massa de atributos avançados das perguntas. Pode querer que todas as suas equações comecem visíveis (para poder ver os seus valores à medida que recolhe dados), mas depois ocultá-las todas antes de passar à produção. Basta filtrar a folha de cálculo por class = 'Q' e question type = '*' (equação) e definir always_hide como 1 para cada uma dessas perguntas. De igual modo, imagine que, depois de criar o inquérito, decide quais as perguntas que devem aparecer nas estatísticas públicas. Em vez de editar cada pergunta através da interface gráfica, filtre por class = 'Q' e defina public_statistics = 1 para todas as perguntas que devam estar visíveis nas estatísticas.
- Pesquisar e substituir. Se decidir alterar alguma formulação em todas as suas perguntas, pode utilizar a função de pesquisar e substituir do Excel para fazer essas alterações. De igual modo, se decidir renomear variáveis em massa, a função de pesquisar e substituir pode ajudar. Se precisar de pesquisar e substituir com base em expressões regulares, pode selecionar a coluna pretendida, copiá-la para um editor de texto, fazer a pesquisa e substituição, e colar a coluna de volta na folha de cálculo.
- Obter aprovações. Se estiver a fazer investigação, pode ter uma comissão de ética institucional que insista em ver o texto das perguntas. Esta pode ser uma forma conveniente de o partilhar. O mesmo se aplica a discussões com um cliente.
- Consenso da equipa. Se estiver a tentar que um grupo chegue a acordo sobre a formulação ou o aspeto de uma pergunta ou grupo, pode criar rapidamente um protótipo / editar a folha de cálculo, importá-la e mostrar à equipa (através da pré-visualização da pergunta ou do grupo) exatamente o que os utilizadores verão. Desta forma, pode obter a aprovação da equipa antes de esta sair da sala, em vez de ter de documentar requisitos, construí-los e obter aprovação em reuniões futuras.
- Migrar de outros formatos de inquérito. Se o seu inquérito estiver em XML, Word ou outro formato, pode criar um processo de conversão para os mapear para este formato. Embora também pudesse tentar mapeá-los para o formato .lss, a vantagem deste formato é que não exige que acompanhe as relações de chave estrangeira entre grupos, perguntas, perguntas secundárias, respostas e valores por defeito.
Limitações
- Por conceção, esta funcionalidade só funciona corretamente em inquéritos que utilizem a nomenclatura qcode (em vez de SGQA). Esta funcionalidade pressupõe que os nomes das variáveis (identificadores das perguntas) são únicos em todo o inquérito. Os nomes das perguntas secundárias podem repetir-se, desde que sejam únicos no âmbito de uma determinada pergunta.
Formato do ficheiro
Geral
Utilizamos o mesmo conjunto de cabeçalhos de coluna para vários fins. As primeiras 14 colunas têm finalidades diferentes consoante o tipo de entidade (p. ex., grupo, pergunta, resposta). As restantes colunas são uma lista alfabética dos nomes dos campos da base de dados para os códigos avançados das perguntas. Em seguida apresenta-se a sintaxe para cada tipo de entidade
As primeiras 14 colunas são:
- id (New in 3.14.0 )
- related_id (New in 3.14.0 )
- class
- type/scale
- name
- relevance
- text
- help
- language
- validation
- mandatory
- other
- default
- same_default
Parâmetros globais do inquérito
Existe uma linha por parâmetro na tabela surveys.
- class => 'S'
- name => nome do campo da base de dados
- text => valor
Parâmetros do inquérito específicos de cada idioma
Existe uma linha por campo e por idioma na tabela surveys_languagesettings. Todas as entradas de um determinado idioma são reunidas antes de se efetuar a inserção nessa tabela.
- class => 'SL'
- name => nome do campo da base de dados
- text => valor
- language => idioma
Grupos
Uma linha de grupo por idioma do inquérito (p. ex., haveria 3 linhas de grupo se o inquérito tiver 3 idiomas).
- id => identificador numérico único do grupo, começando no número 1; utilize o mesmo ID para os idiomas adicionais pertencentes ao grupo atual
- class => 'G'
- name => group_name -- o identificador único do grupo
- relevance => grelevance -- a equação de relevância ao nível do grupo, sem chavetas
- text => description -- a descrição do grupo específica de cada idioma
- language => language -- o idioma do grupo (p. ex., 'en')
Perguntas
Uma linha de pergunta por idioma do inquérito (p. ex., haveria 3 linhas de pergunta se o inquérito tiver 3 idiomas). Presume-se que as perguntas pertencem ao grupo que as precede.
- id => identificador numérico único da pergunta, começando no número 1; utilize o mesmo ID para os idiomas adicionais pertencentes à pergunta atual
- class => 'Q'
- type/scale => type -- o tipo de pergunta (normalmente uma letra) (p. ex., 'M' é Escolha múltipla)
- name => title -- o nome único da pergunta (a raiz do sistema de nomenclatura qcode)
- relevance => relevance -- a equação de relevância da pergunta
- text => question -- o texto da pergunta específico de cada idioma
- help => help -- o texto de ajuda específico de cada idioma
- language => language -- o idioma do grupo (p. ex., 'en')
- validation => preg -- os critérios opcionais de validação por expressão regular da pergunta
- mandatory => mandatory -- 'Y' se for obrigatória
- other => other -- 'Y' se a opção "Outro" deve estar disponível (apenas para alguns tipos de pergunta)
- default => default -- se definido, este valor é inserido na tabela defaultvalues para esta pergunta
- same_default => same_default -- 'Y' para verdadeiro, caso em que qualquer defaultvalue definido para o idioma principal se aplica aos outros idiomas
Perguntas secundárias
Uma linha de pergunta secundária por idioma do inquérito. Presume-se que as perguntas secundárias pertencem à pergunta que as precede.
- id => o mesmo identificador numérico único que é utilizado para as perguntas. As perguntas secundárias devem utilizar o valor seguinte disponível; os identificadores da pergunta e da pergunta secundária devem ser diferentes (por exemplo, utilize o ID 1 para a pergunta e os IDs 2, 3 e 4 para as perguntas secundárias pertencentes à pergunta 1; o ID da pergunta seguinte deverá ser 5, e assim sucessivamente). Utilize o mesmo ID da pergunta secundária para os idiomas adicionais pertencentes à pergunta secundária atual.
- class => 'SQ'
- type/scale => scale_id -- 0 ou 1, consoante o tipo de pergunta (por exemplo, uma tabela de texto terá duas escalas)
- name => title -- o "nome" da pergunta secundária, por exemplo, o utilizado para exclude_all_others
- relevance => relevance -- (Futuro) para suportar a relevância ao nível da pergunta secundária
- text => question -- o texto da pergunta secundária específico do idioma
- help => help -- (Futuro) para suportar a ajuda ao nível da pergunta secundária
- language => language -- o idioma da pergunta secundária
- validation => preg -- (Futuro) para suportar a validação por expressão regular ao nível da pergunta secundária (por exemplo, para partes de uma morada)
- mandatory => mandatory -- (Futuro) para suportar a obrigatoriedade ao nível da pergunta secundária (por exemplo, tornar obrigatórias apenas algumas perguntas secundárias)
- default => default -- se definido, este é o valor por defeito da pergunta secundária (inserido na tabela defaultvalues)
- same_default => same_default -- se definido, o valor por defeito do idioma principal é utilizado para todos os outros idiomas
Respostas
Uma linha de resposta por idioma do inquérito (por exemplo, haveria 3 linhas de resposta se o inquérito tivesse 3 idiomas). Presume-se que as respostas pertencem à pergunta que as precede e que estão na ordenação pretendida.
- id => utilize o mesmo ID da pergunta a que pertencem
- class => 'A'
- type/scale => scale_id -- 0 ou 1 (por exemplo, para escala dupla)
- name => code -- o identificador único da resposta
- relevance => assessment_value -- se utilizar a opção de avaliação, este é o valor da avaliação da resposta
- text => answer -- o texto da resposta específico do idioma
- language => language -- o idioma desta resposta (por exemplo, 'en')
Avaliações
Uma linha de avaliação por idioma do inquérito (por exemplo, haveria 3 linhas de avaliação se o inquérito tivesse 3 idiomas). As avaliações são escritas no final do ficheiro.
- id => identificador numérico único da avaliação, começando com o número 1; utilize o mesmo ID para os idiomas adicionais pertencentes à avaliação atual
- related_id => ID do grupo a que a avaliação atual pertence
- class => 'AS'
- type/scale => âmbito da avaliação: T-Total, G-grupo
- name => nome
- text => mensagem
- min_num_value => Mínimo
- max_num_value => Máximo
- language => language -- o idioma desta resposta (por exemplo, 'en')
Quotas
Uma linha por quota. As quotas são escritas no final do ficheiro.
- id => identificador numérico único da quota, começando com o número 1
- class => 'QTA'
- name => nome da quota
- mandatory => limite
- other => acção da quota
- default => activa
- same_default => carregar automaticamente o URL
Definições de idioma das quotas
Uma linha de quota por idioma do inquérito. Presume-se que as definições de idioma da quota pertencem à quota que as precede.
- id => identificador numérico único das definições de idioma da quota, começando com o número 1. Cada linha para idiomas diferentes do inquérito deve ter IDs diferentes
- related_id => ID da quota a que esta definição pertence
- class => 'QTALS'
- relevance => mensagem
- text => URL
- help => descrição do URL
- language => language -- o idioma desta quota (por exemplo, 'en')
Membros da quota
Uma linha por membro da quota, independente do idioma. A linha do membro da quota deve ser colocada imediatamente após a pergunta a que se refere. Presume-se que os membros da quota pertencem à pergunta que os precede.
- id => identificador numérico único dos membros da quota, começando com o número 1
- related_id => ID da quota a que este membro pertence
- class => 'QTAM'
- name => código da resposta
Condições
Uma linha por condição, independente do idioma. A linha da condição deve ser colocada imediatamente após a pergunta a que se refere. Presume-se que as condições pertencem à pergunta que as precede.
- id => identificador numérico único da condição, começando com o número 1.
- related_id => ID da pergunta relacionada, se aplicável
- class => 'C'
- type/scale => cenário
- name => nome do campo da resposta
- relevance => operador de comparação
- text => resposta esperada