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.
54 trang |
Chia sẻ: haohao89 | Lượt xem: 2999 | Lượt tải: 4
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ư