Đồ án Tìm hiểu về Semantic Wiki

Mục lục

Chương 1 - Wiki 6

I.Định nghĩa 6

II.Lịch sử 6

II.Các đặc điểm 6

1.Thay đổi trang wiki 7

2.Sự điều hướng 8

3.Liên kết và tạo trang 8

IV.Tính đáng tin và bảo mật 9

1.Điều khiển các thay đổi 9

2.Tìm kiếm 9

3.Kiến trúc phần mềm 9

4.Tính đáng tin 10

5.Tính bảo mật 10

V.Tính cộng đồng 10

Chương II - Semantic web 12

I.Vấn đề 12

1.Giới hạn của HTML 12

2.Giải pháp web ngữ nghĩa 12

II.Các thành phần 13

1.URI và Unicode 13

2.XML và XML schema 13

2.1.XML 13

2.2.XML schema 14

3.RDF và RDF schema 15

3.1.RDF 15

3.1.1.Giới thiệu 15

3.1.2.Động cơ và mục đích 15

3.1.3.Các khái niệm RDF 16

3.1.4.Tham chiếu từ vựng RDF và không gian tên 19

3.1.5.Kiểu dữ liệu 19

3.1.6.Cú pháp 20

3.1.7.Một số phần tử cơ bản của RDF 22

3.2.RDF schema 25

4.Ontology và OWL 25

4.1.Khái niệm Ontology: 25

4.2.Tài liệu OWL 26

4.2.1.Nội dung: 26

4.2.2.Từ vựng xây dựng trong OWL 26

4.2.3.Kiểu MIME 26

4.3.Các lớp 26

4.3.1.Class description – miêu tả lớp 27

4.3.2.Class axiom 32

4.4.Các thuộc tính – Propertiy 34

4.4.1.Các cấu trúc RDF Schema 35

4.4.2.Sự liên hệ đến các thuộc tính khác 36

4.4.3.Các ràng buộc số lượng toàn cục trên các thuộc tính 36

4.4.4.Các đặc tính logic của các thuộc tính 37

4.5.Cá thể (individual) 38

4.5.1.Thành viên lớp và các giá trị thuộc tính 38

4.5.2.Định danh cá thể 39

4.6.Kiểu dữ liệu 40

4.6.1.Kiểu dữ liệu RDF 40

4.6.2.Kiểu dữ liệu liệt kê 40

4.6.3.Hỗ trợ cho phân tích kiểu dữ liệu 41

4.7.Chú thích (Annotation), Ontology header, import và thông tin phiên bản (version information) 41

4.7.1.Chú thích – Annotation 41

4.7.2.Phần đầu Ontology (ontology header) 42

4.7.3.Kết hợp một ontology 43

4.8.Thông tin phiên bản 43

5.SPARQL – Ngôn ngữ truy vấn RDF 45

5.1.Nội dung chính : 45

5.1.1.Không gian tên: 45

5.1.2.Miêu tả dữ liệu 45

5.1.3.Các miêu tả kết quả 45

5.1.4.Thuật ngữ 45

5.2.Tạo các truy vấn đơn giản : 45

5.2.1.Tạo một truy vấn đơn giản : 45

5.2.2.Nhiều kết quả trả về 46

5.2.3.Kết quả RDF Literal (matching rdf literal) 47

5.2.4.Các nhãn nút trắng trong kết quả truy vấn 48

5.2.5.Xây dựng đồ thị RDF 48

5.3.Các ràng buộc RDF Term 49

5.3.1.Sự giới hạn các giá trị của các chuỗi : 50

5.3.2.Giới hạn các giá trị số : 50

5.3.3.Các ràng buộc khác 50

5.4.Cú pháp SPARQL 51

5.4.1.Cú pháp RDF Term : 51

5.4.2.Cú pháp cho các khuôn mẫu triple: 54

5.4.2.1.Các danh sách thuộc tính - đối tượng: 55

5.5.Các khuôn mẫu đồ thị : 57

5.5.1.Các khuôn mẫu đồ thị cơ bản : 57

5.5.2.Các khuôn mẫu đồ thị nhóm 57

5.6.Bao gồm các giá trị tùy chọn: 59

5.6.1.Khớp khuôn mẫu tùy chọn 59

5.6.2.Các ràng buộc trong phép khớp khuôn mẫu tùy chọn : 61

5.6.3.Các khuôn mẫu đồ thị tùy chọn: 61

5.7.Việc khớp thay thế : 62

5.8.Tập dữ liệu RDF :RDF Dataset 63

5.8.1.Các ví dụ của RDF Dataset 63

5.8.2.Chỉ ra các RDF Dataset : 65

5.8.3.Truy vấn tập dữ liệu 67

5.9.Chuỗi giải pháp và các điều chỉnh giải pháp 71

5.9.1.ORDER BY 72

5.9.2.Phép chiếu 74

5.9.3.Các giải pháp trùng lặp 74

5.9.4.OFFSET 76

5.9.5.LIMIT 76

5.10.Dạng truy vấn 76

5.10.1.SELECT 76

5.10.2.CONSTRUCT 78

5.10.3.ASK 81

5.10.4.DESCRIBE (nâng cao) 82

10.4.2.Xác định các tài nguyên 82

