'공간정보 표준'에 해당되는 글 6건

  1. 2020.01.10 UML 모범사례
  2. 2019.10.11 공간정보표준과 기술기준
  3. 2018.12.04 INSPIRE 란
  4. 2018.06.17 ISO TC211 표준 저장소로부터 UML 모델 가져오기
  5. 2018.05.27 공간정보 유통과 표준에 대하여
  6. 2018.01.12 JGGIS FAQ
공간정보/표준2020. 1. 10. 16:02


지리정보를 UML로 모델링하기 위한 모범 사례에 대한 ISO/TC211 위키

이 위키의 목적은 지리정보를 UML로 모델링하기 위한 모범사례를 수집하고 표현하며, 기계와 인간이 모두 이해할 수 있는 모델을 제작하기 위함이다.

1. 개요

1.1 UML 기본

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Basic-UML

1.1.1 UML 소개

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Introduction-to-UML

UML은 무엇인가?

  • UML은 객체지향 모델링을 위한 그래픽 언어
  • Unified Modelling Language의 약어
  • Object Management Group(www.omg.org)에서 개발
  • UML 2.4.1 이 ISO 19505:2012 로 국제 표준화되어 있음

UML 다이어그램

그래픽 언어는 그래픽 모델 요소가 있는 다이어그램으로 구성된다. 아울러 모델링 도구는 모델 요소에 대한 문자 정의를 저장한다. 그래픽 언어가 충분하지 않을 경우, 자신만의 정확한 문자 언어로서 키워드 및 제약을 입력할 수도 있다.

UML에는 정보, 행태(behaviour), 유스케이스, 컴포넌트 등을 기술하는 여러가지 다이어그램이 있다. 지리정보는 주로 아래와 같은 3가지 정적 모델을 사용하여 기술한다.

  • 패키지 다이어그램 : 패키지와, 패키지 간의 관계를 표시한다.
  • 클래스 다이어그램 : 클래스와 클래스 간의 연관을 표시한다. 클래스 다이어그램은 클래스 명과 속성을 보인다.
        - 클래스에는 이름, 속성, 연산이 포함됨. 제한(constraints)와 tagged value가 표시될 수도 있음 
        - 속성은 속성명, 데이터유형, 다중도 로 표현됨
        - ApplicationSchema, FeatureType, dataType, enumeration, CodeList, interface, Union 등의
          스테레오타입이 있음
        - association role에서 탐색가능한 종점은 반드시 이름과 다중도가 있어야 함
  • 객체 다이어그램은 실세계를 설명하는 실제 인스턴스를 나타낸다.
패키지 다이어그램의 모델 요소
  • UML 패키지는 여러 요소 그룹을 위한 콘테이너이며, 패키지 다이어그램에서는 탭이 있는 폴더로서 표현된다.
  • 패키지 의존성(dependency)은 어떤 패키지의 클래스가 다른 패키지에 있는 클래스를 필요로 함을 나타낸다. 이는 점선으로 표시하며, 꼬리쪽 패키지를 위해서 화살표 쪽에 있는 패키지가 필요함을 나타낸다.
아래 다이어그램에서 "Linear information" 패키지에 있는 클래스가 "Citation and responsibel party information" 패키지에 속한 클래스가 필요함을 나타낸다. 점더 구체적으로, "Linear Information" 에 들어 있는 여러 클래스들이 데이터 유형이 CI_Citation인 속성을 가지는데, 이 CI_Citation은 "Citation and responsible party inforamtion"에서 정의된다.

클래스 다이어그램의 모델 요소

클래스

클래스는 다이어그램에서 클래스 명(name), 속성(attribute), 연산(operation) 영역으로 구성된 직사각형으로서 표현된다. 아울러 제약(constraints) 및 태그값(tagged values) 영역도 보일 수 있다.

  • 추상 클래스는 클래스명을 이탤릭체로 표기한다. 이러한 클래스는 인스턴스화 할 수 없다.
  • 속성은 속성명(attribute name), 데이터 유형(data type) 및 다중도(multiplicity : 반복 가능 횟수)로 표현한다. 다중도는 대괄호로 표현한다.
  • 다중도 [0..1]이란 0개 또는 1개, [0..*] 이란 0개 이상임을 의미한다. 다중도가 없으면 정확히 1개임을 뜻한다.
스테레오타입

클래스 명 및 패키지 명 위에는 스테레오타입을 표기할 수 있다. 스테레오타입은 기본 UML 요소를 확장하여 다른 의미를 부여하는데 사용한다. ISO 19103 - 개념 스키마 언어 및 ISO 19109 응용스키마 규칙에는 지리정보 모델에 사용할 수 있는 스테레오타입을 정의하고 있다. 스테레오타입은 대소문자를 무시하지만, ISO 19103, 19109에서 사용되는 스타일을 사용해야 한다.
  • 스테레오타입이 "ApplicationSchema"인 패키지에는 지형지물(feature) 유형을 포함한다. 이 스테레오타입은 GML 실현시 중요하다.
  • 스테레오타입이 "FeatureType"인 클래스는 지리 객체 유형을 표현한다. 이 스테레오타입은 GML 실현시 중요하다.
  • 스테레오타입이 "dataType"인 클래스는 식별성이 없는 특질의 집합이다. 이러한 클래스는 단독 인스턴스로서는 존재할 수 없고, 다른 클래스의 속성 혹은 컴포넌트로만 존재할 수 있다.
  • 스테레오타입이 "enumeration"인 클래스는 가능한 값이 정해진 고정 목록이다. 이러한 목록을 사용하는 속성의 값은 반드시 그 목록내에 존재해야 한다.
  • 스테레오타입이 "CodeList"인 클래스는 가능한 값이 확장될 수 있는 목록이다.
  • 스테레오타입이 "interface"인 클래스는 개념적 클래스이다. 이러한 클래스는 데이터 셋에서 직접 사용될 수 없으며, 다른 클래스에서 실현되어야 한다.
  • 스테레오타입이 "Union"인 클래스는 여러가지 유형 목록을 포함하며, 하나의 인스턴스에서 하나의 유형만 사용된다.

연관관계

클래스 간의 연관관계는 해당 클래스를 연결하는 선으로 표현된다.
  • 연관관계는 연관명을 가질 수 있다.
  • 연관관계는 방향이 있을 수 있다. 이는 연관관계가 탐색가능한(navigable) 방향을 보이는 화살표로 표시한다.
  • 탐색가능한 끝은 연관역할명(role name)과 다중도(연결 인스턴스의 가능한 수)를 가져야 한다.
  • 빈 다이아몬드가 있는 연관관계를 집합연관(aggregation)이라고 하며, 다이아몬드가 있는 쪽의 클래스가 반대쪽 개별 콤포넌트의 집합을 갖게 된다.
  • 채운 다이아몬드가 있는 연관관계를 합성연관(composition)이라고 하며, 다이아몬드가 있는 쪽의 클래스가 반대쪽 컴포넌트를 소유한다.
  • 클래스간의 상속성(Inheritance)는 빈 삼각형이 있는 선으로 표현되며, 삼각형이 있는 쪽의 클래스가 상위클래스이다.
노트(Note)

노트는 한쪽 귀퉁이가 접어진 직사각형으로 표시한다. 노트는 자유문으로 추가적인 정보를 기재하는데 사용되며, 해당 모델 요소와 점선으로 연결된다.

객체 다이어그램 모델 요소

  • 객체 다이어그램에서 객체는 사각형으로 표시되며, 위쪽에는 이름:클래스명(언더라인), 아래쪽에는 속성=값을 표시한다.
  • 객체간의 연결은 연관관계 인스턴스를 나타낸다.


1.1.2 추상화 수준(Level of Abstraction)


ISO 19103의 요구사항 4는 "모델은 해당 추상화수준에 대한 명확한 설명을 문서화해야 한다" 고 말한다.


"추상화수준"이란, 모델에서 묘사한 상세함의 정도 및 특정 구현에 대하여 그 상세함이 얼마나 구체적인지를 의미한다. 모델의 추상화수준은 기반 패턴의 정의로부터, 개념의 정의, 그리고 플랫폼 구현사양까지 여러 단계가 있다.

ISO 19103에서 설명한 4가지 추상화수준은 다음과 같다.

  1. 메타모델(가장 추상적임. ISO19109의 일반 지형지물 모델(General Feature Model)과 ISO19505의 UML 메타모델 등)
  2. 개념스키마 - 추상 스키마 (기본개념에 대한 핵심 모델. 예 : ISO19107의 기하 및 위상 등)
  3. 개념스키마 - 응용 스키마 (아직까지 개념 모델이나, 특정 응용에 위함. 예: 길, 건물 등)
  4. 구현스키마(특정 구현을 위한 스키마. 예 : GML 응용스키마(XSD))
아래는 여러가지 추상화 수준을 나타낸 그림이다.


1.2 Enterprise Architect 사용하기

1.2.1 유용한 도구(script, search, addin 등)

  • Enterprise Architect 스크립트 작성법 - 샘플 스크립트 - 문서제작 스크립트, .eap 파일 정보 보기, 모델 검증 등
  • Enterprise Architect에서 모델 검색용 스크립트 작성법
  • ShapeChange 플러그인

1.2.2 INSPIRE 투토리얼

 INSPIRE_UML_repository_tutorial.pdf

참고로 이 파일은 다음 세가지 부분으로 이루어짐.

- EA를 사용하여 UML 모델 생성하기
- EA와 Subversion 사용하기
- EA와 Subversion 저장소 사용하기

1.3 참고 문헌

1.3.1 요구사항 및 권고사항

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Requirements-and-recomendations

여러가지 ISO/TC211 표준 및 기술사양에는 UML 모델링에 관한 규칙과 권고사항이 들어 있다. 이중 일부는 이 위키문서에도 들어 있지만, 지리정보 UML 모델을 작업하는 사람은 반드시 원 문서를 알아두어야 한다.

ISO 19103 - 개념 스키마 언어

ISO 19103:2015에는 ISO 지리정보 표준에서 개념스키마 언어를 사용하는 규칙 및 지침이 포함되어 있다. 선택된 개념 스키마 언어는 통합 모델링 언어(UML)이다.

이 표준에는 다음과 같은 요구사항 및 권고사항이 포함된 UML 프로파일이 있다.

- UML 일반 용법
- 클래스
- 속성
- 데이터 유형
- 연산
- 관계 및 연관관계
- 선택/조건부/필수 속성 및 연관관계
- 이름 명명법 및 네임스페이스
- 패키지
- 노트(Note)
- 제약(Constraints)
- 모델 문서화

ISO 19109 - 응용 스키마 규칙

ISO 19109:2015에서는 지형지물 정의 원칙을 포함하여, 응용스키마 생성 및 문서화에 대한 규칙 및 권고사항이 정의되어 있다. 그 초점은 논의의 영역에 속한 지형지물 및 속성에 대한개념 모델링이다.

- 응용스키마의 정의
- 응용스키마를 위한 개념 스키마 언어 사용법
- 개념 모델의 개념을 응용스키마의 데이터 유형으로 변환하는 방법
- 다른 ISO 지리정보표준에 있는 표준 스키마와 응용스키마를 통합하는 방법

19136 GML(부속서 E)

ISO 19136:2007은 지리마크업언어(GML)에 대한 XML 스키마 문법, 메커니즘 및 공통규약을 정의한다. ISO 19136:2007 부속서 E(규정)에는 ISO 19109/19103에 적합한 UML 응용스키마를 GML 응용스키마로 자동 매칭하는 것을 목표로 하는 규칙을 담고 있다. 이 부속서에는 다음 항목에 대한 인코딩 법칙을 서술한다.

- 응용스키마와 패키지
- 클래스
- 속성
- 연관관계 및 연관관계 끝

19139 XML 스키마 구현

ISO/TS 19139:2007 에서는 ISO 19115에서 유도된 XML 스키마 구현인 지리 메타데이터 XML (gmd : Geographic Metadata XML) 인코딩을 정의한다. 여기에는 UML로부터 XML로 매핑시키기 위한 일반 법칙이 담겨있는데, 다른 표준을 XML로 구현할 때에도 유용하다.

1.3.2 기타 유용한 문서

- ISO/TC211, OGC, INSPIRE의 지리정보 UML 모델링
    INSPIRE Repository tutorial : Enterprise Architect, 모델링, svn 저장소 사용법 등에 대한 소개
    OGC Domain modelling cookbook : 지리정보 도메인 모델을 구축및 유지관리 모범사례
    Domain Modelling using Hollow World 
    Presentation 2015(Data modelling and model driven implementation of data distribution)
- SVN 및 문서관리
   Enterprise Architect를 위한 버전 제어 모범 사례
   ISO/TC211 조화 모델 소개 - 조화모델 불러오기

- 프로파일
   ISO/DIS 19160-1 개념 모델 처리하기, 부속서 B : 프로파일 개발 지침
   ISO/DIS 19160-1 개념 모델 처리하기, 부속서 C : 샘플 프로파일
- 구현
   주소 : 뉴질랜드 개념 모델(프로파일), 부속서 I, 개념모델을 구현모델로 전환하는 방법
   주소 : 뉴질랜드 개념 모델(프로파일), 부속서 B/C, 데이터 유형을 실현하는 방법 예시 

- 스크립트 
    Querying EA's Database : [Inside Enterpise Architect : EA 데이터베이스 쿼리, Thomas Kilian]
    Scripting Enterprise Architect [Enterprise Architect 스크립트 작성법, Thomas Kilian]
    Fifty Enterprise Architect Tricks [Enterprise Architect를 위한 50가지 트릭, Peter Doomen]

- ISO/TC211 내의 논의
   UML에 대한 문제점 토론사항 

2. 모범 사례

2.1 관련 요구사항 및 권고사항

1.3.1 과 동일

2.2 모델링 모범사례

2.2.1 일반 - 추상화 수준

1.1.2와 동일

2.2.2 일반 - 패키지/클래스/속성의 명명법


접두사(GM_, TP_ 등)

예전 UML 편집기에는 다른 패키지에도 동일한 이름의 요소를 포함할 수 없는 "버그"가 있었다. 이러한 이유로, ISO TC 211에서는 기본적으로, 분류자(Classifier) 이름에 "네임스페이스" 접두사를 붙였다.(예: 기하의 경우 "GM_", 위상의 경우 "TP_") 현재 편집기에는 패키지 분리가 올바르게 이루어지므로, 따라서

예전 표준에서 사용된 접두어는 더이상 필요하지 않다. 다이어그램에서 혼동이 발생할 경우, 다이어그램의 의도를 명확히하기 위하여 네임스페이스 패키지를 쉽게 표시할 수 있다.


하지만 일부의 경우 사람의 가독성을 위하여 접두사가 가치가 있을 수 있다. 하지만, 경험적인 법칙으로는 접두사 대신 다이어그램에 네임스페이스를 표시하는 것이 좋다.

** 기존 표준에서 사용된 접두어는 Prefixes 페이지에서 볼 수 있다.

규칙과 권고사항

19103에는 패키지, 클래스, 속성, 역할의 명명에 대한 여러가지 규칙 및 권고사항이 있다., 그중 핵심은 다음과 같다.

Requirement 16 "UML 요소의 이름은 대소문자 구분하지 않으며, 네임스페이스 내에서 유일하고 공백없어야 한다."


GML을 구현하기 위하여, ISO 19136 GML에서는 이름을 W3C XML 네임스페이스에 정의된 "NCName" 이어야 한다고 요구한다. NCName은 위의 요구사항보다 좀더 제한적이며, 일반 문자/숫자/("-",".","_") 등만 사용할 수 있고, "!", "#", "?" 등과 같은 특수문자는 사용할 수 없다. 아울러 NCName은 숫자/"-","." 로 시작할 수 없다. (뒤쪽에는 나타날 수 있다.)

참고: 속성과 역할의 경우, 네임스페이스가 클래스이므로, 이 규칙에 따르면 다른 클래스에서 반복사용될 수 있다. 하지만, ISO 19109 (응용 스키마 규칙)의 권고사항에 따르면

/rec/uml/property-name : 속성, 연산, 연관 역할의 이름은 응용스키마 내에서 유일하거나, 또는 다른 클래스에서 사용될 경우에는 동일한 의도를 가져야 한다.(should have the same intention with respect to the CLASS owning the property as any other property with the same name in the Application Schema)


이 권고사항은 GFM 권고사항인 rec/general/property-name과 밀접한 관계가 있다. 

아울러 아래의 ISO 19103의 권고사항을 따른다.

Requirement 8 : classifier/속성/연산/매개변수에 대하여 UML 요소의 이름은 정확하고 이해가능한 기술적 이름을 사용해야 한다.

Requirement 9 : 매개변수의 콘테이너나 유형에 의미가 있는 경우, short parameter명을 써야 한다.


예: 클래스 명이 "Building"일 경우, 속성명은 "buildingName" 대신 "name" 을 쓴다.)

19103 Requirement 10: UML요소의 이름은 정확하고 이해가능한 이름이 되도록 여러 단어를 중첩하여 사용하되, "-"나 "_"을 사용하지 않아야 한다.

19103 Requirement 11: UML 속성, 연산명, 연관 역할, 매개변수의 경우, 이름에서 연결하는 첫번째 단어 뒤에 오는 각각의 단어의 첫문자를 대문자화 한다. 분류자, 패키지, 유형사양, 연관명에 대한 이름의 모든 첫번째 문자를 대문자화한다.


즉, 속성/연산/역할/매개변수는 lowerCamelCase, 패키지/클래스/연관은 UpperCamelCase 형태로 만든다.

예) 클래스 이름은 TransportLink 처럼 될 수 있으며, validFrom 과 validTo와 같은 속성을 가질 수 있다.

19103 Requrement 13: UML요소명은 실용적인 한 짧게 유지한다. 이해가능하면 약어를 사용하고, 특별한 의미를 추가하지 않는한, 전치사와 동사는 생략한다.


다중언어 이름

ISO19109 응용스키마에는 이름을 다중언어로 처리하는 방법에 관한 몇가지 요구사항이 존재한다.  응용 스키마가 있는 패키지의 경우, 주요 언어를 가진 태그값을 가져야 한다.

/req/multi-lingual/package : 응용스키마가 있는 PACKAGE에는 TAGGED VALUE "language"를 사용하여 응용스키마에 있는 이름 및 정의에 사용된 주요 언어를 지정해야 한다. TAGGED VALUE는 IETF REC 5646로부터 가져온 값을 사용해야 한다.

패키지는 TAGGED VALUE "designation"를 사용하여, 주요 언어에 대한 대응 언어로 패키지의 이름을 포함해야 한다.

 TAGGED VALUE는 여러가지 언어로 계속 반복가능하다. 그 값은 다음과 같은 패턴으로 포매팅해야 한다.

 "{Name}"@{language} 

 여기에서 {Name}는 원하는 언어에서의 이름, {language}는 IETF RFC 5646에서 가져온 언어코드이다.


예 : "Observation et Mesures"@fr

지형지물 유형, 속성, 역할, 연산도 TAGGED VALUE를 사용하여 다른 언어로 표현할 수 있다.

/req/multi-lingual/feature : FeatureType 또는 PropertyType은 TAGGED VALUE "designation"을 사용하여, 주 언어에 대한 대응 언어로 이름을 기록해야 한다.

FeatureType 또는 PropertyType은 TAGGED VALUE "definition"을 사용하여, 주요 언어에 대한 대응언어로 해당 문자열 정의를 기록해야 한다.

TAGGED VALUE "designation" "definition" "description"은 여러 언어로 반복 가능하다.

이들 TAGGED VALUE의 값은 다음과 같은 패턴으로 포매팅해야 한다.

"{Name}"@{language} 

 여기에서 {Name}은 원하는 언어에서의 이름, {language}는 IETF REC 5646에서 가져온 언어코드이다.


실세계 이름과 UML 이름

모델요소의 이름이 "분류자를 위한 정확하고 이해가능하며 기술적인 이름"이어야 하지만, 공백과 특수문자를 가질 수 없고 실 세계 이름과 다르게 될 수 있다. 예를 들어, transport link 클래스는 "TransportLink"가 되며, 기능적 도로등급은 "FuctionalRaodClass"가 된다. 사람의 가독성을 위하여,  alias로 실세계 이름 넣는 것이 좋다. 

19100 표준에 alias 사용에 대한 규칙 혹은 추천사항은 없다. Enterprise Architect에는 클래스, 속성, 연관에 있는 "alias"를 이 용도로 사용할 수 있다. 여러 alias를 사용해야 할 경우, TAGGED VALUE를 적용할 수 있다. (예를 들어 태그값 "alias")


2.2.3 일반 - 정의

모델요소 잘 정의하는 것은 사람들이 모델을 잘 이해하는데 중요하다. UML에서는 정의를 Notes필드에 적으며, tagged value에도 쓸 수 있다.  ISO 19103 및 ISO 19109에서는 패키지/클래스/속성의 정의에 대한 여러가지 규칙과 권고가 있다. 기본적으로 이 모든 권고의 내용은

"모든 모델 요소에 정의를 작성하라"


19103 규칙 및 권고사항

일반

Requirement 3 : 모든 규정 클래스 모델은 모든 클래스/속성/연관/연산 및  적절한 데이터유형 정의를 충분히 이해할 수 있도록 정의를 포함시켜야 한다.


Enumeration/codelist

Requirement 7 : 열거 유형의 값은 개념이므로, 각각의 값은 값에 대한 정의가 있어야 한다.


Naming 과 네임스페이스

Requirement 12 : UML 요소는 documentation 필드를 사용하여, 이름있는 요소의 의미(시멭틱)을더 설명해야 한다.


모델의 문서화 

Requirement 19 : 각 분류자는 의미를 설명하는 정의를 가져야 한다.

Requirement 20 : 패키지/분류자/연산/속성/역할/연관/제한은 개념 다이어그램 근처에 텍스트로 설명을 해야 한다.


