Tiêu chuẩn Geography Markup Language – Ngôn ngữ đánh dấu địa lý Tổng quan về GML Tiêu chuẩn GML (Geography Markup Language) – Ngôn ngữ đánh dấu địa lý là một tiêu chuẩn mã hóa thông tin địa lý dựa trên ngôn ngữ đánh dấu mở rộng XML (Extensible Markup Language) do Tổ chức Không gian địa lý (Open Geospatial Consortium - OGC) phát triển. Đây là một tổ chức quốc tế được thành lập năm 1994 với mục tiêukhuyến khích phát triển và thực thi các chuẩn mở cho nội dung về địa lý, các dịch vụ dữ liệu và chia sẻ dữ liệu thuộc Hệ thống thông tin địa lý. Tiêu chuẩn GML vừa là một ngôn ngữ mô hình hóa cho các hệ thống thông tin địa lý vừa là một định dạng trao đổi mở cho các giao dịch địa lý trên Internet. Cho đến hiện tại, GML bao gồm những phiên bản sau (Các tài liệu tham khảo của các phiên bản có thể tham khảo tại đây): - Phiên bản đầu tiên chỉ được coi là một bài khuyến nghị do một nhóm tác giả thực hiện và được đăng tải vào tháng 5 năm 2000. Phiên bản này bao gồm 3 hồ sơ về GML, trong đó 2 hồ sơ dựa trên định nghĩa kiểu tài liệu (Document Type Definition – DTD, tập các khai báo đánh dấu định nghĩa kiểu tài liệu cho họ Ngôn ngữ đánh dấu tiêu chuẩn chung (Standard Generalized Markup Language – SGML)) và một hồ sơ dựa trên khung mô tả nguồn tài nguyên (Resource Description Framework – RDF, họ các đặc tả của tổ chức W3C như mô hình Đặc tả dữ liệu (Metadata)). - Phiên bản thứ hai là GML 2 (bao gồm các phiên bản GML 2), được công bố vào tháng 2 năm 2001, thay thế phiên bản đầu tiên và thiết lập một số nguyên tắc chính của GML, thay thế cơ chế nguồn tài nguyên cho các tham chiếu từ xa sử dụng xlink:href, phát triển một số thành phần đặc tả để xử lý các mở rộng cho các cấu trúc phức tạp. - Phiên bản thứ ba là GML 3 (bao gồm các phiên bản 3), đã được công bố là tiêu chuẩn quốc tế ISO 19136:2007 vào tháng 8 năm 2007. Các đặc tả GML thuộc họ các tiêu chuẩn về thông tin địa lý, dựa trên mã hóa XML phù hợp với tiêu chuẩn ISO 19118 về trao đổi và lưu trữ các thông tin địa lý được mô hình hóa theo khung mô hình khái niệm sử dụng trong chuỗi tiêu chuẩn ISO 19100 và bao gồm cả thuộc tính không gian và phi không gian địa lý, cụ thể: ISO/TSS 19103 – Ngôn ngữ lược đồ khái niệm (các đơn vị đo, các kiểu dữ liệu cơ bản); ISO 19107 – Lược đồ không gian (các đối tượng hình học và cấu trúc liên kết); ISO 19108 – Lược đồ thời gian (các đối tượng hình học theo thời gian và cấu trúc liên kết, các hệ tham chiếu thời gian); ISO 19109 – Các nguyên tắc lược đồ ứng dụng (các đặc tính); ISO 19111 – Tham chiếu không gian (các hệ tham chiếu kết hợp); ISO 19123 – Lược đồ hình học phạm vi và các chức năng; ISO 19148 – Tham chiếu tuyến tính (được bổ sung tại phiên bản GML 3.3). Phiên bản GML 3.3 về các lược đồ mở rộng và các nguyên tắc mã hóa đã được công bố vào tháng 7 năm 2012. Phiên bản này định nghĩa các khái niệm XML được sử 1 dụng trong tập dữ liệu không gian theo thời gian, mở rộng phiên bản GML 3.2 (ISO 19136:2007). Mô hình GML Mô hình GML gốc được dựa trên Khung mô tả nguồn tài nguyên RDF của Hiệp hồi Web toàn cầu. Nó bao gồm tập các thành phần có sẵn rất phong phú được sử dụng để xây dựng nên các lược đồ ứng dụng hay các ngôn ngữ ứng dụng, cụ thể gồm: Lược đồ GML – Các nguyên tắc chung và các thành phần lược đồ cơ sở; Lược đồ GML – Xlink và các kiểu phần tử cơ bản; Lược đồ GML – Các đặc tính; Lược đồ GML – Các thành phần hình học có sẵn; Lược đồ GML – Tập hình học, kiến trúc hỗn hợp và phức hợp; Lược đồ GML – Lược đồ các hệ tham chiếu kết hợp; Lược đồ GML – Cấu trúc liên kết (topology); Lược đồ GML – Dữ liệu thời gian và các đặc tính động; Lược đồ GML – Các đơn vị đo và các giá trị; Lược đồ GML – Các hướng (directions); Lược đồ GML – Quan sát (observations); Lược đồ GML – Phạm vi (coverages). Lược đồ GML Lược đồ GML bao gồm các thành phần lược đồ XML của Hiệp hội Web toàn cầu W3C xác định các kiểu và khai báo: - Các phần tử XML để mã hóa các đối tượng GML với đặc tính riêng (identity), - Các phần tử XML để mã hóa các thuộc tính của các đối tượng GML đó, - Các thuộc tính của các đối tượng trên. Trong đó, một đối tượng GML là một phần tử XML được hình thành trực tiếp hoặc gián tiếp từ gml:AbstractGMLType; thuộc tính là một phần tử con của một đối tượng GML, có biểu diễn là xlink:href, tham chiếu đến một đặc tính. Các thành phần lược đồ cơ bản gmlBase Các thành phần lược đồ gmlBase thiết lập mô hình và cú pháp GML, cụ thể: - Một kiểu XML gốc được xuất phát từ các kiểu XML cho tất cả các đối tượng XML - Một kiểu mẫu và các thành phần cho các thuộc tính GML - Các kiểu mẫu cho các tập hợp và các dãy, các thành phần cho các tập hợp và dãy chung - Các thành phần để liên kết đặc tả dữ liệu với các đối tượng GML - Các thành phần xây dựng định nghĩa và từ điển Các đối tượng cơ sở Một phần tử thích hợp gml:AbstractObject được khai báo như sau: <element name="AbstractObject" abstract="true"/> 2 Phần tử này không được định nghĩa kiểu trước và do đó nó là XML Schema kiểu anyType. Nó được sử dụng như phần tiêu đề (head) của một nhóm các thay đổi XML Schema thống nhất về nội dung và các phần tử có nội dung đơn giản được sử dụng cho các kiểu dữ liệu trong GML, bao gồm nhóm gml:AbstractGML. Một tập dữ liệu GML (còn được gọi là tài liệu dữ liệu) được biểu diễn bởi một phần tử đối tượng, đối tượng này có thể thuộc bộ các đối tượng GML. Các thành phần cơ bản nhất thể hiện đối tượng có đặc tính riêng được mô tả như sau: <element name="AbstractGML" type="gml:AbstractGMLType" abstract="true" substitutionGroup="gml:AbstractObject"/> <complexType name="AbstractGMLType" abstract="true"> <sequence> <group ref="gml:StandardObjectProperties"/> </sequence> <attribute ref="gml:id" use="required"/> </complexType> <group name="StandardObjectProperties"> <sequence> <element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:description" minOccurs="0"/> <element ref="gml:descriptionReference" minOccurs="0"/> <element ref="gml:identifier" minOccurs="0"/> <element ref="gml:name" minOccurs="0" maxOccurs="unbounded"/> </sequence> </group> Phần tử khái niệm gml:AbstractGML là “Một đối tượng GML bất kỳ có đặc tính riêng”. Nó là phần tiêu đề của một nhóm thay đổi XML Schema, nhóm này có thể chứa phần tử bất kỳ chẳng hạn như: đặc tính GML, đối tượng khác với đặc tính riêng. Gml:AbstractGML và gml:AbstractGMLType chỉ ra một kiểu mẫu cơ sở được sử dụng trong lược đồ GML khi mà mỗi kiểu đối tượng GML được biểu diễn bằng một khai báo phần tử chung, có định nghĩa kiểu XML Schema. Tên của một phần tử thể hiện một đối tượng GML chỉ ra ý nghĩa của đối tượng. Tên các phần tử chung trong GML bao gồm gml:AbstractObject, gml:AbstractGML, gml:AbstractFeature, gml:AbstractValue, gml:AbstractCoverage, gml:AbstractTopology và gml:AbstractCRS. Các phần tử con và thể hiện (attributes) XML của một đối tượng GML là các thuộc tính (properties) của đối tượng đó. Do đó, một đối tượng được biểu diễn bởi một phần tử gml:AbstractGML có 5 thuộc tính gml:identifier, gml:description, gml:descriptionReference, gml:name và gml:id. Thuộc tính (properties) GML Thuật ngữ “thuộc tính“ được sử dụng để tham chiếu đến một thuộc tính GML, là một đặc điểm (characteristic) của một đối tượng GML. Một phần tử trong một tài liệu GML hay một dòng dữ liệu là một thuộc tính GML khi và chỉ khi nó là một phần 3 tử con của một phần tử đối tượng GML. Ý nghĩa của mỗi thuộc tính sẽ được chỉ ra bởi tên của mỗi phần tử. Các đối tượng GML có thể có rất nhiều thuộc tính khác ngoài những thuộc tính từ gml:AbstractGMLType. Một thuộc tính có thể được định nghĩa có cả nội dung đơn giản và phức tạp. Một thuộc tính có nội dung đơn giản là một kiểu nội dung đơn giản XML, là trường hợp các phần tử thuộc tính tiêu chuẩn gml:description và gml:name. Một thuộc tính có nội dung phức tạp chứa kiểu nội dung phức tạp XML Schema. Các phần tử thuộc tính có thể sử dụng 2 phương thức sau: - inline: giá trị của thuộc tính được thể hiện trực tiếp, là nội dung của phần tử thuộc tính. Phương thức này được sử dụng cho các thuộc tính tiêu chuẩn gml:name và có thể được sử dụng cho gml:description. - by reference: giá trị của thuộc tính là có sẵn và được đặc trưng bởi giá trị của xlink:href trên phần tử thuộc tính. Phương thức này được sử dụng cho thuộc tính tiêu chuẩn gml:descriptionReference. Các thuộc tính tiêu chuẩn của đối tượng GML Các kiểu lược đồ XML cho tất cả đối tượng GML đều hình thành trực tiếp hay gián tiếp từ gml:AbstractGMLType, do đó, tất cả các đối tượng GML thừa hưởng các thuộc tính tiêu chuẩn chứa trong mô hình nội dung gml:AbstractGMLType. Nếu giá trị của thuộc tính là một mô tả kiểu văn bản về đối tượng, gml:description, nó sẽ sử dụng gml:StringOrRefType là mô hình nội dung. Ví dụ: <element name="description" type="gml:StringOrRefType"/> Nếu giá trị của thuộc tính là một mô tả kiểu văn bản từ xa về đối tượng, nó sử dụng xlink:href của thuộc tính gml:descriptionReference để tham chiếu. Ví dụ: <element name="descriptionReference" type="gml:ReferenceType"/> Thuộc tính gml:name thường là tên có tính chất mô tả, sử dụng mô hình nội dung gml:CodeType. Một đối tượng có thể có nhiều tên, thường được đặt bởi nhiều tác giả khác nhau, mỗi tác giả được chỉ ra bởi giá trị codeSpace, ví dụ: <element name="name" type="gml:CodeType"/> Trường hợp tên do một tác giả đặt và duy trì, được gọi là định danh (identifier), nó được sử dụng trong các tham chiếu đến đối tượng. Khi đó, codeSpace sẽ được cung cấp cụ thể và định danh sẽ có tính duy nhất, ví dụ: <element name="identifier" type="gml:CodeWithAuthorityType"/> Thuộc tính gml:id hỗ trợ việc xử lý các phần tử XML biểu diễn một đối tượng GML, nó có tính bắt buộc cho tất cả các đối tượng GML, ví dụ: <attribute name="id" type="ID"/> Thuộc tính là kiểu ID của XML, vì thế nó có tính duy nhất trong tài liệu XML. 4 Đặc tả dữ liệu (metadata) Để liên kết đặc tả dữ liệu được mô tả bởi lược đồ XML Schema bất kỳ với một đối tượng GML, cần định nghĩa một phần tử thuộc tính có mô hình nội dung từ gml:AbstractMetadataPropertyType. Giá trị của mỗi thuộc tính này sẽ là đặc tả dữ liệu, mô hình nội dung của mỗi kiểu thuộc tính sẽ như sau: <complexType name="AbstractMetadataPropertyType" abstract="true"> <sequence/> <attributeGroup ref="gml:OwnershipAttributeGroup"/> </complexType> Kiểu thuộc tính từ gml:AbstractMetadataPropertyType sẽ tuân theo một trong các kiểu mẫu đặc tả cho các kiểu thuộc tính GML. Ứng dụng GML cung cấp nhiều loại đối tượng cho việc mô tả địa lý bao gồm các đặc tính địa lý (geographic feature), hệ tham chiếu kết hợp (coordinate reference system), đối tượng hình học (geometry), cấu trúc liên kết (topology), thời gian (time), đơn vị đo và tổng quát hóa dữ liệu, do đó, GML được dùng để mô hình hóa (modeling), truyền tải (transport), lưu trữ các thông tin địa lý như các điểm mạng, các tuyến đường, các hình ảnh, thông tin định vị... Trong Thông tư số 22/2013/TT-BTTTT ngày 23 tháng 12 năm 2013 của Bộ trưởng Bộ Thông tin và Truyền thông Ban hành Danh mục tiêu chuẩn kỹ thuật về ứng dụng công nghệ thông tin trong cơ quan nhà nước quy định Bắt buộc áp dụng GML phiên bản 3.3 và được xếp vào nhóm Tiêu chuẩn về tích hợp dữ liệu. Đặng Thị Thu Hương – Cục Tin học hóa 5