Lợi ích của việc sử dụng ontology:
1.19.4.1 Đặc tả kiểu thănh phần giao diện
Khi xđy dựng câc đặc tả thănh phần giao diện trín thư viện Swing, Swing đê cung cấp một danh sâch câc thănh phần giao diện được dựng sẵn vă được căi đặt chuẩn, khi cần ta có thể tạo câc lớp mở rộng (kế thừa) câc thănh phần chuẩn của Swing. Khi xđy dựng câc thănh phần đặc tả với ứng dụng Web-based ta cần định nghĩa lại câc thănh phần giao diện duy nhất để chúng trở thănh câc nguồn tăi nguyín định nghĩa câc tín kiểu thănh giao diện. Câc tín kiểu thănh phần giao diện năy có thể được sử dụng trong câc đặc tả về từng măn hình giao diện cụ thể. Mỗi kiểu thănh phần giao diện tương ứng sẽ được định nghĩa như một lớp chứa câc thuộc tính của lớp đó. Để đảm bảo tính thống nhất về qui câch của câc thănh phần ta định nghĩa một lớp cha của câc lớp mô tả câc thănh phần giao diện. Lớp cha năy đóng vai trò như một giao diện (interface) cho câc thănh phần giao diện cụ thể được căi đặt theo nó. Định nghĩa lớp cha còn cho phĩp ta hình thức hoâ tất cả câc thănh phần giao diện theo một giao diện chung để sau năy ta có thể thực hiện ĩp câc thănh phần giao diện về câc kiểu cụ thể từ câc thănh phần cha năy
Như đê trình băy trín, mỗi kiểu thănh phần được định nghĩa thănh một lớp. Việc định nghĩa câc lớp năy để đảm bảo câc thănh phần trở thănh câc nguồn tăi nguyín dữ liệu mô tả về giao diện. Cần chú ý lă một thuộc tính có thể lă thuộc tính chung của nhiều kiểu thănh phần giao diện khâc nhau. Sau đđy lă một đoạn mô tả file đặc tả kiểu thănh phần giao diện. Trong file đặc tả năy (File Interface.owl) cần chú ý :
Câc tất cả câc kiểu thănh phần đặc tả được định nghĩa thănh câc lớp vă được đặt chung văo một file duy nhất.
Lớp cha của câc thănh phần giao diện năy lă lớp Interface. Câc lớp con được định nghĩa liín hệ với lớp cha thông qua từ khoâ <rdfs:subClassOf>.
Ví dụ: định nghĩa lớp TextBox lă lớp con của lớp Interface <owl:Class rdf:ID="TextBox">
<rdfs:subClassOf>
<owl:Class rdf:about="&ontology;Interfaces#Input"/> </rdfs:subClassOf>
</owl:Class>
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 106 / 132
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
Hình 22: Mô hình kế thừa của câc kiểu thănh phần
Khi khai bâo một thuộc tính có thể hình thănh câc mối quan hệ liín kết giữa câc lớp. Nếu như một thuộc tính không phải lă một dữ liệu nguyín tố như chữ số, xđu văn bản, thì hình thănh mối quan hệ giữa lớp hiện chứa thuộc tính đó vă lớp của thuộc tính. Ví dụ định nghĩa lớp “Bệnh nhđn” có thuộc tính “bệnh” với một thể hiện cụ thể lă “Bệnh_A” lại tham chiếu đến một lớp “Bệnh” thì sẽ hình thănh mối quan hệ giữa lớp “Bệnh nhđn” vă lớp “Bệnh”. Trong ontology đặc tả năy ta định nghĩa một thuộc tính theo 2 loại
- Thuộc tính kiểu dữ liệu (Datatype property): thuộc tính năy luôn đi với một dữ liệu nguyín tố. Loại thuộc tính năy thể hiện mối quan hệ liín kết giữa một thực thể vă một giâ trị dữ liệu.
Ví dụ: <owl:DatatypeProperty rdf:ID="Enable"> <rdfs:domain rdf:resource="&ontology;Interfaces#Interface"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> </owl:DatatypeProperty>
Ví dụ năy mô tả thuộc tính qui định khả năng có hiện thị thănh phần giao diện hay không (Enable) lă một thuộc tính lă thuộc tính kiểu dữ liệu với kiểu tương ứng lă boolean (qui định tại dòng thứ 4).
- Thuộc tính đối tượng (Object property): khi dữ liệu kết hợp với thuộc tính năy lại có kiểu phi nguyín tố. Câc khai bâo năy định nghĩa mối quan hệ giữa 2 lớp hay 2 nguồn tăi nguyín dữ liệu với nhau.
Bín cạnh đó còn định nghĩa một thuộc tính chức năng (Functional property): thuộc tính chức năng lă một thuộc tính mă chỉ có thể có duy nhất một giâ trị cho mỗi thể hiện (instance). Chú ý rằng cả thuộc tính
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 107 / 132
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
kiểu dữ liệu vă thuộc tính đối tượng đều có thể được khai bâo như một thuộc tính chức năng. Hay nói chính xâc hơn lă thuộc tính chức năng có thể hình thănh mối liín kết giữa một nguồn tăi nguyín dữ liệu với một giâ trị dữ liệu vă cũng có thể hình thănh mối liín kết giữa 2 nguồn dữ liệu với nhau.
Ví dụ định nghĩa thuộc tính qui định chiều cao của thănh phần giao diện như sau:
<owl:FunctionalProperty rdf:ID="Height"> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/> <rdfs:domain rdf:resource="&ontology;Interfaces#Interface"/> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl# DatatypeProperty"/> </owl:FunctionalProperty>
Trong định nghĩa năy, một thuộc tính có kiểu dữ liệu kết hợp lă int
(qui định ở dòng thứ 2) lă một thuộc tính chức năng. Kiểu thuộc tính lă thuộc tính kiểu dữ liệu (qui định ở dòng thứ 4).
Một lớp thănh phần sẽ có thể có câc thuộc tính cơ bản như chiều dăi, kích thước, có hiện thị hay không (enable) bín cạnh đó cần có câc thuộc tính sau: - Thuộc tính script răng buộc công việc: thuộc tính năy qui định câc script được in ra trín duyệt trình của trình khâch để qui định câc bước thực hiện của công việc.
- Thuộc tính script răng buộc dữ liệu qui định câc răng buộc sự hợp lệ của dữ liệu cần thoả mên với một yíu cầu cho trước.
Sau đđy lă một đoạn ontology mô tả câc kiểu thănh phần :
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF SYSTEM "Ontology.dtd"> <rdf:RDF
xmlns="&ontology;Interfaces#"
xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 108 / 132
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="&ontology;Interfaces"> <owl:Ontology rdf:about="&ontology;Interfaces"/> <owl:Class rdf:ID="Table"> <rdfs:subClassOf rdf:resource="Interface"/> </owl:Class> <owl:Class rdf:ID="TextArea"> <rdfs:subClassOf> <owl:Class rdf:ID="Interface"/> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="Submit"> <rdfs:subClassOf> <owl:Class rdf:about="&ontology;Interfaces#Input"/> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="CheckBox"> <rdfs:subClassOf> <owl:Class rdf:about="&ontology;Interfaces#Input"/> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="Reset"> <rdfs:subClassOf> <owl:Class rdf:about="&ontology;Interfaces#Input"/> </rdfs:subClassOf> </owl:Class>
Sau đđy lă một đoạn ontology mô tả câc thuộc tính của câc thănh phần:
<owl:DatatypeProperty rdf:ID="Name">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 109 / 132
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdfs:domain rdf:resource="&ontology;Interfaces#Interface"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="Method"> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> <rdfs:domain rdf:resource="&ontology;Interfaces#Form"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="ReadOnly"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> <rdfs:domain rdf:resource="&ontology;Interfaces#Interface"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="Action"> <rdfs:domain rdf:resource="&ontology;Interfaces#Form"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:DatatypeProperty>