10109 규칙 및 권고사항

응용스키마 문서화 

/req/uml/documentation: 응용스키마는 문서화되어야 한다. 클래스,속성, 역할, 연산, 제약의 텍스트 정의는 UML 도구에서 제공하는 주요 문서화 기능을 이용해 기록해야 한다. (export 가능할 경우)
패키지/클래스.../제약에 대한 2차설명 및 정보용 참고사항은 TAGGED VALUE "description"에 기록할 수 있다.
CLASS 혹은 기타 UML 구성요소가 지형지물 카탈로그에 정의된 모델 요소의 구현일 경우, 해당 카탈로그에 대한 참조를 TAGGED VALUE "catalogue-entry"에 문서화 해야 한다.


정의 작성 방법

Enterprise Architect에서 "UML 도구에서 제공하는 주요 문서화 기능"은 각각의 클래스/속성/역할/연산/제약에 대한 "Note" 필드이다. 정의는 이 필드에 기록해하며, 다음과 같이 작성해야 한다.

    • 가능한한 간결하고 예제나 설명은 포함하지 않아야 한다. (예나 설명은 "description"에 넣을 것)
    • "주소란..." "Address component is..." 처럼 시작하지 않아야 한다.
    • 마침표(".")로 끝내야 한다.

예 : 특정 지리적 구역, 위치 혹은 주소 범위를 정의하는 기타 공간 객체의 식별자 또는 지리적 명칭. (Identifier or geographic name of a specific geographic area, location, or other spatial object which defines the scope of an address.)

2차적 설명 - TAGGED VALUE "description"

2차적 설명은 태그 값 "description"에 기록할 수 있다.

자연언어 명칭

예:

address component

보완적 설명(complementary description)

    • 정의의 출처 참조는 키워드 SOURCE를 사용하여 포함시킬 수 있으며, 그 뒤에 Source의 약칭을 넣어야 한다.
    • 설명에서 추가적 해설은 키워드 NOTE를 사용하여 넣을 수 있다. 노트가 여러개 있을 경우, NOTE 1, NOTE 2 등 처럼 번호를 넣는다.
    • 예는 키워드 EXAMPLE을 사용하여 넣을 수 있다. 예가 여러개 있을 경우, EXAMPLE 1, EXAMPLE 2 와 같이 번호를 넣는다.
예:

SOURCE [UPU-S21]

NOTE 1 주소 구성요소의 4가지 다른 하위클래스가 정의된다.
    • 행정 단위명(Administrative unit name), 국가명, 도시명, 거리명 등을 포함할 수 있다.
    • 주소 지역명 예: 마을 혹은 단지명
    • 가로명(Thoroughfare name) 대부분 도로명 
    • 우편 설명자. 주소를 구성하기 위하여 

이들 하위클래스는 대부분 계층적으로 구성된다.

NOTE 2 주소 위치자(address locator)와 주소 구성자(address component)의 조합으로서, 이들 각각은 사람들이 읽을 수 있고 사람들에게 명확한 특정한 주소 공간 객체를 생성한다.

EXAMPLE 위치자 "13"과 주소 구성자 "Calle Mayer"(가로명), "Cortijo del Marques"(주소지역명), "41027"(우편 설명자), "Ecija", "Sevilla", "Espana" (행정단위명)은 이들 특정 주소를 생성한다.

참고 : INSPIRE에서의 정의

INSPIRE Repository tutorial 은 note 필드에 정보를 구성하는 방법에 대한 규약이 있다.(문서 8쪽 참조). 이 규약에 따르면, note 필드는 3개의 주요 요소를 포함할 수 있다. 자연적 명칭(natural name), 정의(definition), 설명(description)

이 규약은 ISO 19103 및 ISO 19109 규칙을 완전하게 따르지 않지만, natural name 및 description을 태그값 "description"으로 옮기면 19103/10109 규칙에 부합시킬 수 있다.


2.2.4 일반 - TAGGED VALUE

태그 값 tagged value란?

스테레오타입과 태그 값(Tagged Value)를 사용하면 기존의 UML 모델요소를 새로운 목적으로 확장시킬 수 있다. tagged value는 tag와 값의 쌍으로서, UML 모델요소에 특질을 추가한다. UML 2에서는 tag 정의가 있는 스테레오타입이 부여된 모델 요소에만 tagged value를 적용할 수 있다. 태그 값은 tag=value의 형태로 나타나며, 여기에서 tag는 태그명, value는 문자열값(literal value)이다. Tagged value는 특히 코드 생성 이나 설정 관리와 깊은 관계가 있다.

예 : 분류자에 추가된 태그값은 다음과 같이 정의될 수 있다.
{author="Joe Smith", deadline = 31 March 1997, status = analysis}

Tagged value는 스테레오타입에 대한 속성으로서 정의된다. 예를 들어 스테레오타입 CodeList에 대한 속성인 codeList는 어떤 기관에서 별도 관리하는 원래의 코드 목록에 대한 URI 참조값을 나타낸다.

19103의 tagged value

CodeList        codelist        실제 외부 코드 목록을 참조하는 영구 URI

19109의 tagged value

스테레오타입

Tagged value 

설명 

 ApplicationSchema version응용스키마의 버전
 ApplicationSchema description 2차 설명 및 정보
 ApplicationSchema catalogue-entry 이 응용스키마의 구현 원천인 지형지물카탈로그에 대한 참조
 ApplicationSchema language 응용스키마의 이름 및 설명에 사용되는 주 언어, IETF RFC 5646에서 가져온 값이어야 한다.
 ApplicationSchema designation 주 언어에 대한 대응언어로 표현한 패키지 명. "{Name}"@{language} 패턴에 따라 포매팅되어야 한다. 여러 언어로 반복할 수 있다.
 FeatureType designation 주언어에 대한 대응언어로 표현한 지형지물 유형 또는 특질 유형의 명칭. "{Name}"@{language} 패턴에 따라 포매팅 되어야 한다. 여러 언어로 반복할 수 있다.
 FeatureType description 2차 설명 및 정보
 FeatureType definition 주언어에 대한 대응 언어로 표현한 텍스트 정의. 여러 언어로 반복할 수 있다.

19136(부속서 E)의 tagged value

UML 모델 요소 

 태그값

 설명

 Package documentation   정의 (EA에서 "Notes"필드)
 Package xsdDocument   XML 스키마 파일명. 패키지가 자체적인 XML 스키마 문서로 매핑되어야 할 때 사용한다. 스테레오타입이 ApplicationSchema인 패키지에 필수이다.
 Package tagetNamespace
 (스테레오타입 ApplicationSchem에서만)
 응용스키마에 대한 대상 네임스페이스 URI
 Package xmlns   (스테레오타입 ApplicationSchem에서만) 
 xml 네임스페이스 약칭
 Package version   (스테레오타입 ApplicationSchem에서만)
 Package gmlProfileScheam   (스테레오타입 ApplicationSchem에서만)
 연관된 GML 프로파일
 Class documentation   정의 (EA에서 "Notes"필드)
 Class noPropertyType   이름있는 복합유형(named complex type)을 생성하지 않아야 할 경우 "true"로 설정
 Class byValuePropertyType  클래스의 태그 값 "byValuePropertyType"이 "true"일 경우, 이들 클래스를 위하여 이름 있는 복합유형을 생성해야 한다. (클래스 이름에 "PropertyByValueType" 접미사가 붙은 형태)
 Class isCollection  클래스에 대상 클래스에 대한 집합/합성 연관인 연관관계가 있을 경우, 연관관계 역할은 특질 요소로 변환되고, 해당 클래스의 태그값 "isCollection"은 "true"가 되며, 해당 지형지물의 복합 유형에 속성 그룹 gml:AggregationAttributeGroup이 추가된다.
 Class asDictionary  (스테레오타입이 CodeList인 경우에만)
클래스의 태그값 asDictionary이 "true"일 경우, 코드목록 표현에 외부 gml:Dictionary를 사용해야 한다.
 Class xmlSchemaType  (스테레오타입이 Type일 경우에만)
해당 데이터 유형에 대응되는 XML 스키마 유형명(typename)
 Attribute 및 Association End documentation  Definition (EA에서 "Notes" 필드) 
 Attribute 및 Association End sequenceNumber UML 모델에서 XML 스키마로 변환할 때, 특질의 순서를 일관성있게 유지
 Attribute 및 Association End inlineOrByReference 지형지물 및 객체 유형에 대하여, 태그값 "inlineOrByReference"를 "inline"인지 "byReference"인지에 따라 그 표현을 내장(inline)혹은 참조(by reference)로 제한한다. 태그값이 없거나 값이 "inlineOrByReference"인 경우에는 기본 인코딩을 사용해야 한다. 
 Attribute 및 Association End isMetadata 속성이나 연관역할이 메타데이터 특질인 경우 "true"로 설정한다.


2.2.5 일반 - 모델의 버전

UML 모델이 개정됨에 따라, 다른 버전별로 새로운 패키지가 생성되고, 전체 모델 저장소에는 동일한 클래스에 대하여 여러가지 버전이 존재하게 된다.

예를 들어, CI_Citation 클래스는 ISO/TC211 개념 모벨 저장소에 세가지 장소에서 정의되고 있다.

    • ISO 19115:2003 Metadata
    • ISO 19115:2006 Metadata(Corrigendum)
    • ISO 19115-1:2014 Metadata - Fundamentals
이들 클래스는 여러가지 다른 표준에서 사용되고 있으며, 다른 버전의 패키지에서 이름들이 재사용되고 있으므로, 어떤 버전의 클래스를 참조하는지 결정하는 것이 쉽지 않다. 다이어그램에 도시할경우 네임스페이스가 도움이 되지만, 아래 그림과 같이 검색에서는 네임스페이스가 표시되지 않는다.

이 검색 결과에서 CI_Citation 클래스가 어떤 버전에서 나온것인지 보기는 불가능하다. 날짜(특히 "Modified")에서 개략적으로 알수는 있지만, 이는 확실한 것이 아니다. Enterprise Architect에서 자동적으로 설정하고 갱신되기 때문이다.

상태, 페이즈, 버전(Statue, Phase and Version)

Enterprise Architect에는 Status, Phase, Version 등, 요소 및 패키지에 대한 유용한 메타데이터가 몇가지 존재한다. 이들 매개변수는 버전을 식별하는데 유용하며, 모든 패키지 및 요소에 대하여 한번의 작업으로 설정할 수 있다. Project Browser -> 패키지에 우클릭 -> Advanced->Update Package Status

상태 (Status)

상태는 Enterprise Architect에서 미리 정의된 코드 목록(Approved, Implemented, Mandatory, Proposed, Validated)에 기반하고 있다. (이들 코드 목록은 Project-Settings-Project Types-General Types에서 변경할 수 있다.)

ISO/TC211 표준의 개념 모델의 경우 가장 관련있는 값들은 다음과 같다.

    • Approved : 공식 표준 및 기술 사양을 위한 UML 모델
    • Proposed : 개발중인 표준 및 기술사양을 위한 UML 모델
    • Implemented : 구현 스키마를 위한 UML 모델
    • Superseded : 대체된 표준을 위한 UML 모델
국가 또는 지역 모델에 대해서는 다른 값을 적용할 수도 있다.

페이즈 (Phase)

Phase는 자유 기재이지만, ISO/TC 211 모델의 경우, 공식 페이즈를 사용하는 것이 자연스럽다.

    • WD : Working Draft
    • CD : Commitee Draft
    • DIS : Draft International Standard
    • FDIS : Final Draft International Standard
    • IS : International Standard
    • DTS : Draft Technical Specification
    • TS : Technical Specification

국가 또는 지역 모델에 대해서는 다른 값을 적용할 수도 있다.

버전(Version)

버전도 자유 기재이다. ISO/TC211 모델의 경우 모델이 발행된 년도이다. 국가 또는 지역 모델에 대해서는 다른 값을 적용할 수도 있다.

보기

아래 그림은 상태 값을 갱신하기 전, MI_BAND 클래스에 대한 검색 결과이다.

아래 그림은 상태 값이 갱신된 동일한 검색결과이다. 어떤 클래스를 사용해야 할 지 훨씬 쉽게 구분할 수 있다.


2.2.6 클래스 - 스테레오 타입

1.1.1 의 스테레오타입과 동일함 

2.2.7 클래스 - 일반화/특수화

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Generalization

개요

상위클래스로의 일반화(Generalization) 및 하위클래스로의 특수화(Specialization)은 도메인 모델링의 중요하면서도 가치있는 부분이다. 상위클래스로부터 하위클래스로 상속성을 사용하면 모델에서 중복성을 줄이며, 공통 개념을 동일한 방식으로 취급할 수 있다.

아래 그림은 하위클래스와 상위클래스의 예를 보인 것이다. 차량(Vehicle)은 자동차(Car) 및 열차(Train)의 상위 클래스이다.

다른 예로서 ISO 19157 데이터 품질에는 추상 상위클래스 DQ_Result와 여러가지 다른 결과 유형을 위한 하위클래스를 볼 수 있다.

하위클래스로의 특수화

하위클래스로 특수화하는 주로 필요한 것은, 클래스의 식별된 부분에만 적용되는 속성/연관 또는 연산이 있을 경우이다.

예를 들어 DQ_Result의 각 하위클래스에 있는 속성은 해당 종류의 결과에만 적용된다. 하지만, 특별한 속성, 연관 혹은 연산이 없더라도 하위클래스가 개념적으로 다른 경우와 같은 상황도 있다. 위의 그림에서 Train이 이에 해당한다. 하위클래스 Train은 특별한 속성이나 연관관계가 없지만, 자동차와는 개념적으로 다르다. 이러한 하위클래스는 주의깊게 사용해야 하며, 모델을 복잡하게 만들 수 있다.

하위클래스는 속성, 연관, 연산의 중복을 줄일 수 있는 중요한 것이지만, 주의깊게 사용해야 한다. 불필요한 하위클래스는 모델을 복잡하게 만든다. 위와 같은 의도가 없는 이상 하위클래스를 생성하지 말라.

상위클래스로의 일반화

상위클래스로 일반화하는 주로 필요한 것은, 여러가지 클래스가 동일한 속성/연관 또는 연산을 가진 동일한 개념의 변종일 경우이다.

예를 들어 그림 위에서 Car 및 Train은 탑승차량의 일종이며, 승객수가 있을 수 있다. 또한 DQ_Result 아래에 있는 모든 하위클래스는 날짜와 범위가 있는 여러가지 결과이다. 이때 Vehicle 과 DQ_Result 상위클래스를 사용하면, 상당한 중복이 줄어들며, 동일한 개념을 모든 하위클래시를 위해 사용할 수 있게 된다.

상위클래스로 일반화할 수 있는지를 알아보기 위해서는 두가지 간단한 법칙을 고려해야 한다.

    • 100% 법칙 : 상위클래스에서 필요한 모든 속성 및 연관이 모든 하위클래스에도 적용할 수 있다.
    • Is a 법칙 : 자연어에서 "하위클래스가 상위클래스의 일종이다"라는 문장을 테스트해본다. (예: 열차는 차량이다.)

많은 경우, 상위클래스는 추상 클래스이며, 하위클래스는 구현되는 클래스이다.


2.2.8 클래스 - 추상클래스

1.1.1 클래스와 동일

2.2.9 클래스 - 클래스/데이터유형

UML 모델에서 개념 클래스는 물리적객체(강/도로/건물 등)를 표현할 수 있지만, 추상적객체(조직/거래/관측 등)도 표현할 수 있다. 도메인 모델링에서 처음 해야 하면서도 가장 중요한 작업이 개념 클래스를 식별하는 것이다.

데이터타입은 특별한 종류의 분류자이다. 클래스와는 유사하다. 데이터유형의 인스턴스는 값으로만 식별할 수 있다. 즉, 자체적으로 식별되는 인스턴스는 될 수 없고, 속성(및 연관) 값으로서만 존재할 수 있다. 각각의 값을 구분하는 것이 의미가 없을 때 주로 사용된다.

어떤 것이 클래스(ISO/TC211 응용스키마에서는 지형지물 유형)인가 데이터유형인 속성인가하는 의문이 자주 등장한다. 이에 대한 엄격한 답은 없다. 다만, UML 모델링에서 가장 기본되는 법칙은, 모델과 모델의 구현을 가능한한 간단하게 하라는 것이다. 또한 데이터 유형의 값은 자체적으로 존재할 수 없고, 관련된 클래스의 값으로서만 존재한다. 무차별적으로 복합데이터 유형을 사용하면, 객체내 데이터 양을 증가시킨다. GML에서의 예를 들어보자. 클래스에 대한 연관은 xlink:href로 사용할 수 있지만, 데이터 유형에 대한 연관은 항상 인라인이 된다. 데이터 유형 인스턴스는 객체 바깥에서는 존재할 수 없기 때문이다.

따라서, 데이터타입보다는 지형지물유형을 사용하는 것이 더 좋다. 기본 법칙은 아래와 같다.

"잘 모르면 데이터타입 대신 클래스를 사용하라"


2.2.10 속성 - 속성인가 연관인가


클래스에는 연관을 사용하고, 데이터타입에는 속성을 사용하라


이 글은 Geert Bleekeen의 블로그 글 속성인가 연관인가를 참고한 것이다. 클래스와 데이터 유형에 대해서는 윗 글을 참고할 것

ISO 19109에 있는 UML 및 일반지형지물모델(GFM)에는 객체에 특성을 제공하는 두가지 비슷한 방법 - 속성연관관계 - 을 보여준다. 객체의 특성을 위한 간단한 방법은 19103의 원시 데이터유형(Integer, CharacterString 등)의 속성을 사용하는 것이다. 하지만 자체적으로 여러개의 속성을 가지고 있는 복합 데이터 유형을 속성으로 가질 수 있다. 예를 들어 ISO 19115의 Citation의 여러가지 클래스 및 데이터 유형은 다른 표준에서 클래스의 특질로서 널리 사용된다. 이러한 경우 흔히 제기되는 의문이, 언제 복합 데이터유형을 속성으로 사용할지, 언제 연관으로 사용할 지 하는 것이다.

일반지형지물모델(GFM)에서 속성과 연관은 모두 PropertyType의 하위유형으로 많은 점에서 동등하다. GeertBeelkens의 블로그 글에서 기술한 것처럼, 이들은 UML 메타모델에서 동일한 메카니즘에 근거하고 있고, 구현에서도 거의 동일하다. (GML에서 연관은 속성과 비슷함)

게다가 UML 사양에 따르면, "데이터 유형은 클래스와 유사한 특별한 종류의 분류자이다. 데이터 유형은 값으로만 식별될 수 있다는 점만 클래스와 다르다"고 기술하고 있다. 달리 말해 데이터 유형의 인스턴스는 자체적으로 존재하는 객체가 아니며, 구현에서 관련된 객체의 일부이어야 한다.

가장 기본적인 법칙은 특성이 어떠한 분류자에 기반하는지 살피는 것이다. 즉 데이터 유형인가 지형지물 유형인가 하는 것이다. 그것이 지형지물 유형이라면 주 지형지물의 외부에 존재할 수 있고, 그 경우에는 연관으로서 참조만 가능하다.

반대로 분류자가 데이터 유형이면(이 글의 법칙을 따른 후에도) 데이터 유형의 값은 주 지형지물이 연관에 기반하는지 아니면 속성에 기반하는지에 따른다. 위에서 언급한 것처럼 연관은 GML에서 속성과 매우 유사한 형태이다. 따라서 데이터 유형에 기반한 특성이라면 속성으로 사용하는 것이 좋다.

아울러 동일한 원칙에 기반하여 데이터 유형에 대한 간단한 연관은 의미가 없으며 반드시 합성연관이어야 한다. 이는 ISO 19103의 요구사항 12에도 언급되어 있다.

2.2.11 속성 - 다중도(Multiplicity)

1.1.1 클래스 와 동일함.

2.2.12 속성 - 속성에 data type 연결하기

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Attributes-and-data-types

지형지물유형, 객체유형, 데이터유형, 유니온유형의 속성은 이름과 데이터 유형이 있어야 한다. 이는 ISO 19109 응용 스키마 규칙 및 ISO 19136 GML에도 언급되어 있다. 이들 표준이 응용스키마와 관련되어 있기는 하지만, 개념 모델에도 동일한 규칙이 적용된다. 이는 모델의구현을 위해 중요하다.

데이터 유형은 ISO 19103에 미리 정의된 원시데이터 유형, 또는 다른 표준에서 정의된 유형, UML모델에서 자체적으로 정의한 유형 등 중의 하나이어야 한다.

UML 모델링에서 가장 흔한 오류중 하나는 속성 유형에, 기본 클래스에 연결하지 않은 이름을 지정하는 것이다.(예를 들어 data 유형에 그냥 "GM_Point"라고 입력하는 것은, ISO 19107 기본 모델에서 선택ㅎ하는 것과 동일하지 않다.) 다이어그램 상으로는 올바른 것처럼 보여도, 연결이 빠졌기 때문에, 구현이나 의존성 점검시 오류가 발생한다.

Enterprise Architect의 속성 테이블(t_attribute)에서, 속성은 데이터 유형에 연결되는 ClassifierID를 가져야 한다. 올바르게 이 링크를 올바르게 하려면, 절대 이름을 직접 입력하지말고, 항상 모델에서 선택해야 한다. 

불행하게도, EA에는 속성이 데이터 유형과 연결되었는지를 제어하는 기능이 존재하지 않는다. 하지만, 이는 검색 혹은 스크립트를 활용하면 된다. 아래 링크에는 데이터 유형 연결을 체크할 수 있는 스크립트 예제가 있다.

https://github.com/ISO-TC211/UML-Best-Practices/blob/master/Scripts/VBScript/VAL%20Data%20type%20references.vbs

2.2.13 연관 - 연관의 유형

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Association-types