10.4.3.Các miêu tả của các tài nguyên : 82

5.11.Các giá trị kiểm tra 83

5.11.1.Các kiểu dữ liệu toán hạng 84

5.11.2.Tính toán lọc 85

5.11.3.Ánh xạ toán tử 85

5.11.4.Các định nghĩa các toán tử 88

Chương III - Semantic Wiki 96

I.Khái niệm 96

II.Các ưu điểm của Semantic Wiki 96

III.Các chức năng của Semantic Wiki 96

1.Định kiểu/Chú thích các liên kết 96

2.Biểu diễn ngữ cảnh nhận biết 97

3.Cải thiện sự điều hướng 97

4.Tìm kiếm ngữ nghĩa 97

5.Hỗ trợ suy diễn 97

Chương IV – Công cụ và Ứng dụng 98

I.Giới thiệu về Ikewiki 98

1.Giới thiệu 98

2.Nguyên tắc thiết kế 98

2.1.Dễ dàng sử dụng và tương tác giao diện 98

2.2.Tương thích với Wikipedia/MediaWiki 98

2.3.Tương thích với các chuẩn Semantic Web 98

2.4.Sự khai thác tức thì các chú thích ngữ nghĩa 98

2.5.Hỗ trợ các mức khai thác khác nhau 98

2.6.Hỗ trợ suy diễn 99

3.Kiến trúc 99

3.1.Kho lưu trữ trang – Page Store 99

3.2.Kho lưu trữ RDF – RDF Store 99

3.3.Ống thi hành – Rendering Pipeline 100

3.4.Chuyển đổi – Transformation, Servlet 100

4.Giao diện 100

4.1.Perspective 100

4.1.1.Bài viết - Article 101

4.1.2.Thảo luận – Discuss 101

4.1.3.Siêu dữ liệu – Metadata 102

4.1.4.Ngữ cảnh – Context 102

4.1.5.Thay đổi – Edit 102

4.1.6.Chú thích 103

4.1.7.Lịch sử 103

4.2.Portlet 104

4.2.1.Người dung – User 104

4.2.2.Điều hướng 104

4.2.3.Thay đổi 104

4.2.4.Tìm kiếm 105

4.2.5.Các công cụ 105

4.2.6.Lịch sử 105

4.2.7.Bảng nội dung 105

4.2.8.Hướng dẫn – Tutorial 106

4.2.9.Tham chiếu – Reference 106

4.2.10.Xã hội hóa - Socialise 106

II.Dùng Ikewiki để xây dựng chủ đề về thành phố 106

1.Nhập một ontology 106

2.Tạo bài viết 109

2.Chú thích cho một trang 111

3.Truy vấn trong IkeWiki 113

Tài liệu tham khảo : 115

 

 

