Thứ Hai, 3 tháng 4, 2017

Dữ liệu Liên kết



Tim Berners-Lee
Date: 2006-07-27, last change: $Date: 2009/06/18 18:24:33 $
Status: personal view only. Editing status: imperfect but published.
Bài được đưa lên Internet ngày: 27/07/2006, thay đổi lần cuối 18/06/2009

Get a 5* mug

Linked Data
Web ngữ nghĩa không chỉ là về việc đặt dữ liệu lên web. Nó là về việc tạo ra các liên kết, sao cho con người hoặc máy có thể khai thác được web dữ liệu. Với dữ liệu liên kết, khi bạn có vài dữ liệu, bạn có thể tìm ra các dữ liệu khác có liên quan.
Giống như web của siêu văn bản, web dữ liệu được cấu trúc với các tài liệu trên web. Tuy nhiên, không giống như web của siêu văn bản, nơi các đường liên kết là các mối quan hệ neo cứng trong các tài liệu siêu văn bản được viết bằng ngôn ngữ siêu văn bản HTML, còn đối với dữ liệu chúng liên kết giữa những điều tùy ý được mô tả bằng RDF. Các URIs xác định bất kỳ dạng đối tượng hoặc khái niệm nào. Nhưng đối với HTML hoặc RDF, các kỳ vọng y hệt nhau áp dụng để làm cho web phát triển:
  1. Sử dụng URIS như là những cái tên cho mọi điều
  2. Sử dụng HTTP URIs sao cho mọi người có thể tra cứu được các cái tên đó.
  3. Khi ai đó tra cứu một URI, cung cấp thông tin hữu dụng, bằng việc sử dụng các tiêu chuẩn (RDF*, SPARQL)
  4. Đưa các đường liên kết tới các URIs khác, sao cho mọi người có thể phát hiện ra được nhiều điều hơn nữa.
Đơn giản. Trên thực tế, dù, lượng dữ liệu đáng ngạc nhiên còn chưa được liên kết vào năm 2006, vì các vấn đề với một hoặc nhiều bước trên. Bài viết này thảo luận các giải pháp cho các vấn đề đó, các chi tiết triển khai, và các yếu tố ảnh hưởng tới sự lựa chọn về cách bạn xuất bản các dữ liệu của bạn.

4 quy tắc