이 글은 Geert Bellkeen의 블로그 글 "합성연관, 집합연관, 연관관계"를 참조한 것이다.

연관관계는 모델에서 클래스 또는 데이터 유형을 연결할 때 사용된다. UML에서는 클래스 다이어그램에 단순 연관(association), 집합연관(aggregation), 합성연관(composition) 등세가지 연관관계를 지원한다. (일반화는 별도)  모든 연관은 단방향 혹은 양방향으로 탐색가능(navigable)할 수 있다. 화살표/다중도/역할 등으로 정의된다.

  • 단순연관은 두개의 클래스가 동등한 입장이다. 위의 그림에서 Person 클래스와 Car 클래스간에는 단순 연관이 있다. 사람은 차를 0개 이상 가질 수 있으며, 차는 1명 이상의 소유자가 있다. 이들은 모두 동등한 수준으로 서로 다른 것의 일부가 아니다.
  • 집합관계(aggregation, 빈 다이아몬드로 표시)에서는. 다이아몬드 쪽의 클래스가 전체이며, 다른 쪽에 있는 클래스가 일부이다. 예를 들어 위원회는 전체이며, 위원은 사람이다. 하지만, 사람(위원)은 위원회에 독립적으로 전해 할 수 있고, 다른 위원회에 소속될 수도 있고, 다른 클래스의 일부일 수도 있다. 위원회가 사라지더라도 사람은 존재한다.
  • 합성관계(composition, 채운 다이아몬드로 표시)에서는 다이아몬드 쪽의 클래스가 다른쪽 클래스를 소유한다. 예를 들어 차(Car)는 바퀴(Wheel)을 소유한다. 다이아몬드쪽의 다중도에 따라 반대쪽 클래스가 독립적으로 존재할 수 있는지가 결정된다. 그림에서 Car 쪽의 다중도가 0..1 이므로, Wheel은 Car가 없이도 존재할 수 있다. 합성관계일 경우, 현실적으로는 [0..1] 또는 [1] 다중도만 존재한다.
언제 어떤 연관관계를 사용해야 하는가? 이에 대한 간단한 해답은 존재하지 않지만, 다음 사항을 고려하면 좋다.

집합관계는 단순연관에 비해 모델에 새로 추가시키는 것은 없지만, 계층을 나타내는데만 도움된다.

합성관계는 모델에 강한 결합을 추가함으로써, 구현에 영향을 미친다. 합성관계는 정말 구현에 필요하다고 확신할때만 사용해야 한다.


2.2.14 연관 - 역할과 탐색가능성(navigability)

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Association-roles-and-navigability

탐색가능성(navigability)

UML 클래스/데이터유형간의 연관은 탐색가능 방향을 가질 수 있다. 단방향(출처->대상 혹은 대상->출처)일수도 있고, 양방향일 수도 있다. 탐색가능 방향을 Unspecified로 지정할 수도 있으며, 이경우 대부분 양방향과 동일하지만, 사용해서는 안된다. 탐색가능 방향은 모델 구현이 탐색가능한지를 기술하며, 다이어그램에서는 화살표로 표시한다. 위의 그림에서는 모든 연관이 양방향으로 탐색가능하다.

탐색가능 방향은 구현에서 영향을 미친다.

GML 구현의 경우, ISO 19136 부속서 E에서 언급한 것처럼, 모든 탐색가능한 끝은 반드시 화살표로 표시해야 한다. 달리 말하여, 탐색가능 방향을 반드시 설정해야 한다.


또한 양방향 연관은 두 클래스 모두의 구현에서 서로에 대해 알아야 함을 의미한다. 이로 인하여 구현이 좀더 복잡해 질 수 있다. 양방향이 모두 필수일 경우, GML 구현에서 두 클래스는 서로 참조를 가져야 한다.

양방향은 서로 상대방을 알수 있는 구현으로 구현이 복잡하다. 즉, 서로 참조를 가져야 한다.

두 클래스의 구현이 서로 아는 것이 중요하지 않다면 단방향 연관을 사용하라.


역할명(role name)

구현에서는 연관은 속성과 비슷하다. 따라서 다음 사항이 중요하다.

탐색가능한 끝은 반드시 역할명(role name)을 가져야 한다. 이는 19136 부속서 E에 기술된 것처럼 "NCName" 이어야 한다. (속성명과 동일)

위의 그림에서 Person 클래스의 구현은 Car 클래스의 구현에 대한 참조를 가질 수 있으며, 이 참조의 이름은 자산(property)어야 한다. 또한 역으로 Car 클래스의 구현은 Person 클래스의 구현에 대한 참조가 있어야 하며, 이 참조의 이름은 owner이어야 한다. 하지만, Car와 Wheel간의 연관을 살펴보면, Car 쪽 끝에는 이름이 없다. 따라서 Wheel 클래스는 Car에 대한 참조를 알 수 없다.


다중도(Multiplicity)

연관 역할의 다중도는 한 클래스의 인스턴스가 다른 쪽 클래스를 몇개 참조할 수 있는지를 기술한다. Person 클래스는 0개이상의 Car 인스턴스를 참조할 수 있지만, Car는 한명 이상의 Person(owner)를 가져야 한다. 위원회(Committee)는 2명 이상의 위원(Person)이 있어야 하며, 위원은 0개 이상의 위원회에 속할 수 있다. 또한 Car는 3개 이상의 Wheel을 가져야 하지만, Wheel은 0개 또는 1개의 차에 속해야 한다.

다중도의 설정도 구현에서 중요하다.

ISO 19136 부속서 E 에 따르면, 모든 탐색가능한 끝의 다중도는 명확하게 설정해야 한다. 다중도 1과 1... 는 주의깊게 사용해야 한다. 


다중도를 1 또는 1... 로 설정할 경우, 해당 클래스의 구현은 항상 이 참조를 필수로 가져야 한다.(필수 속성과 비슷).  Car-Wheel 연관에서 Car 쪽의 다중도가 1로 설정되었다면, Wheel 클래스는 Car 클래스의 구현에 대한 참조가 반드시 존재해야 한다. 또한 Wheel 쪽의 다중도는 이미 (3..*)이다. 모델이 이런식일 경우, 구현에서 두 개의 클래스가 서로 반대쪽을 참조해야 하며, 이로 인해 데이터의 중복이 일어나게 된다.

2.2.15 연관 - INSPIRE Repository Tutorial

https://github.com/ISO-TC211/UML-Best-Practices/blob/master/Reference%20material/INSPIRE_UML_repository_tutorial.pdf 12-13쪽 참조

연관을 생성한 뒤에는 반드시 특성을 지정할 것. (특히 탐색가능 방향 및 역할 명)

역할명은 lowerCamelCase로 쓸 것. Notes 필드에 definition 과 description 적을 것. 

탐색이 불가능한 종점에서는 역할명/다중도/스테레오타입/tagged value 등이 관련 없다.

2.2.16 작업중

  • 네임스페이스 : UML 패키지와 XML 네임스페이스의 연결
  • 프로파일
    • 기존 모델의 확장 또는 프로파일링 :

2.3 클래스 다이어그램 모범사례

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Best-practices-for-diagram-design

클래스 다이어그램은 모델의 일부에 대한 뷰이며, 모든 측면을 보여주지 않을 수 있다. 하지만, 모델에 대한 인간의 이해를 위해 중요한 그림이다. 이 페이지는 쉽게 이해할 수 있으며, 깔끔하고 일관성 있는 클래스 다이어그램을 생성하기 위한 모범사례를 담고 있다.

2.3.1 필요한 다이어그램

19103 개념 스키마 언어에는 문서화를 위해 포함시켜야 하는 다이어그램를 포함하여, 모델의 문서화를 위한 규칙/권고사항이 있다.  

필요한 다이어그램

19103 개념 스키마 언어에는 문서화를 위해 포함시켜야 하는 다이어그램를 포함하여, 모델의 문서화를 위한 규칙/권고사항이 있다.  아울러 포함하면 유용한 다이어그램도 있다.

패키지 다이어그램

[[패키지 의존성 다이어그램]]

ISO 19103 요구사항 17 및 21에 따르면, 하나이상의 패키지 다이어그램에 (외부 패키지 포함한) 패키지간 의존성을 표현해야 한다. 

클래스 다이어그램

ISO 19103 및 ISO 19109에 있는 규칙과 별도로, 클래스 다이어그램을 위한 주요 모범사례는 모든 분류자(클래스, 코드 목록, 열거형, 데이터 유형)가 가 적어도 하나의 클래스 다이어그램에 표현되어야 한다는 것이다. 이 스크립트를 사용하면 이 규칙을 확인할 수 있다. 아울러 모든 속성, 연관, 연산, 제약은 적어도 하나의 다이어그램에 표현되어야 한다.

[[High Level 개요 다이어그램]]

주요 클래스와 연관만  있는 고수준 개요 다이어그램을 사용하면 모델을 잘 소개할 수 있다. 이 다이어그램에서는 속성 및 역할 명은 숨겨야 한다.

[[상세 개요 다이어그램]]

ISO 19103 추천사항 16에 따르면, 모든 패키지는 모든 클래스가 표시되는 (속성/연산/역할등은 숨김) 개요 다이어그램이 필요하다. 맥락을 이해하는 데 중요할 경우 속성/연산/역할 등을 표시할 수도 있다.

[[Perspective specific diagram]]

모델의 특정 부분, 주요 분류자에 중점을 둔 다이어그램은 모델의 이해에 유용하다. 적을수록 좋다(less is more)는 원칙을 기억하라. 하나의 다이어그램에 등장하는 요소가 적을 수록 가독성이 높아진다. 관점에 관련 없는 속성은 표시하지 말라.

[[Codelist, enumeration, data types]]

하나의 패키지에 있는 모든 codelist/enumeration/data type을 하나의 다이어그램에 표현한 다이어그램도 유용하다. 이런 분류자들은 다른 패키지에서 재사용되는 경우가 많으므로, 이처럼 하나의 다이어그램에 모두 모아두면 많이 도움이 된다.

[[각 분류자에 대한 Context Diagram]]

ISO 19103 요구사항 18에 따르면, 모든 분류자는 Context diagram에 표현해야 한다. 여기에는 모든 속성/연산 및 해당 분류자에서 탐색가능한 모든 관계를 표시해야 한다. 관계가 깊은 분류자의 경우, Context 다이어그램을 공유할 수 있다. 하지만,적을수록 좋다(less is more)는 원칙을 다시 한번 기억하라. 한 다이어그램에 등장요소가 적을수록, 관점이 적을 수록가독성이 높아진다.

유스케이스 및 시퀀스 다이어그램

유스케이스 다이어그램과 시퀀스 다이어그램은 모델 개발 과정에서 중요한 역할을 한다.

---- 앞으로 설명 및 예제를 추가할 예정 ---


객체 다이어그램

클래스의 인스턴스가 들어 있는 객체 다이어그램은 모델의 이해와 테스트에 매우 중요하다. ISO/TC211에 있는 객체 다이어그램의 예는 ISO 19160-1에서 볼 수 있다. ISO 19160-1 프로파일을 개발할 때, 몇몇 샘플 주소를 위한 객체 다이어그램이 필수이다. 

아래 그림은 ISO 19160-1의 INSPIRE 프로파일을 위한 객체 다이어그램이다.

2.3.2 클래스 다이어그램 디자인

폰트/색

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Colours-and-fonts

[[폰트]]

19103 개념스키마 언어에는 다이어그램의 폰트 크기에 관한 추천사항이 하나 있다.

추천사항 15 : 다이어그램 작성시 가독성을 고려해야 한다. 폰트 크기는 다이어그램 축철을 고려하여 8포인트 이상이 되어야 한다.(예: 12 pt font at 90% is 12*0.9 = 10.8 pt)


이 권고사항도 모범사례 적을수록 좋다(less is more)와 관련이 있다. 다이어그램은 추천된 폰트 크리로 프린트할 수 있는 정도의 크기어야 한다.

INSPIRE Repository tutorial 의 규약에 따르면

기본 폰트는 Ariel


모든 모델에서 이 규칙을 따를 것을 추천한다.

[[색]]

다른 지형지물 카탈로그에서 가져온 클래스를 다른 색으로 표현하면 이해하는 데 도움이 된다. 하지만, 다음 사항을 기억해야 한다.

색은 모델의 일부가 아니며, 그래픽 표현일 뿐이다. 색에는 어떠한 모델 의미론도 저장할 수 없다.


ISO 표준(문서)의 그림들엔 색이 없어야 한다. 하지만, ISO 모델 및 기타 모델에서 다이어그램에 색이 사용되고 있다. 하지만, ISO 표준 및 동일한 요구사항이 있는 문서에서 사용할 경우, 반드시 흑백으로 export 시켜야 한다. 예를 들어, INSPIRE와 관련된 국가 사양에서는 INSPIRE 클래스에 색깔을 사용할 수 있다. 하지만 다음 사항을 지켜야 한다.

다이어그램에 색을 사용할 경우, 색에 대한 범례를 제공하라.


ISO 19160-1 주소 - 개념모델에서는 표준 프로파일 문서화를 위한 요구사항 및 추천사항이 있다. 이들은 다른 모델에도 적용할 수 있다. (7.5.2장)

기본 클래스와 프로파일 전용 클래스를 구분하기 위하여, 주소 기본 클래스는 배경을 투명하게하고, 프로파일 전용 클래스의 경우엔 shaded fill color 배경을 사용하라.


[[속성]]  

현재 색이 다른 클래스에 대해 속성을 부여하는 것이 불가능하다. 여기여기를 참고할 것. (두개 모두 깨진 링크)


적을수록 좋다(Less is more)

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Less-is-more

이 글은 Geert Bellkeen의 블로그 글 5 rules for better UML diagrams 를 참조한 것이다.

    • 복잡한 모델을 위한 대형,  압도적인 다이어그램 보다는, 여러개의 작은 다이어그램으로 분리
    • 각각의 UML 다이어그램은 소수의 요소에 집중하고 정의된 관점이 있을 것.
    • 다이어그램의 관점과 관련이 먼 속성/연관/제한은 숨길 것

ISO 19157에서 가져온 아래 그림에서, 목적은 데이터품질 단위가 DQ_DataQuality와 하나 이상의 DQ_Element로 구성됨을 보이는 것이다. DQ_Element의 속성은 이 관점에서는 관련이 없으므로, 보이지 않도록 하였다. 아울러 DQ_Element의 연관요소도 관련이 없으므로 숨김 처리했다.

요소가 많이 들어 있는 개요 다이어그램도 있을 수 있다. 이러한 다이어그램은 요소와 연관만 보이고 속성은 숨겨야 한다. 연관의 역할명도 숨기는 것이 좋을 수 있다.

[[속성 표시여부 선택하기]]

한 요소의 속성/연산/제약/노트 표시/숨기기 : 해당 요소 우클릭 - Features & Properties -> Feature and Compartment Visibility (Cntl-Sht-Y)
모든 요소의 속성/연산/제약/노트 표시/숨기기 : 해당 다이어그램 선택(F5) - Properties - Element

[[역할명 표시여부 선택]]

하나의 역할 명 : 레이블 우클릭 -> Hide label
연관의 모든 레이블 숨기기 : 연관 우클릭 - Visibility -> Hide all labels
연관 label 중 일부 숨기기 : 연관 우클릭 -> Visibility -> Set label visibility

[[연관 표시여부]]

하나의 연관 : 연관 우클릭 - Visibility - Hide Connector
여러개의 연관 : Diagram - Visible Relations?? (Cntl-Sht-I)
모든 연관 : Diagram 을 우클릭 - Properties - Connectors - Show relations

연관 관계 선을 직각 표시(Orthogonality)

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Orthogonality

이 글을 Geert Bellkeen의 블로그 글 5 rules for better UML diagrams 를 참조한 것이다.

잘 정돈된 다이어그램은 어지러운 것보다. 이해하기 쉽다. 요소들을 수평/수직으로 정돈하고 직각 연결선을 사용하는 것은 가독성을 향상시키기 위한 첫번째 단계이다.

아래 첫 그림에서, 요소는 자동 정렬되어 있고, 연결선은 직선으로 되어 있다. 그 다음 그림은 수평/수직으로 정렬되어 있으며, 동일한 간격으로 조화된 크기로 맞췄으며, 연결선은 직간으로 처리했다. 이 그림은 좀더 정렬되어 이해하기 쉽다.

지저분함:

정렬된 그림:

요소를 정렬하고 높이를 맞추는 도구는 원하는 요소들을 선택하고 우클릭하면 접근할 수 있다. 라인 스타일은 선 선택 - 우클릭 - Line Style에서 설정할 수 있다. 위 예제의 라인 스타일은 Tree Style - Vertical 이다. 이 스타일은 세개의 하위 클래스가 모두 DQ_Result에 대하여 동일한 관계가 있기 때문에 사용할 수 있다. 만약 이들 중 하나가 다른 관계(예: 집합관계)가 있을 경우, 이는 별ㄷ의 선으로서 표시되어야 한다.

다른 표준에서 온 클래스 표시

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Illustrate-classes-from-other-standards

대부분의 표준은 다른 표준으로부터 클래스나 코드목록을 포함한다. 다이어그램을 잘 이해하기 위해서는 이들 요소들이 어느 표준에서 유래했는지를 도시해야 한다. 이 페이지에서는 이를 위한 두가지 접근법을 제시한다.

[[첫번째 방법 : 경계선(Boundary)]]

외부 요소를 표시하는 간단하면서도 유용한 방법은 다이어그램에서 요소 둘레로 경계선을 추가한 뒤, 표준의 이름과 번호(및 연도)를 텍스트로 추가하는 것이다. 이렇게 하면 쉽고도 직관적인 표현이 가능하다.

아래 그림은 ISO19157:2013 지리정보-데이터 품질에서 사용한 방법이다.

Enterpise Architect에서는 Toolbox 중에서 Common 그룹에 들어 있다.

이 방법의 단점은 외부 표준의 이름이 변경되었을 경우, 텍스트가 자동적으로 변경되지 않는다는 점이다.

[[두번째 방법 : 네임스페이스를 모두 표시]]

또다른, 좀더 유용한 해법은 아래 그림과 같이 외부 클래스의 완전한 네임스페이스를 모두 표시하는 방법이다. 이렇게 하면, 표준명 뿐만 아니라, 어떤 패키지가 이 요소를 소유하는지를 보일 수 있다. 하지만, 문장이 길어지고 혼란스러워질 수 있다.

완전한 네임스페이스를 보이려면, 다이어그램을 선택한뒤, Properties - Diagram - Show Namespace 및 Fully Qualified Namespace 를 선택하면 된다. (단, 외부에서 가져온 것 뿐만 아니라, 모든 것의 네임스페이스가 표시됨)

선을 교차시키지 말것

https://github.com/ISO-TC211/UML-Best-Practices/wiki/No-crossings

이 글은 Geert Bellkeens 의 블로그 글 5 rules for better UML diagrams 중에서 2번째 규칙을 참조한 것이다.

선이 교차하는 다이어그램은 읽기 힘들다. 따라서, 다이어그램에 있는 어떤 선도 교차해서는 안된다. 교차가 불가피하면 별도의 다이어그램으로 분리할 것을 고려해 보거나, 모든 관계가 올바른지, 현재의 다이어그램에 반드시 포함시켜야 하는지 여부를 고민해 보라. 적을수록 좋다(less is more)는 원칙을 다시한번 강조한다.

아래 첫번째 그림은 선이 교차하고, 불필요한 DQ_Element가 포함되는 등 여러가지 실수가 존재한다. 이 그림의 목적은 평가 방법에 관한 것이므로, DQ_Element는 목적과 관계없다. DQ_Element를 제거하고, DQ_AggregationDerivation을 위쪽으로 이동시키면 정렬되고 이해하기 쉬운 다이어그램이 완성된다.

잘못된 그림:

올바른 그림:

상위 요소를 위쪽으로 배치

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Parents-up

이 글은 Geert Bellkeens 의 블로그 글 5 rules for better UML diagrams 을 참조한 것이다.

게층에서 가장 높은 요소는 다이어그램에서도 제일 높은 곳에 위치해야 한다. 

    • 하위 클래스는 상위 클래스 아래에 위치시킨다.
    • 집합 관계의 경우, 소유하는 측의 요소가 부분 요소의 아래로 내려가서는 안된다.
    • 구현의 경우, 원 요소가 위에 있어야 한다.
아래 첫번째 그림에서 하위 클래스가 부모 클래스보다 위에 있다. 이렇게 하면 다이어그램에서 계층을 이해하기 어렵게 된다.

그대신 아래 그림과 같이 하위클래스를 부모클래스 아래에 배치한다.

아래는 집합관계를 보인 것으로 "전체" 쪽이 위에 있다. 이것도 DQ_EvaluationMethod 클래스가 DQ_Element의 일부이므로 계층화의 일종이다.

크기를 조화롭게

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Harmonize-sizes

이 글은 Geert Bellkeens 의 블로그 글 5 rules for better UML diagrams 을 참조한 것이다.

모델 요소의 크기를 조율하면, 가독성을 향상시킬 수 있다. 중요도가 동일한 하위클래스와 연관클래스는 가능한 한 크기가 같아야 한다. 또한 직교성을 유지하기 위해서는 요소의 높이를 통일시킬 필요가 있다.

아래의 그림에서 DQ_Result의 하위 클래스 3개는 모두 중요도가 같지만, 속성의 수가 다르다. 원하는 요소들을 한꺼번에 선택한 후, 우클릭 - Same Height and Width를 선택하면 모두 동일한 크기로 설정할 수 있다.

아래 그림에서 DQ_Element에 대한 연관 클래스도 중요도가 동일하다는 것을 보이기 위해 동일한 크기로 설정하였다. 연관 클래스의 속성은 그림과 관련 없기 때문에 가독성 향상을 위하여 숨김처리하였다. (적을수록 좋다를 참고할 것)

