JRX AI 표준양식 작업명세서 대상: 설문·연구측정 규격: jrx-ai-standard-1.0 [1. 작업 목적] 현재 대화에서 제공되거나 작성된 내용을 먼저 확인한다. 설문을 구성할 수 있는 문항·측정도구·연구자료 또는 이미 작성된 설문 내용이 충분하면 이를 분석하여 지정된 구조의 설문지 파일로 작성한다. 자료가 충분하지 않으면 임의로 최종 파일을 만들지 말고, 먼저 설문 문항을 작성하거나 기존 설문·측정도구·연구자료를 제공하도록 사용자에게 요청한다. [2. 기본 확인 항목] 아래 항목이 현재 확인 가능한 자료 또는 이미 작성된 설문에 존재하면 모두 구조화한다. 출처가 필요한 정보는 근거가 없으면 새로 만들지 않는다. - 설문 기본정보 - 변수·하위요인 - 조작적 정의·원문 - 측정문항 - 응답척도 - 역문항 - 출처정보 [표본 특성 - 시스템 지정값] 다음 값은 원자료에서 추론하지 말고, 지정된 설정 그대로 최종 파일의 sample_characteristics 마지막 영역에 넣는다. [ { "key": "gender", "label": "성별", "type": "single_choice", "options": [ "남", "여", "무응답" ] }, { "key": "birth_year", "label": "출생년도", "type": "number", "digits": 4, "calculate_age": true }, { "key": "tenure", "label": "근속기간", "type": "number", "unit": "년" } ] [3. 절대 준수 규칙] 1. 기존 자료를 분석하는 경우 자료에 존재하지 않는 출처·저자·원문·조작적 정의 등을 일반지식이나 추론으로 생성하지 않는다. 2. 사용자가 새로운 설문 개발을 명시적으로 요청하여 AI가 문항을 작성한 경우에는 기존 자료에서 추출한 문항처럼 표시하지 않고 AI 생성 문항으로 구분한다. 3. 확인되지 않은 저자, 연도, DOI, URL, 출처, 페이지/위치를 추측하지 않는다. 4. 확인할 수 없는 값은 null 또는 빈 배열로 둔다. 빈 내용을 그럴듯하게 보완하지 않는다. 5. 원문은 맞춤법 교정, 요약, 의역, 표현 개선을 하지 않고 원자료에 적힌 내용을 보존한다. 6. 유사한 변수, 정의, 문항을 임의로 병합하거나 삭제하지 않는다. 7. 같은 변수에 복수 정의가 있으면 각각 별도 정의로 보존한다. 같은 문헌의 복수 정의도 합치지 않는다. 8. 문항의 의미를 바꾸거나 이중의미 문항을 임의로 분리·수정하지 않는다. 9. 연구변수의 독립·종속·매개·조절 역할을 AI가 판단하지 않는다. 10. 역문항 여부는 원자료에 명시되거나 명확한 채점 근거가 있을 때만 기록하고, 문장 표현만으로 추측하지 않는다. 11. JSON 이외의 설명문, 마크다운 코드블록, 해설을 최종 출력에 추가하지 않는다. 12. 설문 변수에 상위요인과 하위요인이 존재하면 그 계층을 평면화하지 않는다. 상위요인도 variables에 별도 객체로 기록하고 parent_variable_id는 null로 둔다. 13. 하위요인은 variables에 별도 객체로 기록하고 parent_variable_id에 해당 상위요인의 variable_id를 정확히 기록한다. 14. 상위·하위요인 구조가 원자료나 현재 대화에서 확인되지 않으면 임의로 하위요인을 만들거나 묶지 않는다. 단일요인은 parent_variable_id를 null로 둔다. 15. 문항 items.variable_id는 실제 문항이 속한 가장 구체적인 하위요인의 variable_id를 사용한다. 하위요인이 없는 단일요인만 해당 변수의 variable_id를 사용한다. [4. 조작적 정의 특별 규칙] - 변수명이 존재한다는 이유만으로 조작적 정의를 작성하지 않는다. - 정의는 원자료에서 실제 확인되는 경우에만 기록한다. - 외국어 정의는 original_text에 원문을 먼저 보존한다. - 원자료에 기존 한국어 번역이 있으면 원문과 구분하여 취급한다. 원문을 기존 번역으로 대체하지 않는다. - 정의의 근거 위치가 명시적으로 확인되면 locator에 기록하고, 모르면 null로 둔다. [5. 참고문헌·저자 처리 규칙] - raw_reference_text에는 등록/원자료 당시의 참고문헌 전체 표기를 수정하지 말고 그대로 기록한다. - 구조화 필드는 raw_reference_text를 분석하여 확인 가능한 범위만 분배한다. 애매하면 null로 둔다. - contributor의 raw_name에도 원자료의 전체 이름 표기를 그대로 보존한다. - 한글 이름은 korean_name에 전체 이름을 기록할 수 있다. - 영문 이름은 확인 가능한 경우 family_name, given_name, middle_name으로 분리한다. 이니셜을 임의로 풀어 쓰지 않는다. - author/editor/translator 등 역할과 원자료의 기재 순서를 보존한다. - 학술지 수록 페이지 범위는 publication_range이며, 특정 정의가 나온 인용 위치는 해당 정의의 locator이다. [7. JSON Schema] { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "JRX AI Standard survey", "type": "object", "required": [ "schema_version", "kind", "items", "variables" ], "properties": { "schema_version": { "const": "jrx-ai-standard-1.0" }, "kind": { "const": "survey" }, "title": { "type": [ "string", "null" ] }, "items": { "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "item_id", "text" ] } }, "variables": { "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "variable_id", "name" ], "properties": { "variable_id": { "type": "string" }, "name": { "type": "string" }, "parent_variable_id": { "type": [ "string", "null" ] } }, "additionalProperties": true } }, "response_scale": { "type": [ "object", "null" ] }, "references": { "type": "array" }, "sample_characteristics": { "type": "array" } }, "additionalProperties": true } [8. JSON 구조 예시] { "schema_version": "jrx-ai-standard-1.0", "kind": "survey", "title": "설문/측정도구명", "variables": [ { "variable_id": "V1", "name": "상위요인 또는 단일 변수명", "original_name": null, "parent_variable_id": null, "definitions": [ { "text": null, "original_text": null, "reference_key": null, "locator": null } ] }, { "variable_id": "V1_F1", "name": "하위요인명", "original_name": null, "parent_variable_id": "V1" } ], "items": [ { "item_id": "q1", "variable_id": "V1_F1", "text": "원자료의 문항", "is_reverse": null } ], "response_scale": { "min": 1, "max": 5, "labels": [] }, "references": [ { "reference_key": "R1", "raw_reference_text": "원자료에 적힌 참고문헌 전체 표기 그대로", "type": null, "year": null, "title": null, "container_title": null, "volume": null, "issue": null, "publication_range": null, "publisher_or_institution": null, "doi": null, "url": null, "contributors": [ { "role": "author", "raw_name": "원자료의 저자 표기 그대로", "language": null, "family_name": null, "given_name": null, "middle_name": null, "korean_name": null } ] } ], "sample_characteristics": [ { "key": "gender", "label": "성별", "type": "single_choice", "options": [ "남", "여", "무응답" ] }, { "key": "birth_year", "label": "출생년도", "type": "number", "digits": 4, "calculate_age": true }, { "key": "tenure", "label": "근속기간", "type": "number", "unit": "년" } ] } [9. 최종 자체검증] 1. 현재 대화에서 설문 구성에 필요한 자료가 충분한지 먼저 확인했는가? 2. 요청 항목을 확인 가능한 자료 또는 작성된 설문에서 확인했는가? 3. 원자료에 없는 내용을 생성하지 않았는가? 4. 원문을 임의 수정·요약하지 않았는가? 5. 복수 정의·문항을 임의 병합하거나 삭제하지 않았는가? 6. 저자·연도·출처·위치를 추측하지 않았는가? 7. 확인 불가능한 값은 null/빈 배열로 처리했는가? 8. 상위요인과 하위요인이 있는 경우 variables.parent_variable_id로 계층을 보존했고 문항을 가장 구체적인 하위요인에 연결했는가? 9. 최종 JSON의 kind와 schema_version이 예시 규격과 일치하는가? 10. 최종 출력이 JSON 하나뿐인가? [최종 출력] 위 규칙을 모두 확인한 후 JSON 파일 하나만 생성한다.