Tôi sẽ tham chiếu tới các bước ở trên như là các quy tắc, nhưng chúng là những kỳ vọng hành xử. Việc phá vỡ chúng không phá hủy bất kỳ điều gì, nhưng bỏ lỡ cơ hội làm cho các dữ liệu được kết nối với nhau. Tới lượt mình điều này sẽ hạn chế các cách thức sau này nó có thể được sử dụng lại theo một cách thức không ngờ tới được. Đó là sự sử dụng lại thông tin không ngờ tới được mà là giá trị gia tăng của web.
Quy tắc đầu tiên, để nhận diện mọi điều với URIs, được hiểu khá tốt đối với hầu hết những người làm việc với công nghệ web ngữ nghĩa. Nếu nó không sử dụng tập hợp các ký hiệu URI vạn năng, thì chúng tôi không gọi nó là Web Ngữ nghĩa.
Quy tắc thứ 2, sử dụng các URIs HTTP, cũng được hiểu rộng rãi. Khác biệt duy nhất là, từ khi web bắt đầu, xu hướng bất biến đối với mọi người để sáng tạo ra các lược đồ URI mới (và các lược đồ con bên trong urn:scheme) như LSIDs và các điều khiểnvà XRIs và DOIs và cứ như thế, vì các lý do khác nhau. Thường thì, chúng liên quan tới việc không muốn cam kết với Hệ thống Tên Miền - DNS (Domain Name System) đã được thiết lập cho đoàn ủy thác mà để xây dựng thứ gì đó theo sự kiểm soát tách biệt khác. Đôi khi nó phải làm việc với sự không hiểu biết rằng HTTP URIs là các cái tên (chứ không phải các địa chỉ) và rằng sự tra cứu tên HTTP là tập hợp các tiêu chuẩn phức tạp, mạnh và đang tiến hóa. Vấn đề này được thảo luận từ lâu ở đâu đó nữa, và thời gian không cho phép chúng ta đi sâu vào nó ở đây. [việc tìm kiếm @@ref TAG, .v.v.]
Quy tắc số 3, rằng bạn nên phục vụ thông tin trên web tương phản với URI, là, vào năm 2006, đã đi theo hầu hết các bản thể luận, nhưng, vì vài lý do, không dành cho vài tập hợp dữ liệu chính.
Bạn có thể, nói chung, tra cứu các thuộc tính và các lớp bạn thấy trong dữ liệu, và có được thông tin từ các bản thể luận RDF, RDFs, và OWL, bao gồm cả các mối quan hệ giữa các hạng mục trong bản thể luận đó.
Định dạng cơ bản ở đây về RDF/XML, với sự tuần tự hóa N3 đan xen phổ biến của nó (hoặc Turtle). Các tập hợp dữ liệu lớn đưa ra dịch vụ truy vấn SPARQL, nhưng dữ liệu liên kết cơ bản cũng nên được cũng cấp.
Nhiều dự án nghiên cứu và đánh giá trong vài năm qua về các công nghệ Web Ngữ nghĩa đã sản xuất các bản thể luận, các kho dữ liệu đáng kể, như dữ liệu, nếu là sẵn sàng, bị chôn vùi trong lưu trữ nén ở đâu đó, thay vì có thể truy cập được trên web như là dữ liệu liên kết. Dự án Biopax, dữ liệu CSAktive con người và các dự án nghiên cứu khoa học máy tính từng là 2 ví dụ. [Dữ liệu của CSAktive bây giờ (2007) là sẵn sàng như là dữ liệu liên kết]
Cũng có lượng lớn và đang gia tăng các URIs các dữ liệu không phải bản thể luận có thể tra cứu được.
Các wiki ngữ nghĩa là một ví dụ. Các bản thể luận “Bạn của bạn” (FOAF) và Mô tả Dự án (DOAP) được sử dụng để xây dựng các mạng xã hội khắp web. Các cổng portal mạng xã hội phổ biến không cung cấp các đường liên kết tới các trang khác, cũng không mở dữ liệu của họ ra ở dạng tiêu chuẩn.
LiveJournal và Cộng đồng Opera là 2 trang web cổng portal mà thực sự xuất bản dữ liệu của họ ở định dạng RDF trên web. (Plaxo có lược đồ vết, và tôi không chắc liệu họ có hỗ trợ các liên kết knows hay không). Điều này ngụ ý rằng tôi có thể viết trong tệp FOAF của tôi rằng tôi biết Håkon Lie bằng việc sử dụng URI của anh ta trong dữ liệu của Cộng đồng Opera, và người hoặc máy duyệt dữ liệu đó có thể đi theo liên kết đó và thấy được tất cả các bạn bè của anh ta. [Cập nhật:] Hơn nữa, Cộng đồng trang Opera cho phép tự bạn bạn đăng ký RDF URI trên một trang khác. Điều này ngụ ý rằng dữ liệu công khai về bạn từ các trang khác nhau có thể được liên kết cùng thành một web, và người hoặc máy bắt đầu với nhận diện Opera của bạn có thể tìm được nhau.
Quy tắc số 4, để tạo các đường liên kết ở đâu đó khác nữa, là cần thiết để kết nối dữ liệu chúng ta có trong web, một web nghiêm túc, không bị ràng buộc mà ở đó bạn có thể tìm thấy tất cả các dạng các điều, hệt như trong web siêu văn bản mà chúng ta đã định xây dựng.
Trong các trang web siêu văn bản thì nó được xem là thông thường thay vì là quy ước tồi khoogn liên kết tới tư liệu bên ngoài có liên quan. Giá trị thông tin của riêng bạn là rất nhiều chức năng của những gì nó liên kết tới, cũng như giá trị vốn dĩ của thông tin trong trang web đó. Vì thế nó cũng theo Web Ngữ nghĩa.
Vì thế hãy xem xét các cách thức liên kết dữ liệu, bắt đầu bằng cách đơn giản nhất tạo một đường liên kết.

Tra cứu web cơ bản

Cách đơn giản nhất để tạo dữ liệu liên kết là sử dụng, trong một tệp, một URI mà trỏ vào một tệp khác.
Khi bạn viết một tệp RDF, ví dụ , sau đó bạn có thể sử dụng các mã nhận diện cục bộ trong tệp đó, ví dụ #albert, #brian và #carol. Trong N3 bạn có thể nói
<#albert>  fam:child <#brian>, <#carol>.
hoặc trong RDF/XML

  
Kiến trúc www bây giờ trao mã nhận diện toàn cầu "http://example.org/smith#albert" cho Albert. Đây là điều có giá trị để làm, khi mà bất kỳ ai trên thế giới bây giờ cũng có thể sử dụng mã nhận diện toàn cầu đó để tham chiếu tới Albert và trao nhiều thông tin hơn.
<#denise>  fam:child <#edwin>, .
hoặc trong RDF/XML

  
Rõ ràng là hợp lý cho bất kỳ ai đi qua mã 'http://example.org/smith#carol" để:
  1. Tạo URI của tài liệu bằng việc cắt bớt trước khi băm
  2. Truy cập tài liệu đó để có được thông tin về #carol
Chúng tôi gọi việc giành được từ (con trỏ) địa chỉ của hạng mục dữ liệu có ở một vị trí khác là URI. Đây là web ngữ nghĩa cơ bản.
Có vài biến thể.

Biến thể: các URIs không có dấu xược chéo và HTTP 303

