Các dịch vụ Web và Web ngữ nghĩa (semantic Web) phần 3: Hiểu về RDF và ngôn ngữ lược đồ RDF

Sức mạnh của Ultimate mashup là trí tuệ mà bạn phát triển bằng cách sử dụng các kỹ thuật Web ngữ nghĩa, đặc biệt là Web ngôn ngữ bản thể luận (Web Ontology Language -OWL). Nhưng trước khi bạn có thể sử dụng OWL, bạn cần quen với ngôn ngữ cơ bản của chương trình này, đó là Resource Description Framework (RDF) và RDF Schema Language (RDFs). Hướng dẫn này sẽ cung cấp cho bạn kiến thức cơ bản khá tốt về cả RDF và RDFs để bạn sẵn sàng xây dựng các bản thể luận (ontologies) cho công việc phát triển Web của bạn, và cũng có thể tận dụng sức mạnh của RDF cho các dự án khác.

pdf54 trang | Chia sẻ: haohao89 | Lượt xem: 2911 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Các dịch vụ Web và Web ngữ nghĩa (semantic Web) phần 3: Hiểu về RDF và ngôn ngữ lược đồ RDF, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ultimate mashup – Các dịch vụ Web và Web ngữ nghĩa (semantic Web), Phần 3: Hiểu về RDF và ngôn ngữ lược đồ RDF Tóm tắt: Sức mạnh của Ultimate mashup là trí tuệ mà bạn phát triển bằng cách sử dụng các kỹ thuật Web ngữ nghĩa, đặc biệt là Web ngôn ngữ bản thể luận (Web Ontology Language - OWL). Nhưng trước khi bạn có thể sử dụng OWL, bạn cần quen với ngôn ngữ cơ bản của chương trình này, đó là Resource Description Framework (RDF) và RDF Schema Language (RDFs). Hướng dẫn này sẽ cung cấp cho bạn kiến thức cơ bản khá tốt về cả RDF và RDFs để bạn sẵn sàng xây dựng các bản thể luận (ontologies) cho công việc phát triển Web của bạn, và cũng có thể tận dụng sức mạnh của RDF cho các dự án khác. Trước khi bạn bắt đầu Hướng dẫn này là dành cho các lập trình viên phát triển web, những người quan tâm tới việc học về RDF (Resource Description Framework), cũng như dành cho những ai quan tâm tới việc học thêm về Web ngữ nghĩa và các dịch vụ Web ngữ nghĩa nói chung và xây dựng các bản thể luận nói riêng. Bạn sẽ học cách xây dựng và truyền tải thông tin RDF ở cả dạng XML phổ biến và dạng dùng nhanh phi XML. Hướng dẫn này không liên quan tới lập trình, nhưng giả định là bạn đã quen với các khái niệm XML. Về loạt bài này Có vẻ như ngày nay bạn không thể quay lưng lại với Web mà không vào một trang web mà nó cho phép truy cập vào dữ liệu trên trang web thông qua dịch vụ dựa trên nền Web API hoặc sử dụng dữ liệu từ một trang khác thông qua dịch vụ Web API. Khi bạn cân nhắc lợi ích của việc sử dụng thông tin hiện có trong các ứng dụng của riêng bạn thì điều này có thể không quá bất ngờ. Điều này cũng từng chỉ là vấn đề về thời gian trước khi ai đó đã bắt đầu kết hợp các thông tin từ các hệ thống tách biệt để tạo nên một thứ gì đó hoàn toàn mới. Những ứng dụng này, được gọi là mashup, là cái mới nhất trên Web, từ các trang tập trung vào cộng đồng tới các trang tìm kiếm đặc thù và cho tới các mashup ánh xạ hiện thời (ever- present mapping mashups). Mashup hầu hết đều hữu dụng, nhưng có một vấn đề mà chúng thường hay có đó là chúng đều được phát triển cho tập hợp các dịch vụ cụ thể. Nếu một trong những dịch vụ đó thay đổi, hoặc nếu sự ưa chuộng đối với một dịch vụ cụ thể của một loại hình nào đó thay đổi thì bạn sẽ phải làm rất nhiều việc. Mục tiêu của loạt bài hướng dẫn này đó là tạo ra một trình ứng dụng mashup thông minh tới mức người sử dụng có thể thêm bớt các dịch vụ nếu muốn, và hệ thống sẽ biết làm gì với chúng. Các tiến trình của loạt bài như sau: Trong Phần 1, tôi đã giới thiệu khái niệm của mashup, đã chỉ ra cách thức chúng vận hành và phát triển một phiên bản đơn giản của chúng. Bạn cũng đã tìm ra các vấn đề nghiêm trọng trong vận hành có liên quan tới việc tạo ra hàng loạt cuộc gọi trên Web. Ở Phần 2, bạn sẽ giải quyết một vài vấn đề trong đó bằng cách sử dụng tính năng pureXML™ mới của DB2® để xây dựng nơi lưu trữ, là chỗ lưu các kết quả của các yêu cầu từ trước đó và cũng cho phép bạn tìm lại các thông tin nào đó. Trước tiên, bạn cần sử dụng các bản thể luận, hoặc từ vựng xác định khái niệm và mối quan hệ của chúng, vì vậy ở đây trong Phần 3 bạn sẽ bắt đầu quy trình đó bằng cách tìm hiểu về RDF và RDFS, là hai nhân tố chính trong OWL (Web Ontology Language) mà tôi sẽ thảo luận trong Phần 4. Trong Phần 5, bạn sẽ lấy các bản thể luận được tạo ra ở Phần 4 và sử dụng chúng để cho phép người sử dụng thay đổi các nguồn thông tin. Trong Phần 6, mọi thứ sẽ thực sự thú vị. Về điểm này thì bạn có một trình ứng dụng đang hoạt động và khung đúng chỗ để hệ thống có thể sử dụng lập luận ngữ nghĩa để hiểu được dịch vụ tại vị trí của nó. Trong phần này, bạn cho phép người dùng kiểm soát, cho phép họ lấy và lựa chọn dữ liệu mà sẽ được sử dụng cho một mashup tùy biến. Về bài viết này Trong phần trước của loạt bài này, bạn đã tạo ra nền tảng của mashup: servlet mà kiểm tra bộ đệm lưu trữ (cache) cơ sở dữ liệu và hiển thị dữ liệu lưu trữ hoặc làm mới. Bây giờ bạn cần bắt đầu đưa "ngữ nghĩa" vào Web. Trong Phần 4, bạn sẽ tạo ra một bản thể cho phép bạn thực thi logic trong các dịch vụ của bạn, nhưng trước hết bạn cần hiểu được ngôn ngữ mà bạn sẽ làm việc với bản thể luận đó, RDF - Resource Description Framework. Bài viết này giúp bạn theo được với RDF và các nhánh của nó, lược đồ RDF. Trong hướng dẫn này, bạn sẽ tìm hiểu về:  RDF là gì và được sử dụng để làm gì  Mối quan hệ giữa RDF, lược đồ RDF, OWL, và Web ngữ nghĩa  Kiến thức cơ bản về RDF  Xử lý các nguồn, thành phần, và các cấu trúc RDF khác  Thể hiện RDF trong XML – và khi không có nó  Tạo các lớp và ví dụ sử dụng lược đồ RDF Trong bài viết này, bạn sẽ xem qua những cấu trúc này từ quan điểm của việc biểu diễn các thành phần và dữ liệu của bạn từ ứng dụng mashup của bạn. Các điều kiện tiên quyết Mặc dù bạn không cần các cấu phần phần mềm để mashup tự chạy – xem danh sách các yêu cầu đối trong phần 2 (xem Tài nguyên)-- bài này chủ yếu bàn về các khái niệm vì vậy bạn không cần một phần mềm cụ thể nào cả. Khái quát nhanh Trước khi bạn tiếp tục đi sâu, chúng ta hãy trao đổi về ví dụ ứng dụng mashup, Web ngữ nghĩa, RDF và các bản thể luận. Nhìn lại các phần trước Một mashup là một ứng dụng và nó lấy dữ liệu, thường là dữ liệu dịch vụ Web, và thường lấy từ nhiều nguồn – và nó được sử dụng để tạo ra một chương trình mới nào đó. Cho tới nay, để bạn tạo được Ultimate mashup, bạn đã tạo một hệ thống mà nó thể hiện thông tin cho một số bất kỳ các dịch vụ Web và trình bày thông tin đó trên trang Web. Ứng dụng được xây dựng để trở thành chung nhất có thể. Bạn có thể xác định các dịch vụ theo lớp riêng của chúng, với một mảng các dịch vụ cần thể hiện. Để thêm hoặc bớt dịch vụ từ đầu ra cuối cùng, bạn có thể tạo nội dụng của mảng đó, và một mẫu XML mà xác định bản trình bày mới nhất sẽ kèm theo một định nghĩa về dịch vụ. Kết quả cuối cùng đó là bạn có thể kiểm soát các dịch vụ được sử dụng, nội dung trình bày của dữ liệu trên trang Web cuối cùng, và thậm chí các dịch vụ con được kết nối với dịch vụ chính bằng cách đơn giản là chế tác các lượng thông tin vào các hướng dẫn đầu vào. Lý do tôi làm mọi điều trở lên chung chung một phần là để có được sự linh hoạt và khả năng bảo trì, và một phần là để chuẩn bị trình ứng dụng cho những gì sẽ tới tiếp theo. Vào cái sẽ tới tiếp theo đó là một cách thức mới để tìm kiếm thông tin. Tiếp theo là Web ngữ nghĩa Ngay bây giờ, khi bạn tìm tới một công cụ tìm kiếm như Google và nhập từ để tìm thì thật khó để đoán được chính xác là bạn sẽ nhận lại thông tin thế nào. Nếu bạn nhập từ "SOAP", có phải bạn sẽ nhận được một loạt các tài liệu trên các dịch vụ Web, hoặc những chỉ dẫn về việc giặt là? Hoặc có phải là một thông tin cập nhật rằng ai đã giết nhân vật Greg Madden trong tập phim truyền hình "Bọn trẻ của tôi"? Google làm được nhiều trong việc tìm ra một trang Web nào đó thuộc về ví dụ nào bằng cách xem trang nào được kết nối tới, nhưng kết cục là chuỗi "SOAP" chỉ là một chuỗi các chữ cái, và để nhận rõ ý nghĩa và nội dung của từ đó là một nhiệm vụ mà hiện nay tốt nhất là để dành lại cho bộ não của con người. Nhưng mọi thứ đều khác trên Web ngữ nghĩa. Trên Web ngữ nghĩa, thông tin được xác định theo cách mà có thể máy móc hiểu được, và cho phép phần mềm xử lý quy trình này. Một ví dụ thường được sử dụng để trao đổi trong trường hợp này có liên quan tới việc sắp xếp chuyến du lịch hoặc các công việc khác. Trên Web ngữ nghĩa, một đại lý thông minh có thể kiểm tra kế hoạch của bạn, có thể giúp bạn tìm một chuyên gia phù hợp với một cuộc hẹn gặp mà bạn có thể thiết lập, có thể lấy đánh giá từ các bệnh nhân cũ và bệnh nhân hiện thời, và có thể thu xếp một người giữ trẻ để trông nom con bạn khi bạn đi vắng. Tất cả các ví dụ này đều có khả năng thực hiện chỉ khi thông tin được đưa lên Web ngữ nghĩa được xác định bằng máy cách mà máy có khả năng đọc và hiểu. Nhưng ở đây là thủ thuật. Web ngữ nghĩa không phải là một sân chơi mới mẻ nào đó mà ở đó những người sử dụng cần phải loại bỏ Web hiện thời. Không phải vậy, Web ngữ nghĩa chỉ là trang Web hiện thời, nhưng với nhiều thông tin hơn. Các dịch vụ Web ngữ nghĩa Nếu bạn đưa các dịch vụ web vào mashup và dữ liệu của chúng theo cách này, với nhiều thông tin hơn thì bạn có thể cho phép trình ứng dụng tạo ra các lựa chọn thông minh. Ví dụ, trình ứng dụng có thể hiểu được dịch vụ nào thể hiện thông tin bản đồ, và dịch vụ nào thể hiện các cửa hàng trực tuyến, hay thậm chí là sâu hơn, các cửa hàng sách trực tuyến. Nó sẽ biết thông tin nào từ các dịch vụ đó thể hiện tiêu đề, nội dung mô tả, giá cả và các thông tin khác nữa. Đó là các dịch vụ hứa hẹn của Web ngữ nghĩa; một hệ thống hiểu được ý nghĩa đằng sau các thông tin, làm cho thông tin có thể sử dụng được theo những cách cụ thể. Trong hướng dẫn này, nó có nghĩa những người sử dụng của bạn có thể tự động hoán đổi các dịch vụ cùng loại – ví dụ như sử dụng Barnes và Noble thay vì Amazon -- hoặc thậm chí tạo những mashup mới của riêng họ. Cấu trúc mà bạn xác định thông tin này được gọi là bản thể luận. Các bản thể luận Trong cuốn sách Website Indexing 2nd Edition, Glenda Browne và John Jermey định nghĩa từ bản thể luận như sau: "Bản thể luận: Đặc tả kỹ thuật của việc khái quát hóa một miền kiến thức. Một bản thể luận là các từ vựng được kiểm soát mà nó mô tả các đối tượng và các mối quan hệ giữa chúng theo một cách chính thức, và có phần ngữ pháp để sử dụng các thuật ngữ trong từ vựng để diễn giải điều gì đó có nghĩa trong một khoảng xác định. Từ vựng được sử dụng để tạo các yêu cầu và các xác nhận. Các cam kết thuộc bản thể luận là các thỏa thuận để sử dụng từ vựng theo cách ổn định để chia sẻ kiến thức. Các bản thể luận có thể bao gồm các các danh sách từ (glossaries), các phân loại (taxonomies) và các từ đồng nghĩa (thesauri), nhưng thông thường có cách diễn giải tốt hơn và các quy định chặt chẽ hơn các công cụ này. Một bản thể luận chính thức là một từ vựng được kiểm soát đã được diễn giải theo một ngôn ngữ thể hiện bản thể." Nói cách khác, một bản thể luận là một cách thức được thỏa thuận để diễn đạt các ý tưởng cụ thể. Vì vậy, nếu tôi muốn làm cho thông tin của trang cá nhân của tôi sẵn có, tôi có thể đưa lên các thông tin kiểu như thế này (xem Ví dụ 1): Ví dụ 1. Thông tin được mã hóa sử dụng Dublin Core <rdf:RDF xmlns:rdf="" xmlns:dc=""> Nicholas Chase Chaos Magnet The personal and professional ramblings of technology author Nicholas Chase 2006-06-30 Thông tin này được thể hiện bằng cách sử dụng các thuật ngữ từ một cấu trúc được gọi là Dublin Core. Dù bạn có thể gọi Dublin Core một bản thể luận lại để tranh luận hoặc không, nhưng chắc chắn là mọi người sẽ đồng ý răng ý nghĩa về ngữ nghĩa của người sáng tạo, tiêu đề, ngày tháng và các thông tin khác nữa. Trong trường hợp này, bạn có thể tạo ra một bản thể luận mà có thể xác định được các khái niệm ví dụ như:  Dịch vụ  Bản đồ  Cửa hàng  Cửa hàng sách  Giá cả  Bình luận  Hình ảnh  Ảnh thu nhỏ  Tiêu đề Sau đó bạn có thể xác định các dịch vụ hoặc dữ liệu đơn lẻ như "các ví dụ" của một trong các khái niệm này. Để làm được điều này, bạn sẽ sử dụng Ngôn ngữ Bản thể luận Web (OWL). Ngôn ngữ Bản thể luận Web (OWL) Vâng tôi biết. Từ ghép đối với Ngôn ngữ Bản thể luận Web nên là WOL chứ không phải là OWL. Nhưng lại không phải vậy, lý do là từ các tham chiếu tới Winnie the Pooh (và Owl khôn ngoan, người đã đánh vần tên mình là W-O-L) cho tới sự tôn trọng các dự án bản thể luận trước đó như Ngôn ngữ một thế giới (One World Language) của Bill Martin cho tới thực tế rằng thật dễ dàng để nói và để thiết kế những nhãn hiệu dành cho "OWL" hơn là cho "WOL". Không vấn đề gì, và bây giờ cái đó đã được bỏ qua, vậy chính xác đó là gì? One World Language, hay viết tắt là OWL, cung cấp một từ vựng để xác định thông tin trên Web theo cách mà các máy móc có thể diễn giải được nó. Hãy xem xét ví dụ này (xem Ví dụ 2): Ví dụ 2. Một bản thể luận (rất) đơn giản <rdf:RDF xmlns ="" xml:base ="" xmlns:owl ="" xmlns:rdf ="" xmlns:rdfs=""> Online Store Bookstore Mã trong ví dụ 2 tạo ra một loại đối tượng chính, một cửa hàng Store, và một lớp con, cửa hàng sách Bookstore. Sau đó bạn có thể sử dụng loại mới đó để xác định Amazon.com là một Bookstore. Không quá thú vị cho tới khi bạn xem xét thấy rằng OWL cũng cho phép bạn tạo hàng loạt các xác nhận về các Bookstore, ví dụ như thực tế là chúng có thể truy cập trực tuyến, chúng bán sách (cái mà bạn có thể xác định theo kiểu riêng của bạn), mà bạn cũng có thể bán các loại hàng khác, và hơn thế nữa. Bằng cách xác định Amazon.com là một Bookstore, tất cả những thông tin đó tự động gắn với nó. Bạn sẽ tìm hiểu mọi thứ về OWL trong Phần 4 của loạt bài này, nhưng trước khi bạn tới đó, bạn cần gọi tên dạng thức của thông tin, đó là Khung Mô tả Tài nguyên (Resource Description Framework). Khung Mô tả Tài nguyên (RDF) Khung Mô tả tài nguyên là một cách thức rõ ràng để nêu thông tin về thứ gì đó. Nhiều người cho rằng nó quá phức tạp, nhưng khi bạn nhìn nhận đúng về nó thì RDF chỉ là cách để xác định đặc tính của các nguồn. Quay trở lại ví dụ trang web cá nhân (xem Ví dụ 3): Ví dụ 3. Xác định đặc tính của các nguồn <rdf:RDF xmlns:rdf="" xmlns:dc=""> Nicholas Chase Chaos Magnet The personal and professional ramblings of technology author Nicholas Chase 2006-06-30 Trong ví dụ 3, mã tạo ra một mô tả Description đó là về một nguồn Mã xác định bốn đặc tính, dc:creator, dc:title, dc:Description, và dc:date, và giá trị của các đặc tính đó. Trong hướng dẫn này, tôi sẽ dùng các đồ thị và các bộ ba (triples) và các nguồn và tất cả các thứ mà có thể làm cho RDF dường như quá phức tạp, nhưng cuối cùng, đây là những gì mà thực sự là nó: gán các đặc tính vào các nguồn theo một cách được thỏa thuận trước. Lược đồ khung mô tả tài nguyên (RDFs) Như tôi đã nói, RDF là một cách để gán các đặc tính vào các nguồn, và chỉ có vậy. Bản thân RDF thậm chí không gán bất cứ nghĩa nào vào các đặc tính đó. Bất cứ nghĩa nào trong một tài liệu RDF đến từ các đặc tính, và không phải từ RDF. Không may là điều này có nghĩa là bản thân RDF không phải là rất hữu dụng đối với các công việc như định nghĩa các từ vựng, trong đó bạn cần một cách thức để xác định ít nhất là các quan hệ giữa các khái niệm. Nhập lược đồ RDF. Một phần của nhóm các đặc tả được cho là "Bản khuyến nghị của RDF", lược đồ RDF cung cấp cách thức để tạo ra những quan hệ cơ bản để xác định từ vựng. Hãy xem ví dụ này (xem ví dụ 4): Ví dụ 4. Một ví dụ đơn giản về lược đồ RDF <rdf:RDF xmlns ="" xml:base ="" xmlns:rdf ="" xmlns:rdfs=""> Web Service Online Store Bookstore Trong ví dụ 4, mã tạo ra ba lớp Class và một đặc tính Property, endpoint. (Tôi sẽ không thảo luận về OWL cho tới Phần 4.) Bạn có thể gán đặc tính đó vào bất kỳ dịch vụ Service nào (điều này nghĩa là có thể áp dụng vào Bookstore, như một lớp con của Store, một lớp con của Service) và cần một giá trị anyURI như đã được định nghĩa bởi bản khuyến nghị của Sơ đồ XML. Lược đồ RDF cung cấp các khái niệm này như một tập hợp các khối cơ bản (building block) mà bạn có thể sử dụng để phát triển các ngôn ngữ và bản thể luận mới. Trong Phần 4, chúng ta sẽ xem cách thức mà các khái niệm của RDF đưa vào để tạo thành OWL, nhưng trước hết, trong hướng dẫn này, bạn sẽ tìm ra cách thức mà nó vận hành. Hãy bắt đầu với RDF. Cơ bản về RDF Tôi đã thấy các lập trình viên với nhiều năm kinh nghiệm đã tức tưởi khi bắt đầu xử lý trên RDF, nhưng nó thực sự không khó khăn như vậy. Trong phần này, bạn sẽ tìm hiểu những kiến thức cơ bản để bạn cũng có thể nói được rằng "Hãy vượt qua nó, nó không quá khó đâu." Các nguồn RDF Cái tên Khung Mô tả Tài nguyên cho bạn thấy thực tế rằng bạn đang mô tả các tài nguyên, nhưng thực ra chúng là thế nào? Một nguồn có thể là về bất cứ thứ gì, cho dù nó hữu hình (như một người), hay vô hình, ví dụ như chức danh hay cơ hội. Điều quan trọng là bạn cẩn có thể tham chiếu nó và sử dụng định danh của nguồn đồng nhất (Uniform Resource Identifier- URI). Một loại URI là địa chỉ tài nguyên đồng nhất (Uniform Resource Locator- URL), là những thứ mà bạn đã quen thấy trên Internet, như trên hay mailto:ibmquestions@nicholaschase.com. Nhưng các URI cũng có thể chung chung hơn, ví dụ như urn:backstopmedia, đây là tên nguồn đồng nhất (Uniform Resource Name-URN) thay vì là URL. Điều này nghĩa là bạn có thế sử dụng các URL để xác định các nguồn như các trang Web và hộp thư điện tử -- các nguồn trong đó một URL có thể cung cấp thông tin khi tìm kiếm nó – và các URN để xác định các nguồn khác. Ví dụ, bạn có thể quyết định xác định một người (ít nhất ở Hoa Kỳ) với một URN tham chiếu Số An ninh Xã hội của họ, như trong ssn:078-05-1120. Dĩ nhiên, trong thời đại ăn cắp thông tin cá nhân này thì bạn có lẽ không muốn làm như vậy, vì vậy bạn thường gặp những người được tham chiếu như một URL với một ý nghĩa đã được thỏa thuận trước nào đó, ví dụ như địa chỉ trang chủ trang web của họ ( hoặc URL nội bộ (ví dụ như Một điều quan trọng đó là bạn cần có khả năng xác định nguồn với một loại URI nào đó. Dạng thức mà cuối cùng nó thể hiện không quan trọng. Đặc tính RDF Để mô tả một nguồn mà sử dụng RDF, hãy gán cho nó các đặc tính. Bạn có thể phân giai đoạn gán các đặc tính này thành các câu. Ví dụ (xem Ví dụ 5): Ví dụ 5. Gán các đặc tính Nick's blog has a name of Chaos Magnet Nick's blog has a creator of Nicholas Chase Trong mỗi một câu này, bạn có một chủ thể (Nick's blog) một tính chất (has a name, has a creator) và một chủ thể (Chaos Magnet, Nicholas Chase). Chủ thể này đại diện cho nguồn, tính chất, thuộc tính, và chủ thể giá trị của đặc tính. Vì vậy nếu bạn chuyển các câu này sang dạng nào đó gần với một RDF triple, bạn sẽ nhận được những thứ được chỉ ra trong Ví dụ 6: Ví dụ 6. Phân chia các mục Nick's blog name Chaos Magnet . Nick's blog creator Nicholas Chase . Dĩ nhiên, tôi thể hiện nguồn như một URI, vì vậy thay vào đó nó sẽ là thứ gì đó giống như (xem Ví dụ 7): Ví dụ 7. Thể hiện các nguồn dưới dạng như các URI name Chaos Magnet . creator Nicholas Chase . Đây vẫn không thực sự là một RDF triple bởi vì nó có một chuỗi nguyên dành cho các đặc tính. Vấn đề ở đây là các đặc tính, giống như các nguồn, cần được thể hiện dưới dạng như một URI. Các tham chiếu URI Thực ra, bạn thể hiện các đặc tính dưới dạng như một tham chiếu URI, hay viết tắt là URIref, là cái bao gồm cơ sở của đặc tính – theo phương thức thực tế, tên trống mà đặc tính đó thuộc về -- được tiếp theo bởi một phân đoạn (fragment). Ví dụ, trong ví dụ 7, tôi đã tham chiếu tới thuộc tính creator. Thực ra, đây là thuộc tính creator được xác định bởi không gian tên Dublin Core, vì vậy tham chiếu URIref đầy đủ sẽ là (xem ví dụ 8): Ví dụ 8. URIref đầy đủ cho tên khởi tạo Nếu bạn là một lập trình viên phát triển Web, thì cú pháp cuối cùng, phân đoạn bắt đầu với ký hiệu dấu thăng (#) có thể thấy quen thuộc. Cùng cú pháp mà bạn dùng để gửi trình duyệt tới một điểm nhất định trên trang web, ví dụ như (xem ví dụ 9): Ví dụ 9. URL, bao gồm phân đoạn https://www6.software.ibm.com/developerworks/education/ws-understand- web-services3/#N1014F Để tạo điểm đó trên trang web, bạn có thể tạo một thẻ neo (anchor tag) của (xem ví dụ 10): Ví dụ 10. Tạo một thẻ neo : Với sự trông đợi của XHTML, phiên bản XML của HTML, bản này đổi thành (xem Ví dụ 11): Ví dụ 11. XHTML thẻ neo Vì vậy đoạn tham chiếu tới yếu tố đó là ký hiệu dấu thăng (#) và do vậy là giá trị của thuộc tính ID. (Đối với những ai đã quen với XPointer, điều này có thể đã rõ.) Sau này khi bạn tạo các nguồn sử dụng rdf:ID attribute, bạn sẽ thấy lại phần này, như
Tài liệu liên quan