탭으로 구분된 값 설문조사 구조
From LimeSurvey Manual
설문조사 구조의 탭 구분 값 가져오기 및 내보내기
이 기능은 LibreOffice, Excel, Google Docs와 같은 스프레드시트 소프트웨어를 사용하여 설문조사를 쉽게 작성하고 편집할 수 있도록 설계되었습니다. SGQA 코드와의 모든 관계를 완전히 제거합니다.
이 기능은 확장자가 .txt인 ASCII 또는 UTF-8로 인코딩된 탭 구분 값(TSV) 파일 가져오기를 지원합니다.
시작하기
가장 쉬운 방법은 기존 설문조사를 탭 구분 값 형식으로 내보내는 것입니다. 일반 설문조사 내보내기 버튼을 사용하되, .lss 형식 대신 "Tab Separated Values format (*.txt)"를 선택하세요. 올바른 열 제목이 모두 포함된 적절한 형식(탭으로 구분된 유니코드 파일)의 탭 구분 값 파일로 저장됩니다.
탭 구분 값을 지원하는 스프레드시트 소프트웨어라면 무엇이든 사용할 수 있습니다(예: OpenOffice 또는 LibreOffice). LimeSurvey는 스프레드시트 내의 서식을 모두 무시하지만, 도움이 된다면 자유롭게 서식을 추가하셔도 됩니다.
그룹, 질문, 하위 질문, 응답마다 각각 한 행이 있습니다. 전역 설문조사 변수와 언어별 설문조사 변수에 대한 행도 있습니다. 기본 언어가 먼저 나열되고 그 뒤에 보조 언어가 나열됩니다. 따라서 여러 언어를 사용하는 경우 기본 언어의 전체 내용(예: 모든 그룹, 질문, 하위 질문, 응답)이 먼저 나타납니다. 그 뒤에 각 보조 언어의 번역본이 이어집니다(번역본의 행 수와 순서는 정확히 동일해야 합니다).
관계는 인접성에 따라 추론됩니다. 따라서 그룹 다음에 오는 질문은 해당 그룹에 속하고, 질문 다음에 오는 하위 질문은 해당 질문에 속하며, 질문 다음에 오는 응답도 해당 질문에 속합니다. 그러므로 질문의 ID(gid, qid, sqid)를 알 필요가 없습니다. 이 ID는 가져오기 시 자동으로 계산됩니다. 사실 이 형식은 gid, qid, sqid(또는 SGQA 코드)를 전혀 사용하지 않습니다.
팁
탭 구분 값 가져오기/내보내기의 목표는 스프레드시트를 사용하여 설문조사를 빠르게 설계할 수 있도록 하는 것입니다. 시트를 자주 가져와서 "Show Survey Logic" 기능으로 유효성을 확인하고 테스트하게 될 것입니다. 가져올 때마다 새 설문조사가 생성됩니다. 따라서 부분적으로 개발된 설문조사가 많이 생길 수 있지만 문제없습니다. 어느 것이 가장 최근 것인지 기록해 두거나, 새 설문조사를 가져온 후 이전 설문조사를 삭제하는 습관을 들이세요. 탭 구분 값에서는 SGQA 코드를 사용하지 않으므로, LimeSurvey가 기본 설문조사, 그룹, 질문, 응답 키에 어떤 코드를 할당하는지 걱정할 필요가 없습니다. 그러니 원하는 만큼 자유롭게 가져오고 내보내세요.
다음은 이 방식으로 설문 도구를 작성할 때 활용할 수 있는 편리한 방법입니다.
- 여러 질문에 동일한 응답 사용. 'A' 행을 복사하여 동일한 응답 세트가 필요한 각 질문 뒤에 붙여넣으세요.
- 여러 질문에 동일한 하위 질문 사용. 'SQ' 행을 복사하여 필요한 각 질문 뒤에 붙여넣으세요.
- "반복" - 동일한 그룹을 여러 번 사용. 그룹을 원하는 대로 만든 후 필요한 만큼 복사하세요. Excel 필터를 사용하여 'G' 행(그룹)만 표시하고, Excel의 열 끌기 기능을 사용하여 각 그룹의 관련성 수식을 업데이트하세요(예: 인구 조사의 경우 첫 번째 관련성은 "numPeople > 1", 다음은 "numPeople > 2"가 될 수 있습니다. 끌기 기능이 숫자를 자동으로 업데이트합니다). 'Q' 행으로 필터링하여 각 질문이 고유한 값을 갖도록 하세요(예: 변수 이름을 g1_q1, g1_q2, g1_qN으로 지정했다면 찾기/바꾸기를 사용하여 두 번째 그룹에서는 g1을 g2로, 세 번째 그룹에서는 g3으로 변환하세요).
- 질문/그룹 순서 변경. 스프레드시트 파일의 행 순서를 변경하기만 하면 됩니다.
- 설문조사 모듈 테스트. 긴 설문조사의 경우 테스트를 모듈로 나누는 것이 좋습니다. 각 모듈별로 새 스프레드시트 파일을 만들고 필요하지 않은 행을 삭제하세요. 이렇게 하면 설문조사의 뒷부분을 테스트하기 위해 많은 데이터를 입력할 필요가 없습니다.
- 필수 질문 테스트. 흔한 불만은 많은 질문을 필수로 만들어야 한다는 점이 아니라, 테스트를 위해 필수 기능을 꺼야 한다는 점입니다. 필수 값을 최종 원하는 값으로 설정하여 마스터 스프레드시트를 만드세요. 그런 다음 테스트하려면 "mandatory" 열을 삭제하고 테스트용 스프레드시트를 저장하세요. 해당 버전을 가져오면 어떤 질문도 필수가 아닙니다. 테스트를 마친 후에는 마스터 사본을 가져오세요.
- 기본값 설정. GUI를 사용하는 대신 default 열에 원하는 기본값을 입력할 수 있습니다. 이 방법은 GUI에서 원하는 값을 입력할 수 없는 경우(예: 목록 항목의 기본값을 설정하는 수식, 즉 설문조사 참여자 속성에서 목록을 채우는 경우)에 특히 유용합니다.
- 번역. 스프레드시트의 사본을 언어별로 하나씩 만들 수 있습니다. 기본 언어의 모든 행을 포함한 다음 아래에 복사하여 붙여넣고, 끌기를 사용하여 언어 필드를 대상 언어로 변경하세요. 이 파일을 번역가에게 배포하고, 번역이 끝나면 하나의 스프레드시트 파일로 다시 통합할 수 있습니다.
- 고급 질문 속성 일괄 설정. 데이터를 수집하는 동안 값을 볼 수 있도록 모든 수식을 처음에는 표시했다가, 실제 운영 전에 모두 숨기고 싶을 수 있습니다. 스프레드시트를 class = 'Q' 및 질문 유형 = '*'(수식)으로 필터링하고, 해당 질문 각각에 대해 always_hide를 1로 설정하세요. 마찬가지로 설문조사를 만든 후 어떤 질문을 공개 통계에 표시할지 결정하는 경우에도, GUI에서 각 질문을 편집하는 대신 class = 'Q'로 필터링하고 통계에 표시되어야 하는 모든 질문의 public_statistics를 1로 설정하세요.
- 찾기 및 바꾸기. 모든 질문에 걸쳐 일부 표현을 변경해야 하는 경우 Excel의 찾기 및 바꾸기를 사용하여 변경할 수 있습니다. 마찬가지로 변수 이름을 일괄 변경하려는 경우에도 찾기 및 바꾸기가 도움이 됩니다. 정규표현식 기반 찾기 및 바꾸기가 필요하면 원하는 열을 선택하여 텍스트 편집기에 복사하고, 찾기 및 바꾸기를 수행한 다음 해당 열을 스프레드시트에 다시 붙여넣으세요.
- 승인 받기. 연구를 수행하는 경우 기관 심의 위원회가 질문 텍스트를 확인하도록 요구할 수 있습니다. 이 방법은 질문을 공유하는 편리한 방법이 될 수 있습니다. 고객과 논의할 때도 마찬가지입니다.
- 팀 합의. 질문이나 그룹의 문구 또는 모양에 대해 팀의 합의를 얻으려는 경우, 스프레드시트를 빠르게 프로토타입으로 만들고 편집한 후 가져와서 사용자가 보게 될 모습을 (질문 또는 그룹 미리보기를 통해) 팀에 정확히 보여줄 수 있습니다. 이렇게 하면 요구 사항을 문서화하고 구현한 뒤 이후 회의에서 승인을 받을 필요 없이, 팀이 회의실을 떠나기 전에 승인을 받을 수 있습니다.
- 다른 설문조사 형식에서 업그레이드. 설문조사가 XML, Word 또는 다른 형식인 경우 이를 이 형식으로 매핑하는 변환 프로세스를 만들 수 있습니다. .lss 형식으로 매핑할 수도 있지만, 이 형식의 장점은 그룹, 질문, 하위 질문, 응답, 기본값 간의 외래 키 관계를 추적할 필요가 없다는 것입니다.
제한 사항
- 설계상 이 기능은 SGQA가 아닌 qcode 이름 지정 방식을 사용하는 설문조사에서만 제대로 작동합니다. 이 기능은 변수 이름(질문 식별자)이 설문조사 전체에서 고유하다고 가정합니다. 하위 질문 이름은 특정 질문의 범위 내에서 고유하기만 하면 반복될 수 있습니다.
파일 형식
일반
동일한 열 제목 세트를 여러 용도로 사용합니다. 처음 14개 열은 엔터티 유형(예: 그룹, 질문, 응답)에 따라 서로 다른 용도로 사용됩니다. 나머지 열은 고급 질문 코드에 대한 데이터베이스 필드 이름을 알파벳 순으로 나열한 목록입니다. 아래는 각 엔터티 유형의 구문입니다.
처음 14개 열은 다음과 같습니다.
- 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
설문조사 전역 매개변수
surveys 테이블의 매개변수마다 한 행이 있습니다.
- class => 'S'
- name => 데이터베이스 필드 이름
- text => 값
설문조사 언어별 매개변수
surveys_languagesettings 테이블의 언어별 필드마다 한 행이 있습니다. 특정 언어의 모든 항목은 해당 테이블에 삽입하기 전에 함께 수집됩니다.
- class => 'SL'
- name => 데이터베이스 필드 이름
- text => 값
- language => 언어
그룹
설문조사 언어마다 그룹 행이 하나씩 있습니다(예: 설문조사에 언어가 3개이면 그룹 행이 3개 있습니다).
- id => 그룹의 고유 숫자 식별자로, 1부터 시작하며 현재 그룹에 속한 추가 언어에는 동일한 ID를 사용합니다
- class => 'G'
- name => group_name -- 그룹의 고유 식별자
- relevance => grelevance -- 중괄호가 없는 그룹 수준의 관련성 수식
- text => description -- 그룹의 언어별 설명
- language => language -- 그룹의 언어(예: 'en')
질문
설문조사 언어마다 질문 행이 하나씩 있습니다(예: 설문조사에 언어가 3개이면 질문 행이 3개 있습니다). 질문은 바로 앞에 있는 그룹에 속하는 것으로 간주됩니다.
- id => 질문의 고유 숫자 식별자로, 1부터 시작하며 현재 질문에 속한 추가 언어에는 동일한 ID를 사용합니다
- class => 'Q'
- type/scale => type -- (보통 한 글자인) 질문 유형(예: 'M'은 다중 선택)
- name => title -- 고유한 질문 이름(qcode 이름 지정 체계의 기본)
- relevance => relevance -- 질문의 관련성 수식
- text => question -- 질문의 언어별 텍스트
- help => help -- 언어별 도움말 텍스트
- language => language -- 그룹의 언어(예: 'en')
- validation => preg -- 질문에 대한 선택적 정규표현식 유효성 검사 조건
- mandatory => mandatory -- 필수이면 'Y'
- other => other -- "기타" 옵션을 사용할 수 있어야 하면 'Y'(일부 질문 유형에만 해당)
- default => default -- 설정된 경우 이 값이 해당 질문의 defaultvalues 테이블에 삽입됩니다
- same_default => same_default -- 참이면 'Y'이며, 이 경우 기본 언어에 설정된 defaultvalue가 다른 언어에도 적용됩니다
하위 질문
설문조사 언어당 하위 질문 행이 하나씩 있습니다. 하위 질문은 바로 앞에 나오는 질문에 속하는 것으로 간주됩니다.
- id => 질문에 사용된 것과 동일한 고유 숫자 식별자입니다. 하위 질문은 다음으로 사용 가능한 값을 사용해야 하며, 질문 ID와 하위 질문 ID는 서로 달라야 합니다(예: 질문에 ID 1을 사용하고 질문 1에 속한 하위 질문에는 ID 2, 3, 4를 사용하면, 다음 질문 ID는 5가 됩니다). 현재 하위 질문에 속하는 추가 언어 행에는 동일한 하위 질문 ID를 사용하십시오.
- class => 'SQ'
- type/scale => scale_id -- 질문 유형에 따라 0 또는 1 (예: 배열 텍스트에는 두 개의 척도가 있습니다)
- name => title -- 하위 질문의 "이름"(예: exclude_all_others에 사용되는 이름)
- relevance => relevance -- (향후) 하위 질문 수준의 관련성 지원용
- text => question -- 하위 질문의 언어별 텍스트
- help => help -- (향후) 하위 질문 수준의 도움말 지원용
- language => language -- 하위 질문의 언어
- validation => preg -- (향후) 하위 질문 수준의 정규표현식 유효성 검사 지원용(예: 주소 구성 요소)
- mandatory => mandatory -- (향후) 하위 질문 수준의 필수 지원용(예: 일부 하위 질문만 필수로 지정)
- default => default -- 설정된 경우 하위 질문의 기본값입니다(defaultvalues 테이블에 삽입됨)
- same_default => same_default -- 설정된 경우 기본 언어의 기본값이 다른 모든 언어에 사용됩니다
응답
설문조사 언어당 응답 행이 하나씩 있습니다(예: 설문조사에 언어가 3개이면 응답 행도 3개입니다). 응답은 바로 앞에 나오는 질문에 속하는 것으로 간주되며, 원하는 정렬 순서로 배치되어야 합니다.
- id => 해당 응답이 속한 질문의 ID와 동일한 ID를 사용합니다
- class => 'A'
- type/scale => scale_id -- 0 또는 1 (예: 이중 척도의 경우)
- name => code -- 고유한 응답 식별자
- relevance => assessment_value -- 평가 옵션을 사용하는 경우 해당 응답의 평가 가치입니다
- text => answer -- 응답의 언어별 텍스트
- language => language -- 이 응답의 언어 (예: 'en')
평가
설문조사 언어당 평가 행이 하나씩 있습니다(예: 설문조사에 언어가 3개이면 평가 행도 3개입니다). 평가는 파일의 끝에 기록됩니다.
- id => 평가의 고유 숫자 식별자로, 1부터 시작하며 현재 평가에 속한 추가 언어 행에는 동일한 ID를 사용합니다
- related_id => 현재 평가가 속한 그룹의 id
- class => 'AS'
- type/scale => 평가 범위: T-전체, G-그룹
- name => 이름
- text => 메시지
- min_num_value => 최소
- max_num_value => 최대
- language => language -- 이 응답의 언어 (예: 'en')
할당량
할당량당 행이 하나씩 있습니다. 할당량은 파일의 끝에 기록됩니다.
- id => 할당량의 고유 숫자 식별자로, 1부터 시작합니다
- class => 'QTA'
- name => 할당량 이름
- mandatory => 한도
- other => 할당량 활동
- default => 활성
- same_default => URL 자동 탑재하기
할당량 언어 설정
설문조사 언어당 할당량 행이 하나씩 있습니다. 할당량 언어 설정은 바로 앞에 나오는 할당량에 속하는 것으로 간주됩니다.
- id => 할당량 언어 설정의 고유 숫자 식별자로, 1부터 시작합니다. 설문조사 언어별 행은 서로 다른 ID를 가져야 합니다
- related_id => 이 설정이 속한 할당량의 할당량 id
- class => 'QTALS'
- relevance => 메시지
- text => URL
- help => URL 설명
- language => language -- 이 할당량의 언어 (예: 'en')
할당량 구성원
할당량 구성원당 행이 하나씩 있으며, 언어에 종속되지 않습니다. 할당량 구성원 행은 관련된 질문 바로 뒤에 배치해야 합니다. 할당량 구성원은 바로 앞에 나오는 질문에 속하는 것으로 간주됩니다.
- id => 할당량 구성원의 고유 숫자 식별자로, 1부터 시작합니다
- related_id => 이 구성원이 속한 할당량의 할당량 id
- class => 'QTAM'
- name => 응답 코드
조건
조건당 행이 하나씩 있으며, 언어에 종속되지 않습니다. 조건 행은 관련된 질문 바로 뒤에 배치해야 합니다. 조건은 바로 앞에 나오는 질문에 속하는 것으로 간주됩니다.
- id => 조건의 고유 숫자 식별자로, 1부터 시작합니다.
- related_id => 해당되는 경우 관련 질문의 질문 id
- class => 'C'
- type/scale => 시나리오
- name => 응답 필드 이름
- relevance => 비교 연산자
- text => 예상 응답