Có vài tình huống ở đó việc chia các mã nhận diện thành các tài liệu không làm việc tốt. Có thể có, về logic, một ký hiệu toàn cầu cho 1 tài liệu, và có sự miễn cưỡng để đưa vào một dấu # trong URI như
http://wordnet.example.net/antidisesablishmentarianism#word
Về lịch sử, các từ vựng sớm của Dublin Core và FOAF đã không có dấu # trong các URI của chúng. Trong bất kỳ sự kiện nào khi HTTP URIs không có băm sẽ được sử dụng cho các khái niệm trừu tượng, và có tài liệu mang thông tin về chúng, sau đó:
  1. Yêu cầu HTTP GET trong URI của khái niệm đó trả về 303 See Also và trao vào vị trí đó: đầu đề (header), URI của tài liệu.
  2. Tài liệu được truy xuất như bình thường
Phương pháp này có ưu điểm là các URIs có thể được tạo ra từ tất cả các dạng. Nó có nhược điểm là một yêu cầu HTTP mBrowse-ableust được tạo ra cho từng yêu cầu. Trong trường hợp của Dublin Core, ví dụ, dc:title và dc:creator … trong thực tế được phục vụ bởi tài liệu bản thể học y hệt, nhưng bạn không biết cho tới khi từng tài liệu được lấy về và trả về các chuyển hướng HTML.

Biến thể: FOAF và rdfs:seeAlso

Qui ước bạn của bạn (Friend-Of-A-Friend) sử dụng dạng liên kết dữ liệu, nhưng không sử dụng cả 2 dạng được nêu ở trên. Để tham chiếu tới một người khác trong tệp FOAF, qui ước đó đã đưa ra 2 thuộc tính, một thuộc tính chỉ tới tài liệu chúng được mô tả trong đó, và tài liệu kia cho việc nhận diện chúng trong tài liệu đó.
<#i>  foaf:knows  [
       foaf:mbox ;
        rdfs:seeAlso  ].
Đọc là, “Tôi biết rằng ai có thư điện tử joe@example.com và về ai có nhiều thông tin hơn trong "
Trên thực tế, vì tính riêng tư, thường mọi người không đặt các địa chỉ thư điện tử của họ lên web một cách trực tiếp, mà thực tế đặt sự băm một chiều (SHA-1) địa chỉ thư điện tử của họ và trao điều đó. Mẹo thông minh này cho phép những người biết địa chỉ thư điện tử của họ biết được rằng đây chính là người đó, không trao thư điện tử cho người khác.
<#i>  foaf:knows  [
       foaf:mbox_sha1sum "2738167846123764823647";  # @@ dummy
  rdfs:seeAslo  ].
Hệ thống liên kết này từng rất thành công, tạo ra mạng xã hội đang phát triển, và áp đảo, vào năm 2006, dữ liệu liên kết sẵn sàng trên web.
Tuy nhiên, hệ thống đó có yếu điểm là nó không đưa ra URIs cho mọi người, và vì thế các liên kết cơ bản tới họ không thể làm được.
Tôi khuyến cáo (như trên weblogs về các Liên kết trên Web ngữ nghĩa, tự cho bạn một URI, và Chuyển lại và chuyển tiếp các liên kết theo RDF thực sự là quan trọng) là những ai tạo ra một tệp FOAF tự trao cho họ một URI cũng như sử dụng qui ước FOAF. Tương tự, khi bạn tham chiếu tới một tệp FOAF mà trao một URI cho một người, sử dụng nó trong tham chiếu của bạn tới người đó, sao cho các khách hàng mà chỉ sử dụng các URIs và không biết về qui ước FOAF có thể bám theo liên kết đó.

Các đồ họa có khả năng duyệt được

Vì thế bây giờ chúng ta đã xem xét các cách thức tạo một đường liên kết, hãy xem xét các lựa chọn khi nào tạo đường liên kết.
Một mẫu quan trọng là tập hợp dữ liệu mà bạn có thể khai thác khi bạn đi liên kết bằng liên kết bằng việc lấy dữ liệu. Bất kỳ khi nào bạn tra cứu một URI cho một nút trong đồ họa RDF, thì máy chủ trả về thông tin về các cung ngoài nút đó, và các cung trong nút đó. Nói cách khác, nó trả về bất kỳ tuyên bố RDF nào theo đó hạng mục đó xuất hiện bất kể là chủ ngữ hay hay bổ ngữ.
Một cách chính thức, hãy gọi đồ họa G là có khả năng duyệt được nếu, đối với URI của bất kỳ nút nào ở G, nếu tôi tra cứu URI đó thì tôi sẽ được trả về thông tin mà mô tả nút đó, trong đó việc mô tả nút ngụ ý:
  1. Việc trả về tất cả các tuyên bố nơi nút đó là chủ ngữ hoặc bổ ngữ; và
  2. Việc mô tả tất cả các nút trống được gắn vào nút đó bằng một cung.