docx115 trang | Chia sẻ: netpro | Lượt xem: 2901 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Đồ án Tìm hiểu về Semantic Wiki, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ology nhưng chỉ với các điều kiện sau: Các tập hợp của các thuộc tính đối tượng, thuộc tính kiểu dữ liệu, thuộc tính chú thích và các thuộc tính ontology phải tách rời lẫn nhau. Do đó, trong OWLDL dc:creator không thể cùng một lúc là thuộc tính kiểu dữ liệu và thuộc tính chú thích. Các thuộc tính chú thích phải có chính xác kiểu bộ ba theo dạng thức AnnotationPropertyID rdf:type owl:AnnotationProperty . Các thuộc tính chú thích không được sử dụng trong các axiom thuộc tính. Do đó, OWL DL không thể định nghĩa các thuộc tính con hoặc ràng buộc miền/phạm vi cho các thuộc tính chú thích. Đối tượng của một thuộc tính chú thích phải là data literal, tham chiếu URI hoặc một cá thể. 5 thuộc tính chú thích được OWL định nghĩa trước, tên là : owl:versionInfo rdfs:label rdfs:comment rdfs:seeAlso rdfs:isDefinedBy Đây là một ví dụ của sử dụng thuộc tính chú thích trong OWL DL: Musical work N.N. Ví dụ giả sử &dc; và dc: chỉ riêng rẽ đến Dublin Core URI và namespace. Do đó, sử dụng thuộc tính Dublin Core như là thuộc tính chú thích trong OWL DL yêu cầu một bộ ba gõ chính xác. Điều này chắc chắn các chú thích được quản lý theo một ngữ nghĩa chính xác, hợp cách với OWL DL. Mỗi khi chúng ta định nghĩa dc:creator như là một thuộc tính chú thích, OWL DL không cho phép các axiom thuộc tính như ràng buộc phạm vi sau: 4.7.2.Phần đầu Ontology (ontology header) Một tài liệu miêu tả một ontology thông thường chwuas các thông tin về chính ontology đó. Một ontology là một nguồn, cho nên nó có thể được miêu tả bằng cách sử dụng các thuộc tính từ OWL và các không gian tên khác, ví dụ: ... ... Dòng phát biểu rằng khối này miêu tả ontology hiện tại. Chính xác hơn nó phát biểu URI cơ sở hiện tại định danh một thực thể của lớp owl:Ontology. Thường URI cơ sở được định nghĩa bằng cách sử dụng đặc tính xml:base trong phần tử tại phần bắt đầu của tài liệu. Ví dụ : v 1.17 2003/02/26 12:56:51 mdean An example ontology 4.7.3.Kết hợp một ontology Một phát biểu owl:imports tham chiếu một ontology OWL khác chứa các khái niệm, mà nghĩa của nó được xem là một phần nghĩa của ontology kết hợp. Mỗi tham chiếu chứa một URI chỉ rõ nơi mà ontology được kết hợp. Owl:import là một thuộc tính với lớp owl:Ontology là miền và phạm vi của nó. Phát biểu owl:imports là bắc cầu, do đó, nếu ontology A kết hơp B và B kết hợp C thì A kết hợp cả B lẫn C. Việc kết hợp một ontology vào chính nó đươc coi là không có tác dụng, do đó, nếu ontology A kết hợp B và B kết hợp A thì chúng được coi là tương đương. Chú ý là bất kể công cụ OWL có tải một ontology được import hay không còn phụ thuộc vào mục đích của công cụ. Nếu công cụ là một phân tích hoàn hảo thì nó sẽ tải tất cả các ontology được kết hợp, ngược lại, công cụ có thể chỉ chọn một số hoặc không một ontology nào. Mặc dù các khai báo owl:imports và không gian tên có thể là dư thừa, chúng thực chất vẫn có những mục đích khác nhau. Các khai báo không gian tên cài đặt đơn giản một lối tắt cho việc tham chiếu đến các định danh. Chúng không bao gồm chính xác các tài lieeul Do dó, thường có một phát biểu không gian tên tương ứng cho bất kì ontology nào mà nó được import. 4.8.Thông tin phiên bản -owl:versionInfo : Một phát biểu owl:versionInfo thường có một chuỗi cho biết thông tin về phiên bản của nó, ví dụ từ khóa RCS/CVS. Chú ý là owl:versionInfo là một thực thể của owl:AnnotationProperty -owl:priorVersion : Một phát biểu owl:priorVersion chứa một tham chiếu đến một ontology khác. Phát biểu này chỉ rõ ontology như là một version trước của ontology chứa. -owl:backwardCompatibleWith : chứa một tham chiếu đến một ontology khác, chỉ ra ontology cụ thể như là một phiên bản trước của ontology chứa, và hơn nữa là tương thích với phiên bản trước đó. Thông thường, nó chỉ ra rằng tất cả các định danh từ phiên bản trước có cùng mục đích diễn đạt với phiên bản mới. Do đó, nó là một gợi ý cho người viết tài liệu rằng họ có thể thay đổi một các an toàn tài liệu của họ để hoàn thành lên phiên bản mới (bằng cách cập nhật khai báo không gian tên và các phát biểu owl:imports để trỏ đến URL của phiên bản mới). Nếu owl:backwarkCompatibleWith không được khai báo cho hai phiên bản, tính tương thích sẽ không được xem xét. Owl:backwarkCompatibleWith là một thuộc tính OWL tích hợp với lớp owl:Ontology như là miền và phạm vi của nó. -owl:incompatibleWith : Một phát biểu owl:incompatibleWith chứa một tham chiếu đến một ontology khác, chỉ ra rằng ontology chứa là một phiên bản sau của ontology được tham chiếu nhưng không tương thích với nó. Thực ra, điều này sử dụng cho người viết ontology muốn các tài liệu không thể cập nhập để sử dụng một phiên bản mới mà không kiểm tra những gì đã được thay đổi. Owl:incompatibleWith là một thuộc tính tích hợp với lớp owl:Ontology là miền và phạm vi của nó. Owl:incompatibleWith là một thực thể của lớp owl:OntologyProperty -owl:DeprecatedClass và owl:DeprecatedProperty Sự đối kháng là một chức năng được sử dụng phổ biến trong nhiều phiên bản phần mềm để chỉ ra rằng một chức năng cụ thể được duy trì cho các mục đích tương thích ngược, nhưng có thể bị mất dần sau này. Tại đây, một định danh đặc biệt được nói là kiểu owl:DeprecatedClass hoặc owl:DeprecatedProperty, trong đó, owl:DeprecatedClass là một lớp con của lớp rdfs:Class và owl:DeprecatedProperty là một lớp con của rdf:Property. Bằng cách đối kháng một thành phần, có nghĩa là thành phần đó sẽ không được sử dụng trong các tài liệu mới mà chuyển giao vào ontology. Điều này cho phép một ontology duy trì tính tương thích trong khi dần dần không dùng từ vựng cũ. Kết quả là, các dữ liệu cũ và các ứng dụng có thể di chuyển dễ hơn sang phiên bản mới, và do đó làm tăng mức độ chấp nhận của phiên bản mới. Một ví dụ Vehicle Ontology, v. 1.1 <owl:backwardCompatibleWith rdf:resource=""/> Automobile is now preferred <!-- note that equivalentClass only means that the classes have the same extension, so this DOES NOT lead to the entailment that Automobile is of type DeprecatedClass too --> inverse property drives is now preferred 5.SPARQL – Ngôn ngữ truy vấn RDF 5.1.Nội dung chính : 5.1.1.Không gian tên: Trong tài liệu này, các ví dụ giả thiết rằng tiền tố không gian tên : Tiền tố IRI rdf: rdfs: xsd: fn: 5.1.2.Miêu tả dữ liệu Tài liệu sử dụng định dạng dữ liệu Turtle để chỉ ra mỗi triple một cách chính xác. Trutle cho phép các IRI được viết tắt với các tiền tố : @prefix dc: . @prefix : . :book1 dc:title "SPARQL Tutorial" . 5.1.3.Các miêu tả kết quả Tập kết quả được đưa ra dạng bảng x y z “Alice” 5.1.4.Thuật ngữ 5.2.Tạo các truy vấn đơn giản : Hầu hết các định dạng của truy vấn SPARQL chứa một tập các khuôn mẫu triple gọi là khuôn mẫu đồ thị cơ bản. Các khuôn mẫu triple giống như các triple RDF ngoại trừ mỗi chủ thể, và đối tượng có thể là biến. Một khuôn mẫu đồ thị cơ bản ứng với một đồ thị con của dữ liệu RDF khi RDF term từ đồ thị con ấy có thể được thay thế cho các biến và kết quả là một đồ thị RDF tương đương với đồ thị con. 5.2.1.Tạo một truy vấn đơn giản : Ví dụ sau chỉ ra một truy vấn để tìm tiêu đề của một cuốn sách từ một đồ thị dữ liệu cho sẵn. Truy vấn bao gồm hai phần : mệnh đề SELECT chỉ ra các biến trong kết quả, và mệnh đề WHERE cung cấp khuôn mẫu đồ thị cơ bản để ứng với đồ thị dữ liệu. Khuôn mẫu đồ thị cơ bản trong ví dụ này bao gồm một khuôn mẫu triple đơn với một biến đơn (?title) trong vị trí đối tượng. Dữ liệu : "SPARQL Tutorial" . Truy vấn : SELECT ?title WHERE { ?title . } Kết quả : title "SPARQL Tutorial" 5.2.2.Nhiều kết quả trả về Kết quả của một truy vấn là một chuỗi giải pháp, tương ứng với các cách trong đó khuôn mẫu đồ thị của truy vấn ứng với dữ liệu. Có thể có 0, 1 hoặc nhiều giải pháp ứng với một truy vấn. Dữ liệu: @prefix foaf: . _:a foaf:name "Johnny Lee Outlaw" . _:a foaf:mbox . _:b foaf:name "Peter Goodguy" . _:b foaf:mbox . _:c foaf:mbox . Truy vấn : PREFIX foaf: SELECT ?name ?mbox WHERE { ?x foaf:name ?name . ?x foaf:mbox ?mbox } name mbox "Johnny Lee Outlaw" "Peter Goodguy" Mỗi giải pháp đưa ra một cách trong đó các biến được chọn có thể liên kết với RDF Term nên khuôn mẫu truy vấn lấy dữ liệu tương ứng. Tập kết quả đưa ra tất cả giải pháp có thể. Trong ví dụ trên, hai tập con cả dữ liệu cung cấp hai kết quả tương ứng. _:a foaf:name "Johnny Lee Outlaw" . _:a foaf:box . _:b foaf:name "Peter Goodguy" . _:b foaf:box . 5.2.3.Kết quả RDF Literal (matching rdf literal) Dữ liệu sau chứa RDF Literal : @prefix dt: . @prefix ns: . @prefix : . @prefix xsd: . :x ns:p "cat"@en . :y ns:p "42"^^xsd:integer . :z ns:p "abc"^^dt:specialDatatype . Chú ý là trong Turtle, “cat”@en là một RDF Literal với dạng từ vựng “cat” và một ngôn ngữ en, “42”^^xsd:interger là một kiểu literal với kiểu dữ liệu và "abc"^^dt:specialDatatype là một kiểu literal với kiểu dữ liệu 5.2.3.1.Lấy các literal với các thẻ ngôn ngữ: Các thẻ ngôn ngữ trong SPARQL được miêu tả sử dụng @ và thẻ ngôn ngữ. Truy vấn sau không có giải pháp nào do “cat” không cùng RDF Literal như là “cat”@en : SELECT ?v WHERE { ?v ?p "cat" } v Nhưng truy vấn sau tìm ra một giải pháp mà biến v ứng với :x do thẻ ngôn ngữ được chỉ ra và ứng với dữ liệu cho sẵn SELECT ?v WHERE { ?v ?p "cat"@en } v 5.2.3.2.Lấy các literal với kiểu số : Các số trong truy vấn SPARQL chỉ ra một RDF literal với kiểu dữ liệu xsd:integer. VÍ dụ, 42 là một dạng ngắn của "42"^^. Khuôn mẫu trong truy vấn sau có một giải pháp với biến v ứng với :y SELECT ?v WHERE { ?v ?p 42 } v 5.2.3.3.Lấy các literal với kiểu dữ liệu tùy ý: Truy vấn sau có một giải pháp với biến v ứng với :z. Bộ xử lý truy vấn không phải có bất kỳ hiểu biết nào về các giá trị trong không gian của kiểu dữ liệu. Do dạng từ vựng và kiểu dữ liệu IRI đều ứng với. SELECT ?v WHERE { ?v ?p "abc"^^ } v 5.2.4.Các nhãn nút trắng trong kết quả truy vấn Các kết quả truy vấn chứa các nút trắng. Các nút trắng trong tập kết quả ví dụ trong tài liệu được viết theo dạng “_:” theo sau bởi nhãn nút trắng. Các nhãn nút trắng được giới hạn trong một tập kết quả hoặc, ví dụ dạng truy vấn CONSTRUCT, đồ thị kết quả. Sự sử dụng của nhãn giống nhau trong một tập kết quả chỉ ra nút trắng giống nhau. Dữ liệu : @prefix foaf: . _:a foaf:name "Alice" . _:b foaf:name "Bob" . Truy vấn : PREFIX foaf: SELECT ?x ?name WHERE { ?x foaf:name ?name } Kết quả : x name _:c "Alice" _:d "Bob" Kết quả trên có thể tương đương với các nhãn nút trống khác nhau cho sau do các nhãn trong các kết quả chỉ chỉ ra các RDF Term trong các giải pháp là giống hay khác nhau. x name _:c "Alice" _:d "Bob" Hai kết quả trên có cùng thông tin : các nút trắng được sử dụng để lấy kết quả các truy vấn khác nhau trong hai giải pháp. Không cần phải có liên hệ nào giữa nhãn _:a trong tập kết quả và một nút trắng trong đồ thị dữ liệu với nhãn giống nhau. 5.2.5.Xây dựng đồ thị RDF SPARQL có một số dạng truy vấn. Dạng truy vấn SELECT trả lại các biến liên kết. Dạng truy vấn CONSTRUCT trả lại đồ thị RDF. Đồ thị được xây dựng dựa trên một khuôn mẫu được sử dụng để tạo ra các RDF triple dựa trên kết quả của việc tương ứng khuôn mẫu đồ thị của truy vấn. Data : @prefix org: . _:a org:employeeName "Alice" . _:a org:employeeId 12345 . _:b org:employeeName "Bob" . _:b org:employeeId 67890 . Truy vấn : PREFIX foaf: PREFIX org: CONSTRUCT { ?x foaf:name ?name } WHERE { ?x org:employeeName ?name } Kết quả : @prefix org: . _:x foaf:name "Alice" . _:y foaf:name "Bob" . Có thể phân tích đưa vào dạng RDF/XML như sau : <rdf:RDF xmlns:rdf="" xmlns:foaf="" > Alice Bob 5.3.Các ràng buộc RDF Term Khuôn mẫu đồ thị khớp các kết quả của một chuỗi giải pháp, mỗi giải pháp có một tập các giá trị trả về của các biến ứng với RDF term. SPQRQL FILTER giới hạn các giải pháp phù hợp với các biểu thức có giá trị TRUE. Data: @prefix dc: . @prefix : . @prefix ns: . :book1 dc:title "SPARQL Tutorial" . :book1 ns:price 42 . :book2 dc:title "The Semantic Web" . :book2 ns:price 23 . 5.3.1.Sự giới hạn các giá trị của các chuỗi : Các hàm SPARQL FILTER giống như regex (regular expression : Biểu thức quy tắc) có thể kiểm tra các RDF literal. Regex chỉ khớp các literal dạng thường không có các thẻ ngôn ngữ. Regex có thể được sử dụng để khớp các dạng từ vựng của các literal khác bằng cách sử dụng hàm str: Truy vấn PREFIX dc: SELECT ?title WHERE { ?x dc:title ?title FILTER regex(?title, "^SPARQL") } Kết quả : title "SPARQL Tutorial" Có thể không quan tâm đến chữ hoa trong kết quả bằng cờ “i” Truy vấn : PREFIX dc: SELECT ?title WHERE { ?x dc:title ?title FILTER regex(?title, "web", "i" ) } Kết quả : title "The Semantic Web" 5.3.2.Giới hạn các giá trị số : SPARQL FILTERS có thể giới hạn dựa trên các biểu thức toán học Truy vấn PREFIX dc: PREFIX ns: SELECT ?title ?price WHERE { ?x ns:price ?price . FILTER (?price < 30.5) ?x dc:title ?title . } Kết quả Title price "The Semantic Web" 23 Bằng cách ràng buộc biến price, chỉ có :book2 khớp với truy vấn do chỉ có :book2 có giá trị nhỏ hơn 30.5, như là điều kiện lọc yêu cầu. 5.3.3.Các ràng buộc khác Thêm vào kiểu số, SPARQL hỗ trợ các kiểu xsd:string, xsd:boolean và kiểu xsd:dateTime . 5.4.Cú pháp SPARQL 5.4.1.Cú pháp RDF Term : 5.4.1.1.Cú pháp cho IRI IRIref chỉ tập các IRI. Các IRI là tổng quát của các URI và hoàn toàn tương thích với các URI và URL. PrefixedName chỉ tên tiền tố. IRI tham chiếu (địa chỉ IRI tương đối hoặc tuyệt đối) được chỉ ra bởi các tham chiếu và các IRI, trong đó dấu ‘’ không là thành phần của tham chiếu IRI. Các IRI tương đối khớp với các tham chiếu irelative-ref trong phần 2.2 ABNF cho các tham chiếu IRI và các IRI trong RFC3987 và được giải quyết đến các IRI như miêu tả sau đây : Grammar rules: [67]   IRIref   ::=   IRI_REF | PrefixedName [68]   PrefixedName   ::=   PNAME_LN | PNAME_NS [69]   BlankNode   ::=   BLANK_NODE_LABEL | ANON [70]   IRI_REF   ::=   '"{}|^`\]-[#x00-#x20])* '>' [71]   PNAME_NS   ::=   PN_PREFIX? ':' [72]   PNAME_LN   ::=   PNAME_NS PN_LOCAL Tập các RDF Term được định nghĩa trong các khái niệm RDF và cú pháp trừu tượng bao gồm các tham chiếu RDF URI trong khi các SPARQL term bao gồm các IRI. Các tham chiếu RDF URI chứa các dấu ‘’ ‘”’, dấu cách, ‘{’, ‘}’, ‘|’, ‘\’, ‘^’ và ‘`’ không phải là các IRI. Hành động của một truy vấn SPARQL ứng với các câu lệnh RDF được viết giống như các tham chiếu RDF URI nhưng không được định nghĩa. Prefixed names: Từ khóa PREFIX kết hợp một nhãn tiền tố với một IRI. Một tên tiền tố là một nhãn tiền tố và một thành phần cục bộ, ngăn cách bởi dấu ‘:’. Một tên tiền tố được ánh xạ đến một IRI bằng cách nối IRI kết hợp với tiền tố và thành phần cục bộ. Nhãn prefix hoặc thành phần cục bộ có thể trống. Nhớ là các tên cục bộ SPARQL cho phép bắt đầu bằng các chữ số trong khi các tên cục bộ XML lại không. Các IRI tương đối: Các IRI tương đối kết hợp với các IRI cơ sở sử dụng thuật toán cơ bản như trong phần 5.2. Sau đây là một số cách khác nhau để viết cùng một IRI: BASE PREFIX book: book:book1 5.4.1.2.Cú pháp cho các Literal: Cú pháp chung cho các literal như là một chuỗi (đóng trong “...” hoặc ‘...’), với một thẻ ngôn ngữ tùy chọn hoặc một IRI kiểu dữ liệu tùy chọn (bắt đầu @) hoặc tên tiền tố (bắt đầu ^^) Để tiện lợi, các số có thể được viết trực tiếp (không cần “”, ‘’ và một IRI kiểu dữ liệu chính xác) và được dịch như là một literal thuộc kiểu dữ liệu integer. Các số hệ thập phân có dấu ‘.’ nhưng không phải số mũ được dịch thuộc kiểu xsd:decimal và các số mũ được dịch thuộc kiểu xsd:double. Các giá trị thuộc kiểu xsd:boolean cũng có thể viết là true hoặc false. Để thuận lợi cho việc viết các giá trị literal trong đó chính chúng chứa các dấu “”, ‘’ hoặc dài và chứa kí tự xuống dòng, SPARQL cung cấp một cấu trúc thêm trong đó các literal đóng trong dấu “““ ”””, ‘‘‘ ’’’. Ví dụ : -“chat” -‘chat’@fr với thẻ ngôn ngữ “fr” -“xyz”^^ -“abc”^^appNS:appDataType -‘‘‘ The librarian said, “Perhap you would enjoy ‘War and Peace’.” ’’’ -1, giống với “1”^^xsd:integer. Quy tắc cú pháp Grammar rules: [60]   RDFLiteral   ::=   String ( LANGTAG | ( '^^' IRIref ) )? [61]   NumericLiteral   ::=   NumericLiteralUnsigned | NumericLiteralPositive | NumericLiteralNegative [62]   NumericLiteralUnsigned   ::=   INTEGER | DECIMAL | DOUBLE [63]   NumericLiteralPositive   ::=   INTEGER_POSITIVE | DECIMAL_POSITIVE | DOUBLE_POSITIVE [64]   NumericLiteralNegative   ::=   INTEGER_NEGATIVE | DECIMAL_NEGATIVE | DOUBLE_NEGATIVE [65]   BooleanLiteral   ::=   'true' | 'false' [66]   String   ::=   STRING_LITERAL1 | STRING_LITERAL2 | STRING_LITERAL_LONG1 | STRING_LITERAL_LONG2 [76]   LANGTAG   ::=   '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)* [77]   INTEGER   ::=   [0-9]+ [78]   DECIMAL   ::=   [0-9]+ '.' [0-9]* | '.' [0-9]+ [79]   DOUBLE   ::=   [0-9]+ '.' [0-9]* EXPONENT | '.' ([0-9])+ EXPONENT | ([0-9])+ EXPONENT [80]   INTEGER_POSITIVE   ::=   '+' INTEGER [81]   DECIMAL_POSITIVE   ::=   '+' DECIMAL [82]   DOUBLE_POSITIVE   ::=   '+' DOUBLE [83]   INTEGER_NEGATIVE   ::=   '-' INTEGER [84]   DECIMAL_NEGATIVE   ::=   '-' DECIMAL [85]   DOUBLE_NEGATIVE   ::=   '-' DOUBLE [86]   EXPONENT   ::=   [eE] [+-]? [0-9]+ [87]   STRING_LITERAL1   ::=   "'" ( ([^#x27#x5C#xA#xD]) | ECHAR )* "'" [88]   STRING_LITERAL2   ::=   '"' ( ([^#x22#x5C#xA#xD]) | ECHAR )* '"' 5.4.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ó không gian tổng thể. Các biến được bắt đầu bằng các ký tự : ‘?’, ‘$’. Các ký tự ‘?’, ‘$’ không phải là thành phần của tên biến. Trong một truy vấn, $abc và ?abc chỉ ra cùng một biến. Các tên cho phép cho biến được chỉ ra rong ngữ pháp SPARQL: Grammar rules: [44] Var   ::=   VAR1 | VAR2 [74]   VAR1   ::=   '?' VARNAME [75]   VAR2   ::=   '$' VARNAME [97]   VARNAME   ::=   ( PN_CHARS_U | [0-9] ) ( PN_CHARS_U | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040] )* 5.4.1.4.Cú pháp cho các nút trắng : Các nút trắng trong các khuôn mẫu đồ thị hành động như là các biến không riêng biệt, không như các tham chiếu tới các nút trắng trong dữ liệu đang được truy vấn. Các nút trắng được chỉ ra bởi dạng nhãn, giống như “_:abc”, hoặc dạng rút gọn ‘[]’. Một nút trắng chỉ được sử dụng trong vị trí trong truy vấn có thể được chỉ ra với []. Một nút trắng sẽ được sử dụng để hình thành khuôn mẫu triple. Các nhãn nút trắng được viết ví dụ “_:abc” cho một nút trắng nhãn “abc”. Cấu trúc [:p :v] có thể được sử dụng trong các khuôn mẫu triple. Nó tạo ra một nhãn nút trắng sử dụng như là chủ thể của tất cả các cặp chứa thuộc tính - đối tượng. Hai dạng sau:[:p “v”] và [] :p “v” Định vị một nhãn nút trắng duy nhất (ở đây là “b57”) và tương đương với _:b57 :p “v” Nhãn nút trắng được định vị có thể được sử dụng như là chủ thể hoặc đối tượng của các khuôn mẫu về sau. Ví dụ : như là một chủ thể [:p “v”] :q “w” Tương đương với hai triple : _:b57 :p "v" . _:b57 :q "w" . Và như là một đối tượng : :x :q [ :p "v" ] . Tương đương với hai triple : :x :q _:b57 . _:b57 :p "v" . Cú pháp nút trống rút gọn có thể được kết hợp với các rút gọn khác cho các chủ thể và thuộc tính thông thường : [ foaf:name ?name ; foaf:mbox ] Tương đương với khuôn mẫu đồ thị cơ bản sau cho một số nhãn nút trắng được định vị duy nhất, “b18” : _:b18 foaf:name ?name . _:b18 foaf:mbox . Grammar rules: [39]   BlankNodePropertyList   ::=   '['PropertyListNotEmpty']' [69]   BlankNode   ::=   BLANK_NODE_LABEL | ANON [73]   BLANK_NODE_LABEL   ::=   '_:' PN_LOCAL [94]   ANON   ::=   '[' WS* ']' 5.4.2.Cú pháp cho các khuôn mẫu triple: Các khuôn mẫu triple được viết như là một danh sách các chủ thể, thuộc tính và đối tượng được ngăn cách bởi khoảng trắng. Có một số cách ngắn gọn để viết một số cấu trúc khuôn mẫu triple thông thường. Các ví dụ sau miêu tả cùng một truy vấn : PREFIX dc: SELECT ?title WHERE { dc:title ?title } PREFIX dc: PREFIX : SELECT $title WHERE { :book1 dc:title $title } BASE PREFIX dc: SELECT $title WHERE { dc:title ?title } Grammar rules: [32]   TriplesSameSubject   ::=   VarOrTerm PropertyListNotEmpty | TriplesNode PropertyList [33]   PropertyListNotEmpty   ::=   Verb ObjectList ( ';' ( Verb ObjectList )? )* [34]   PropertyList   ::=   PropertyListNotEmpty? [35]   ObjectList   ::=   Object ( ',' Object )* [37]   Verb   ::=   VarOrIRIref | 'a' 5.4.2.1.Các danh sách thuộc tính - đối tượng: Các khuôn mẫu triple với một chủ thể thông thường có thể được viết để chủ thể chỉ cần viết một lần và được sử dụng cho nhiều khuôn mẫu triple bằng cách thêm vào dấu ‘;’ ?x foaf:name ?name ; foaf:mbox ?mbox . Tương đương với cách viết : ?x foaf:name ?name . ?x foaf:mbox ?mbox . 4.2.2.Các danh sách đối tượng : Nếu các khuôn mẫu triple chia sẻ cùng chủ thể và thuộc tính, đối tượng có thể được ngăn cách bởi dấu ‘,’: ?x foaf:nick "Alice" , "Alice_" . Tương đương với cách viết : ?x foaf:nick "Alice" . ?x foaf:nick "Alice_" . Danh sách đối tượng có thể được kết hợp với danh sách thuộc tính-đối tượng : ?x foaf:name ?name ; foaf:nick "Alice" , "Alice_" . Tương đương với : ?x foaf:name ?name . ?x foaf:nick "Alice" . ?x foaf:nick "Alice_" . 5.4.2.3.Các tập hợp RDF (RDF Collections) Các tập hợp RDF được viết trong các khuôn mẫu triple sử dụng cú pháp : “(phầntử1 phầntử2 phầntử3 ...)” Khuôn dạng “()” thay thế cho IRI . Khi được sử dụng với tập các phần tử, ví dụ (1 ?x 3 4), các khuôn mẫu triple với các nút trắng được định vị cho tập hợp. Nút trắng tại đầu của tập hợp có thể được sử dụng như là một chủ thể hoặc đối tượng trong các khuôn mẫu triple khác. Các nút trắng được định vị bởi cú pháp tập hợp không xảy ra bất kỳ chỗ nào trong truy vấn. (1 ?x 3 4) :p "w" . là một cách viết thay cho (syntactic sugar) : _: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" . Tập hợp RDF có thể được bao bọc trong tập hợp RDF khác : (1 [:p :q] ( 2 ) ) . Là một cách viết cho _: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 . Quy tắc cú pháp : [40]   Collection   ::=   '(' GraphNode+ ')' [92]   NIL   ::=   '(' WS* ')' 5.4.2.4.rdf:type Từ khóa ‘a’ có thể được sử dụng như là một thuộc tính trong một khuôn mẫu và thay thế cho IRI ?x a :Class1 . [ a :appClass ] :p "v" . Là cách viết thay cho : ?x rdf:type :Class1 . _:b0 rdf:type :appClass . _:b0 :p "v" . 5.5.Các khuôn mẫu đồ thị : SPARQL dựa trên cơ sở khớp khuôn mẫu đồ thị. Các khuôn mẫu đồ thị phức tạp hơn có thể được hình thành bằng cách kết hợp các khuôn mẫu nhỏ hơn theo các cách khác nhau : -Các khuôn mẫu đồ thị cơ bản : tập các khuôn mẫu triple phải khớp với nhau. -Khuôn mẫu đồ thị nhóm : tập các khuôn mẫu đồ thị phải khớp với nhau. -Các đồ thị tùy chọn : các khuôn mẫu thêm có thể mở rộng giải pháp. -Khuôn mẫu đồ thị thay thế : Hai hoặc nhiều hơn khuôn mẫu có thể được thử. -Các khuôn mẫu trên các đồ thị được đặt tên : các khuôn mẫu được khớp với các đồ thị được đặt tên. 5.5.1.Các khuôn mẫu đồ thị cơ bản : Các khuôn mẫu đồ thị cơ bản là tập cảu các khuôn mẫu triple. Việc khớp khuôn mẫu đồ thị SPARQL được định nghĩa theo nghĩa của việc kết hợp các kết quả từ việc khớp các khuôn mẫu đồ thị cơ bản. 5.5.1.1.Các nhãn nút trắng : Khi sử dụng các nút trắng theo dạng _:abc, các nhãn cho các nút trắng được giới hạn trong không gian với khuôn mẫu đồ thị cơ bản. Một nhãn có thể chỉ được sử dụng trong một khuôn mẫu đồ thị cơ bản đơn trong bất kỳ truy vấn nào. 5.5.1.2.Mở rộng việc khớp khuôn mẫu đồ thị cơ bản. SPARQL được định nghĩa cho việc khớp các đồ thị RDF với sự kế thừa đơn giản. SPARQL có thể được mở rộng cho các dạng khác của sự kế thừa cho phép các điều kiện đã biết như được miêu tả sau đây. 5.5.2.Các khuôn mẫu đồ thị nhóm Trong một chuỗi truy vấn SPARQL, một nhóm khuôn mẫu đồ thị được giới hạn trong dâu {}. Ví dụ, khuôn mẫu truy vấn của truy vấn sau là một khuôn mẫu đồ thị nhóm của khuôn mẫu đồ thị cơ bản. PREFIX foaf:    SELECT ?name ?mbox WHERE  {           ?x foaf:name ?name .           ?x foaf:mbox ?mbox .        } Giải pháp tương tự có thể bao gồm một truy vấn mà nhóm các khuôn mẫu triple thành hai khuôn mẫu đồ thị cơ bản. Ví dụ, truy vấn sau có cấu trúc khác nhau nhưng lại có giải pháp giống truy vấn trước : PREFIX foaf:    SELECT ?name ?mbox WHERE  { { ?x foaf:name ?name . }          { ?x foaf:mbox ?mbox . }        } Quy tắc ngữ pháp : Grammar rules: [20]   GroupGraphPattern   ::=   '{' TriplesBlock? ( ( GraphPatternNotTriples | Filter ) '.'? TriplesBlock? )* '}' [21]   TriplesBlock   ::=   TriplesSameSubject ( '.' TriplesBlock? )? [22]   GraphPatternNotTriples   ::=   OptionalGrap

Các file đính kèm theo tài liệu này:

  • docxDATN.docx
  • docxDanh sách các hình vẽ dùng trong đồ án.docx
  • docxDATN-PhieuGiaoNhiemVu.docx
  • docxLời nói đầu.docx
  • pptTìm hiểu về semantic wiki.ppt
  • pptxTìm hiểu về semantic wiki.pptx
  • docxTÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP.docx
  • docxTóm tắt.docx