제약(Constrains) 표시

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Constraints

[[제약이란]]

제약이란, "요소의 의미론을 선언하기 위한 목적으로 자연언어 혹은 기계가독언어로 표시한 제한이나 조건"이다(ISO 19103).  제약은 예를 들어, 어떠한 조건하에 속성이 필수가 되는지 등의 조건을 설정함으로써, 모델에 정밀함을 추가하므로 중요하다. 개념 수준에서 제약을 표현하는 것은 검증, 관리 및 데이터 관리에 중요하다.

ISO 19109에는 여러가지 제약의 예가 있다.

    • 제약은 하나이상의 지형지물 인스턴스(다른 데이터 유형에 속한 것도 무방)에 있는 속성 값의 허용 조합을 지정할 수 있다.
    • 제약은 지형지물 인스턴스간의 연관관계 다중도를 제한할 수 있다.
    • 제약은 실세계 현상이 어떤 크기일 경우, 지형지물 인스턴스가 어떤 GM_Object의 하위유형으로 표현될 것을 요구할 수 있다.
    • 지형지물 연산에서 정의된 지형지물의 행태는, 제약으로서 제한할 수 있다.
[[제약 표현 방법]]

UML에서 제약은 자연언어 또는 기계가독언어, 일반적으로 객체 제약 언어(OCL, Object Constraint Language)로 표현할 수 있다. ISO 19103 권고사항14에 따르면, "제약은 OCL 2.0에 정의된 객체 제약 언어를 사용하여 표현한다. 또한 제약은 모델에 대한 문서에서 자연언어로 기술한다."고 되어 있다. OCL 표현은 구현에 중요하며(필수는 아님), 자연언어 표현은 인간의 이해에 중요하다.

[[자연어로서 먼저 작성하라]]

OCL로 제약을 작성하는 것은 직관적이지 않으므로, 먼저 자연어를 기술한 후, 이를 근거로 OCL을 추가한다.

[[OCL 작성방법]]

[[구현에서 제약 활용 방법]]

제약을 구현에서 사용함에 있어, ISO 19136 (GML) 부속서 E 의 내용을 참조한다. "모든 OCL 제약은 무시한다. 인스턴스 모델이 제약조건에 맞는지 평가하는 것은 GML인스턴스를 처리하는 응용에서 담당할 몫이다. 비고: Schematron 언어를 사용하여 OCL 제약을 GML 응용스키마를 표현하는 XML 스키마의일부로서 표현할 수 있다." 이는 GML 응용 스키마는 제약을 포함하지 않으며, 제약은 Schematron이나 데이터를 처리하는데 사용하는 응용에서 처리해야 한다는 의미이다.

ShapeChange를 사용하면 스키마에 정의된 OCL 제약을 파싱할 수 있다. ShapeChange는 OCL 제약으로부터 Schematron 규칙을 유도할 수 있다. OCL->Schematron 변환에 관한 자세한 내용은 여기를 참고하라.)

[[EA에서 제약 사용하기]]

== 클래스 수준에서 제약 기술하기

    • 제약은 반드시 클래스에 대한 특질으로서 서술되어야 한다. 다이어그램 및 다른용도, 모델 문서화에서 제약이 항상 클래스 를 따라다니도록 하기 위함이다.
    • 제약을 속성 수진에서도 쓸수 있지만, 추천하지 않는다. 다이어그램에서 속성에 추가된 제약을 표현할 방법이 없는 것처럼 보이기 때문이다.
    • 다이어그램 노트로서 제약을 쓸 수도 있지만, 이렇게 해서는 안된다. 이렇게 만들면 제약이 다이어그램의 일부가 되고, 클래스의 일부가 안되기 때문이다.

클래스/열거형/데이터 유형의 제약은 Properties 다이얼로그에서 Constraints 탭에서 접근할 수 있다.

    • OCL을 쓸경우, Type=OCL로 선택하라. 자연언어 표현은 다음방법으로 추가할 수 있다.
      • 해당 제약의 이름
      • 코멘트 /*... */로 처리하여 제약 내부
    • 자연언어로만 제약을 작성할 경우에는 Type=Invariant로 선택하라.

context 부분에 추가하지 말라. 이는 GUI를 통하여 암묵화되기 때문이다???

OCL 유형의 제약을 저장할 때, EA에서 (간단한) 문법 검증을 시행하며, EA의 관점에서 OCL 제약이 유효한지 아닌지에 대해 메시지를 출력한다.

== 제약을 다이어그램에 표시하는 방법

제약은 UML 다이어그램에서 2가지 방법으로 표시할 수 있다. 첫번째는 요소에 첨부된 노트, 두번째는 클래스를 나타내는 요소 내에 표현하는 방법이다. 일반적으로제약은 클래스 내부에 표현하는 것을 추천한다. 아래 그림은 제약을 클래스 내에 표시하는 방법과, 노트로서 표현하는 방법을 보인 것이다.

    • 다이어그램 전체의 제약을 표시하려면, 다이어그램 우클릭(F5) - Properties - Element 를 선택하고 Constrains 를 켠다.
    • 특정 한 요소의 제한을 표시하려면, 요소 우클릭 - Feature and Compartment Visibility(Cntrl-Sht-Y)를 선택하고 Constrains 를 켠다.

어떤 경우, 어떤 특정한 제약을 요소에 첨부된 노트로서 표시하는 것이 좋을 수 있다. 이 경우, 다이어그램에 노트를 추가하고, 요소에 이를 연결하면 된다. 링크 우클릭 - "Link this note to an element feature"를 선택한다. 이때 나타나는 다이얼로그에서 Feature Type = Constraint 를 선택하고, Feature 목록에서 원하는 제약을 선택한다.


2.3.3 모델 문서화


3. 모델 문서화

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Documentation

3.1 모델의 자동 문서화

https://github.com/ISO-TC211/UML-Best-Practices/wiki/DocumentationOfUmlModels

ISO/TC 211 애드혹 그룹에서는 UML로부터 문서화하는 방법에 대해 조사하였다. 적용 범위는 어떤 모델인지 명확하지 않았지만, 작업과정에서 ISO/TC 211 조화모델에 있는 UML 모델에 집중하였다. 이는 UML모델 저장소로서 ISO/TC 211 표준의 일부이다.

하지만, 문서화 도구는 조화모델 포함 여부에 관계없이, ISO 19103에 따라 모델링된 어떠한 UML 모델에도 적용할 수 있다. 

UML 문서 자동생성은 전세계, 지역, 지역(국가) 수준의 UML 응용스키마에 대해서도 유용할 것이다.

문서화 도구는 아래 문서에서 사용할 수 있다. 링크는 여기

 Automatic generation of documentation from UML models.docx

EA 용 템플릿은 아래에 있다. 링크는 여기

 ISOTC11_EA_report_template.zip

ShapeChange 설정 방법 및 UML 모델 테스트는 여기를 볼 것

3.2 모델의 버전

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Model-versions

2.2.5 일반 - 모델의 버전와 동일함

3.3 다이어그램을 이미지 파일로 내보내기

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Diagram-export

Enterprise Architect에 있는 Diagram 메뉴에서 다이어그램을 이미지로 저장할 수 있다.(단축키 Ctrl-T) 다이어그램을 클립보드로 복사하려면 Ctrl-B를 누른다.

기본값으로서, 다이어그램은 shading 되고, 다이어그램 이름이 레이블로 달리는 프레임이 생성된다. 쉐이드, 프레임, 레이블을 없애는 방법은 다음과 같다.

쉐이드 삭제

Tools - Options - Diagram - Themes 에 들어가서 Monochrome for printing을 선택한다.

프레임 제거:

Tools - Options - Diagramsㅇ로부터 Diagram Frames를 제거한다. 아울러 scale을 200%로 저장하면 문서에서 최적의 해상도를 얻을 수 있다.


4. 도구, 스크립트 등

4.1 Enterprise Architect 스크립트

4.1.1 EA 샘플 스크립트

https://github.com/ISO-TC211/UML-Best-Practices/tree/master/Scripts

아래는 Visual Basic Script의 내용임

https://github.com/ISO-TC211/UML-Best-Practices/tree/master/Scripts/VBScript

모델을 바꿔주는 스크립트(CHG)

    • CHG Sort elements.vbs - 선택된 패키지에서 요소들 정렬
    • CHG Save Project As.vbs - 프로젝트 복사본 저장
문서화를 위한 스크립트(DOC)
    • DOC Count subpackages.vbs - 선택된 패키지에서 1단계 하위 패키지 수 
    • DOC Export diagrams as images.vbs - 다이어그램을 이미지 파일로 저장
    • DOC Export mapping files.vbs - 태그값에 기반한 매핑 파일 내보내기
    • DOC List prefixes.vbs - 클래스와 열거형을 위한 모든 접두사 목록
검증용 스크립트(VAL)
    • VAL Data type references.vbs - 데이터 유형 참조 목록을 만들고 빠진 참조 보고
    • VAL Duplicate element names.vbs - 중복 요소명 식별
    • VAL Elements in diagrams.vbs - 선택된 패키지 혹은 하위패키지에 있는 다이어그램에서 사용되지 않는 요소 식별
    • VAL Missing definitions.vbs - 정의가 없는 요소 및 속성 목록
    • VAL Model Validation.vbs - ISO 19103:2015 및 ISO 19109:2015에 정의된 규칙에 따른 모델 요소 검증
버전 관리 처리용 스크립트(VC)
    • VC Add Subpackages.vbs - 버전 관리를 위한 패키지 추가
    • VC Get All Lates.vbs - 선택된 패키지 및 하위패키지를 위한 모든 최신 것을 가져옴
    • VC Resync Status.vbs - 버전 관리 청소 - 선택된 패키지 및 하위패키지를 루핑하면서 VC Provider에 상태를 다시 싱크함
    • VC Remove Version Control.vbs - 버전 관리 제거. 선택된 패키지 및 하위패키지를 루핑하면서 버전 관리 제거
##위의 목록 스크립트, MDG Technology 그룹에 속해져있는 것
    • HMMG Script
    • Version Control Script
MDG Techonologies를 EA 모델로 가져오는 방법

기타 스크립트

4.2 EA에서 모델 찾기

https://github.com/ISO-TC211/UML-Best-Practices/wiki/Model-searches-in-Enterprise-Architect

4.2.1 EA 모델에서 검색

EA에서, 원하는 요소를 빨리 찾기 위해서는 model searches를 시행하면 된다. (Project Browser Toolbar에서 접근가능한, Find in Project Browser 버튼을 사용한 검색과 혼동하지 말라). Search는 Edit - Find in Project or Edit - Search in Model(Ctrl-F 또는 Ctrl+Alt+A)에서 접근할 수 있다. Search 드롭다운에서 검색을 한 뒤 Run 버튼을 누른다.

"Find in Project(Ctl-F)"의 여러가지 기능 (Start - Explore - Search - Search in Model)

[[미리 정해진 찾기 기능(Built-in Search)]]

EA의 Search 드롭다운에는 "Built-in"이라는 미리 정의된 검색 이 있다.

[[XML 파일로부터 가져온 검색]]

검색을 XML 로부터 import할 수 있다.(최상위 태그가 <RootSearch>) Search Builder Toolbar에서 Import Search를 누르면된다. XML파일로부터 가져온 검색은 검색 드롭다운에서 "My Searches" 범주에 나타난다.

[[MDG Technology의 일부인 검색]]

MDG Techonology(최상위 태그가 <MDG.Technology>)는 Tools - MDG Technology Import에서 가져올 수 있다. MDG Techonology의 일부로 가져온 검색은 검색 드롭다운에서 MDG Techonology라는 이름의 범주로 나타난다.

4.2.2 새로운 검색 정의 생성

EA에서, 자신만의 검색을 정의할 수 있다. (EA 사용자지침서 Create Search Definitions 참조) 가장 강력한 검색은 EA 마크로를 사용하여 강화한 SQL 검색이다. (EA의 데이터베이스 엔진은 기본 Jet 3.5 이며, 이는 마이크로소프트 Access와 동일하다.)
    1. Edit - Find in Project (Ctrl-F 또는 Ctrl+Alt+A)
    2. Builder 버튼을 클릭한다.
    3. 새로운 검색 정의를 생성한다. 이름을 주고 Editor Type이 SQL Editor인지 확인한다.

    1. 검색을 SQL로 정의한다. 필요시 마크로도 포함

    1. Project Browser에서 검색하고자하는 요소를 선택한다.
    2. Run 버튼을 누른다.

4.2.3 검증시 검색을 사용하기

검색을 사용하여 클래스, 속성, 기타 UML 요소가 특정 요구사항이나 권고사항에 부합하지 않는 요소를 알아낼 수 있다.

---- 향후 작업

4.2.4 검색 공유

검색 불러오기 및 내보내기

Search Builder 툴바에 있는 Export Search 버튼을 사용하면 다이얼로그 박스가 나타나고, 여기에서 XML 파일로 내보내고자하는 검색을 선택할 수 있다. 이 XML 파일을 Import Search 버튼을 사용하면 다른 사람이 불러올 수 있다.

참고로, 불러들이는 검색 정의가 이미 있는 검색정의와 이름이 중복될 경우, 동일한 이름을 가진 두개의 검색 정의가 생긴다. 

이러한 XML 파일은 UML 모델과 동일한 저장소에 저장할 수도 있다.

MDG Technology에서 Bundle Search

--- 향후 작업

4.2.5 검색 팁

CLASSGUID 와 CLASSTYPE

결과 셋(result set)의 일부로 CLASSGUID 와 CLASSTYPE을 지정할 경우, EA는 각 결과줄 앞에 해당 아이콘을 그려준다. 결과 셋에서 더블클릭하면 요소, 연산 및 속성이 직접 열린다. 다이어그램과 패키지는 직접 열리지 않는다. 이들은 Alt-G를 통해 프로젝트 브라우저에서 찾은 후 열어야 한다. Inside Enterprise Architect, EA User Guide 참고

4.3 ShapeChange plugin

https://kartverket.no/geodataarbeid/standarder/sosi/programmer-og-verktoy/

이 페이지에서는 SOSI 정의 파일의 품질관리 및 제품사양 생성에 도움이 되는 프로그램과 도구를 다운로드 받을 수 있다.

EA용 설정 프로젝트 파일

이 프로젝트 파일에는 SOSI 전체 모델 등록물을 포함하며, 문서화 템플릿, SOSI 모델 검증기, SOSI UML 프로파일 5.0 등이 있다. EA에서 여는 방법은 설치 가이드를 참고하라.

Download SOSI Model Register (eap, 350 MB)

SOSI 문서화 템플릿 (EA)

최종 SOSI 제품사양의 정보모델(5장)에 해당하는 UML 모델의 그림 및 텍스트 설명을 내보내기 위하여 EA에 설치해야 할 RTF 템플릿

Download SOSI documentation template in EA (xml) - updated 28.09.2017

SOSI 문서 RTF로부터 DOCS

EA 보고서를 향상시키는 마크로가 담겨있는 Word 템플릿. 정보모델을 제품사양서에 입력하기 전.

Download SOSI documentation from RTF to DOCX (dotm) - updated 28.09.2017

Shape Change

ShapeChange는 UML 모델로부터 GML을 생성하는데 사용된다. 자세한 매뉴얼은 www.shapechange.net에서 확인할 것

EA의 SOSI 플러그인

이 플러그인은 UML 모델로부터 SOSI 관리 및 SOSI 실현을 위한 정의 파일을 생성하기 위한 것이다. 이 플러그인의 일부로서 SOSI UML 프로파일이 설치된다.

이 EA 플러그인은 Arkitektum AS에서 개발하였다.

Download SOSI plugin in EA version 2.0.0.28 (exe)

SOSI UML 프로파일 5.0

이 프로파일은 표준 스테레오타입을 정의한다.

Download SOSI UML profile (xml)

SOSI 모델 검증 Add-on 1.0

이 도구는 EA 애드온으로서, 당신의 모델이 UML Modelling 5.0 규칙의 요구사항 및 권고사항을 충족시키는지를 점검하기 위한 목적이다.

Download SOSI Model Validation from the Mapping Authority's Github account .

UML 모델링 스크립트

노르웨이 매핑기관의 Github 계정에는 UML 모델을 작업할 때 도움이 되는 (예를 들어, 제품사양을 위한 모델 준비시 사용하는)스크립트를 몇개 올려두었다. 이들 스크립트는 EA용이다. 

SOSI_ps

제품 사양 문서를 위한 출발점을 생성하는 프로그램

Download SOSI_ps version 28.10.2013 (zip)

4.4 ShapeChange를 이용하여 조화 모델로부터 XML 스키마 생성

ISO TC211 UML 모델을 실제 응용에서 활용하기 위해서는, 정보처리 에이전트간에 직렬화되고 전달할 수 있는 표현으로 구현되어야 한다. 대부분의 현재 구현은 XML을 직렬화 스킴으로 사용하는데, 이때 XML 스키마 문서를 사용하여 교환 문서의 구조를 정의한다. 개념 모델을 구현하는 스키마를 자동으로 생성하기 위해서는, UML 모델로부터 XML 스키마를 자동적으로 생성하는 소프트웨어 절차가 필요하다. 여기에서 설명하는 절차는 여러가지 최신 표준에서 사용될 수 있다.

4.4.1 소프트웨어 요구사항

이 절은 아주 개략적인 내용이다. 자세한 내용은 조화모델 관리그룹 위키를 보라

Enterprise Architect(EA) : ISO/TC 211 조화 UML 모델을 개발/갱신관리하는데 사용되는 상용 소프트웨어 패키지. 여기에서 설명하는 내용은 12.1.1230을 기반으로 한다. 2017-07 현재 EA의 버전은 13.5이나, 여기에 있는 절차는 새로운 버전으로 테스트하지 못했다.