(Đồ họa con được trả về được tham chiếu tới như là “minimum Spanning Graph (MSG [@@ref])” hoặc phân tử RDF [@@ref], phụ thuộc vào việc liệu các nút có được xem xét được nhận diện nếu chúng có thể được trình bày như là đường dẫn của hàm, hay đảo lộn các thuộc tính hàm nghịch đảo. Mô tả ngắn gọn có ràng buộc, nó chỉ bám theo các đường liên kết từ chủ ngữ tới bổ ngữ, không làm việc).
Trong thực tế, khi dữ liệu được lưu trữ trong 2 tài liệu, điều này ngụ ý rằng bất kỳ tuyên bố RDF nào có liên quan tới những điều trong 2 tệp đó phải được nhắc lại trong từng tệp đó. Vì thế, ví dụ, trong trang FOAF của tôi, tôi nêu rằng tôi là thành viên của nhóm DIG, và rằng thông tin được lặp lại trong dữ liệu của nhóm DIG. Vì thế ai đó bắt đầu từ khái niệm của nhóm đó cũng có thể tìm ra rằng tôi là thành viên. Trên thực tế, ai đó bắt đầu bằng URI của tôi có thể tìm ra tất cả những người trong cùng nhóm đó.

Các giới hạn của dữ liệu có khả năng duyệt được

Vì thế các tuyên bố liên quan tới những điều trong 2 tài liệu đó phải được nhắc lại trong từng tài liệu. Điều này rõ ràng là chống lại quy tắc đầu về lưu trữ dữ liệu: không lưu trữ dữ liệu y hệt ở 2 nơi khác nhau: bạn sẽ có các vấn đề giữ cho nó nhất quán. Điều này quả thực là vấn đề với dữ liệu có khả năng duyệt được. Tập hợp các dữ liệu hoàn toàn có khả năng duyệt được với các đường liên kết cả theo 2 hướng phải là hoàn toàn nhất quán, và có tọa độ, đặc biệt nếu các tác giả khác nhau hoặc các chương trình khác nhau có liên quan.
Tuy nhiên, chúng ta có thể có dữ liệu có khả năng duyệt được hoàn toàn, nơi mà nó được tự động sinh ra. Ví dụ, máy chủ dbview, cung cấp các tài liệu ảo có khả năng duyệt được có chứa dữ liệu từ bất kỳ cơ sở dữ liệu quan hệ tùy ý nào.
Khi chúng ta có dư liệu từ nhiều nguồn, thì chúng ta có sự thỏa hiệp. Chúng thường được thiết lập theo nghĩa chung, đưa ra câu hỏi,
“Nếu ai đó có URI của thứ đó, thì các mối quan hệ nào với các chủ ngữ khác nào là hữu dụng để biết?”
Đôi khi, các câu hỏi xã hội xác định câu trả lời. Tôi có các đường liên kết trong tệp FOAF của tôi mà tôi biết những người đa dạng khác. Họ thường không nhắc lại thông tin đó trong các tệp FOAF của họ.
Ai đó có lẽ nói rằng họ biết tôi, đó là sự khẳng định điều mà, theo quy ước của FOAF, là của họ để khẳng định, và của độc giả để tin tưởng hay không.
Những lần khác, số lượng các cung làm cho nó không thực tế. Sự lần vết của GPS đưa ra hàng ngàn lần ở đó kinh độ, vĩ độ của tôi được biết. Từng người tải tệp FOAF của tôi có thể kỳ vọng có được thông tin danh thiếp của tôi, nhưng không phải tất cả các điểm lần vết đó. Là hợp lý để có con trỏ từ sự lần vết đó (hoặc thậm chí từng điểm) tới người mà vị trí của anh/chị ta được thể hiện, chứ không theo cách khác.
Một mẫu là để có các đường liên kết của thuộc tính nhất định trong tài liệu tách bạch. Trang chủ của một người không liệt kê tất cả các xuất bản phẩm của họ, mà thay vào đó đặt một đường liên kết tới nó để tài liệu tách bạch liệt kê chúng. Có sự hiểu biết rằng foaf:made trao công việc ở vài dạng, nhưng foad:pubs trỏ tới tài liệu trao danh sách các công việc. Vì thế, ai đó tìm kiếm thứ gì đó liên kết foaf:made có thể làm tốt để đi theo một đường liên kết foaf:pubs. Có lẽ là hữu dụng để chính thức hóa khái niệm đó với tuyên bố như là
foaf:made  link:listDocumentProperty foaf:pubs.
ở một trong những bản thể luận.

Các dịch vụ truy vấn

Đôi khi lượng dữ liệu khổng lồ làm cho việc phục vụ nó có thể cần nhiều tệp, nhưng nặng nề cho các truy vấn hiệu quả từ xa đối với các tập hợp dữ liệu đó. Trong trường hợp này, dường như hợp lý để cung cấp dịch vụ truy vấn SPARQL. Để làm cho dữ liệu được liên kết có hiệu qur, những người chỉ có URI của thứ gì đó phải có khả năng tìm ra cách thức của họ với điểm đầu cuối SPARQL.
Ở đây một lần nữa câu trả lời HTTP 303 có thể được sử dụng, để tham chiếu tới người truy vấn tới tài liệu với siêu dữ liệu về các điểm đầu cuối dịch vụ truy vấn nào có thể cung cấp thông tin gì về các lớp URIs nào.
Các từ vựng để làm điều này còn chưa được tiêu chuẩn hóa.

