: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
I.22. HƯỚNG PHÁT TRIỂN
• Nghiên cứu khả năng phát hiện và tự động cập nhật tri thức trong hệ thống từ các nguồn thông tin trên internet.
• Nghiên cứu khả năng tích hợp giữa ontology mitani với các ontology cho quản lý tri thức trong doanh nghiệp hiện nay để có thể tạo ra và sử dụng một ontology chung, mang lại nguồn tri thức khổng lồ chia sẻ qua các doanh nghiệp với nhau.
• Nghiên cứu về vấn đề biểu diễn tri thức, cho phép biểu diễn mang tính ngữ
TÀI LIỆU THAM KHẢO
1. RDF Resource Description Framework.http://www.w3c.org/RDF/
2. Liana Razmerita, Albert Angehrn1 and Alexander Maedche. “Ontology-based User Modeling for Knowledge Management Systems”
3. Peter Mika, Hans Akkermans. Analysis of the State-of-the-Art in Ontology-based Knowledge Management
4. York Sure, Hans Akkermans, Jeen Broekstra,.... On-To-Knowledge: Semantic Web Enabled Knowledge Management
5. Sheng-Tun Li, Huang-Chih Hsieh, I-Wei Sun. An Ontology-based Knowledge Management System for the Metal Industry
6. http://protege.stanford.edu/plugins/owl/xsp.html
7. http://www-sop.inria.fr/acacia/soft/corese/manual/#coreseapi 8. http://www.w3.org/TR/xslt
PHỤ LỤC 1: CÚ PHÁP CỦA SPARQL
1. Cú pháp cho thuật ngữ RDF 1.1. Cú pháp của IRI
Các thuật ngữ được giới hạn trong các dấu “<>” là các tham chiếu IRI; tất nhiên trừ các dấu đó ra. Tham chiếu IRI thay thế cho các IRI, trực tiếp hoặc gián tiếp đến IRI cơ bản. IRI là khái quát của URI. Các thuật ngữ của SPARQL chỉ chứa các IRI.
Cú pháp SPARQL cung cấp 2 cơ cấu rút gọn cho các IRI: tên tiền tố và IRI tương đối.
a. Tên tiền tố
Từ khóa PREFIX liên kết một nhãn tiền tố với một IRI. Tên tiền tố là nhãn tiền tố và phần cục bộ, ngăn cách nhau bằng dấu “:”. Tên tiền tố được ánh xạ với một IRI bằng cách nối IRI tương ứng với tiền tố và phần cục bộ. Nhãn tiền tố hoặc phần cục bộ đều có thể rỗng.
Ví dụ: PREFIX book: <http://example.org/book/> book là nhãn tiền tố; http://example.org/book/ là IRI.
Tên book:book1 là tên tiền tố với nhãn là book, phần cục bộ là book1, nó được ánh xạ đến IRI: http://example.org/book/book1
b.IRI tương đối:
IRI tương đối được kết hợp với IRI cơ bản tạo thành một URI. Từ khóa BASE định nghĩa một IRI cơ bản để kết hợp với các IRI tương đối.
Các khai báo sau đều chỉ cùng một IRI: http://example.org/book/book1
BASE <http://example.org/book/> <book1>
PREFIX book: <http://example.org/book/> book:book1
1.2.Cú pháp cho Literal
Cú pháp chung cho các Literal là một xâu, được đặt trong 2 dấu nháy đôi “ ... “, hoặc 2 dấu nháy đơn ‘ ... ‘, cùng với một thẻ ngôn ngữ (được khai báo bởi ký tự @) hoặc một kiểu dữ liệu IRI hay tên tiền tố (khai báo bởi ^^).
Để cho thuận tiện, các số nguyên có thể được viết trực tiếp (không cần phải có dấu nháy hay một kiểu dữ liệu IRI rõ ràng), và được hiểu như literal mẫu của kiểu dữ liệu xsd:interger; các số thập phân mà bên trong có dấu ‘.’ nhưng không có số mũ được dịch như xsd:decimal; và các số mà có số mũ được dịch như xsd:double. Giá trị của kiểu xsd:boolean cũng có thể được biết là true hay false.
Để thuận tiện cho việc viết giá trị literal mà có chứa các dấu nháy hoặc dài và chứa các ký tự đầu dòng. SPARQL cung cấp thêm các dấu nháy trong đó các literal được bọc trong 3 dấu nháy đơn hay nháy đôi.
Một số ví dụ về cú pháp literal trong SPARQL:
'chat'@fr với thẻ ngôn ngữ "fr"
"xyz"^^<http://example.org/ns/userDatatype>
"abc"^^appNS:appDataType
"""The librarian said, "Perhaps you would enjoy 'War and Peace'.""""
1, tương tự với "1"^^xsd:integer
1.3, tương tự với "1.3"^^xsd:decimal
1.0e6, tương tự với "1.0e6"^^xsd:double
true, tương tự với "true"^^xsd:boolean
false, tương tự với "false"^^xsd:boolean
1.3 Cú pháp cho các biến truy vấn
Các biến truy vấn trong các truy vấn SPARQL có phạm vi toàn cục; được phép dùng tên biến tại bất cứ đâu trong một truy vấn và coi như cùng một biến. Các biến được bắt đầu bằng dấu “?” hoặc “$”, và 2 ký tự này không phải thuộc tên biến. Trong 1 truy vấn, biến $varName và ?varName xác định cùng 1 biến.
1.4 Cú pháp cho các nút rỗng
Các nút rỗng trong mô hình đồ thị có vai trò như các biến không được đánh dấu, không có các tham chiếu đến các nút rỗng cụ thể trong dữ liệu đang được truy vấn.
Các nút rỗng được biểu thị bằng cả 2 dạng nhãn: như “_:abc” hay dạng rút gọn “[]”. Nút rỗng chỉ được dùng 1 lần trong cú pháp truy vấn thường có nhãn “[]”. Một nút rỗng duy nhất sẽ được sử dụng để tạo thành mô hình bộ 3. Nhãn của nút rỗng được viết là “_:abc” cho các nút rỗng có nhãn là abc. Cùng một nút rỗng không thể sử dụng trong 2 mô hình đồ thị cơ sở bên trong cùng 1 truy vấn.
Cấu trúc [:p :v] có thể được sử dụng trong các mô hình bộ 3. Nó tạo ra một nhãn nút rỗng được dùng như chủ ngữ cho tất cả các cặp vị ngữ - tân ngữ. Nút rỗng được tạo ra cũng có thể được dùng cho các mô hình bộ 3 khác trong các vị trí chủ ngữ và tân ngữ.
The [:p :v] construct can be used in triple patterns. It creates a blank node label which is used as the subject of all contained predicate-object pairs. The created blank node can also be used in further triple patterns in the subject and object positions.
Hai dạng sau đây: [ :p "v" ] .
[] :p "v" .
Cấp phát một nhãn nút rỗng duy nhất (ờ đây là “b57”) và tương đương như các viết sau:
_:b57 :p "v" .
Nhãn nút rỗng được tạo ra đó có thể dùng như là chủ ngữ hoặc tân ngữ trong các mô hình bộ 3 khác.
Ví dụ chủ ngữ: [ :p "v" ] :q "w" . Tương đương với:
_:b57 :p "v" . _:b57 :q "w" . Và ví dụ tân ngữ: :x :q [ :p "v" ] .
Tương đương với 2 mô hình bộ 3 sau: :x :q _:b57 .
_:b57 :p "v" .
2. Cú pháp cho các mô hình bộ 3.
Các mô hình bộ 3 được viết như một danh sách của CN, VN và TN. Có một số cách viết rút gọn lại truy vấn. Ví dụ: các truy vấn sau là như nhau:
2.1 Danh sách Vị ngữ - Tân ngữ
Mô hình bộ 3 với một chủ ngữ chung có thể được viết sao cho chủ ngữ chỉ phải viết 1 lần và được sử dụng trong các mô hình bộ 3 khác bằng cách dùng dấu “;”
Ví dụ viết như sau:
Hoàn toàn giống với viết:
2.2 Danh sách tân ngữ.
PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?title
WHERE { <http://example.org/book/book1> dc:title ?title } PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX : <http://example.org/book/> SELECT $title
WHERE { :book1 dc:title $title } BASE <http://example.org/book/>
PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT $title
WHERE { <book1> dc:title ?title }
?x foaf:name ?name ; foaf:mbox ?mbox.
?x foaf:name ?name . ?x foaf:mbox ?mbox .
Nếu các mô hình bộ 3 có cùng chủ ngữ và vị ngữ, thì các tân ngữ có thể viết cách nhau bằng dấu “,”.
Ví dụ: 2 cách viết sau là như nhau:
Danh sách tân ngữ có thể kết hợp với danh sách vị ngữ - tân ngữ: Ví dụ: 2 cách viết sau là như nhau:
2.3 Tập hợp RDF
Một tập hợp RDF có thể được biểu diễn bằng mô hình bộ 3, sử dụng cú pháp “(thành phần 1, thành phần 2…)”. Dạng “()” là một cách để thay cho IRI
http://www.w3.org/1999/02/22-rdf-syntax-ns#nil. Khi sử dụng những thành phần tập hợp, như (1 ?x 3 4), thì bộ ba thành phần với các nút trống(blank node) sẽ được dùng cho tập hợp đó. Nút trống ở đầu của một tập có thể được dùng làm chủ ngữ, hoặc bổ ngữ trong những bộ ba khác. Những nút trống được xác định nhờ cú pháp tập hợp sẽ không xuất hiện ở những vị trí khác trong câu truy vấn.
Ví dụ:
là cú pháp của:
Chú ý rằng b0, b1, b2 và b3 sẽ không xuất hiện nữa trong câu truy vấn. Tập hợp RDF có thể được lồng vào hoặc bao hàm những dạng khác:
?x foaf:nick "Alice" , "Alice_" . ?x foaf:nick "Alice" .
?x foaf:nick "Alice_" .
(1 ?x 3 4) :p "w" .
?x foaf:name ?name ; foaf:nick "Alice" , "Alice_" .
?x foaf:name ?name. ?x foaf:nick "Alice" . ?x foaf:nick "Alice_" . _:b0 rdf:first 1 ; rdf:rest _:b1 . _:b1 rdf:first ?x ; rdf:rest _:b2 . _:b2 rdf:first 3 ; rdf:rest _:b3 . _:b3 rdf:first 4 ; rdf:rest rdf:nil . _:b0 :p "w" .
Ví dụ :
Là cú pháp của:
2.4 RDF: Type
Từ khóa “a” có thể là vị ngữ trong một bộ ba, và thay cho IRI
http://www.w3.org/1999/02/22-rdf-syntax-ns#type . Từ khóa này là cảm ngữ cảnh. Ví dụ: Là cú pháp của: _:b0 rdf:first 1 ; rdf:rest _:b1 . _:b1 rdf:first _:b2 . _:b2 :p :q . _:b1 rdf:rest _:b3 . _:b3 rdf:first _:b4 . _:b4 rdf:first 2 ; rdf:rest rdf:nil . _:b3 rdf:rest rdf:nil . ?x a :Class1 . [ a :appClass ] :p "v" . ?x rdf:type :Class1 . _:b0 rdf:type :appClass . _:b0 :p "v" . (1 [:p :q] ( 2 ) ) .
PHỤ LỤC 2: MỘT SỐ TRƯỜNG HỢP SỬ DỤNG CỦA HỆ THỐNG BK-KMS
1. Nhắc việc và sự kiện
Giả sử ta có một bộ dữ liệu bao gồm các thông tin như hình vẽ trang sau.
Khi người dùng sử dụng chức năng nhắc việc và sự kiện, kết quả các sự kiện sẽ trả ra trong giao diện như sau:
Giải thích kết quả:
Danh sách các event lấy ra bao gồm các event cá nhân lưu trong cơ sở dữ liệu và các event chung được các kỹ sư tri thức tạo ra trong các chú thích ngữ nghĩa. Các event sẽ được thông báo cho người dùng khi: người dùng tham gia event đó, hoặc tổ chức event đó hoặc event đó có liên quan đến chủ đề người dùng quan tâm. Do đó 3 event mô tả trong dữ liệu trên được lấy vì:
- Event đầu tiên(bên trái) được đưa ra là vì John là một thành viên của một trường có tham gia vào Event; do đó event này thuộc về John khi áp dụng luật “nếu event có sự tham gia của 1 tổ chức và một người thuộc tổ chức đó thì người đó cũng tham gia event này”.
- Event ở giữa được đưa ra bởi vì event có liên quan đến vấn đề EconomicScienceTopic, do John có quan tâm về vấn đề này nên ta cũng đưa ra thông báo Event cho John.
- Event ở bên phải được đưa ra vì John là một trong những người phải tham gia vào Event đó.
2. Trợ giúp nhân viên mới
Để thực hiện được chức năng này thì người dùng cần phải có một profile, một account và phải login thành công vào hệ thống.
Ví dụ với người dùng Peter có profile như sau:
Bộ dữ
liệu RDF đầu vào sau:
<mitani:Student rdf:id="#Person_id1" mitani:FamilyName="Peter"> <mitani:IsInterestedBy rdf:resource="&mitani;JavaProgrammingTopic"/> </mitani:Student> <mitani:Student rdf:id="#Person_id1" mitani:FamilyName="Peter"> <mitani:IsInterestedBy rdf:resource="&mitani;JavaProgrammingTopic"/> </mitani:Student> <mitani:Leader rdf:id="#Person_id2" mitani:FamilyName="Marthy"> <mitani:IsInterestedBy rdf:resource="#JavaProgrammingTopic"/> <mitani:HasSkill rdf:resource="#Skill_id1"/> </mitani:Leader> <mitani:CommunicationSkill rdf:id="#Skill_id1" mitani:SkillLevel="4" mitani:SkillName="Communication Skill"> </mitani:CommunicationSkill> <mitani:Project rdf:id="#Skill_id1"
mitani:Designation="Devolop embedded system software for Panasonic Corporation" mitani:SkillName="Communication Skill">
<mitani:HasGoal>Implement a native version of the open source translation</mitani:HasGoal> </mitani:Project> <mitani:Researcher rdf:id="#Person_id3" mitani:FamilyName="Carnon"> <mitani:IsInterestedBy rdf:resource="#JavaProgrammingTopic"/> </mitani:Researcher> <mitani:Book rdf:id="#Book_id1">
<mitani:Title>Hibernate - Orient Database Mapping</mitani:Title> <mitani:Concern rdf:resource="#JavaProgrammingTopic"/> <mitani:CreatedBy rdf:resource="#Person_id3"/>
Khi đó kết quả của chức năng này như sau:
Giải thích kết quả thu được
+ Danh sách các Document: do Scientist Peter có viết một quyển sách có liên quan đến chủ đề về JavaProgrammingTopic nên từ đó có thể suy ra rằng Peter là IsInterestedBy về vấn đề JavaProgrammingTopic.
- Suy diễn này được thực hiện do ta áp dụng luật sau:
<cos:rule> <cos:if>
{
?document mitani:CreatedBy ?person ?document mitani:Concern ?topicType }
</cos:if> <cos:then> {
?person mitani:IsInterestedBy ?topicType }
</cos:then> </cos:rule>
Do vậy khi đưa ra những Document mà Peter quan tâm ta có đưa ra những Document có liên quan tới vấn đề mà Peter interested, đó là JavaProgrammingTopic.
+ Danh sách người cần gặp: Peter có một skill về CommunicationSkill, ta sẽ tìm và đưa ra những người có cùng skill CommunicationSkill với Peter mà thỏa mãn SkillLevel >= 3, nghĩa là các chuyên gia trong lĩnh vực mà Peter quan tâm.
+ Danh sách các project: Peter quan tâm đến JavaProgrammingTopic nên sẽ quan tâm đến những project liên quan đến topic này.