2013-04-14 28 views
5

Tôi hơi bối rối về ngữ nghĩa của trang web. Tôi hiểu rằng mọi URI phải đại diện cho một nguồn tài nguyên. Tôi giả định rằng tất cả thông tin do RDFa cung cấp bên trong một trang web mô tả nguồn tài nguyên được đại diện bởi URI của trang web đó. Câu hỏi của tôi là: Các phương pháp hay nhất để cung cấp dữ liệu ngữ nghĩa cho các trang con của trang web là gì.Các phương pháp hay nhất để thêm ngữ nghĩa vào trang web

Trong trường hợp của tôi, tôi muốn tạo trang web cho nhóm nhà hát có tên là magma sử dụng RDFa với từ vựng schema.org và opengraph. Giả sử tôi có trang chào mừng (http://magma.com/), một trang liên hệ (http://magma.com/contact/) và các trang cho mỗi lần phát riêng lẻ (http://magma.com/play/<playid>/).

Bây giờ tôi sẽ nghĩ rằng cả trang chào mừng và trang liên hệ đại diện cho cùng một nguồn tin (magma) trong khi cung cấp thông tin khác nhau về nguồn tin đó. Tuy nhiên, các trang chơi thể hiện các vở kịch chỉ xảy ra do pháp sư thực hiện. Hay là tốt hơn khi nói rằng các trang chơi cũng đại diện cho pháp sư nhưng cung cấp thông tin về các vở kịch sẽ được thực hiện bởi nhóm đó? Tùy chọn thứ ba tôi gặp phải là http://schema.org/WebPage. Đặc biệt các kiểu con như ContactPage dường như có liên quan.

Khi nói đến triển khai, tôi đặt RDFa ở đâu?

Và cuối cùng: Lựa chọn của tôi sẽ thay đổi cách trang web được xử lý bởi bên thứ ba (google, facebook, ...) như thế nào?

Tôi nhận thấy câu hỏi này hơi bị mờ. Để làm cho nó cụ thể hơn, tôi sẽ thêm một ví dụ mà bạn có thể phê bình:

<html vocab="http://schema.org/" typeof="TheaterGroup"> 
    <head> 
    <meta charset="UTF-8"/> 
    <title>Magma - Romeo and Juliet</title> 

    <!-- magma sematics from a template file --> 
    <meta property="name" content="Magma"/> 
    <meta property="logo" content="/static/logo.png"/> 
    <link rel="home" property="url" content="http://magma.com/"/> 
    </head> 

    <body> 
    <h1>Romeo and Juliet</h1> 

    <!-- semantics of the play --> 
    <div typeof="CreativeWork" name="Romeo and Juliet"> 
     ... 
    </div> 

    <h2>Shows</h2> 

    <!-- samantics of magma events --> 
    <ul property="events"> 
     <li typeof="Event"><time property="startDate">...</time></li> 
     ... 
    </ul> 
    </body> 
</html> 

Trả lời

8

Tôi hiểu rằng mỗi URI nên đại diện cho một ressource. Tôi giả định rằng tất cả thông tin do RDFa cung cấp bên trong một trang web mô tả nguồn tài nguyên được đại diện bởi URI của trang web đó.

Vâng, URI HTTP có thể xác định chính trang đó HOẶC nội dung của trang. Bạn không thể biết liệu một URI có nhận dạng được trang hay thứ bằng cách đơn giản nhìn vào nó hay không.

Ví dụ (trong cú pháp Rùa):

<http://en.wikipedia.org/wiki/The_Lord_of_the_Rings> ex:author "John Doe" 

này có nghĩa là các trang HTML với URI http://en.wikipedia.org/wiki/The_Lord_of_the_Rings là tác giả của "John Doe". Hoặc nó có thể có nghĩa là điều được mô tả bởi trang HTML đó (→ tiểu thuyết) được tác giả bởi "John Doe". Tất nhiên đây là một sự khác biệt quan trọng.

Có nhiều cách khác nhau để phân biệt URI đại diện cho những gì và có một số tranh chấp về nó. Cuộc thảo luận xung quanh vấn đề này được gọi là vấn đề httpRange-14.Xem ví dụ bài viết trên Wikipedia Web resource.

Một cách đang sử dụng các URI băm (see also this answer). Ví dụ: http://magma.com/play/42 có thể xác định trang về chơi, http://magma.com/play/42#play có thể xác định vở kịch.

Một cách khác là sử dụng Mã trạng thái HTTP 303. Mã số 200 cung cấp cho đại diện của trang về sự việc, mã 303 See Other cung cấp cho URI bổ sung xác định điều. Phương pháp này được sử dụng bởi dbpedia:

Xem Choosing between 303 and Hash.

Bây giờ, khi sử dụng RDFa, bạn có thể thực hiện các câu lệnh về cả hai, chính trang đó và điều được đại diện bởi trang. Chỉ cần sử dụng URI tương ứng làm chủ đề (ví dụ: bằng cách sử dụng resource attribute).

Vì vậy, giả sử http://magma.com/#magma đại diện cho nhóm rạp hát. Bây giờ bạn có thể sử dụng URI này trên mọi trang (/ liên hệ,/phát /,…) để thực hiện báo cáo về số mức độ nhóm. để tham khảo nhóm.

<div resource="http://magma.com/#magma"> 
    <span property="ex:name">Magma</span> 
</div> 

<div resource="http://magma.com/"> 
    <span property="ex:name">Website of Magma</span> 
</div> 
+0

câu trả lời tuyệt vời. Tôi có thể yêu cầu bạn mở rộng về cách các bên thứ 3 như google và facebook sẽ giải thích thông tin được cung cấp theo cách này không? Họ sẽ chọn nguồn nào để hiển thị? – tobib

+1

@tobib: Điều này không nên có bất kỳ hiệu ứng nào mà URI họ sử dụng cho kết quả tìm kiếm của họ, v.v. vì họ thường quan tâm đến các trang, chứ không phải những thứ mà họ có thể đại diện. Tuy nhiên, tất nhiên các dịch vụ có thể giải thích/hiểu các phát biểu về những điều bạn cung cấp và làm với thông tin đó bất cứ điều gì họ muốn làm. Tôi không biết Facebook, nhưng AFAIK họ chỉ sử dụng từ vựng [Open Graph] (http://ogp.me/). Google có thể chỉ sử dụng [từ vựng được ghi lại] (http://support.google.com/webmasters/bin/answer.py?hl=vi&answer=99170). Nhưng tôi không phục vụ tốt. – unor

2

Tôi đề nghị bạn trước tiên hãy xem schema.org straightforward documentation. Từ vựng này rất toàn diện cho mối quan tâm của bạn và được hỗ trợ bởi các công cụ tìm kiếm chính.

Dưới đây là một ví dụ về đoạn mã để bạn bắt đầu, bạn có thể bao gồm điều này ngay trong trang HTML. Khi bạn nói về hiệu suất của vở kịch trên một trang web mà bạn có thể sử dụng:

<div itemscope itemtype="http://schema.org/TheaterEvent"> 
    <h1 itemprop="name">Romeo and Juliet</h1> 
    <span itemprop="location">Council Bluffs, IA, US</span> 
    <meta itemprop="startDate" content="2011-05-23">May 23 
    <a href="/offers.html" itemprop="offers">Buy tickets</a> 
</div> 

Trên trang tiếp xúc của bạn, bạn có thể bao gồm:

<div itemscope itemtype="http://schema.org/TheaterGroup"> 
    <span itemprop="name">Magma</span> 
    Tel:<span itemprop="telephone">(33 1) 42 68 53 00 </span> 
</div> 
+2

Cảm ơn, nhưng tôi không nghĩ rằng điều này trả lời câu hỏi của tôi. Trước tiên, tôi muốn sử dụng RDFa, không phải Microdata. Nhưng quan trọng hơn tôi muốn biết về ngữ nghĩa với các trang web bao gồm nhiều trang. Ví dụ của bạn chỉ hiển thị cách đánh dấu từng bit thông tin. – tobib

+0

Từ vựng Schema.org cũng được thể hiện dưới dạng RDFa: http://schema.org/docs/datamodel.html. Bạn nên thêm ngữ nghĩa tất cả thời gian thông tin quan tâm đang xuất hiện trong một trang web, bạn có thể thêm bao nhiêu thực thể như bạn muốn trong một trang, chỉ cần nhìn vào các ví dụ. Thiết kế mẫu web truyền thống (như MVC) có thể giúp bạn duy trì nội dung của các trang HTML nhưng nằm ngoài phạm vi của cuộc thảo luận này. – loopasam

Các vấn đề liên quan