Liệu Dữ liệu Mở Liên kết của bạn có là 5 sao?

(Được thêm vào năm 2010). Năm nay, để khuyến khích mọi người - đặc biệt là những người sở hữu các dữ liệu của chính phủ - đi theo con đường tới dữ liệu liên kết tốt, tôi đã phát triển hệ thống đánh giá xếp hạng sao này.
Dữ liệu Liên kết được định nghĩa ở trên. Dữ liệu Mở Liên kết - LOD (Linked Open Data) được phát hành với một giấy phép mở, nó không cản trở sử dụng lại nó một cách tự do. Giấy phép Creative Commons Attribution (CC BY) là một giấy phép ví dụ, giống như Giấy phép Chính phủ Mở (Open Government Licence) của Vương quốc Anh. Dữ liệu Liên kết tất nhiên, nói chung, không buộc phải là mở - có nhiều sử dụng quan trọng của dữ liệu liên kết trong nội bộ, và cho các dữ liệu cá nhân và nhóm rộng rãi. Bạn có thể có Dữ liệu Liên kết 5 sao mà nó không là mở. Tuy nhiên, nếu nó được coi là Dữ liệu Mở Liên kết thì nó phải là mở, để có được bất kỳ ngôi sao nào.
Theo lược đồ các ngôi sao, bạn có 1 ngôi sao (lớn!) nếu thông tin hoàn toàn được làm cho công khai, thậm chí nếu đó là ảnh chụp bản quét bản fax một chiếc bàn - nếu nó có giấy phép mở. Bạn có thêm các ngôi sao khi bạn làm mạnh thêm dần lên, dễ dàng hơn cho mọi người để sử dụng.


Sẵn sàng trên web (bất kể định dạng nào) nhưng với một giấy phép mở, để trở thành Dữ liệu Mở
★★ Sẵn sàng như là dữ liệu có cấu trúc và máy đọc được (ví dụ, excel thay vì quét ảnh cái bảng)
★★★ Như 2 sao cộng với định dạng không sở hữu độc quyền (ví dụ, CSV thay vì excel)
★★★★ Tất cả ở trên cộng với, Sử dụng các tiêu chuẩn mở từ W3C (RDF và SPARQL) để nhận diện mọi thứ, sao cho mọi người có thể trỏ tới đồ của bạn
★★★★★ Tất cả ở trên, cộng với: Liên kết dữ liệu của bạn tới dữ liệu của những người khác để cung cấp ngữ cảnh


Dữ liệu của bạn tốt tới đâu? Bạn có thể mua chiếc cốt dữ liệu 5 sao, áo T-shirt có gắn nhãn từ cửa hàng của W3C tại cafepress: sử dụng chúng để làm cho các đồng nghiệp và các bạn bè đi dự hội nghị của bạn nghĩ về dữ liệu liên kết 5 sao. (Tiền đó còn giúp W3C).
Bây giờ trong năm 2010, mọi người đã và đang thúc ép tôi, về dữ liệu chính phủ, để bổ sung thêm yêu cầu mới, và nên có siêu dữ liệu về bản thân dữ liệu, và rằng siêu dữ liệu đó nên là sẵn sàng từ catalog chính. Bất kỳ tập hợp dữ liệu mở nào (hoặc thậm chí các tập hợp dữ liệu còn chưa nhưng nên là mở) có thể được đăng ký tại ckan.net. Các tập hợp dữ liệu của chính phủ từ Vương quốc Anh và Mỹ nên được đăng ký tại data.gov.uk hoặc data.gov một cách tương ứng. Các quốc gia khác tôi kỳ vọng phát triển các đăng ký của riêng họ. Vâng, nên có siêu dữ liệu về các tập hợp dữ liệu của bạn. Điều đó có thể là chủ đề lưu ý mới trong loạt bài này.

Kết luận

Dữ liệu Liên kết là cơ bản để thực sự kết nối web ngữ nghĩa. Là rất dễ để làm với suy tính một chút, và trở thành bản chất tự nhiên thứ 2. Các cân nhắc ý nghĩa chung khác nhau xác định khi nào thì tạo liên kết và khi nào thì không.
Khách hàng Tabulator (chạy trong trình duyệt phù hợp) cho phép bạn duyệt dữ liệu liên kết bằng việc sử dụng các quy ước ở trên, và có thể được sử dụng để kiểm tra dữ liệu liên kết của bạn làm việc.
Các tham chiếu
[Ding2005] Li Ding, et. al., Tracking RDF Graph Provenance using RDF Molecules, UMBC Tech Report TR-CS-05-06

