OCD ID 업데이트 프로세스

소개

Open Civic Data Identifier (OCD ID)는 정치적 지리적 위치를 정의하는 공통 식별자 형식입니다. CDF 피드를 만들려면 이러한 식별자를 GpUnit 항목의 일부로 제공해야 합니다. 이 문서는 opencivicdata GitHub 저장소에 OCD ID를 추가하기 위한 안내와 권장사항을 제공하는 것을 목표로 합니다.

Open Civic Data GitHub 저장소에서 OCD ID를 업데이트하는 방법

기본 요건

  1. 오픈소스 프로젝트에 참여하는 방법 이해하기

시작하기 전 참고사항

  1. 워크스테이션을 준비합니다.

    OCD ID 저장소에서 패키지를 포크하고 클론합니다.

  2. 저장소 숙지하기:

    OCD ID 저장소에서 지원되는 각 국가는 동일한 이름(country-<2 문자 국가 코드>(예: 독일의 경우 identifiers/country-deidentifiers/country-de.csv))을 공유하는 디렉터리 및 CSV 파일로 표시됩니다.

    수정하려는 국가의 디렉터리에서 국가별 최상위 CSV 파일의 일부를 포함하는 CSV 파일 ()을 찾을 수 있습니다. 이러한 파일은 수정해야 하는 파일입니다.

  3. 새 OCD ID를 만드는 방법:

    구조 및 소스

    OCD ID 구조를 숙지하려면 open civics 데이터 문서를 참조하세요. 일반적으로 유효한 OCD ID의 형식은 ocd-division/country:<country_code>(/<type>:<type_id>)입니다.

    식별자 이름 지정은 ISO의 표준 식별자 또는 ISO를 사용할 수 없는 경우 FIPS 및 NUTS와 같은 다른 표준의 식별자를 사용합니다.

    일반 정책

    일반적인 정책은 다음과 같습니다.

    계층 구조

    OCD ID 계층 구조는 OCD ID의 포함 관계가 아닌 OCD ID의 경계를 제어하는 관리 수준에 따라 결정해야 합니다.

    • 예: 미국 하원 의원 선거구는 하원 의원 선거에 사용되지만 경계는 미국에서 결정합니다. 하원 의원 선거구는 주와 같은 주들 사이에 위치합니다: ocd-division/country:us/state:pa/cd:2
    • 예: 머리스빌은 펜실베이니아의 도시로, 웨스트모어랜드 카운티에 속해 있습니다. 하지만 도시는 주에서 관리하므로 OCD ID는 주와 별개입니다. ocd-division/country:us/state:pa/place:murrysville 명확성이 필요한 경우 추가 계층 구조가 사용될 수 있습니다.
    • 예: 펜실베이니아에는 '프랭클린 타운십'이라는 이름의 장소가 16곳 있습니다. 보통은 각각 OCD ID ocd-division/country:us/state:pa/place:franklin를 갖지만 이는 명확하지 않습니다. 따라서 대신 카운티를 OCD ID에 추가하여 각각 고유한 OCD ID를 가져오도록 할 수 있습니다. 예: ocd-division/country:us/state:pa/county:adams/place:franklin
    유형
    • OCD ID 유형은 일반적으로 국가마다 다릅니다.

    • 일부 OCD ID는 country, region, place와 같은 저장소 전체에서 공통적으로 사용됩니다.

    • 하지만 일반적으로는 해당 국가의 상황에 적합한 보다 구체적인 방식으로 유형을 지정하는 것이 좋습니다.

      • 예: 미국의 관리 영역 1의 경우 state, district, territory 유형이 사용됩니다.
      • 예: CA의 관리 영역 1의 경우 provinceterritory 유형이 사용됩니다.
      • 예: PT의 관리 영역 1의 경우 regionautonomous_region 유형이 사용됩니다.
    ID
    • 일반적으로, 교육구 재조정에서 한 교육구에 동일한 OCD ID를 사용할 수 있습니다. 새로운 OCD ID 세트에 사용할 type_id를 선택할 때 가장 안정적인 ID를 선택하세요. 사용할 식별자를 결정할 때 물어야 할 몇 가지 질문은 다음과 같습니다.
    • 구역 재조정으로 인해 특정 구역의 식별자가 변경될 가능성이 얼마나 되나요?
    • 동일한 공직자가 X구의 경계가 재조정되기 전후에 구역 재조정을 담당할 경우 해당 임기는 연속적 임기로 간주해야 하나요?
    • 선거구 재지정 지역의 경계 또는 이름이 동일한 지구는 동일한 식별자로 표시되나요?
      • 예: 미국의 하원 의원 선거구 번호는 미국 하원 의원 선거구의 경계가 변경되더라도 지역 번호에 밀접하게 붙어 있으므로 해당 기간이 재선구 경계를 넘어서더라도 X 의석을 차지할 수 있는 사람을 지칭할 수 있습니다.
      • 예: 캐나다에서는 연방 선거구를 나타내는 데 선거구 이름을 사용하고자 합니다. 연방 선거 코드가 있기는 하지만, 재교육구 전체에 걸쳐 동일한 선거구가 서로 다른 ID로 표시되기 때문에 이 식별자가 안정적이지 않기 때문입니다. 예를 들어 2012년 이전의 구역 재조정 이전의 47012구역은 같은 구역이 아닙니다.
    구역 재조정

    일반적으로 지역 재조정으로 인해 OCD ID를 업데이트할 때는 새 집합을 만드는 대신 기존에 존재하는 OCD ID 집합을 사용합니다.

    • 구역을 재조정한 후에도 교육구의 ID (숫자 ID, 이름 등)가 변경되지 않으면 동일한 OCD ID를 사용하세요.
    • 선거구 재조정 후 새로운 구역을 만들려면 새 OCD ID를 만드세요.
    • 더 이상 존재하지 않는 선거구의 경우 지역 재조정이 적용된 날짜로 ValidThrough 필드를 업데이트합니다.
    • 구역 ID는 이름을 기반으로 하고 구역 재조정 후 구역 이름이 변경되는 경우 새 구역 이름을 기반으로 새 ID를 만들고 id = oldIdsameAs = newId라는 별칭을 추가합니다. 이렇게 하면 oldId 사용이 newId에 매핑되므로 newId가 정규화됩니다.
    • 이전 OCD ID 간에 충돌이 발생하는 경우(예: 새 ID가 폐기된 ID와 동일한 경우) 새 ID에 ValidFrom 연도를 추가합니다. 이 이름 지정 정책에 대한 자세한 내용은 현재, 폐기 및 이름이 변경된 OCD-ID에 대한 새 파일 만들기를 참고하세요.

