Trong vài năm gần đây đã có rất nhiều tác phẩm viết về đề tài định hướng đối tượng và các đề xuất ban đầu về sự nghi thức hóa của các đối tượng có kết cấu phức tạp (Batory and Buchmann 1984) đã được phát triển lên thành các miêu tả chi tiết về các công cụ để mô hình hóa hoạt động của các đối tượng. Do vẫn còn tồn tại sự bất đồng giữa các nhà nghiên cứu về chi tiết của một số khái niệm trong lĩnh vực mô hình hóa định hướng-đối tượng nên phần này chỉ cố gắng tập hợp các ý tưởng chủ đạo về việc nâng cao mô hình về mặt ngữ nghĩa với các khái niệm chủ yếu của việc kế thừa và lan truyền. Mô hình đầu tiên mô tả sự chia nhánh các thực thể trong hệ thống tổng quát hóa trong khi mô hình thứ hai đề cập tới vấn đề giá trị trong hệ thống liên kết. Đôi khi việc nhân giống cũng được gọi là kế thừa theo hướng đi lên, tuy nhiên cần hiểu rằng chúng là hai khái niệm hoàn toàn khác nhau và cần phải được phân biệt rõ ràng.
1.2.4.1 Sự kế thừa
Trong một hệ đẳng cấp tổng quát hóa, đặc tính và phương pháp của lớp con phụ thuộc vào cấu trúc và đặc tính của một hoặc nhiều lớp cha. Kế thừa là một phương pháp xác định một lớp dưới dạng một hoặc nhiều lớp tổng quát khác. Các đặc tính chung giữa lớp và các lớp con của nó chỉ được xác định một lần duy nhất (đối với lớp cha) và kế thừa cho tất cả các đối tượng của lớp con. Các lớp cha có thể có các đặc điểm và hoạt động riêng biệt khác mà lớp cha không hề có, tuy nhiên chắc chắn rằng lớp con có toàn bộ các đặc điểm và hoạt động của lớp cha. Hoạt động của lớp cha là tương thích giữa các đối tượng của lớp cha và toàn bộ các lớp con của nó. Mỗi hoạt động trên một đối tượng của lớp cha có thể được thực hiện trên lớp con và ngược lại. Tuy nhiên các hoạt động được chỉ định cụ thể cho lớp con lại không tương thích cho các đối tượng của lớp cha.
34 Việc thực hiện một hoạt động chung cho một vài lớp có thể là rất khó cho mỗi lớp, nhưng lớp cha buộc phải có các đặc tính chung. Ví dụ, tọa độ hai-chiều và ba-chiều đều đại diện cho ĐIỂM. Từ lớp cha này, cả 2 lớp con là ĐIỂM 2 CHIỀU và ĐIỂM 2 CHIỀU đều kế thừa các hoạt động như tính toán khoảng cách và hướng giữa 2 điểm. Các hoạt động này được thực hiện khác nhau, tuy nhiên quan sát từ bên ngoài có thể thấy chúng hành động giống nhau nhìn từ giác độ khoảng cách và hướng
Đối với đại số học, một lớp cha là một điểm giao nhau của các tiên đề của tất cả các lớp con, hay ngược lại, một lớp con bao gồm tất cả các tiên đề của lớp cha cộng thêm một vài đặc điểm riêng của nó. Để duy trì tính đơn giản như trên, cần loại trừ trường hợp một lớp con chỉ kế thừa một số bộ phận của hoạt động lớp cha đưa ra. Nếu không thì những quy tắc phức tạp cho các trường hợp ngoại lệ phải được áp dụng
1.2.4.1.1 Đơn kế thừa
Kế thừa có thể hoàn toàn theo thứ tự, do đó nó thường được đề cập tới như đơn kế thừa. Đơn kế thừa đòi hỏi bất kỳ lớp nào cũng chỉ có nhiều nhất một lớp cha trực tiếp. Sự hạn chế này có nghĩa rằng mỗi lớp con chỉ thuộc về một nhóm kế thừa đơn lẻ và rằng một lớp không thể thuộc về nhiều nhóm kế thừa khác nhau. Ví dụ sau đây cho thấy sự kế thừa cùng với kế thừa tổng quát hóa (Hình 7). NHÀ Ở là lớp cha chung, còn NHÀ Ở THÀNH THỊ và NHÀ Ở NÔNG THÔN là các lớp con cụ thể. Tất cả đặc tính và hoạt động của lớp NHÀ Ở được 2 lớp con của nó kế thừa. Ví dụ, khách trọ và nhà nghỉđều liên kết với lớp NHÀ Ở và kế thừa từ NHÀ Ở THÀNH THỊ và NHÀ Ở NÔNG THÔN. Mặt khác, các hoạt động được xác định cụ thể cho lớp con không thích hợp cho các đối tượng của lớp cha. Chẳng hạn, điểm-đỗ-tàu-điện-ngầm-kế-tiếp là một đặc tính chỉ phù hợp cho lớp con đó mà thôi
35 Đặc tính chuyển giao của kế thừa nhằm ám chỉ rằng bất cứ đặc tính nào cũng phải được thông qua không chỉ từ lớp cha đến các lớp con trực tiếp của nó mà còn đến cả các lớp con cấp thấp hơn… Ví dụ, các đặc tính của NHÀ CỬA như địa chỉ và chủ sở hữu được kế thừa từ lớp con NHÀ Ở và cũng được chuyển giao đến các lớp con cấp 2 là NHÀ Ở THÀNH THỊ và NHÀ Ở NÔNG THÔN
Hình 2.9: Thuộc tính địa chỉđược kế thừa từ lớp BUILDING xuống các lớp con của nó.
1.2.4.1.2 Đa kế thừa
Cấu trúc của một kế thừa trực tiếp là một hình mẫu lý tưởng và thường không thể áp dụng được vào thực tế. Hầu hết các “hierarchies” đều có một số ngoại lệ non-hierarchical, ở đó một lớp con có nhiều hơn một lớp cha đơn lẻ và trực tiếp. Do vậy, hierarchies thuần nhất không phải luôn luôn là một cấu trúc thích hợp đối với kế thừa. Thay vào đó, khái niệm vềđa kế thừa cho phép một kế thừa chuyển các đặc tính từ một số lớp ở bậc cao hơn vào một lớp. Cấu trúc này không phải là hierarchical, bởi xét về mặt quan hệ cha mẹ – con cái thì một đứa trẻ có thể có đến vài cha mẹ. Ở trường hợp đơn giản nhất của đa kế thừa, một lớp con kế thừa các đặc tính từ 2 lớp cha khác nhau. Ví dụ như một LANDPARCEL có các vai trò khác biệt: một TAXABLEITEM hay một REALSTATEOBJECT.
36
Hinh 2.10: Lớp LANDPARCEL được đa kế thừa từ lớp TAXABLEITEM và REALESTATEOBJECT.
Một ví dụ phức tạp hơn trong lĩnh vực GIS sẽ minh họa rõ hơn cách các đa kế thừa kết hợp với nhau. Lần kế thừa đầu tiên được xác định bởi sự phân chia các mắt xích vận tải thành MẮT XÍCH NHÂN TẠO và MẮT XÍCH TỰ NHIÊN. Đường cao tốc, kênh đào được coi là các mắt xích nhân tạo, còn sông suối là mắt xích tự nhiên. Các ao hồ, kênh rạch, và sông suối tạo thành một hierarchy thứ hai, trong đó 2 loại sông suối được phân biệt: NAVIGABLERIVERS and UNNAVIGABLERIVERS. Các lớp có đặc tính từ cả 2 hierarchies là KÊNH ĐÀO (tức các mắt xích vận tải nhân tạo và các WATERBODIES) và NAVIGABLERIVERS (bao gồm các sông hồ và các mắt xích vận tải tự nhiên). Chúng ta không thể so sánh 2 hierarchies này với nhau bởi một WATERBODY không nhất thiết phải là một mắt xích vận tải, và ngược lại, không phải tất cả các mắt xích vận tải đều là một WATERBODY. Tuy nhiên 2 hierarchies đều có các phân lớp chung, bởi kênh đào vừa là WATERBODIES và các mắt xích vận tải nhân tạo, còn NAVIGABLERIVERS vừa là sông suối vừa là mắt xích vận tải tự nhiên. Các lớp khác như đường cao tốc hay ao hồ thì chỉ thuộc về một hierarchy đơn liên kết trong giản đồ này mà thôi.
37
Hình 2.11: Một ví dụ về GIS sử dụng đa kế thừa.
Các xung đột liên quan đến vấn đềđịnh danh hoặc kế thừa đã thu hút được rất nhiều sự chú ý trong thời gian qua. Nếu một lớp có vài liên lớp, nó có thể kế thừa nhiều hoạt động riêng biệt đồng âm (cùng 1 tên) nhưng lại mang nhiều ý nghĩa khác nhau. Ví dụ như một mảnh đất vừa mang giá trị như một bất động sản, vừa mang giá trị là một đối tượng chịu thuế. Cả 2 giá trị đều dựa trên những đánh giá khác nhau và được sử dụng cho những mục đích khác nhau. Trong đơn kế thừa tồn tại một quy tắc đơn giản để giải quyết những xung đột vềđịnh danh: ưu tiên cho phương thức cụ thể nhất (ví dụ như phương thức có mối liên hệ với liên lớp chi tiết nhất). Sự lựa chọn này không nhất thiết phải bắt buộc đối với hình mẫu, tuy nhiên chí ít đó cũng là một quy tắc đơn giản và nhất quán. Đối với đa kế thừa, không tồn tại những quy tắc đơn giản đó. Thông thường, xung đột được giải quyết bằng việc xác định những quy tắc ưu tiên cho các phương thức theo thứ tự chúng được sắp xếp trong định nghĩa dữ liệu. Tuy nhiên điều này không được coi là một giải pháp hợp lý cho giá trị MẢNH ĐẤT. DO 2 định danh đó miêu tả 2 đặc tính khác nhau nên cần phải phân biệt chúng bằng cách gắn cho mỗi định danh đó một định danh lớp, ví dụ như REALESTATEOBJECT.value và TAXABLEITEM.value
1.2.4.1.3 Kế thừa cho mô hình hệ thống thông tin địa lý
Thông thường, một GIS chứa đựng nhiều lớp cụ thể các đối tượng như CITIES, RIVERS, ROADS, BUILDINGS, HOUSEOWNERS,
38 PARCELS, SOILS và các phân lớp riêng biệt của chúng. Một số hoạt động nhất định được liên kết tới mỗi lớp. Ví dụ, chủ đất bán đất, một con đường mới được mở, hay một tòa nhà bị đổ… Một vài hoạt động trong số này là khá quen thuộc, chẳng hạn hoạt động xác định rằng mọi thành phố nằm trong một hạt hay mọi tòa nhà của một thành phố đều có thể được hiểu như là hoạt động hình học bên trong. Hoạt động nhận biết và miêu tả các đối tượng có các hoạt động chung tạo thành một trong những mục đích của mô hình khái niệm, công cụ cho phép mô hình của người sử dụng trong thế giới mini của chúng được ứng dụng với sự rườm rà được giảm thiểu ở mức tối đa.
Một bộ phận của mô hình ứng dụng là việc xác định một tập hợp các lớp như là sự trừu tượng hóa các đối tượng có các đặc tính chung. Đối với mỗi lớp, các hoạt động và các mối liên hệ phù hợp phải được xác định. Ví dụ, lớp NHÀ CỬA có hoạt động onParcel cho phép kiểm tra liệu một tòa nhà có nằm trong một khu đất nào đó hay không. Bởi khái niệm bên trong được áp dụng cho nhiều đối tượng, chẳng hạn như THÀNH PHỐđối với HẠT
Kế thừa là một phương thức hiệu quả để tạo mô hình như những tình huống trong GIS, chính thức hóa cấu trúc và các đặc điểm của lớp đối tượng. Nhờ việc định nghĩa một liên lớp chung cho mỗi khái niệm cụ thể, các đặc tính chung có thể được định nghĩa trong một lớp cấp cao đơn nhất và kế thừa đến các lớp trong ứng dụng GIS. Ví dụ, liên lớp HÌNH HỌC định nghĩa hình học với các đặc điểm như vị trí, mối quan hệ không gian như lân cận, giao nhau, khoảng cách, định hướng… Một lớp trong mô hình người sử dụng có thể được định nghĩa như một phân lớp của hình học, kế thừa toàn bộ các đặc tính này. Ví dụ, lớp NHÀ ĐẤT là một đối tượng KHÔNG GIAN. NHÀ ĐẤT có thểđược miêu tả như một phân lớp của HÌNH HỌC và kế thừa tất cả các đặc tính của không gian. Chúng ta cũng có thể định nghĩa các đặc tính khác theo cách tương tự. Chẳng gian, các đặc tính cơ sở dữ liệu như tính bền bỉ, đa truy cập, điều khiển giao dịch có thể kế thừa từ một liên lớp Persistent. Do đó các hoạt động cơ sở dữ liệu chung như lưu trữ, xóa, truy vấn hay chỉnh sửa được xác định cho lớp PERSISTENT và được chuyển đến các lớp đối tượng cụ thể. Nếu lớp BUILDING là một lớp PERSISTENT thì các Building sẽ có thể được lưu trữ, xóa, truy vấn hay chỉnh sửa
39
Hình 2.12: Lớp BUILDING kế thừa thuộc tính không gian từ lớp cha GEOMETRIC.
Hiển nhiên là mô hình kiểu này đòi hỏi quy trình đa kế thừa. Một lớp có thể có nhiều đặc tính khác nhau được kế thừa. Các đặc tính quan trọng của GIS là PERSISTENT cung cấp cơ sở dữ liệu, GEOMETRIC kế thừa các khái niệm hình học chung, GRAPHICAL cung cấp các phương pháp hiển thịđồ họa, và TEMPORAL đối với sự miêu tả lịch sử dữ liệu. Ví dụ, nhà cửa với các khái niệm về hình học, địa lý và cơ sở dữ liệu có thể được mô hình hóa bằng cách tạo ra lớp Nhà cửa với các đặc tính nhưđịa chỉ và chủ sở hữu, rồi kế thừa các đặc tính về Geometric, Graphical, and Persistent từ các liên lớp tương ứng.
Hinh 2.13: Lớp BUILDING kế thừa nhiều thuộc tính từ các lớp cha của nó.
1.2.4.2 Sự lan truyền
Những đối tượng phức tạp thường không tồn tại cô lập và có một số biến đặc trưng khác mà những biến đó phụ thuộc vào biến của những đối tượng. Chẳng hạn như, trong quá trình tập hợp các hạt để tạo thành một thực thể lớn hơn, đối tượng hỗn hợp phụ thuộc vào biến của các thuộc tính của thành phần cấu tạo nên nó. Sự phụ thuộc này có ý nghĩa và để đảm bảo sựđộ đặc và tính thống nhất toàn vẹn, việc sắp xếp chúng đúng
40 thứ tự là hết sức quan trọng. Tất nhiên, một đối tượng hỗn hợp có thể có những biến đặc thù và độc lập so với các biến của các thành phần cấu thành. Đối lập với các cách sắp xếp không liên kết mấy mà đòi hỏi sự lưu trữ dư thừa của những biến như vậy, mô hình hướng đối tượng cho phép các đối tượng có những đặc tính với các giá trị mà phụ mà phụ thuộc vào những biến của các đối tượng khác và tạo sự phụ thuộc mãi mãi. Cách thức gắn kết như thế là phổ biến hơn, vì nó tạo ra tính toàn vẹn bằng sự cưỡng ép. Những biến có nguồn gốc như vậy thường miêu tả đặc tính thống kê hay hình học. Đặc biệt là ở GIS, một lượng lớn biến mặc định ở một cấp độ của sự trừu tượng phụ thuộc vào các biến của mức độ khác và phải có nguồn gốc từ những biến mặc định đó. Khi kết hợp các dữ liệu từng vùng và từng địa phương, khái niệm sắp xếp dữ kiện ở các mức độ phân giải phải được sử dụng để tạo ra sự gắn kết giữa các biến phụ thuộc. Chẳng hạn như, dân cư một khu dân cư phụ thuộc vào
Hình 2.14: Dân số của một quốc gia được lấy từ dân số của các vùng
Trong khi sự kế thừa thể hiện các đặc tính của phân lớp (các loại và các hoạt động), sự truyền bá miêu tả cách thức một biến của đặc tính của một loại bắt nguồn từ các đặc tính của loại khác như thế nào (Egenhofer and Frank 19986). Ý niệm truyền bá (phổ biến) thỉnh thoảng được dùng cho làm mô hình các hành vi của hoạt động như là copy, phá huỷ, in, lưu lại, đối với các đối tượng hỗn hợp và các hoạt động này truyền cho các thành phần cấu tạo nên nó (Rumbaugh 1988), và độ gắn kết của hành động (Ellis et al.1990). Tại đây, sự phổ biến miêu tả sự phụ thuộc theo hướng đảo chiều - từ các bộ phận cấu thành tạo nên đối tượng hỗn hợp. Các định nghĩa chính thức về sự phổ biến, thể hiện được sự khác nhau giữa di truyền và phổ biến, đã được đưa ra dưới dạng (Egenhofer và Frank 1989; Êgenhofer và Frank 1990) và cũng là một phần của đại số học tổng hợp dành cho đối tượng phức tạp (Shaw and Zdonik 1989, Beeri and Kornatzky 1990). Có thể có nhiều cách để suy luận ra một biến, một biến có thể được ghi lại rõ ràng và thậm chí nếu nó có thể sinh ra từ các biến khác. Có thể cần thiết để giải quyết sự khác biệt và các lỗi do sự dư thừa như thế, chẳng hạn như bằng việc đánh giá chất lượng của những kết quả khác nhau
41 Lan truyền trở nên tầm thường nếu nhưđối tượng phức tạp ngẫu nhiên bao gồm một phần riêng lẻ và biến của sự kết tập chỉ tới biến đơn; tuy nhiên, trong hầu hết các trường hợp lan truyền bao gồm các biến của các bộ phận. Nếu hơn một biến đơn cấu thành nên biến có nguồn gốc từ biến đơn, sự kết hợp của các biến phải được miêu tả bằng chức năng kết tập.