Theo sát

Tháng 2/2006 Rob Crowell tùy biến thích nghi DBView (2004) của Dan Connolly, ánh xạ dữ liệu SQL thành RDF liên kết, thêm các đường liên kết ngược.
Ngày 05/09/2006 Chris Bizer et al tùy biến thích nghi máy chủ D2R Server để cung cấp kiểu nhìn dữ liệu liên kết của cơ sở dữ liệu.
Ngày 10/10/2006 Chris Bizer et al sản xuất ra Thư viện Khách hàng Web Ngữ nghĩa (Semantic Web Client Library), “Về mặt kỹ thuật, thư viện đó đại diện cho Web Ngữ nghĩa như là đồ họa RDF duy nhất của Jena hoặc Mô hình Jena”. Mã lấy các tài liệu web như là cần thiết để trả lời các truy vấn.
Ngày 15/10/2007 Yves Raimond đã tạo ra máy trạm Web Ngữ nghĩa cho SWI prolog với chức năng tương tự.
Tôi có cuộc nói chuyện ở hội nghị Chính phủ điện tử 2.0 của O’Reilly năm 2009 ở Washington DC, nói về “Chỉ là Túi các con Chip” @@ref, và nói về lược đồ 5 sao. Theo sau điều đó, từ tóm tắt được đưa lên blog của InkDroid (và CSS) về lược đồ 5 sao được áp dụng ở đây
The Semantic Web isn't just about putting data on the web. It is about making links, so that a person or machine can explore the web of data. With linked data, when you have some of it, you can find other, related, data.
Like the web of hypertext, the web of data is constructed with documents on the web. However, unlike the web of hypertext, where links are relationships anchors in hypertext documents written in HTML, for data they links between arbitrary things described by RDF,. The URIs identify any kind of object or concept. But for HTML or RDF, the same expectations apply to make the web grow:
  1. Use URIs as names for things
  2. Use HTTP URIs so that people can look up those names.
  3. When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)
  4. Include links to other URIs. so that they can discover more things.
Simple. In fact, though, a surprising amount of data isn't linked in 2006, because of problems with one or more of the steps. This article discusses solutions to these problems, details of implementation, and factors affecting choices about how you publish your data.
The four rules
I'll refer to the steps above as rules, but they are expectations of behavior. Breaking them does not destroy anything, but misses an opportunity to make data interconnected. This in turn limits the ways it can later be reused in unexpected ways. It is the unexpected re-use of information which is the value added by the web.
The first rule, to identify things with URIs, is pretty much understood by most people doing semantic web technology. If it doesn't use the universal URI set of symbols, we don't call it Semantic Web.
The second rule, to use HTTP URIs, is also widely understood. The only deviation has been, since the web started, a constant tendency for people to invent new URI schemes (and sub-schemes within the urn: scheme) such as LSIDs and handles and XRIs and DOIs and so on, for various reasons. Typically, these involve not wanting to commit to the established Domain Name System (DNS) for delegation of authority but to construct something under separate control. Sometimes it has to do with not understanding that HTTP URIs are names (not addresses) and that HTTP name lookup is a complex, powerful and evolving set of standards. This issue discussed at length elsewhere, and time does not allow us to delve into it here. [ @@ref TAG finding, etc])
The third rule, that one should serve information on the web against a URI, is, in 2006, well followed for most ontologies, but, for some reason, not for some major datasets.  One can, in general, look up the properties and classes one finds in data, and get information from the RDF, RDFS, and OWL ontologies including the relationships between the terms in the ontology.
The basic format here for RDF/XML, with its popular alternative serialization N3 (or Turtle). Large datasets provide a SPARQL query service, but the basic linked data should br provided as well.
Many research and evaluation projects in the few years of the Semantic Web technologies produced ontologies, and significant data stores, but the data, if available at all, is buried in a zip archive somewhere, rather than being accessible on the web as linked data. The Biopax project, the CSAktive data on computer science research people and projects were two examples. [The CSAktive data is now (2007) available as linked data]
There is also a large and increasing amount of URIs of non-ontology data which can be looked up. Semantic wikis are one example. The "Friend of a friend" (FOAF) andDescription of a Project (DOAP) ontologies are used to build social networks across the web. Typical social network portals do not provide links to other sites, nor expose their data in a standard form.
LiveJournal and Opera Community are two portal web sites which do in fact publish their data in RDF on the web. (Plaxo has a trail scheme, and I'm not sure whether they support knows links). This means that I can write in my FOAF file that I know Håkon Lie by using his URI in the Opera Community data, and a person or machine browsing that data can then follow that link and find all his friends. [Update:] Also, the Opera Community site allows you to register the RDF URI for yourelf on another site. This means that public data about you from different sites can be linked together into one web, and a person or machine starting with your Opera identity can find the others.
The fourth rule, to make links elsewhere, is necessary to connect the data we have into a web, a serious, unbounded web in which one can find al kinds of things, just as on the hypertext web we have managed to build.
In hypertext web sites it is considered generally rather bad etiquette not to link to related external material. The value of your own information is very much a function of what it links to, as well as the inherent value of the information within the web page.  So it is also in the Semantic Web.
So let's look at the ways of linking data, starting with the simplest way of making a link.

Basic web look-up

The simplest way to make linked data is to use, in one file, a URI which points into another.
When you write an RDF file, say , then you can use local identifiers within the file, say #albert, #brian and #carol. In N3 you might say
<#albert>  fam:child <#brian>, <#carol>.
or in RDF/XML

 
  
The WWW architecture now gives a global identifier "http://example.org/smith#albert" to Albert. This is a valuable thing to do, as anyone on the planet can now use that global identifier to refer to Albert and give more information.
For example, in the document someone might write:
<#denise>  fam:child <#edwin>, .
or in RDF/XML

 
  

Clearly it is reasonable for anyone who comes across the identifier 'http://example.org/smith#carol" to:
  1. Form the URI of the document by truncating before the hash
  2. Access the document to obtain information about #carol
We call this dereferencing the URI. This is basic semantic web.
There are several variations.
Variation: URIs without Slashes and HTTP 303
There are some circumstances in which dividing identifiers into documents doesn't work very well. There may logically be one global symbol per document per document, and there is a reluctance to include a # in the URI such as
http://wordnet.example.net/antidisesablishmentarianism#word
Historically, the early Dublin Core and FOAF vocabularies did not have # in their URIs. In any event when HTTP URIs without hashes are used for abstract concepts, and there is a document that carries information about them, then:
  1. An HTTP GET request on the URI of the concept returns 303 See Also and gives in the Location: header, the URI of the document.
  2. The document is retrieved as normal
This method has the advantage that URIs can be made up of all forms. It has the disadvantage that an HTTP request mBrowse-ableust be made for every single one. In the case of Dublin Core, for example, dc:title and dc:creator etc are in fact served by the same ontology document, but one does not know until they have each been fetched and returned HTTP redirections.
Variation: FOAF and rdfs:seeAlso
The Friend-Of-A-Friend convention uses a form of data link, but not using either of the two forms mentioned above. To refer to another person in a FOAF file, the convention was to give two properties, one pointing to the document they are described in, and the other for identifying them within that document.
<#i>  foaf:knows  [
       foaf:mbox ;
        rdfs:seeAlso  ].