로컬 사본 업데이트

모든 업데이트는 국가별 디렉터리(ocd-repository/identifiers/country-<2 문자 국가 코드>)에서 실행해야 합니다. 존재하지 않는 경우 새로 만드세요.

  • OCD ID CSV 파일이 이미 존재하고 이 파일이 이전 선거구 경계를 나타내는 경우 새 선거구를 포함하도록 이 파일을 업데이트해야 합니다. 이렇게 하려면 YYYY-MM-DD 형식의 날짜가 포함된 ValidFromValidTo 열을 추가합니다.
    • ValidFrom은 새 선거일의 선거일이어야 합니다. 이미 존재하는 선거구의 경우 이 입력란을 비워둘 수 있습니다.
    • 오래된 선거구의 경우 ValidTo은(는) 선거 전날이어야 합니다.

별칭 업데이트

앨리어싱은 OCD ID를 동일한 정치적 지역을 나타내는 것으로 표시하는 데 사용할 수 있습니다.

  • 예를 들어 장소가 마을인 동시에 카운티인 경우 타당할 수 있습니다.

Google에서 추진하고자 하는 일반 원칙:

  • 두 정치적 지리가 일치하는 경우 반드시 서로 별칭이 지정되지 않아야 합니다. 예를 들어 대규모 미국 의회는 여러 주와 같지만 현재 미국의 인구수로 인해 우연히 발생할 수 있습니다.