ISO/TC 211 조화 모델 : ISO/TC 211 조화모델은 웹에서 접근가능한 디렉토리에 저장되어 있으며, 여기에는 TC 211 작업과정에서 만들어진 모든 UML 모델을 담고 있는 파일이 들어있다. 모델은 EA로 부터 XMI(XML interchange format for UML)을 사용하여 export하였으며, 이들 XMI 파일은 온라인 디렉토리에서 버전관리를 하고 있다.(,아래의 Subversion 참고) Enterprise Architect외의 UML 모델링 소프트웨어 패키지도 XMI 파일을 사용할 수 있지만, 실질적으로 모델의 모든 측면(노트, 태그, 색깔 등)을 번역할 수 있을 만큼 충분히 신뢰할 정도로 포맷이 표준화되어 있지 않다. TC 211 조화모델에 있는 XML 문서는 다음과 같은 네임스페이스를 사용하고 있으며(xmi.version="1'1", xmlns:UML="omg.org/UML1.3", EA exporter 버전은 2.5이고, windows-1252 캐릭터 인코딩을 사용하고 있다.

Subversion : TC 211 조화모델 저장소는 Subversion 소프트웨어를 사용하여 관리되고 있다. Subversion은 Apache Software Foundation의 오픈소스 패키지이다. 모델 컴포넌트를 체크아웃하고 변화를 체크하기 위해서는 자신의 컴퓨터에 subversion client가 있어야 한다.

ShapeChange : Interactive Instruments GmbH 소프트웨어의 오픈소스 패키지로서, UML 에서 XML 변환을 구현하여 모델 구현을 위한 XML 스키마를 생성해준다.

SolidGround : CSIRO에서 원래 제작한 EA를 위한 소프트웨어 확장으로서, ShapeChange를 수행하기 전, UML 모델을 테스트할 때 매우 유용하다. 이 소프트웨어는 더이상 CSIRO에서 관리하지 않는다. Windows 설치자(Solid_Ground_Setup.msi)는 XML Maintenance Group 저장소에 있다. 이 저장소에는 약간의 문서도 준비되어 있다. 

4.4.2 모델 설정

TC 211용 XML 스키마를 생성하기 위해서는 UML 모델을 구성할 때 특정한 UML 프로파일을 따라야 한다. 문제가 있으면 온라인 ShapeChange 문서를 참고하라. 핵심적인 스테레오타입 몇개를 소개하면 다음과 같다.

스테레오 타입 

적용 범위 

해석 

 Application Schema

 UML 패키지

 해당 패키지에 담긴 클래스는 하나의 XML 네임스페이스로서 구현된다.

 Abstract

 클래스

 해당 클래스는 XML에서 추상요소로서 구현된다. 이 클래스는 UML모델에서 하나이상의 구체(concrete) 클래스의 대상(target)이어야 한다.

 Union

 클래스

 이 스테레오타입은 클래스의 인스턴스에서 해당 UML클래스 내의 속성이 단 하나만 허용함을 나타낸다. XML 스키마에서는 xsd:choide로서 구현된다.

 CodeList

 클래스

 이 스테레오타입은 해당 UML 클래스가 gco네임스페이스에서 정의된 코드목록으로서 구현되며, 클래스내의 속성은 허용된 값만 적용됨을 나타낸다.

별도의 XML 네임스페이스로서 구현되는 각각의 모델 모듈은 별도의 UML 패키지로서 존재해야 하며, 이들 패키지의 스테레오타입은 <<Application Schema>>이어야 한다. Application Schema 패키지는 표 및 그림에 있는 태그가 존재해야 한다.

 태그

값의 예 

참고 

 targetNamespace

 http://standards.iso.org/ iso/19115/-3/cit/2.0

 XML 스키마 파일에서 선언되어야 하는 네임스페이스 URI

 version

1.0 


 xmlns

cit 

 XML 스키마에서 접두어(prefix)요소로서 사용되는 3자리 문자. TC211 범위내에서 고유해야 함 

 xsdDocument

ISO19115-3/cit/1.0/cit.xsd 

 XML스키마를 생성하기 위한 Path fragment 및 파일명. 이 파일 경로는 스키마 생성과정이 실행되는 장소에 추가된다. 아래를 보라.

 xsdEncodingRule

iso19139_2007 

UML-XML 변환 법칙을 위한 식별자. 현재 반드시 iso19139_2007 이어야 한다.

응용스키마 패키지는 반드시 하나이상의 하위 패키지를 가져야 하며, 이들 각각은 별도의 xml 스키마 파일에서 구현된다. 명확성을 위하여, 이들에게 스테레오타입 <<Leaf>>를 부여할 수 있으나. 이는 요구사항이 아니다.

응용스키마 수준에서 하나의 XML 스키마 파일이 생성된다. (이름은 해당 패키지의 xsdDocument 태그로 지정함(위의 예에서는 cit.xsd) 이 스키마파일은 <xsd:include>요소를 사용하여, 응용스키마 패키지 내에 있는 하위 패키지에서 생성된 스키마 파일을 include시킨다. 별도 분리된 스키마 파일을 원하는 경우(추천됨), 응용스키마 패키지내의 패키지에 xsdDocument 및 xsdEncodingRule 태그가 있어야 한다. 참고로 xsdDocument 경로는 <xsd:include> 경로가 간단해지도록, 최상위 xsd의 문서 경로와 일치하는 것이 좋다. (자세한 내용은 아래의 후처리를 참고)

UML 클래스 속성을 위한 태그

UML 클래스의 속성 및 탐색가능한 연관역할은 sequenceNumber 태그를 가지는 것이 좋으며, 이때 일련번호는 개별 UML 클래스 범위내에서 고유해야 한다. 일련번호는 필수가 아니며, 없을 경우 ShapeChange에서 자동생성한다. 존재하지 않을 경우, 특질을 위한 XML 요소는 클래스에 나타난 순서를 따르지만, 클래스에 다른 클래스로의 연관이 존재할 경우, 생성된 XML 스키마내에서의 이러한 요소의 순서는 예측불가능하다. 일련번호 사이에 공백이 있어도 무방하며, 속성이나 연관이 많고 나중에 새로운 속성이 추가되거나 순서나 변경될 가능성이 있는 경우 이런 공백이 도움이 될 수 있다.

패키지 간의 연결

EA 모델에서 다른 TC 211 응용스키마의 클래스는 반드시 EA 인터페이스를 사용하여, 해당 클래스에 대한 링크로서 포함해야 한다. 클래스명을 직접입력하면 필요한 내부 링크가 만들어지지 않는다. 이들 링크가 있으면 EA에서 의존성(dependency) 다이어그램을 자동 생성하고, UML-XL 프로세서로 생성할 때, 필요한 네임스페이스를 xml 스키마로 가져온다.

4.4.3 스키마 파일의 구조

결과 스키마는 여러 ISO 스키마를 위한 디렉토리구조로서 불러진다.(아래그림) 다른 모델에서 import 또는 하나의 모델의 여러 부분을 구현하는 스키마를 include하는 경로는 이 디렉토리 구조를 따른다. 최상위 폴더에는 각각의 TC211 표준을 위한 폴더가 있다.(ISO19115, ISO19110등) 이들 폴더에는 모델에서 정의된 각각의 xml 네임스페이스를 위한 하위폴더가 있는데, 네임스페이스 약어가 폴더명으로 사용된다. 다음 수준의 하위폴더는 각 네임스페이스 구현을 위한 버전 번호로 이름이 부여되며, 실제 스키마 파일은 해당 스키마를 위한 버전번호 폴더 내에 존재한다.

스키마는 'xsdLocation' 태그값에서 지정한 구조로 불러들여지게 된다. 이 태그값은 생성된 스키마가 저장될 위치에 대한 경로를 제공한다. 경로 위치는 ShapeChange가 수행된 최상위 디렉토리에 대한 상대경로가 된다.

4.4.4 작업 순서


==

원문 : https://github.com/ISO-TC211/UML-Best-Practices/wiki

Posted by 푸른하늘이

댓글을 달아 주세요

공간정보/표준2019. 10. 11. 15:30

국가공간정보포털 지식공간의 KSDI 표준체계 문서에는 총 23개의 기술기준이 등록되어 있다. 이중 공간정보 작성 및 제작관련 기술기준은 18개, 측량관련 기술기준은 13개, 기타 업무지침이 6개로 분류되어 있다. 측량의 결과도 실질적으로 공간정보라고 할 수 있으므로, 사실상 여기에 등록되어 있는 기술기준은 대부분 공간정보 제작에 관한 기술기준이라고 할 수 있을 것이다.

하지만, 이들 기술기준은 "공간정보표준에 적합한 기술기준"은 아니다.  국가공간정보 기본법 제23조(표준 등의 준수의무)에는 "공간정보체계의 구축ㆍ관리ㆍ활용 및 공간정보의 유통에 있어 이 법에서 정하는 기술기준과 다른 법률에서 정하는 표준을 따라야 한다."고 규정이 되어 있다. 이 규정만 보면 기술기준을 따라 작업을 하면 표준에 적합한 데이터가 생산될 것처럼 보이지만, 현재의 기술기준은 표준과 거리가 멀고, 현재 생산되고 있는 데이터도 대부분 표준에 적합하지 않다.

정부 및 지방자치 단체는 규정에 따라 일한다. 좀 극단적으로 이야기해서 규정에 어긋나면 아무것도 할 수 없는 것이 규정이다. 따라서 국가공간정보 기본법에서 표준을 지키라고 되어 있지만, 규정에 명시되어 있지 않으면 아무 것도 할 수 있는 것이 없다. 반대로 이야기하면, 일상 업무에서 표준에 적합한 데이터가 생산되기 위해서는, 기술기준을 따라 작업을 하면 자연스럽게 표준에 부합하도록 규정을 개정해야 한다는 것이다.

기술기준을 개정할 때 유의할 점이 있다. 제품 규격과 제작 방법을 구분해야 한다는 것이다. 우리나라 공간정보 관련 기술기준, 즉 각종 작업규정에는 대부분 데이터 제품에 대한 규격(중의 일부)과 제작 방법이 함께 규정되어 있다. 하지만, KS X ISO로 대표되는 공간정보 표준에는 제품의 규격에 관한 표준만 존재한다.

제품 규격이란 해당 제품 그 자체에 대한 규격을 말한다. 즉, 제품에 어떠한 지형지물이, 어떠한 구조로 만들어지며, 각각의 지형지물의 품질은 어떠하고 어떻게 평가해야 하는지, 생산되는 결과물과 함께 제공되어야 하는 메타데이터에는 어떤 것이 담기는지, 어떤 포맷으로 배포되는지 등, 제품을 생산하고 배포할 때까지 전 과정에 대한 기준이다. 

제품 규격은 KS X ISO 19131 "데이터제품 사양서"에 정의되어 있다. 제작하는 데이터 제품의 종류별로 이 표준에 따라 데이터 규격을 만들고, 이를 기술기준으로 등록해야 한다.  예를 들면, "항공사진측량 작업규정"이 아닌 "1/5,000 수치지형도 제품규격서",  "토지피복지도 작성지침"이 아닌 "토지피복지도 제품규격서", "수치지도 수정용 건설공사 준공도면 작성에 관한 지침"이 아닌 "건설공사 준공도면 제품규격서"가 기술기준으로 등록되어야 한다.

제품 규격이 정해지면 제작 방법은 다양할 수 있다. 예를 들어 1/5,000 수치지형도를 제작할 때, 현재는 대부분 항공사진 측량으로 제작되고 있으나, 적절한 고해상도 위성영상이 있다면 이를 활용할 수도 있고, 드론을 날려서 1/1,000 급의 대축척 지도를 제작한 후 이를 축소편집하여 제작할 수도 있다. 항공 LIDAR 스캐너를 이용해서 제작할 수도, 지상에서 GPS나 토털스테이션을 사용하여 제작할 수도 있다. 제품의 규격을 만족시킬 수 있다면 어떤 방법도 사용할 수 있도록 열어두는 것이 국제적인 추세이다. 이렇게 되어야만 새로운 기술이나 장비가 개발되더라도 유연하게 대처할 수 있다.

제작 방법은 "표준 작업 매뉴얼" 형태로 제작해야 한다. 예를 들어, 항공사진 측량 표준 작업 매뉴얼, 드론 사진측량 표준 작업 매뉴얼, LIDAR 측량 표준 작업 매뉴얼, GPS 측량 작업 매뉴얼 등을 만든다. 각각의 매뉴얼에서는 필요한 최소한의 방법론만을 제시하고, 작업기관에서는 작업의 성격에 따라 어떤 작업방법을 사용할지 알아서 결정할 수 있어야 한다. 대규모 건설공사의 경우, 시공하는 업체는 국가에서 정한 표준시방서와, 전문기관이 정한 전문시방서를 참고로 하여, 대상 공구에 적합한 공종을 선택하는 방식으로 자체적으로 시공 시방서를 작성한다. 공간정보 제작방법도 이러한 방식으로 표준 작업 매뉴얼을 참고하는 방식이 보편화되어야 한다.

작업자가 제작방법을 마음대로 선택한다고 하면 품질을 어떻게 보장할 수 있을지 우려를 할 수 있다. 하지만, 제품 규격서에는 데이터 제품에 포함된 각각의 지형지물에 대한 품질요소, 그리고 샘플링 방법을 포함한 품질 평가방법 등이 모두 기술되어 있으므로, 그 방법에 따라 품질을 평가할 수 있다. 작업기관에서도 자체적으로 품질을 평가해 볼 수도 있고, 품질평가원 등의 제3의 독립기관이나 발주기관에서도 동일한 방법으로 품질을 평가할 수 있다. 

제4차 산업혁명은 데이터를 기반으로 한다고 이야기한다. 이 데이터는 표준에 의해 제작된, 컴퓨터가 이해할 수 있고 자동처리될 수 있는 일관성 있는 데이터를 말한다. 이를 위해서는 모든 제품 제작이 데이터 제품 규격서를 기반으로 작성되고, 누구나 동일하게 이해하고 참조할 수 있는 구조가 되어야 한다. 공간정보가 실질적으로 제4차 산업혁명의 기반이 될 수 있기를 희망한다. 

====

이 글은 원래 공간정보표준 전담기관인 국토정보공사의 의뢰를 받아, 공간정보표준 뉴스레터 2019년 9월호에 실린 글입니다. 아래는 뉴스레터를 캡처한 것입니다.

민, 푸른하늘

공간정보표준 뉴스레터 2019년 9월호
공간정보표준과 기술기준

Posted by 푸른하늘이

댓글을 달아 주세요

공간정보/표준2018. 12. 4. 11:01

INSPIRE 개요

INSPIRE 지침(Directive)의 목적은 유럽연합 환경 정책 및 환경에 영향을 미칠 수 있는 정책이나 활동을 위하여, 유럽연합 공간 데이터 인프라를 생성하기 위함이다. 이 유럽 공간 데이터 인프라를 사용하면, 공공 기관간의 환경 공간 정보의 공유를 촉진하고, 유럽내 공간 정보에 대한 공공 접근을 활성화하며, 여러 국가에 걸친 정책의 결정에 도움을 줄 수 있다. 

INSPIRE는 유럽 연합 회원국이 각자 제작, 운영하고 있는 공간 정보 인프라에 기초한다. INSPIRE 지침은 환경 응용에 필요한 34개의 공간 데이터 주제를 다루고 있다.

INSPIRE는 2007년 5월 15일에 시행되었으며, 여러가지 단계로 시행되어 2021년까지 완료될 예정이다.

아래의 동영상은 INSPIRE가 왜 필요하며, INSPIRED에서 다루는 공간 데이터의 유형에 대해 다루고 있다.

INSPIRE 정책의 배경

공공기관에서 사용되고 교환되고 있는 모든 정보는 상당한 부분이 특정한 위치를 참조하고 있다. 이러한 정보의 품질은 '공간 데이터'의 이용가능성에 따라 달라지며, 공간 데이터는 수집된후 (지리 참조되어) 위치에 연결된 후, 처리하여 정보를 생성한다. 대부분의 환경정보, 즉, 배출 측정, 생태 다양성 관측 또는 환경 품질 데이터 등은 공간적 성격을 가지고 있다. 

정책 관련 평가와 분석은 여러가지 환경 및 공간 데이터를 조합하여 이루어진다. 토지이용, 행정 경계, 표고, 수자원, 교통망, 생산시설, 보호 시설 등이 그러한 예이다. 기상, 지질, 토양 등의 지리 물리적 데이터는 또한, 인구 밀도나 건강과 안전에 관한 데이터 등과 같은 사회 경제적 데이터 뿐만 아니라, 환경 정책적 관점에서도 관련이 있다.

환경에 영향을 미치는 여러가지 주제적 환경적 법령 및 정책(농업, 교통, 에너지, 공간 개발 등)에 깔려 있는 프로그램과 조치는, 일반적으로 환경에 미치는 사회적 압력으로부터 발생하는 위험성 혹은 재난이 될 수 있는 자연 또는 인공적 위험의 완화가 필요하다. 

예를 들어, 대기의 질과 기상 조건에 관한 데이터를 교통, 공장 위치, 도시/농업의 공해 배출원, 역학 등과 연계하면, 대기 오염에 의해 건강에 미치는 영향을 평가할 수 있다. 이러한 데이터는 공해원인을 식별하고, 대기의 질에 영향을 미치는 정책에서 배출 경감 목표를 조정하는 등에 사용할 수 있다.

INSPIRE 지침의 준비과정(2001-2004)에서 수행된 수많은 사실 확인 및 공개 컨설팅을 통해, 환경에 영향을 미치는 환경 정책에 필요한 공간 데이터가 널리 사용되지 못하게 가로막는 중요한 장애 요인을 식별하였다. 예를 들어 지역에서 유럽을 대표하는 모든 분야의 공개 컨설팅 참여자중 97%는 다음과 같은 내용에 동의하였다.

  1. 공간데이터가 빠지거나 불완전한 경우가 많다.
  2. 사용 가능한 공간 데이터에 대한 설명(문서)가 불완전한 경우가 많다.
  3. 공간 데이터셋을 다른 공간 데이터셋과 결합하기 힘든 경우가 많다.
  4. 공간 데이터를 찾고 접근하고 사용하는 시스템이 별개로 작동되며, 호환되지 않는 경우가 많다.
  5. 문화적, 제도적, 재정적, 법적 장애로 인해 기존 공간정보의 공유 및 재사용이 방해 혹은 지연된다.

INSPIRE 원칙

INSPIRE는 아래와 같은 여러가지 공통 원칙에 기초하고 있다.

  1. 데이터는 단 한번만 수집되고, 가장 효율적으로 관리되는 곳에 저장되어야 한다.
  2. 유럽 전역 여러 자료원의 공간 정보를 원할하게 결합하고, 많은 사용자 및 응용에 공유할 수 있어야 한다.
  3. 한 레벨/축척에서 수집된 정보를 다른 모든 레벨/축척과 공유할 수 있어야 한다. 자세한 정보는 조사를 위해, 일반적 정보는 전략적 목적으로 활용할 수 있다.
  4. 모든 레벨에서 원할한 가버넌스를 위해 필요한 공간 정보는 언제든지, 투명하게 제공되어야 한다.
  5. 어떠한 공간 정보를 사용할 수 있는지, 어떻게 특정한 요구에 따라 사용할 수 있는지, 어떠한 조건으로 취득하고 사용할 수 있는지 등에 대해 쉽게 파악할 수 있어야 한다.

INSPIRE 규약

INSPIRE 지침은 2007년 4월 25일 공식 간행물에 발행되었고, 2007년 5월 15일 발효되었다.

Directive 2007/2/EC of the European Parliament and of the Council of 14 March 2007 establishing an Infrastructure for Spatial Information in the European Community (INSPIRE)

(2007 3월 14일 유럽 의회 및 위원회 발의, EC내 공간정보를 위한 하부구조(INSPIRE) 설립을 위한 지침 2007/2/EC)

INSPIRE

 제목  발행일
2007 3월 14일 유럽 의회 및 위원회 발의, EC내 공간정보를 위한 하부구조(INSPIRE) 설립을 위한 지침 2007/2/EC  2007/4/26

실행 규칙

회원국의 공간데이터 인프라가 각각의 커뮤니티 및 경계를 넘어 상호 호환되고, 사용될 수 있도록 보증하기 위해서는 여러가지 특정 분야에서 공통 실행규칙(IR, Implementing Rules)의 채택이 필요하다. 이러한 실행 규칙은 위원회 명령(Commission Decision) 혹은 규칙(Regulation)으로 채택되었으며, 모든 구성원의 의무이다. 위원회는 이러한 규약을 채택하는 과정에서 규제 위원회(regulatory committee)의 도움을 받았다. 이 위원회는 회원국의 대표로 구성되며, 위원의 대표가 회장이다.(Comitology procedure)

메타데이터

제목  발행일
2014년 11월 10일 위원회 규약(EU) No 1311/2014. INSPIRE 메타데이터 요소의 정의에 따른 규약 No 976/2009에 대한 개정  2014/12/11
INSPIRE 메타데이터 규약에 대한 정오표  2010/1/15
INSPIRE 메타데이터 규약  2008/12/4

데이터 사양

제목 발행일
2014년 12월 10일 위원회 규약 (EU) No 1312/2014. EU 의회 공간 데이터 서비스의 상호운영성에 대한, 2007/2 실행명령 규약 No 1089/2010에 대한 개정  2014/12/11
2013년 10월 21일 위원회 규약(EU) No 1253/2013. 공간 데이터셋 및 서비스의 상호운영성에 관한 실행 명령 규약 No 1089/2010 에 대한 개정  2013/12/10
2010년 11월 23일 위원회 규약 (EU) No 1089/2010. 공간 데이터셋 및 서비스의 상호운영성에 관한 EU 의회 실행 명령  2011/2/6
2011년 2월 4일 위원회 규약 (EU) No 102/2011. 공간 데이터셋과 서비스의 상호운영성에 관한 EU 의회 실행명령 No 1089/2010에 대한 개정  2011/2/5
2010년 11월 23일 위원회 규약 (EU) No 1089/2010. 공간 데이터셋과 서비스의 상호운영성에 관한 EU 의회 실행명령  2010/12/8

네트워크 서비스

제목 발행일 
위원회 규약. 다운로드 서비스 및 전송 서비스에 관한 규약 (EC) No 976/2009에 대한 개정  2010/12/8
2009년 10월 19일 위원회 규약  (EC) No 976/2009. 네트워크 서비스에 관한 EU 의회의 실행 명령  2009/10/19

데이터 및 서비스 공유

제목 발행일
INSPIRE 데이터 및 서비스 공유에 관한 규약  2010/3/29

모니터링과 보고

제목 발행일
INSPIRE 모니터링과 보고에 관한 위원회 결정  2009/5/6

INSPIRE 실행 규칙

회원국의 공간데이터 인프라가 각각의 커뮤니티 및 경계를 넘어 상호 호환되고, 사용될 수 있도록 보증하기 위해서는 여러가지 특정 분야에서 공통 실행규칙(IR, Implementing Rules)의 채택이 필요하다 

  • 메타데이터
  • 데이터 사양
  • 네트워크 서비스
  • 데이터 및 서비스 공유
  • 공간 데이터 서비스
  • 모니터링 및 보고

이들 실행 규칙은 위원회 결정 및 규약으로 채택되었으며, 모든 구성원의 의무이다. 

위원회는 이러한 규약을 채택하는 과정에서 규제 위원회(regulatory committee)의 도움을 받았다. 이 위원회는 회원국의 대표로 구성되며, 위원의 대표가 회장이다.(Comitology procedure)

INSPIRE 기술 지침

실행 규칙 외에도, 의무가 아닌 기술 지침 문서에는 상세한 실행 측면 및 기존 표준, 기술, 사례 등과의 관계를 기술하고 있다. 아래의 그림은 실행 규칙을 INSPIRE 규약과 이에 대응되는 기술 지침 문서간의 관계를 나타낸 것이다.

기술 지침 문서는 회원국이 위원회 규정(Commision Regulation)으로 기술된 실행규약(Implementing Rules)를 실행할 것인지를 정의한다. 기술 지침 문서는 의무가 아닌 기술적 요구사항을 포함할 수 있다. 회원국이 이 기술 지침에 부합하고자 선택할 경우, 이 기술적 요구사항을 반드시 만족시켜야 한다. 이 기술적 지침을 실행하면 INSPIRE 서비스의 상호운영성을 극대화시킬 수 있다.

기술 지침 문서의 유지관리는 INSPIRE 유지관리 및 실행 프레임 워크의 중요한 임무이다.

모든 기술 지침 문서는 여기에서 볼 수 있다.

INSPIRE 관계자

INSPIRE 코디네이션 팀(CT)

INSPIRE 코디네이션 팀은 DG Environement와 JRC(Joi8nt Research Center)의 유럽 위원회 직원 및 유럽 환경 위원회(EEA)의 직원으로 구성되어 있다. 이들의 임무는 INSPIRE의 실행 및 향후 발전을 조율하고, 다른 EU 정책과 협조하는 것이다.

DG Environement는 INSPIRE를 위한 전반적인 법적, 정책적 코디네이터로서 역할을 한다. 환경 정책에 관한 INSPIRE의 주요 목적하에, EEA에 대한 협력을 기반으로, DG Environment는 실행 프로그램을 위한 프레임 워크로서, INPIRE를 위한 환경적 주제적 정책 요구사항을 규정한다. DG Environement는 INSPIRE 유지관리 및 실행 그룹의 의장을 맡고 있다.

JRC(Joint Research Center)는 INSPIRE의 전반적인 기술적 코디네이터 역할을 한다. JRC는 INSPIRE를 위한 기술적 인프라의 실행가능성 및 혁신을 보장하며, 유럽 및 국제 연구그룹 간의 협력을 보증한다. JRC는 또한 INSPIRE의 목적을 위한 국제 표준화단체와의 공동작업을 주도 및 모니터링 하며, 기타 관련 국제 활동과의 기술적 조율에도 책임이 있다. JRC는 INSPIRE 유지관리 및 실행 그룹(MIG-T)의 기술 하부 그룹의 의장을 맡고 있다.

2013년 유럽 환경 위원회 (EEA, European Environmental Agency)는 모니터링과 보고와 관련된 업무를 수행하고 SEIS 및 INSPIRE 활동의 일부로 INSPIRE 하의 데이터/서비스 공유함으로써, EU 수준의 협조에 대한 참여를 늘렸다. EEA는 또한 잘 설치된 유럽 환경 정보 및 관측 네트워크(Eionet)을 통한 네트워킹 경험을 살려, INSPIRE를 다른 EU 수준의 활동과 통합을 강화하였다. 여기에는 환경적 경험하에 보고 및 정보 배포도 도함된다.

INSPIRE 위원회(IC)

INSPIRE 지침 22조에 따르면, 회원국 대표로 구성되는 INSPIRE 위원회(Committee)는 위원회(Commission)를 지원하고, 위원회(Commission)에서 제안되는 실행 규칙 도안에 대한 각자의 의견을 전달하는 데 도움을 주는 일반적인 임무를 부여받고 있다. 이러한 의견은 투표의 형태를 띈다.

국가 접촉선(NCP: National Contact Points)

INSPIRE 지침 19(1) 항에 따르면, 각 회원국은 반드시 접촉선을 지정해야 한다. 접촉선은 대부분 공공기관으로, INSPIRE에 관련하여, 위원회에 대한 접촉에 책임이 있다. 예를 들어 접촉선은 INSPRE 실행에 관한 정보를 각 국가에 제공해야 할 책임이 있으며, 회원국을 대표하여 위원회에 보고해야 한다.

국가 접촉선 목록

INSPIRE 유지관리 및 실행 그룹(MIG)

2013년, INSPIRE 국가 접촉선 대표로 구성되는 INSPIRE 유지관리 및 실행 그룹이라는 위원회 전문가 그룹을 설치하였다. MIG는 유럽 위원회(DG Environment와 JRC), EEA, EU 회원국 간의 공동활동을 조율하고, INSPIRE 지침의 유지관리 및 실행을 지원한다.

MIG는 기술적인면을 다루는 영구적인 하부그룹(MIG-T)가 있으며, 유리관리 및 실행 작업 프로그램(MIWP)에서 정의한 특정 활동에 초점을 맞춘 한시적 하부그룹을 설치할 수 있다.

MIG는 이해관계자 그룹으로부터 선정된 전문가 플에 의해 보환된다. 이 전문가 풀은 MIG 하부그룹이 특정 실행 및 유지관리 문제를 해결하기 위해 설치될 때 소환할 때 이용되지만, INSPIRE 실행 또는 유지관리 특정 측면에 관련하거나 관심있는 전문가에 접근할 수 있는 기회도 제공한다.

MIG 대표

MIG-T 대표

전문가 풀

INSPIRE 이해 관계자

INSPIRE 실행 계획 및 기술 지침 문서 및 유지관리 및 실행 프레임워크를 개발하기 위해서는 회원국의 이해 관련 기관으로부터의 전문가에 대한 참여 프로세스가 필요하다.

이해 관련 기관은 MIG 작업을 위한 전문가 추천을 의뢰받으며, MIG 및 하부그룹의 작업에 대한 입력 및 피드백을 제공한다. 이해 관련 기관의 전문가는 주제 클러스터 토론 플랫폼에서 실행 문제에 관한 토론도 할 수 있다.

참고 : 법적 프레임워크를 개발하는 동안, 이해 관련 기관은 법적 의무 기관(LMO)와 공간데이터 관심 커뮤니티로 구분되었다. 이러한 구분은 실행 단계에서는 구분하기 힘들기 때문에 그다지 고려하지 않고 있다.

공간데이터 관심 커뮤니티(SDIC: Spatial Data Interest Communities)

법적 의무기관(LMO: Legally Mandated Organisation)

교육 라이브러리

교육 교재

위원회 및 EEA 및 연구 프로젝트나 이해관계 기관에 생산된 다양한 교육 자원이 존재한다.

이러한 교육 코스의 선택은 공간지식베이스(GKB : Geospatial Knowledge Base) 교육 플랫폼에 만들어져 있다. GKB는 EC INSPIRE 팀과 ELISE 프로젝트에서 공동으로 위탁하고 있다. 이들 INSPIRE 교육 라이브러리는 무료이나, 등록이 필요하다.

INSPIRE 교육 교재를 위한 등록

이 라이브러리에 추가하고 싶은 교육 모듈이 있다면 제안을 제출하거나, 아래의 링크를 이용해 주세요.

교육 모듈 제안

새로운 교육 모듈 요청

INSPIRE를 위한 의미론적 지식

내용  링크  관리자  공무원  기술자
 INSPIRE 개요  여기  ◎  ◎  ○
 INSPIRE 데이터/서비스 공유  여기  ◎  ◎  ◎
 XML/GML 기본 개념  여기    ○  ○
 INSPIRE 데이터 사양  여기  ○  ◎  ◎
 데이터 품질  여기    ○  ○
 INSPIRE 네트워크 서비스  여기  ○  ◎  ◎
 Data 조화  여기    ◎  ○

◎: 필수 ○: 선택

고급 기술 모듈

내용  링크  관리자  공무원   기술자
 데이터/메타데이터 조화를 위한 절차  여기    ○  ◎
 데이터 변환 예  여기    ○  ◎
 INSPIRE를 위한 메타데이터와 데이터 검증  여기    ○  ◎
 메타데이터와 목록 서비스  여기    ◎  ○
 INSPIRE 네트워크 서비스 -고급  여기    ○  ◎

◎: 필수 ○: 선택

기술 트렌드 및 혁신 솔루션
내용 링크  관리자  공무원   기술자
 INSPIRE 고급  여기  ◎  ○  
 Linked 데이터 개요  여기  ○  ○  ○
 Linked 데이터 고급  여기      ○

◎: 필수 ○: 선택

INSPIRE 용어집에는 INSPIRE 지침 및 INSPIRE 실행 규칙 문서 그리고 이 교육 모듈에서 사용되는 공통 용어에 대한 일반적인 용어 및 정의를 담고 있다.

===

https://inspire.ec.europa.eu/about-inspire/563

Posted by 푸른하늘이

댓글을 달아 주세요

공간정보/표준2018. 6. 17. 23:12

며칠 전 Enterprise Architect를 사용하여 공간정보 표준 클래스다이어그램을 그리는 방법에 대한 글을 작성했습니다. Enterprise Architect(EA)는 ISO TC211에 참여하는 분들이 사용하는 도구이기 때문에 공간정보 표준과 관련된 일을 하는 분들에겐 무척 편리한 도구라고 말씀드렸습니다. 사용법 자체도 다른 도구와 별반 다르지 않게 직관적으로 사용할 수 있어 좋은 것 같았고요.

제가 그 글을 쓸 때 참고한 글은 Inspire Repository Tutorial 이라는 글로서, INSPIRE 표준에 참여한 분들을 위한 입문서입니다. 그런데, 사실 그 글을 작성하면서 몇가지 어려운 점을 겪었습니다. 먼저 제가 사용한 버전은 13.0 버전인데, 이 입문서에서 사용한 버전은 이전 버전으로서 UI가 너무 많이 바뀌는 바람에 명령을 일일이 찾아야 했다는 겁니다. 그래도 최신판이 낫겠거니 하고 계속 사용하려고 했는데, 다른 글을 참고해보니, 12버전을 사용해서 테스트했고 이후 버전엔 테스트하지 않았다는 내용이 있어.. 결국 다시 12버전을 설치했고, 앞으로도 계속 이 버전을 사용하기로 했습니다.

또 한가지... 더 중요한 사항은 제가 Subversion(SVN) 아이디/비밀번호가 없어서 ISO TC211 표준에 대한 저장소(https://inspire-twg.jrc.it/svn/iso/)를 SVN으로 다운드로 받을 수 없었고, 그래서 그중 implementation-XML 부분만 일일이 수작업으로 복사해서 넣었다고 말씀드렸는데, 이게 완전히 잘못되었다는 것입니다. 아이디/비밀번호가 없어도 다운로드 받는 방법이 있었고, 특히 implementation-XML 부분은 현재 작업중인(체크아웃-체크인하기 위한 임시) 디렉토리여서 이걸 사용하면 안된다는 것이었습니다. 

아무튼... 그래서 ISO TC211의 표준 저장소에서 자신의 PC로 ISO 표준에서 사용중인 모든 클래스다이어그램 등을 불러오는 작업을 수행해 보겠습니다. 

참고로 이 글은 조화 모델 저장소 접근방법이라는 글을 그대로 따라한 것입니다. 여기에서 조화 모델(Harmonized Model)이라는 뜻을 정확히는 잘 모르겠지만요.

ISO 표준 패키지 가져오기

소프트웨어 설치

먼저 두가지 소프트웨어를 설치해야 합니다.

첫번째는 Enterprise Architect. 최신버전보다는 12.1 버전을 사용하세요.

두번째는 SVN 클리언트 프로그램. 여기 들어가면 여러가지가 있는데, 원문에서 Tortoise SVN을 사용해서 저도 여기에서 다운로드 받아 설치했습니다. http://tortoisesvn.net/downloads.html

SVN 으로 파일 받기

그 다음, 자신의 컴퓨터에 작업 공간을 만들어야 합니다. 아무곳이나 만들어도 되지만 한글 디렉토리는 피하는 게 좋습니다. 저는 시키는대로 "C:\Standards/ISOTC211"에 설치를 했습니다. 설치할 위치를 정하면 그곳에 iso라는 이름의 폴더를 추가합니다. 이 폴더가 root 폴더가 되어 저장소에 있는 파일들과 폴더들이 여기로 복사됩니다. 

다음 저장소에 있는 파일을 체크아웃합니다. 아래 그림과 같이 "iso"  폴더를 우클릭하고 "SVN Checkout..."을 선택합니다.

대화상자에서 UML에 아래와 같이 https://inspire-twg.jrc.it/svn/iso/을 입력하고 OK를 누릅니다.

이렇게 실행하면 아래와 같이 경고메시지가 발생합니다. 인증서가 잘못되었다는 뜻이라는데, 원래 이렇게 발생한다고 하더군요. Accept를 누르면 실행됩니다.

이제 Tortoise SVN이 isotc211 모델의 저장소에 대한 복사본을 현재 폴더에 설치합니다. 설치가 완료되면 다음과 같은 대화창이 뜹니다.

폴더 구조는 다음과 같습니다.

Enterprise Architect 환경설정

먼저 EA를 실행하고 기존의 프로젝트를 열거나 새로운 프로젝트를 생성합니다. 

다음으로 아래 화면과 같이 버전 콘트롤 설정을 합니다. 

Project -> Version Control -> Version Control Setting

대화창에는 다음과 같이 입력합니다.

- Unique ID : ISOTC211
- Type : Subversion
- Working Copy Path : 위에서 만든 iso 폴더의 경로 (예: C:\Standards\ISOTC211\iso)
- Subversion Exe : Tortoise SVN이 설치된 위치. (예: C:\Program files\TortoiseSVN\bin\svn.exe)

이제 Save를 누르고 잠시 기다리면 아래 화살표처럼 정의되었다는 내용이 뜹니다. 이제 Close를 누릅니다.

 패키지 가져오기

Project Browser 에서 Model을 우클릭한 후, Package Control -> Get Package를 선택합니다. 그러면 아래와 같은 대화상자가 뜨는데, 아래와 같이 Select a Version... 에서 "ISOTC211"을 선택하면 자동으로 목록을 가져옵니다. 이제 "isotc211\ISO_TC211.xml 을 선택하고 OK를 눌러줍니다.

최신버전 가져오기

잠시 기다리면 Project Browser에 아래와 같이 목록이 나타납니다. 현재는 모두 빈 목록뿐입니다.

여기에서 또다시 Model을 우클릭하고 Package Control -> Get All Latest를 눌러줍니다. 다음 대화창에서는 "Import changed file only" 옵션을 선택합니다. 그러면 모든 패키지가 새로 갱신됩니다. (이 경우엔 모두 새로 채워줍니다. 언제든지 최신 버전이 필요하면 이 명령을 수행하면 됩니다.) 모든 패키지가 들어오기까지는 상당한 시간이 소요됩니다.

이제 완료되었습니다. 모든 패키지가 Locked 되어 있어 편집은 안되지만, 살펴볼 수는 있습니다. 이 상태는 EA <-> Client (나의 PC) <-> Server <-> 저장소(Repository) 간의 연결이 끝난 상태입니다. 즉 필요할 때마다 Get All Latest를 눌러주면 상태를 체크하여 최신 패키지로 모두 갱신됩니다.

저는 ISO 패키지를 사용만 하는 입장이라, 이걸로 충분합니다만, 이들을 편집하고 싶다면 여기를 읽어보세요.

참고로 원래 EA에서 사용하는 파일 포맷은 MS Access 라고 합니다. 당연히 이진파일입니다. 그런데 SVN(을 비롯한 모든 종류의 버전관리 도구)은 이진파일의 버전관리는 불가능합니다. 그래서 EA에서는 자신의 파일을 XMI(UML 교환용 포맷으로 XML 형식)으로 내보내고, 이것을 내 로컬 저장소에 저장을 합니다. 그리고 이 로컬 저장소를 서버와 통신해서 버전관리를 하는 방식입니다. 상당히 영리한 방식이라고 할 수 있습니다. 

그런데, EA에서 사용하는 XMI 파일은 클래스등의 객체 구조 뿐만아니라, 색깔, 다이어그램 상의 위치 등 다양한 정보를 보관한다고 합니다. 따라서 EA가 아닌 UML 도구는 EA의 XMI 파일을 정상적으로 다룰 수 없고, 따라서 다른 UML 도구는 소스 버전관리가 불가능합니다. 이런 점에서도 공간정보 표준과 관련된 작업을 하려면 어쩔 수 없이 Enterprise Architect를 사용할 수 밖에 없을 것 같네요.

No-SVN 환경의 ISO TC211 패키지 가져오기

사실 표준 제정/개정 등의 작업에 참여하지 않는 저같은 사람들은 위와 같이 모든 저장소의 내용을 다운로드 받고, 또 최신판으로 유지할 필요는 없습니다. 그냥 안정된 버전을 다운로드 받아 사용하는 것이 가장 편합니다. 여기에 들어가서 ISOTC211_HM_NoSVN.eap를 받아서 사용하면 됩니다.

아래는 이 파일을 받아서 그냥 EA에서 불러들인 후, GFM(일반 지형지물모델 : General Feature Model) 클래스 다이어그램을 표시한 화면입니다. 좌측위 "Project Browser"를 보시면 ISO TC/211 표준 뿐만 아니라, OGC 표준 그리고 ISO TC211 표준에서 참조하는 기존 표준(예: ISO 3166 국가코드)들도 포함되어 있음을 알수 있습니다. 아주 편리할 것 같습니다. ㅎㅎㅎ

ISO 19000 시리즈 클래스 관계 확인하기

제가 제일 많이 사용하는 기능은 ISO 19000 표준시리즈에 포함된 여러가지 클래스간의 관계를 확인하는 것입니다. 제가 요즘 여기저기 표준관련 문서를 뒤적거릴 일이 많다보니, 어떤 클래스가 어떤 속성이 있고, 다른 클래스와 어떤 관계가 있는지 등을 알아봐야 할 때가 많기 때문입니다.

일단 위와 같은 방법으로 ISOTC211_HM_NoSVN.eap를 불러왔다고 가정하고 시작하겠습니다.

제일먼저 어떤 클래스가 있는지 확인하고 싶을 때에는 Cntl_F (Find in Project) 창을 불러서 아래의 위치에 원하는 클래스명을 입력하면 됩니다. 아래는 DateTime 클래스를 검색한 예인데, 아래와 같이 나타난 여러개의 클래스 중에서 적당한 것을 선택하시면 됩니다. 클래스 중에서 Status가 Supersede라고 되어 있는 경우가 있는데, 이 녀석은 과거 버전이므로 사용해서는 안됩니다. Implemented도... 정확히 무슨 내용인지 아직 모르지만, 어쨌든 Status가 Approved 인 것을 선택하면 됩니다.

선택한 상태로 오른쪽 마우스 클릭을 하면 위와 같이 여러가지 옵션이 나타납니다. 여기에서 Properties... 를 누르면 아래와 같이 이 클래스의 특성을 볼 수 있습니다. 왼쪽 화살표를 누르면 연관관계를 확인할 수 있고요, 오른쪽 아래의 "Details"를 누르고 다시 "Attribute"를 누르면 속성을 확인할 수 있습니다.

또 위의 그림에서 "Find in Diagrams..."를 누르면 아래와 같은 창이 나오고  아무 다이어그램이던 더블클릭하면 이 클래스가 포함된 다이어그램을 확인할 수 있습니다. 원래 이 저장소(ISOTC211_HM_NoSVN.eap)는 ISO TC/211 위원들이 실제 표준 문서 작업을 할 때 사용하던 것과 동일한 복사본이기 때문에, 표준문서에 포함되어 있는 그림들을 포함해 다양한 다이어그램을 확인할 수 있습니다.

그런데 이런 식으로 확인하는 것만으로는 한계가 있을 수 있습니다. 예를 들어 필요에 따라 연관관계에 있는 다른 클래스들을 확인하고 싶지만, 다이어그램에는 숨겨두었을 수 있기 때문입니다. 

이 때에는 다이어그램에서 해당 클래스를 우 클릭한 뒤, 콘텍스트 메뉴에서 "Insert Related Elements"를 선택하면, 아래와 같이 연관관계나 상속관계에 있는 클래스들을 볼 수 있고, 이들을 클릭하면 해당 클래스들이 다이어그램에 추가됩니다. 이때 화살표 쪽을 선택하면 Relation depth를 조절할 수 있습니다.

이상입니다.

민, 푸른하늘

===

원문 : https://github.com/ISO-TC211/HMMG/wiki/Connecting-to-the-Harmonized-Model-Repository

Posted by 푸른하늘이

댓글을 달아 주세요

공간정보/표준2018. 5. 27. 00:39

장면 1

우리나라 정부가 생산 관리하는 데이터를 공개하는 곳인 공공데이터 포털

- 동일한 제목의 자료를, 올린 지자체도 있고, 안올린 곳도 있다.
- CSV, Excel, XML 등 포맷이 제각기.
- 동일한 자료에 대해서도 데이터 제작 주체에 따라 구조가 달라지기도 한다.
    - 예를 들어 열의 갯수가 모두 다른 경우
    - 열로 분리, 콤마로 분리, 분리 안한 것 등등

*참고 : 영국의 경우 www(월드와이드웹)의 창시자 팀버너스리 경(Sir Tim berners-Lee)이 주도하는 ODI(Open Data Institute)와 공동으로, XML 기반으로 데이터 공유 

장면 2

국가 공간정보를 공개하는 국가공간정보포털. (사례 : 버스노선)

- 지도데이터는 존재하지 않고, "공간정보목록정보"에만 존재
    - 목록에 존재하는 지자체는 21개. (군산시는 버스노선마다 따로따로 올려서 51개)
    - 데이터의 내용 및 구조에 관한 정보가 없는 경우 많음(예: 버스노선)
    - 고유주소 없음(예 : 동두천시를 검색한 주소를 복사한후 새창에 붙이면 동작하지 않음
- "국가공간정보포털개방목록"에 BRM 분류가 있으나, 막상 클릭하면 아무것도 없는 항목 다수
- 지방자치단체에서 작성한 데이터는 거의 없는 듯

장면 3

지방자치단체간 데이터 교환

- A 지자체에서 인접한 B 지자체에 도로데이터 요청한다.
- B 지자체는 A 지자체에서 요청하는 포맷으로 변환하여 전송한다.
- A 지자체는 B 지자체의 데이터를 받은 후 그냥 사용할 수 없다. 왜그럴까?

도입

우리나라에서 데이터 교환 또는 유통체계에서 벌어지는 사례를 몇 가지 들었습니다. 공공데이터 포털에서 제공되는 데이터는, 공간정보보다 훨씬 간단한 text 정보임에도 제대로 공개/유통되지 못하고 있다고 많은 사람들이 지적하고 있습니다. 이걸 생각해보면 이보다 훨씬 구조가 복잡한 공간정보에 대한 유통 체계가 문제가 있는 것은 어쩌면 당연할 수도 있습니다.

정보공개/데이터 유통과 관련된 모든 문제는 데이터 유통체계가 미비하기 때문에 발생하는 것입니다. 유통체계가 뭐가 잘못된 것인지를 말하는 대신, 데이터 유통체계가 완벽하게 이루어지면 어떻게 데이터공개/교환/유통이 이루어질 수 있는지를 생각해 보겠습니다.

1. 개인정보보호, 보안 등 현행법에 저촉되지 않는 모든 데이터가 공개된다.
2. 모든 공개된 데이터의 상세한 내용및 구조가 별도의 데이터로서 공개된다.
3. 동일한 이름의 데이터에는 내용과 구조가 완전히 동일하다.
4. Machine Readable 한 포맷으로 공개된다.
5. 공개된 데이터의 구조도 함께 공개되며, 이 구조를 사용하여 자동 검증이 가능하다.
6. 이미 공개된 데이터가 일부 수정된 경우, 수정된 부분에 대해서 즉시 공개된다.
7. 공개된 데이터는 관련자에게 즉시 통지(notification)된다.
8. 해당 데이터의 사용자/기관은 (사람이 개입하지 않고) 자동으로 갱신된 데이터를 읽어오고,
   이 데이터를 사용하여 자신의 데이터를 자동으로 수정한다.

대략 이렇게 정리할 수 있을 것 같습니다. 즉, 데이터를 어느 사이트에 올려 놓는다고 하여 유통이 되는 것이 아니라, 이런 식으로 기계간 통신(Machine to Machine)으로, 사람이 개입하지 않고 자동으로 처리될 수 있어야만 "궁극적"으로 데이터 유통이 된다고 할 수 있습니다. 이렇게만 되면, 어느 생산자든 데이터를 수정하면 그 데이터를 사용하는 사람의 데이터도 자동 수정되어, 결국 "실시간 갱신" 시스템이 완성될 수 있을 것입니다.

이러한 체계를 갖추기는 물론 매우 어렵습니다. 하지만, 불가능한 것은 아닙니다. 데이터 공급자의 의지와 노력 (+ 제도적 뒷받침), 그리고 공간정보 표준을 준수하면 이러한 체계를 갖출 수 있습니다. 그중에서 오늘 제가 할 이야기는 공간정보 표준, 그중에서도 유통과 밀접한 관련이 있는 "데이터의 내용과 구조"에 대한 내용입니다.

데이터의 내용과 구조(응용스키마)

"데이터의 내용 및 구조"를 이야기하면 보통 데이터 교환 포맷을 떠올립니다. 텍스트 위주의 DB라면 CSV나 XML 등이 교환포맷으로 많이 사용됩니다. Excel 파일로 올리는 곳도 많지만요. 공간정보 DB는 Shape 파일이나 GML 등의 포맷이 많이 이용됩니다. 물론 아직 DXF를 선호하는 분들도 있고요. 사실 데이터 포맷 자체는 큰 문제가 아닙니다. 한글파일이나 스캐닝한 영상을 올리지만 않고, 적절한 구조를 지원만 한다면 어떤 포맷을 사용해도 데이터 교환에는 그다지 큰 문제는 없습니다. 즉, (정확한 내용 및 구조를 가지고 있다면) 데이터 교환에 어떤 포맷을 사용해도 문제는 없다는 뜻입니다. 널리 알려지지 않은 포맷이라면 불편함이 더 많아질 뿐입니다.

하지만, 현재 국가공간정보포털에 올려진 파일은, 공각정보분야에서 일하는 사람이라면 누구나 잘 알고 있는 Shape 포맷으로 올려져 있는데, 왜 바로 가져다 쓸 수 없을까요? 그것이 바로 "데이터의 내용 및 구조"에 관한 문제입니다. 

이종 시스템 간의 상호 작용을 성취하기 위해서는 두 가지 근본 문제가 결정되어야 한다. 첫 번째 문제는 공간 데이터의 내용의 의미와 논리적 구조를 정의하는 것이다. 이것은 응용 스키마에서 이루어져야 한다. 두 번째 문제는 응용 스키마와 관련된 데이터를 표현할 수 있으며, 시스템과 플랫폼 독립적인 데이터 구조를 정의하는 것이다."

이 글은 "KSXISO 19118 지리정보 - 인코딩" 표준의 6절에 있는 내용입니다. 이종 시스템간의 데이터 교환을 위해서는 첫번째 "공간데이터의 내용 및 구조" 정의, 두번째 "데이터 포맷" 정의가 필요하다는 뜻입니다.

데이터 포맷은 위에서 언급한 것처럼, 사실 데이터 교환에 참여하는 자들끼리 동일한 포맷을 사용한다면 큰 문제가 아니라고 말씀드렸습니다. 하지만, "데이터의 내용 및 구조"는 완전히 다른 문제입니다. 예를 들어 두개의 기관에서 도로데이터를 각각 다음과 같이 정의하였다고 해보겠습니다. 

A 지자체(좌측)은 모든 도로를 하나의 "Road" 클래스로 분류하고, 5가지 속성을 갖는 것으로 정의했습니다.(이중 두개의 속성은 도형정보입니다.) B 지자체는 추상클래스인 Road 를 MainRoad 클래스와 AuxRoad 클래스가 상속받도록 정의했습니다. 물론 MainRoad와 AuxRoad는 구조가 다릅니다. 도로중심선(CenterLine)은 A 지자체에서만 정의하였고, 속성들이 서로 조금씩 다른 것도 있고 아얘 빠진 것들도 있습니다. (가상이니 심각하게 받아들이지 마시길...)

A 지자체에서 B 지자체에게 도로 데이터를 Shape 포맷으로 요청하면 어떻게 될까요. 당연히 B 지자체는 자신의 현재 구조 그대로 Shape 포맷으로 변환해서 넘겨줄 것입니다. 이 데이터를 받은 A 지자체는 다음과 같은 처리가 필요할 것입니다. 

- B 지자체에서는 MainRoad와 AuxRoad로 분리되어 있는 클래스를 Road 클래스로 합쳐야 합니다.
- RoadCover 는 RoadSurface와 동일하므로 클래스명만 수정합니다.
- CenterLine은 존재하지 않으므로 RoadSurface를 사용하여 자동 생성합니다.
- DateOpen는 MainRoad에만 있으므로, AuxRoad 클래스는 임의의 날짜를 부여합니다.
- Name은 동일하므로 그대로 가져옵니다.
- Admin 도 DateOpen 과 동일한 방식으로 처리합니다.

결국 데이터는 넘겨받았지만, 모든 클래스들을 일일이 검사하고, 수정을 거쳐야만 사용할 수 있게 됩니다. 새로 처음부터 만드는 것보다야 훨씬 편하지만, 엄청 많은 수고가 필요합니다. 넘겨받을 클래스의 수가 많을 수록 더 많은 노력이 필요하겠죠.

U 라는 사업체가 있어서 이들 도로데이터를 가져와서 사용하는 경우엔 어떨까요? 먼저 A 지자체에서 데이터를 받아와 데이터를 불러들이는 프로그램을 짰습니다. 이제 B 지자체에서 데이터를 받아오면 새로 프로그램을 짜야 합니다. 또다른 데이터를 받아오면? 또다시 새로운 프로그램을 짜야죠. 이처럼 모든 기관별로 응용스키마가 조금씩 다르기 때문에 매번 조금씩 달리 편집해서 사용해야 합니다. 물론 데이터를 제공해준다는 가정하에요. 예전에 내비게이션용 도로지도를 제작하던 어떤 업체 관계자는, 매 지자체별로 별도로 접촉해서 자료를 얻어야 했는데 공개하지 않는다는 곳도 많았지만, 기껏 공개를 해도 이처럼 많은 편집/가공이 필요하다고 푸념했던 기억이 납니다.

이처럼 현재 공개된 자료들은 모두 사용하려는 사람들이 구조를 일일이 검사하고, 변환하는 프로시져를 만들고, 테스트하는 과정을 걸쳐야만 사용할 수 있습니다. 심지어는 텍스트 정보만 제공되는 공공데이터 포털도 마찬가지입니다. 어떤 한 기관에서 제공하는 자료라면 그나마 다행이지만, 여러 기관의 데이터를 취합해야 하는 경우 정말 많은 자원이 소요됩니다. 게다가 담당자가 바뀌거나, 시스템이 변경되면 모든 과정을 새로 밟아야 합니다.

관리기관별로 데이터 내용 및 구조(응용스키마)가 다른 이유는 자신의 목적에 따라 시스템을 구축하기 때문입니다. 처음 측량을 통해 생산한 원시데이터는 동일하더라도, 시스템을 구축할 때는 내부의 목적, 사용하는 하드웨어/소프트웨어의 종류 등에 따라 달라질 수 밖에 없습니다. 응용스키마가 원래 그런 성격이니까요.

공통 응용스키마

그럼 이처럼 데이터 생산/관리 기관별로 구조가 다른 상태에서 어떻게 데이터를 교환해야 할까요? 이것이 "KSXISO 19118 지리정보 - 인코딩" 표준에서 다루는 문제입니다. 아래는 이 표준의 그림 1 "두 시스템간의 데이터 교환의 개요"입니다.

이 그림을 간단하게 설명하면, 다음과 같습니다.

1. 다수의 시스템에 대하여 공통 응용스키마 I 를 정의해야 한다.
2. 내부 DB는 이 공통 응용스키마를 적용한 임시 내부 데이터베이스 M_AI 를 생성한다.
3. 이 표준에 따른 인코딩 서비스 R을 사용하여 자료를 공통포맷으로 변환한다.
4. 이렇게 만들어진 파일/스트림을 상대측에 전송한다.

즉, 자산의 내부 DB를 그냥 변환하는 것이 아니라, 공통 응용스키마를 적용하고, 공통 포맷을 적용하여 변환해야 한다는 것입니다. 물론 읽어들일 때는 이 반대의 수순을 밟으면 되고요.

여기에서 볼 수 있는 것처럼, 데이터 공유에 있어 가장 중요한 것은 데이터 공개/유통에 참여하는 모든 참여자가 공유하는 "공통 응용스키마"입니다. 공통 응용스키마를 사용하고 그것이 정확하게 지켜지기만 한다면, 어떤 포맷을 사용해도 문제없이 데이터를 공유할 수 있습니다.

XML 인코딩

그런데, KSXISO 19000 표준군에서는 모든 종류의 공간정보 교환에 XML 포맷으로 인코딩 할 것을 권장하고 있습니다. KSXISO 19118 인코딩에서는 데이터를 XML로 변환하는 규칙을 제시하고 있고, KSXISO 19136 지리마크업언어(GML)에서는 이 XML 변환규칙을 보다 정확하게 규정하고 있으며, KSX1SO 19139 메타데이터 XML 구현에서는 메타데이터를 XML 로 변환하고 공유하는 규칙을 다루고 있습니다. 즉, 데이터 교환은 가능한한 XML 을 이용하라는 것입니다.

그런데 XML(또는 GML)은 데이터 그 자체일 뿐입니다. XML을 사용한다고 하여 데이터 교환이 순조롭게 이루어질 수 없습니다. 데이터의 내용 및 구조(응용스키마)의 공유, 준수가 필수적으로 뒤따라야 합니다.

XML 스키마는 XSD(XML Schema definition)로 정의됩니다. XSD는 말그대로 XML 파일의 스키마를 정의하는 문법입니다. 일반 XML 파일은 <tag1> </tag1> 등과 같은 형태로 태그만 맞춰주면 어떠한 데이터도 추가할 수 있으습니다. 그러나, XSD를 정의하면 XSD에 정의되어 있는 항목외에는 들어갈 수 없고, XML에 XSD 정의항목이 빠졌다면 오류가 발생하게 됩니다. 즉, XML 과 XSD는 쌍으로 움직이고, 일정한 내용과 구조를 갖출 수 있게 됩니다.

이와 같이 XML 은 XSD가 존재하기 때문에 데이터와 응용스키마를 함께 공개/교환 할 수 있습니다. Shape 등 다른 포맷은 응용스키마를 일치시킨다고 해도, 해당 데이터가 응용스키마에 일치하는지 여부는 별도의 어플리케이션을 작성해야만 검증할 수 있습니다. 하지만, XSD+XML은 이 자체만으로 데이터 구조의 일관성을 유지할 수 있습니다.

19118 인코딩 표준에서는 UML로 작성된 응용스키마를 XSD로 변환하는 규칙도 제공합니다. 다음 그림은 이 표준의 "그림 C.1 - XML 기반의 변환규칙" 입니다.(일부 수정) 이 그림에서 말하는 것은, 공간정보 응용스키마는 XSD로 인코딩하고, 공간데이터(응용데이터)는 이 XSD를 기준으로 XML(GML) 로 변환한 후, 이 두개의 파일을 모두 제공하라는 것입니다. 이것이 ISO 표준에 따르는 것이죠.

따라서, 국가공간정보포털과 같은 데이터 교환장소에는 데이터를 GML(XML) 포맷으로 제공하는 외에도 다음과 같은 응용스키마 관련 정보를 함께 제공해야 합니다. 이중 위의 두가지는 사람들이 편하게 이해하기 위한 용도이고, 마지막 XSD는 컴퓨터가 직접 해석하기 위한 용도입니다. (이 이외에도 메타데이터에 관한 내용도 XML로 제공해야 하지만, 이는 생략합니다.)

- 응용스키마 (UML)
- 데이터딕셔너리 - 응용스키마 객체의 상세 해설
- XSD - XML 용 스키마

기존 공간정보를 다루는 입장에서 볼 때, Shape 파일 등이 널리 사용되고 있으므로, 이런 포맷을 사용하는 것이 더 낫다는 의견도 있을 수 있습니다. 하지만, XML 포맷을 사용하면 다음과 같은 장점이 있어서, 단순한 Shape 파일보다 월등한 편의성을 누릴 수 있습니다.

- XML 포맷은 사람들도 어렵지 않게 읽을 수 있지만, 무엇보다 컴퓨터 처리에 좋다.

- XML을 처리하기 위한 다양한 라이브러리가 존재하기 때문에(오픈 소스도 다수 존재함)
  GIS 소프트웨어를 사용하지 않아도 일관성 검증이나 통계 등 간단한 데이터 처리가 가능하다.
    - XML Validator
    - XML DOM Parser

- XML 은 W3C에서 정의한 정보 교환/처리를 위한 표준으로 Web/IT 분야에 널리 사용되고 있으며,
  특히 공간정보를 모르는 사람들도 장벽없이 처리할 수 있다.

- XML 파일의 스키마(구조)를 정확하게 정의하는 XSD (XML Schema Defintion)를 함께 제공하면,   
  데이터 구조의 검증이 아주 쉬워진다. 즉, 일관된 구조가 100% 유지할 수 있다. 

이러한 장점이 있기 때문에, 데이터 공개/교환은 XML(GML)을 사용해야 한다는 것이 제 생각입니다. 아니 다른 포맷으로는 이러한 장점을 대체할 수 없으므로, 반드시 XML(GML)을 사용해야 합니다.

결론

이제 마무리를 지어야 할 때가 왔습니다. 제가 처음에 언급했던 "완벽한 데이터 유통체계"에 대해 다시 생각해보겠습니다. 

1. 개인정보보호, 보안 등 현행법에 저촉되지 않는 모든 데이터가 공개된다.
2. 모든 공개된 데이터의 상세한 내용및 구조가 별도의 데이터로서 공개된다.
3. 동일한 이름의 데이터에는 내용과 구조가 완전히 동일하다.
4. Machine Readable 한 포맷으로 공개된다.
5. 공개된 데이터의 구조도 함께 공개되며, 이 구조를 사용하여 자동 검증이 가능하다.
6. 이미 공개된 데이터가 일부 수정된 경우, 수정된 부분에 대해서 즉시 공개된다.
7. 공개된 데이터는 관련자에게 즉시 통지(notification)된다.
8. 해당 데이터의 사용자/기관은 (사람이 개입하지 않고) 자동으로 갱신된 데이터를 읽어오고, 
   이 데이터를 사용하여 자신의 데이터를 자동으로 수정한다.

동일한 데이터에 대해 공통 응용스키마를 갖도록 하고 이를 XSD, GML 로 공개하는 체계가 갖추어진다는 것은, 이 여덟가지 중에서 2,3,4,5 항목에 해당합니다. 1번 항목은 제도적으로 해결해야 할 부분이며, 6,7,8 항목은 공개된 데이터를 실시간으로 전달할 수 있는 시스템의 구축이 필요합니다. 물론 이러한 내용도 일부(개념적 수준에서는) 표준에 정의되어 있습니다. 

현재 국토지리정보원에서는 일부 지형지물에 대해 완공이 되는 즉시 측량을 실시하는 실시간 갱신작업을 실시하고 있는 것으로 압니다. 그런데, 이러한 측량이 완료되는 시점에서 국민에게 전달될 때까지의 시간 - 즉, 네이버/다음 등의 포털지도에 나타나기 까지의 시간은 최소 6개월 이상 걸릴 것으로 생각됩니다. 제가 지금까지 말씀드린 "데이터의 내용 및 구조"라고 통칭한 이러한 기술을 적용하여, 정말 실시간으로 데이터를 공유할 수 있는 날이 빨리 오기를 소망합니다.

민, 푸른하늘


Posted by 푸른하늘이

댓글을 달아 주세요

공간정보/표준2018. 1. 12. 16:57

일본 지리정보표준 프로파일 JPGIS에 대해 좀 더 알아볼 수 있는 FAQ문서입니다. 품질평가는 발주자나 제삼자가 하는 것이 아니라, 제작자가 자체적으로 해야 한다는 내용이나... 몇가지 도움되는 내용들이 있네요.


==

JPGIS FAQ

일반

JPGIS은 무엇입니까?

JPGIS는 공간정보 표준 프로파일 (Japan Profile for Geographic Information Standards)의 약자로, 최신의 공간정보에 관한 국제 규격 (ISO19100 시리즈), 일본 공업 규격 (JISX7100 시리즈)을 준수하는 내용을 정리한 실용 표준입니다

JPGIS 및 국제 규격 (ISO) 및 일본 공업 규격 (JIS)과의 관계는?

JPGIS는 공간정보에 관한 국제 규격 (ISO19100 시리즈) 및 일본 공업 규격 (JISX7100 시리즈)을 준수하고 있습니다.

국제 규격 및 일본 공업 규격은 규정하고있는 범위가 넓고, 자유도가 높은 규격입니다. 따라서 이용하기 쉽게하기 위하여, 이 규격 중에서 실제 사용에 필요한 내용을 추출 · 체계화한 실용 버전의 규격인 JPGIS을 만든 것입니다.

JPGIS과 JSGI과의 관계는?

기본적인 개념, 기술은 거의 비슷하지만 JPGIS 최신 국제 규격 및 일본 공업 규격을 준수하고 사용하기 쉽도록 내용을 간추린 실용적 버전의 표준입니다 (2005 년 5 월 공개 ). 한편, JSGI2.0 (공간정보 표준 제 2 판)는 생성 당시의 국제 규격안의 번역을 바탕으로 한 것입니다 (2002 년 3 월).

앞으로는 JPGIS를 이용해주십시오.

JPGIS 어떤 것을 규정하고 있나?

공간정보 분야 전반에 관한 규칙을 규정하고 있습니다. 예를 들어, 공간 데이터 설계의 개념, 이때 사용할 수 있는 부품, 위치를 나타내는 방법, 장소에서 장소를 연결하는 방법, 공간 데이터 품질의 개념, 공간 데이터를 만들 때의 사양서를 만드는 방법 등 특히 공간 데이터 교환을 위한 규칙을 규정하고 있습니다.

JPGIS를 사용할 때의 장점은 무엇입니까?

모두가 JPGIS을 사용한다면 공간 데이터의 검색, 정비, 활용 등 공간정보와 관련된 다양한 경우에서 공간 데이터를 자유롭게 교환할 수 있습니다. 그 결과, 도입 비용 절감 등이 이루어질 수 있습니다.

또한 JPGIS에서 사용하는 기술은, 세계적으로 널리 보급되어있는 개방형 기술을 이용하고 있기 때문에, 누구나 사용할 수 있는 뿐만 아니라 미래에도 안심하고 사용할 수 있습니다.

JPGIS를 입수하는 방법은?

이 Web 사이트에서 다운로드 할 수 있습니다. 자세한 내용은 아래 URL을 참조하십시오.

(i) JPGIS 관련 자료 다운로드

JPGIS 참고서는 있나요?

JPGIS을 이해하기 위한 참고 자료로, 공간정보 표준화에 대해 알기 쉽게 설명한 "읽는 낫토쿠 JSGI", "공간정보 표준 제 2 판 (JSGI2.0)의 입문"이 있습니다.
자세한 내용은 (재) 일본 측량 조사 기술 협회 Web 사이트 를 참조하십시오.
" 공간정보 표준 제 2 판 입문 "에 대해서는, 여기에서 볼 수 있습니다. 꼭 참조하십시오.

JPGIS 세미나, 강습회 등은 있습니까?

JPGIS을 비롯한 공간정보 표준화에 관한 세미나는 국토지리원이 주최하는 세미나, 국토교통대학교, (재) 일본 측량 조사 기술 협회, GIS 학회 등이 전국 각지에서 개최하고 있습니다. 개최 일정에 대해서는 국토지리원 또는 주최자의 Web 페이지를 참조하십시오.

JPGIS의 기술적 내용을 이해하는 데 필요한 지식은 무엇입니까?

지금까지의 측량 지식 외에, 정보 처리에 관련된 지식이 필요합니다.
특히 규격의 내용을 이해하는 데 "객체 지향"개념, "UML 클래스 다이어그램"이 필요하며, 공간 데이터를 제작할 때엔 "XML" 지식이 필요합니다.

공간정보에 관한 국제 규격 (ISO19100 시리즈)은 무엇입니까?

국제 표준화기구 ISO에서 만든 공간정보에 관한 규격입니다.
ISO 공간정보 전문위원회 (TC211)에서 표준을 개발하고 있습니다.

공간정보에 관한 국가 표준 (JISX7100 시리즈)은 무엇입니까?

ISO의 공간정보에 관한 국제 규격을 번역한 국내 표준입니다. 공간정보 표준에 채택된 ISO 표준을 순차적 JIS화 하고 있습니다.

JSGI2.0 (공간정보 표준 제 2 판)은 무엇입니까?

1999 년도부터 2001 년도에 걸쳐 국토지리원과 민간기업의 민관 공동 연구에 의해 만들어진 규격으로, 2002 년 3 월에 공개 한 것입니다.

공간정보에 관한 국제 규격 (ISO19100 시리즈) 중 기본적인 항목에 대해 원안 (작성 당시) 번역본을 바탕으로 제작한 것으로, 기반 국제 표준이 확정 후 순차적으로 국제 규격과의 일관성을 확보하여 일본 공업 규격 (JISX7100 시리즈)화 하였습니다.

JPGIS을 준수한다는 것은 구체적으로 무엇을 해야하는 것인가요??

JPGIS이 정하는 방법으로 공간 데이터 제품사양서를 작성하고 그에 따라 공간 데이터를 작성하는 것입니다. 이렇게 함으로써 다른 분야에서 생성된 데이터도 서로 교환하여 사용할 수 있습니다.

JPGIS 데이터의 이용 사례가 있나요?

■ JPGIS 데이터의 정비 상황 

국토지리원의 기반지도 정보는 JPGIS에 따라 작성하고 공개하고 있습니다. 

국토지리원이 정비한 기반지도 정보

JPGIS의 향후 보급 전망은 어떻게되어 있습니까?

"공공 측량 작업 규정 준칙"은 2008 년 3 월 31 일 개정되면서, "JPGIS 준수"가 명문화됨으로써, 공공기관에서는 향후 JPGIS에 따른 데이터가 작성될 것으로 생각됩니다.

또한 2008 년 4 월 15 일에 각의에서 결정된 "공간 정보 활용 추진 기본 계획"에서는 공간정보의 표준화로 JPGIS의 보급, 유통 등에 대해 국가·지방 자치 단체, 산학관의 연계를 강조하고 있습니다. 이에 따라 민간을 포함한 JPGIS의 보급이 진행될 것으로 기대됩니다.

JPGIS의 버전에 대응해야할까요?

앞으로 공간 데이터의 정비 계획 · 설계하는 경우, 현재의 최신 버전인 JPGIS 2014을 준수 할 것을 권장합니다. 그러나 기존 데이터의 일관성을 고려할 필요도 있으므로, 구체적으로는 각 업무별로 미리 계획 기관과 합의하여 버전을 선택하시기 바랍니다.

응용 스키마

지형지물은 무엇입니까?

공간 데이터의 가장 기본적인 단위로, 도로, 하천, 행정 경계 등과 같이 현실 세계의 사물을 추상적으로 포착 한 것입니다.
예를 들어, 공간 데이터를 지도로 인쇄 할 때, 지도에 존재하는(그려진) 것은 모든 지형지물이라고 할 수 있습니다.

응용 스키마는 무엇입니까?

응용 스키마는 지형지물의 내용 · 구조를 나타내는 데이터 모델입니다.
응용 스키마는 공간 스키마 및 시간 스키마를 기반으로 작성되며, 제품 사양서의 구성 요소입니다.

응용 스키마는 어떻게 기록됩니까?

응용 스키마는 그림과 문서에 의해 서술됩니다. JPGIS는 UML 클래스 다이어그램을 사용하여 응용 스키마 클래스 다이어그램을 작성하고, 응용 스키마 문서로 제품사양서를 작성합니다.

UML 클래스 다이어그램은 무엇입니까?

UML은 통합 모델링 언어 (Unified Modeling Language)라고 하며, 현실세계의 '물건 (객체) "을 모델링 할 때 사용되는 기술 방법입니다. JPGIS에서는 공간 데이터의 구조를 표시할  경우 UML의 클래스 다이어그램이라는 도식을 사용하여 표현합니다.

작성한 응용 스키마가 올바른지 확인하려면 어떻게 해야합니까?

일반적으로 두 가지 검사를 수행합니다. 하나는 JPGIS 응용 스키마에 대한 규칙을 준수하고 있는지 여부에 대해 규정된 시험 항목에 따라 시험을 실시합니다. 다른 하나는 이 응용 스키마에 기반한 공간 데이터가 이용 목적과 일치하는지 확인합니다.

응용 스키마에서 다중도가 기재되어 있지 않은 경우 어떻게 생각하면 좋을까요?

다중도가 있는 경우는 명시적으로 표시해야 하며, 기재하지 않은 경우 다중도는 1입니다.
JPGIS Ver.1.0 해설서 7 페이지 11 행에 다음과 같은 설명이 있습니다.
"또한, 속성의 다중도는 생략 가능하며, 생략되는 경우는 1이 된다."

공간 스키마

공간 스키마는 무엇입니까?

지형지물의 공간적 형상, 도형 사이의 관계를 설명하는 규칙입니다.

예를 들어, "면"은 하나 이상의 '선'으로 구성되며, '선'은 '점'으로 구성됩니다. 공간 스키마는 이 점, 선,면으로 대표되는 "지형지물을 표현하기위한 부품"이 정해져 있습니다.

구체적으로 어떤 부품이 제공되는합니까?

대표적인 것으로서 점 (GM_Point), 선 (GM_Curve),면 (GM_Surface) 등이 있습니다.
공간 데이터를 설계 할 때, 지형지물의 공간적 형상을 정의하려면, 공간 스키마에 정해진 부품을 사용해야합니다.
공간 데이터를 어떻게 이용하고 싶은지, 무엇을 알고 싶은가?에 따라 사용하는 부품을 선택합니다.

시간 스키마

시간 스키마는 무엇입니까?

지형지물의 시간에 대한 구조 및 얼개에 대한 규칙입니다.

예를 들어, 건물이라는 지형지물에 건축 연월일 및 영업 개시일 등, 시간에 대한 속성을 기술하는 방법의 규칙입니다.

시간 스키마는 어떤 부품이 제공되는 것입니까?

대표적인 것으로서 순간형 (TM_Instant)와 기간형 (TM_Period)이 있습니다.
순간형은 소위 타임 스탬프와 같은 형태이며, 기간형은 시작 시간과 종료 시간을 가지는 형태입니다.
공간 데이터를 설계 할 때, 지형지물에 시간적인 속성을 정의하는 경우에는 시간 스키마로 정해진 부품을 사용해야합니다.

인코딩

인코딩이란 무엇입니까?

응용 스키마에 정의된 내용을 바탕으로, 실제 데이터로 실체화하는 것을 말합니다. 스키마에 대해 실제 데이터 (실체)를 인스턴스라고 부르기도합니다.

JPGIS에서는 공간 데이터는 컴퓨터에서 취급하는 것을 전제로하고 있기 때문에, 컴퓨터와 소프트웨어가 액세스할 수 있도록 디지털 데이터 (코드)로 실체화하는 것을 인코딩이라 표현합니다.

JPGIS는 XML 형식으로 인코딩해야합니까?

부속서 8과 부속서 12에 XML을 사용하는 경우의 인코딩 규칙이 있습니다. JPGIS에 따른 공간 데이터를 작성하는 경우, 부속서 8 또는 부속서 12 중의 한가지 규칙을 사용하는 것이 좋습니다.

Ver.2.0에서 부속서 12이 추가되었는데, 이것은 어떤 규칙입니까?

GML (Geography Markup Language)이라는 공간 데이터를 XML을 사용하여 인코딩하기 위한 방법 중 하나입니다. GML은 국제 표준 (ISO19136)입니다. 한편, 부속서 8은 ISO19118 부속서 A (참고)를 참고로 일본이 독자적으로 규정한 인코딩 방법입니다.

JPGIS에 GML을 도입함으로써, 이용자는 인코딩 방법으로 부속서 8과 함께 GML도 사용할 수 있게 되었습니다.

Ver.2.0에서 추가 된 부속서 12 부속서 8과 비교하면 어떤 차이점이 있을까요?

부속서 8과 부속서 12은 UML 클래스 다이어그램에서 XML Schema로 매핑시키는 규칙이 다릅니다. 따라서 부속서 8에 따른 공간 데이터와 부속서 12 (GML)에 기반 공간정보 데이터는 다른 XML 문서로 표현됩니다. 부속서 12에는 표준 스키마간의 태그 비교표가 제공되어 있습니다.

Ver.2.0의 부속서 8과 Ver.1.0의 부속서 8의 차이점은 무엇입니까?

Ver.2.0의 부속서 8과 Ver.1.0 (헤세이 19 년 3 월)의 부속서 8은 UML 클래스 다이어그램에서 XML Schema로의 매핑 규칙이 일부 다릅니다. Ver.2.0의 부속서 8은 기반지도 정보에 대응하기 위해 Ver.1.0의 부속서 8에 데이터 표현 방법을 추가했습니다.

Ver.2.0에서 Ver.1.0 부속서 8로 인코딩된 공간 데이터는 어떻게 취급합니까?

Ver.1.0에 따라 생성된 공간 데이터는 Ver.2.0와 일부 다릅니다. 신규 데이터를 작성하는 경우 Ver2.0을 권장합니다. 

Ver.1.0에 따라 작성된 공간 데이터에 대해서도 계속 Ver.1.0을 기준으로 데이터를 정비 · 제공 할 수 있지만, 그 때는 JPGIS의 "버전 번호"를 표시해 주시기 바랍니다.

전자 납품 성과 항목에 "코드 목록"이 있는데, 구체적으로 어떤 것일까요?

코드 목록은 예를 들어 '기준점'이라는 지형지물의 속성으로 "등급"을 정의 할 때, 1 급, 2 급, 3 급 등으로 미리 정해진 속성 내용에서 하나를 선택하도록 응용 스키마에서 정의하고 싶을 경우에 사용합니다.

이러한 속성 값을 정의하는 방법으로는 '열거형'과 '코드목록 형'의 두 가지 방법이 있습니다. 열거형은 "1 급", "2 급"등 문자 목록 정의하는 방법으로 실제 데이터에는 이 목록에 있는 값중 하나로 저장됩니다. 열거형은 한 번 정의한 후 내용을 변경할 수 없다는 특징이 있습니다. 한편, 코드목록 형은 "1 급 = 1", "2 급 = 2"과 같이 정의하고, 실제로는 코드 번호를 저장하는 방법입니다. 코드목록 형은 열거형과 달리 나중에 코드목록의 추가, 변경, 삭제 등 편집할 수 있습니다. XML을 사용하여 인코딩시 열거형은 "XML 스키마"에 정의 내용이 수록되어 있지만, 코드 목록은 위와 같이 유연하게 변경할 수 있는 특징이 있기 때문에 공간정보의 실제 데이터와는 별도로 코드목록 만의 XML 파일을 만들 수 있습니다.

따라서 제품 사양서에 정의된 응용 스키마에 "코드 목록"이 존재하는 경우, 또 공간 데이터를 JPGIS의 부속서 8 또는 12의 XML 형식으로 인코딩하여 전자 납품 성과로 납입하는 경우, 위의 "XML 형식으로 출력 코드목록 파일"을 XML 스키마 등과 함께 납부해야합니다. 코드 목록의 부호화 방법은 JPGIS에 정해져 있습니다. 자세한 내용은 JPGIS 및 제품사양서 매뉴얼을 참조 바랍니다.

JPGIS 형식의 파일을 다른 형식으로 변환하는 무료 소프트웨어가 있나요?

국토지리원이 공개하는 것으로서 다음과 같습니다.
JPGIS 형식에서 Shape, 수치 지형도 데이터 (DM) 형식의 파일을 만들 수 있습니다.

공공 측량 뷰어 컨버터 

기반지도 정보 열람 변환 소프트웨어

제품사양서

제품사양서란 무엇입니까?

공간 데이터를 "제품"으로 파악하여, 제품의 "사양"을 상세히 기술한 것입니다.
제품사양서는 공간 데이터의 "설계도"로서의 역할과, "취급 설명서"로서의 역할 등 두 가지 역할이 있습니다.
즉, 공간 데이터를 제작하고 싶을 때와, 공간 데이터를 사용할 때 필수적인 것입니다.

제품사양서의 특징은 무엇입니까?

JPGIS 제품사양서는 국제 표준을 준수하여 데이터의 정의, 구조, 품질을 설명하고 있으며, 프로닥트 규정에 의한 데이터 작성 사양으로 이용할 수 있습니다. 제품사양서를 사용하여 프로닥트 규정으로 만들 경우, 요구되는 사양을 충족하도록 작성 방법을 스스로 생각하고 창의력을 도입하여 작업을 수행 할 수있게합니다.

제품사양서를 사용할 때의 장점은 무엇입니까?

공간 데이터의 작성을 의뢰하는 측에서는 공간 데이터의 활용 의도를 명확하게 반영할 수 있습니다.

한편 작성하는 측에서는 제품사양서에 규정된 데이터 구조와 품질을 만족하시키는 한, 새로운 기술을 적극적으로 사용할 수 있으며, 결과적으로 비용 절감으로 이어질 것을 기대할 수 있습니다.

제품사양서에는 어떤 것이 기술되어 있나요?

JPGIS에는 제품사양서에 기술해야 할 항목 (9 개) 및 그 내용이 정해져 있습니다. 구체적으로는 공간 데이터의 구조, 품질, 데이터 형식 등이 있습니다.

제품사양서를 작성할 때의 참고서는 있나요?

"공간 데이터 제품사양서 작성 매뉴얼 JPGIS"(PDF 형식 : 1.6MB)가 있습니다. 본 Web 사이트에서 다운로드받을 수 있습니다.

제품사양서를 작성하기위한 편리한 도구가 있습니까?

제품사양서 편집기라는 "공간 데이터 제품사양서 작성 지원 툴 (JPGIS 준수)" 가 있습니다. 본 Web 사이트에서 다운로드 받을 수 있으며, 사용상의 주의사항을 확인하신 후에 누구나 무료로 사용할 수 있습니다.

참고가 될 수 있는 제품 사양서가 있습니까?

국토지리원은 [기준점 측량], [지형 측량 및 사진 측량], [응용 측량] 등 다양한 분야의 공공측량용 제품사양서 (안) 을 Web 페이지에 게재하고 있습니다.

또한 현 ·시 등에 따라 각 계획기관의 Web 페이지에 게재되어 있는 경우도 있습니다.

제품사양서의 효율적인 만드는 방법이 있나요?

가장 효율적인 방법은 유사한 업무 분야의 제품사양서를 참고하여 작성하는 방법입니다.

유사한 제품사양서가 없는 경우에는 "공간 데이터 제품사양서 작성 지원 툴 (JPGIS 준수)"등을 이용하여 만들 수 있습니다. 이 도구는 이 사이트에서 다운로드 할 수 있습니다.

Ver.2.0에서 부속서 11이 (참고)에서 (규정)로 변경되었는데 어떤 영향이 있나요?

ISO19131 (데이터 제품 사양)이 국제 표준화 됨에 따라, 부속서가 참고급에서 규정급으로 바뀌었습니다. 이 부속서가 보다 강제력있는 "규정"화 되었으므로 부속서 11에 있는 기재사항을 제품사양서에 표시해야합니다.

공공 측량이라고 제품사양서를 항상 만들어야 할까요?

작업 규정 준칙은 제품 사양을 정하여야 한다고 규정되어 있습니다. (촬영 계획 등 공공측량중에도 제품사양서가 필요하지 않은 업무도 있습니다.) 제품사양서 작성은 계획기관과 합의하에 결정하시기 바랍니다.

품질

공간 데이터의 품질은 무엇입니까?

JPGIS는 공간데이터의 품질을 결정하는 요소로서 다음 5 개의 요소를 정하고 있습니다. 

· 완전성 

· 논리적 일관성 

· 위치 정확도 

· 시간 정확도 

· 주제 정확도

공간 데이터의 품질은 어떻게 평가합니까?

제품사양서에 품질 요소별로 요구하는 품질 기준을 명시하고 있습니다. 그 기준에 따라 평가하면 됩니다.

공간 데이터의 품질은 어디를 보면 알 수 있습니까?

공간 데이터의 품질 정보는 메타데이터에 서술되어 있습니다. 이 메타데이터를 보면 그 공간 데이터가 어떤 품질을 가지는 데이터인지 알 수 있습니다.

품질 평가표 작성시 품질의 5 요소는 모두 기입해야합니까?

모든 필요한 것은 아닙니다. 품질 평가 항목은 각 업무별로 계획기관과 작업기관이 합의하에 결정하시기 바랍니다.

제삼의 기관에서 검정하면 품질 평가를 대체할 수 없을까요?

제품사양서에 기재하는 품질 요구는, 데이터 제작을 계획한 기관에 의한 데이터의 사용 목적이나 제품 사양에 정의된 논의 영역 등에서 결정하는 것이므로, 제삼의 기관의 검정 결과가 그대로 품질의 판정 기준이 될 수는 없습니다. 원칙적으로는 제품사양서에 기재된 품질 요구에 따라 데이터 작성자가 품질 평가를 실시하고, 그 결과를 보고하는 것입니다.

XML 형식이 아닌 디지털 데이터도 서식 일관성 개념 일관성의 품질 평가가 필요합니까?

필요합니다. 서식 일관성, 개념 일관성은 성과품이 XML 형식이 아니더라도 디지털 데이터인만큼 반드시 실시해야 할 검사입니다. (이들은 데이터 형식이 올바른지를 확인합니다.)

예를 들어, 성과 수치 데이터 형식으로 데이터를 작성하는 경우에는, 논리적 일관성은 성과 측정값의 기준에서 정한 데이터 형식과 일치하는지 여부를 확인하고, 개념 일관성은 응용 스키마에 표시된 구조와 일치하는지 확인합니다.

참조계

좌표 참조계는 무엇입니까?

좌표 참조계란, 공간 데이터의 좌표가 지구상의 어느 위치에 있는지 식별하기 위한 틀입니다.

일본 측지계 2000 평면 직각 좌표계 제 9 계를 사용하는데, 어떻게 기록해야 할까요?

좌표 참조계 식별자로 "JGD2000 / 9 (X, Y)"라는 코드로 표시합니다. 이외의 좌표 참조계의 표시 방법에 대해서는 JPGIS "부속서 2 (규정) 좌표 참조계"를 참고하십시오.

지리식별자는 무엇입니까?

좌표가 아니라 간접적으로 위치를 알 수 있는 구조를 말합니다. 예를 들어, 우편 번호, 행정 코드 등이 구체적인 사례입니다.

지명 사전은 무엇입니까?

지명 (지리식별자)에 의해 위치를 참조하기 위해, 지리식별자에 대한 정보를 모아 놓은 것입니다.

지형지물 목록

지형지물 목록은 무엇입니까?

지형지물 목록은 공간 데이터에 포함되는 지형지물의 유형, 속성, 연관관계 및 그 정의 등을 목록으로 체계화 한 것입니다.

지형지물 목록을 정비하면, 지형지물을 정의 할 때, 기존의 지형지물의 정의를 재사용 할 수 있습니다.

지형지물 목록은 어떻게 사용합니까?

공간 데이터의 설계 할 경우. 지형지물 목록로 등록되어있는 것이 있으면, 이를 인용하여 공간 데이터의 설계를 할 수 있습니다. 즉, 지형지물 목록에 정보를 많이 등록되면,이 중에서 재사용 할 수있는 가능성이 높아지고, 설계시 노력을 절감할 수 있습니다.

커버리지

커버리지란 무엇입니까?

지면을 덮고 있는 것과 같은 것을 커버리지라고 커버리지도 두가지 종류가 있어서,, 토지 이용 등과 같이 표면으로 연속적으로 덮는 형태와, 표고 그리드 데이터와 같이 간격이 있는 점으로 매우는 형태가 있습니다.

메타데이터

메타데이터는 무엇입니까?

메타데이터는 데이터 자체가 아니라 데이터 (제품)에 대한 설명 정보입니다.

항목은 JMP로 규정되어 있습니다. 일반적으로 메타데이터는 공간 데이터를 작성 · 갱신할 때 함께 정비합니다.

클리어링 하우스는 무엇입니까?

인터넷에 메타데이터를 등록하고, 어떤 정보가 있는지 검색할 수있는 구조입니다. 원하는 공간 데이터를 찾을 때 Google이나 Yahoo와 같은 역할입니다.

메타데이터를 만들려면 어떻게 해야합니까?

국토지리원이 공개하고있는 공공측량용 메타데이터 편집기는 국토지리원의 Web 페이지에서 다운로드 할 수 있습니다.

공공측량용 메타데이터 편집기와 JMP2.0 메타데이터 편집기 (완전판)는 무엇이 다릅니까?

공공측량용 메타데이터 편집기는 마법사 형식으로 입력할 수 있는 등 공공측량용 메타데이터를 단순하게 작성할 수 있는 것이 특징입니다. 

JMP2.0 메타데이터 편집기 (완전판)는 JMP2.0에 완벽하게 준거한 메타데이터를 만들 수 있습니다. JMP2.0 메타데이터 편집기 (완전판)과 공공측량용 메타데이터 편집기 사이에는 완전 호환성은 없습니다. 

JMP2.0 메타데이터 편집기 (완전판)에서 작성하고 저장된 xml 파일을, 공공측량용 메타데이터 편집기에서 읽어들이면, 편집기의 사양상 모든 데이터를 읽을 수 없으며, "반복의 상한치를 초과하고 있기 때문에 가져올 수 없는 데이터가 있습니다."라는 메시가가 표시될 수 있습니다.

예를 들어, 공공측량용 메타데이터 편집기 "데이터 품질 정보 :보고"에서는 15 항목까지 입력할 수 있지만, 읽어들이는 파일에 16 개 이상의 항목이 기입되어 있을 경우에는 위의 메시지가 표시됩니다.

이와 같이 복수 입력 항목에서, 공공측량용 메타데이터 편집기에서는 일정한 입력 범위 (제한)이 있기 때문에, 그 때는 JMP2.0 메타데이터 편집기 (완전판)을 사용하십시오.

이미지

JPGIS에서 이미지는 어떻게 취급하는 것일까요?

JPGIS는 이미지 데이터의 형식을 결정하지 않습니다. 이미지 데이터는 일반적으로 사용되는 형식을 사용합니다.

묘화법

묘화법은 무엇입니까?

묘화법은 공간 데이터를 컴퓨터 화면에 기호로 표현할 때, 데이터와 기호를 대응시키는 방식입니다.

이에 따라 하나의 공간정보를 다양한 이미지로 지도에 표시 할 수 있습니다.

※ 공간 데이터의 지형지물을 디스플레이에 표시하기위한 기본적인 개념을 나타낸 것 뿐이며, , 실제 표준 인 JPGIS2014에서는 삭제되어 있습니다.

원문 : http://www.gsi.go.jp/GIS/jpgis-faq.html

Posted by 푸른하늘이

댓글을 달아 주세요