Read, "I know that which has email joe@example.com and about which more information is in ".
In fact, for privacy, often people don't put their email addresses on the web directly, but in fact put a one-way hash (SHA-1) of their email address and give that. This clever trick allows people who know their email address already to work out that it is the same person, without giving the email away to others.
<#i>  foaf:knows  [
       foaf:mbox_sha1sum "2738167846123764823647";  # @@ dummy
  rdfs:seeAslo  ].
This linking system was very successful, forming a growing social network, and dominating, in 2006, the linked data available on the web.
However, the system has the snag that it does not give URIs to people, and so basic links to them cannot be made.
I recommend (e.g in weblogs on Links on the Semantic Web , Give yourself a URI, and and Backward and Forward links in RDF just as important) that those making a FOAF file give themselves a URI as well as using the FOAF convention. Similarly, when you refer to a FOAF file which gives a URI to a person, use it in your reference to that person, so that clients which just use URIs and don't know about the FOAF convention can follow the link.
Browsable graphs
So now we have looked at ways of making a link, let's look at the choices of when to make a link.
One important pattern is a set of data which you can explore as you go link by link by fetching data. Whenever one looks up the URI for a node in the RDF graph, the server returns information about the arcs out of that node, and the arcs in. In other words, it returns any RDF statements in which the term appears as either subject or object.
Formally, call a graph G browsable if, for the URI of any node in G, if I look up that URI I will be returned information which describes the node, where describing a node means:
  1. Returning all statements where the node is a subject or object; and
  2. Describing all blank nodes attached to the node by one arc.