선거구를 분할하기 위해 법률 및 헌법 개정안을 크게 변경해야 하는 경우에도 앨리어싱이 적합할 수 있습니다.

  • 예를 들어 워싱턴주 상원 의원과 주 의원 선거구는 헌법에 따라 동일하게 설정됩니다.

필요한 경우 이전 OCD ID와 별칭을 모두 추가하는 aliases.csv CSV 파일을 추가합니다. 표준 ID는 지역적 의미가 있고 더 친숙한 표현이 있는 별칭 (예: 표준: ocd-division/country:de/land 별칭: `ocd-division/country:de/state)을 가질 수 있는 나누기 유형을 사용할 수 있습니다. 자세한 내용은 문제 #170을 참조하세요.

별칭 CSV 파일을 업데이트하려면 다음 안내를 따르세요.

  • 별칭 CSV 파일의 열 순서를 준수합니다(id,sameAs,sameAsNote).
유형 설명
id 이 열에는 OCD ID에 대한 별칭이 있어야 합니다.
sameAs 이 열에는 별칭을 추가할 실제 OCD ID가 있어야 합니다.
sameAsNote 나누기에 여러 식별자가 있는 방법과 이유를 설명하는 메모입니다.

예: identifiers/country-in/aliases.csv

스크립트 compile.py를 실행합니다.

opencivicdata/ocd-division-ids/scripts 위치에서 Python 스크립트를 실행합니다.

  • 어느 국가의 식별자를 업데이트해야 하는지 알 수 있도록 2자리 국가 코드를 스크립트의 인수로 지정해야 합니다.
  • 예: python3 scripts/compile.py in (인도에서 주민의 OCD ID를 업데이트하는 경우)
  • Python 2.x는 지원되지 않습니다. Python 3 이상 버전을 사용해야 합니다. 최신 버전의 Python 3는 여기에서 다운로드할 수 있습니다.

스크립트는 이전 단계에서 업데이트한 CSV 파일(ocd-division-ids/identifiers/country-in/*.csv)에서 데이터를 가져오고, 파일의 값을 검증하고, 데이터 오류 (특수문자 사용 등) 또는 데이터 중복이 있는지 확인하고, 새 OCD ID를 최상위 국가 CSV 파일에 씁니다.

업데이트된 CSV 파일에 문제가 발생하면 스크립트가 오류 및 경고 메시지를 표시합니다. 문제를 해결하고 스크립트를 다시 실행하세요.

리드미 파일 추가

새로운 국가 또는 새로운 서비스 범위를 추가할 때 (예: 이전에는 해당 국가의 OCD ID만 있었지만 지금은 첫 번째 수준의 행정 구역을 추가함) README.md 파일을 추가하거나 업데이트합니다. 이 파일에는 다음과 같이 정치적 지리에 관한 간단한 윤곽이 포함되어야 합니다.

  • 사용할 유형 및 역할 (예: 'districts은 이 국가의 첫 번째 수준 행정 구역입니다.')
  • 유형 간의 관계 (예: '입법 구역은 구역별로 할당되며 구역 경계를 넘지 않음')
  • 주목할 만한 예외 (예: '모든 해외 시민에게 적용되는 입법 구역이 하나 있음')
  • 검토자나 사용자에게 컨텍스트를 제공하는 데 도움이 되는 유용한 위키백과 페이지 링크

pull 요청 만들기

pull 요청을 만들려면 다음 안내를 따르세요.

  • 이 프로세스가 오류 없이 완료되면 새로 작성된 최상위 country-<2 문자 국가 코드>.csv 파일에 업데이트된/새 OCD ID 세트가 포함되어 있는지 확인합니다.
  • pull 요청을 만들고 검토자를 추가합니다. 이 pull 요청에는 다음 CSV 파일 모두에서 수정된 사항이 포함되어야 합니다.
  • 국가별 디렉터리에 있는 CSV 파일.
  • 최상위 국가-<2자리 국가 코드>.csv 파일.
  • pull 요청을 국가의 커밋한 두 명이 검토하고 승인하면 패키지의 소유자/공동작업자 중 한 명이 병합합니다.