(The subgraph returned has been referred to as "minimum Spanning Graph (MSG [@@ref] ) or RDF molecule [@@ref], depending on whether nodes are considered identified if they can be expressed as a path of function, or reverse inverse functional properties. A concise bounded description, which only follows links from subject to object, does not work.)
In practice, when data is stored in two documents, this means that any RDF statements which relate things in the two files must be repeated in each. So, for example, in my FOAF page I mention that I am a member of the DIG group, and that information is repeated on the DIG group data. Thus, someone starting from the concept of the group can also find out that I am a member. In fact, someone who starts off with my URI can find all the people who are in the same group.
Limitations on browseable data
So statements which relate things in the two documents must be repeated in each. This clearly is against the first rule of data storage: don't store the same data in two different places: you will have problems keeping it consistent. This is indeed an issue with browsable data. A set of of completely browsable data with links in both directions has to be completely consistent, and that takes coordination, especially if different authors or different programs are involved.
We can have completely browsable data, however, where it is automatically generated. The dbview server, for example, provides a browsable virtual documents containing the data from any arbitrary relational database.
When we have a data from multiple sources, then we have compromises. These are often settled by common sense, asking the question,
"If someone has the URI of that thing, what relationships to what other objects is it useful to know about?"
Sometimes, social questions determine the answer. I have links in my FOAF file that I know various people. They don't generally repeat that information in their FOAF files. Someone may say that they know me, which is an assertion which, in the FOAF convention, is theirs to assert, and the reader's to trust or not.
Other times, the number of arcs makes it impractical. A GPS track gives thousands of times at which my latitude, longitude are known. Every person loading my FOAF file can expect to get my business card information, but not all those trackpoints. It is reasonable to have a pointer from the track (or even each point) to the person whose position is represented, but not the other way.
One pattern is to have links of a certain property in a separate document. A person's homepage doesn't list all their publications, but instead puts a link to it a separate document listing them. There is an understanding that foaf:made gives a work of some sort, but foaf:pubs points to a document giving a list of works. Thus, someone searching for something foaf:made link would do well to follow a foaf:pubs link. It might be useful to formalize the notion with a statement like
foaf:made  link:listDocumentProperty foaf:pubs.
in one of the ontologies.
Query services
Sometimes the sheer volume of data makes serving it as lots of files possible, but cumbersome for efficient remote queries over the dataset. In this case, it seems reasonable to provide a SPARQL query service. To make the data be effectively linked, someone who only has the URI of something must be able to find their way the SPARQL endpoint.
Here again the HTTP 303 response can be used, to refer the enquirer to a document with metadata about which query service endpoints can provide what information about which classes of URIs.
Vocabularies for doing this have not yet been standardized.
Is your Linked Open Data 5 Star?
(Added 2010). This year, in order to encourage people -- especially government data owners -- along the road to good linked data, I have developped this star rating system.
Linked Data is defined above. Linked Open Data (LOD) is Linked Data which is released under an open licence, which does not impede its reuse for free. Creative Commons CC-BY is an example open licence, as is the UK's Open Government Licence. Linked Data does not of course in general have to be open -- there is a lot of important use of lnked data internally, and for personal and group-wide data. You can have 5-star Linked Data without it being open. However, if it claims to be Linked Open Data then it does have to be open, to get any star at all.
Under the star scheme, you get one (big!) star if the information has been made public at all, even if it is a photo of a scan of a fax of a table -- if it has an open licence. The you get more stars as you make it progressively more powerful, easier for people to use.
Available on the web (whatever format) but with an open licence, to be Open Data
★★ Available as machine-readable structured data (e.g. excel instead of image scan of a table)
★★★ as (2) plus non-proprietary format (e.g. CSV instead of excel)
★★★★ All the above plus, Use open standards from W3C (RDF and SPARQL) to identify things, so that people can point at your stuff
★★★★★ All the above, plus: Link your data to other people’s data to provide context
How well does your data do? You can buy 5 star data mugs, T-shirts and bumper stickers from the W3C shop at cafepress: use them to get your colleages and fellows conference-goers thinking 5 star linked data. (Profits also help W3C :-).
Now in 2010, people have been pressing me, for governmet data, to add a new requirement, and that is there should be metadata about the data itself, and that that metadata should be availble from a major catalog. Any open dataset (or even datasets which are not but should be open) can be regisetreed at ckan.net. Government datasets from the UK and US hsould be regisetred at data.gov.uk or data.gov respectively. Other copuntries I expect to develop their own registries. Yes, there should be metadata about your dataset. That may be the subject of a new note in this series.
Conclusion
Linked data is essential to actually connect the semantic web. It is quite easy to do with a little thought, and becomes second nature. Various common sense considerations determine when to make a link and when not to.
The Tabulator client (running in a suitable browser) allows you to browse linked data using the above conventions, and can be used to check that your linked data works.
References
[Ding2005] Li Ding, et. al., Tracking RDF Graph Provenance using RDF Molecules, UMBC Tech Report TR-CS-05-06

Followup
2006-02 Rob Crowell adapts Dan Connolly's DBView (2004) which maps SQL data into linked RDF, adding backlinks.
2006-09-05 Chris Bizer et al adapt D2R Server to provide a linked data view of a database.
2006-10-10 Chris Bizer et al produce the Semantic Web Client Library, "Technically, the library represents the Semantic Web as a single Jena RDF graph or Jena Model." The code feteches web documents as needed to answer queries.
2007-01-15 Yves Raimond has produced a Semantic Web client for SWI prolog wit similar functionality.
I have a talk at the 2009 O'Reilly eGovernment 2.0 conference in Washington DC, talking about "Just a Bag of Chips" @@ref, and talking about the 5 star scheme. Following that, From InkDroid blogged summary (and CSS) of my 5 star sceheme adapted here

Dịch: Lê Trung Nghĩa


Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.