2014-11-13 14 views
55

Tôi đã tự hỏi định dạng nào là "tốt nhất"? Schema.org, Microdata và RDFa hơi khó thực hiện. Họ có thể phá vỡ xác nhận và yêu cầu khá nhiều nỗ lực để đưa vào tài liệu.Microdata, RDFa hoặc JSON-LD Thích hợp hoặc sử dụng tốt nhất?

JSON-LD là, cuối cùng đối với tôi, một cách tốt hơn để triển khai dữ liệu có cấu trúc. Nhưng nó có hoạt động không? Mức hỗ trợ nào dành cho nó (ít nhất là bởi Google)?

+5

Chỉ cần cập nhật: Google hiện hiển thị trên trang của họ microdata kiểu json-ld. Ngay cả công cụ kiểm tra dữ liệu cũng hiển thị chúng làm ví dụ. Dường như họ bắt đầu thích chúng vào lúc này. – Grzegorz

Trả lời

43

Schema.org là một từ vựng có thể, giống như bất kỳ từ vựng nào khác, được sử dụng dưới nhiều hình thức. Trang web http://schema.org/ có các ví dụ sử dụng Microdata và cú pháp RDF RDFaJSON-LD, nhưng đây không phải là cú pháp duy nhất có thể sử dụng. Ví dụ: bạn có thể sử dụng nó với bất kỳ cú pháp khác RDF như Turtle hoặc RDF/XML.

Không có cú pháp tốt nhất. Tất cả đều có lợi thế và bất lợi. Xem ví dụ câu trả lời của tôi về differences between Microdata and RDFa. Lưu ý rằng you can use different syntaxes (and vocabularies) trong cùng một tài liệu.

Bây giờ, nếu bạn có ý định tiêu dùng cụ thể, bạn nên tham khảo tài liệu của họ. Tuy nhiên, hỗ trợ cú pháp đến và đi, và không phải tất cả mọi thứ họ có thể hỗ trợ là nhất thiết phải được làm tài liệu, và không phải mọi thứ được tài liệu nhất thiết phải hoạt động.

Trong trường hợp của Google, có thể bạn quan tâm đến Đoạn mã chi tiết của chúng. documentation about Rich Snippets đề cập đến Microdata, Microformats và RDFa của chúng. Tuy nhiên, lưu ý rằng không phải tất cả các ví dụ được liên kết đều sử dụng từ vựng Schema.org, nhưng là Data-vocabulary.org hoặc Microformats cũ hơn (vì bạn không thể sử dụng các từ vựng như Schema.org và Data-vocabulary.org với Microformats). Và cũng có một số Đoạn mã chi tiết không được liệt kê trên trang đó, như là Sitelinks Search Box, mà thậm chí chúng còn đề xuất cú pháp JSON-LD.

Là lời khuyên chung: Công cụ tìm kiếm thường ưu tiên nội dung hiển thị trên siêu dữ liệu ẩn. Ví dụ: việc có từ khóa dưới dạng siêu dữ liệu ẩn dễ dàng cho phép tác giả xác nhận rằng tài liệu của họ về một thứ gì đó khác với thực tế (hoặc do cố gắng lừa công cụ tìm kiếm hoặc vì tác giả quên cập nhật nội dung ở cả hai địa chỉ). Do đó, tách riêng siêu dữ liệu khỏi nội dung, như trường hợp với JSON-LD, có thể (có thể!) Dẫn đến cùng một vấn đề với công cụ tìm kiếm hiện tại có siêu dữ liệu ẩn. (Nếu hay mà công cụ tìm kiếm thực sự xử lý nó như thế là một câu hỏi mà là off-topic trên Stack Overflow.)

Một ưu điểm càng tốt để ghép các siêu dữ liệu với nội dung (ví dụ, với RDFa), là bạn có thể dễ dàng và tự động tạo ra cùng một thông tin trong JSON-LD, Rùa vv vì mọi thứ chỉ là RDF. Chỉ cần phân tích cú pháp RDFa, chuyển đổi sang định dạng tùy chọn của bạn và nhúng (trong script) hoặc liên kết (với rel - alternate) nếu nó có ý nghĩa.

Nhưng có, việc thêm RDFa thường phức tạp hơn việc thêm một đốm màu JSON-LD, vì bạn phải điều chỉnh nó thành đánh dấu hiện có. (Tuy nhiên, nó không nên "phá vỡ xác nhận" trừ khi bạn đang phạm sai lầm.)

+1

Về lỗi, tôi gặp sự cố với http://schema.org/openingHours. Khi họ sử dụng thuộc tính

+0

@Gacek: Tôi [đã báo cáo vấn đề] (https://github.com/rvguha/schemaorg/issues/143) mà bạn đã đề cập tháng trước; lưu ý rằng đây không phải là lỗi với Microdata hoặc Schema.org mỗi lần, chỉ có * ví dụ * của họ là sai. Bạn có thể (và nên), tất nhiên, sử dụng thuộc tính 'openingHours' với bất kỳ phần tử thích hợp nào khác. – unor

16

Ranh giới giữa Microdata, RDFaJSON-LD có thực sự hiện rất mờ và rằng vẫn còn không chấp nhận rộng rãi de facto giữa ba. Điều này sẽ phải chờ đợi ngay bây giờ. Có lẽ một vài năm hoặc hơn.

Trong khi đó, Microdata không nên được gắn nhãn với Schema.org như bạn đã đề cập vì hai thứ này là những thứ khác nhau. Schema.org là một từ vựng để nó có thể được sử dụng cho Microdata, RDFa và JSON-LD.

Sử dụng Schema.org như từ vựng và sử dụng JSON-LD như các đại diện dữ liệu có lẽ là cặp được mong đợi nhất vì hai khía cạnh chung về họ:

  1. Dễ đọc cho con người; và
  2. Lightweight máy có thể đọc

nhưng ngay cả như vậy vẫn còn ngắt kết nối giữa hai như this example.

Về hỗ trợ JSON-LD, vì Bing, Google, Yahoo!, and Yandex xác nhận việc sử dụng schema.org thì có thể an toàn để nói rằng chúng cũng hỗ trợ nó như trong this example.

2017 Cập nhật

Google đã rất chủ động trong việc thúc đẩy JSON-LD-schema.org những cặp vợ chồng trong quá khứ hay ba năm.

+0

Google khuyên bạn nên sử dụng JSON-LD _representation_. Tuy nhiên, tôi thấy không có đề cập đến Bing, Yahoo !, Yandex hỗ trợ JSON-LD. Mặc dù chúng hỗ trợ schema.org _vocabulary_, trong lịch sử chúng hỗ trợ microdata _representation_. CMIIW. –

+0

@HendyIrawan Truth. Bingbot [vẫn] không hiểu JSON-LD. Trình kiểm tra đánh dấu cấu trúc Bing cũng không đăng ký dữ liệu. Điều này cũng tương tự đối với Yahoo. https://www.bing.com/webmaster/help/marking-up-your-site-with-structured-data-3a93e731 – dhaupin

+0

Bing hiện hỗ trợ JSON-LD https://plus.google.com/106943062990152739506/posts/ fEV3TyBhAr4 – runios

6

Google sử dụng JSON-LD làm ví dụ tham chiếu cho SEO dữ liệu có cấu trúc cho Sơ đồ tri thức (công ty và người). Xem https://developers.google.com/structured-data/customize/overview

Cá nhân tôi sử dụng kết hợp JSON-LD và Microdata cho trang web của mình (trong thời gian này). Tôi có thể nói rằng họ có các phương tiện khác để xác định xem thông tin bạn cung cấp thông qua JSON-LD có liên quan đến công cụ tìm kiếm của họ hay không (như kiểm tra trang của bạn thực sự đang nói về những gì nó tuyên bố).

+2

Microdata không được dùng nữa – SuperUberDuper

+0

Nguồn của bạn là gì? –

+3

http://www.thesearchagents.com/2013/08/the-problematic-future-of-microdata/ – SuperUberDuper

9

Dường như Google đang hướng tới việc sử dụng JSON-LD nhưng nó đã không triển khai nó cho mọi trường hợp sử dụng!

Google đang trong quá trình thêm hỗ trợ JSON-LD vào các tính năng hỗ trợ đánh dấu khác là . Cho đến nay, JSON-LD được hỗ trợ cho tất cả các tính năng của Sơ đồ tri thức, hộp tìm kiếm liên kết trang web, Đoạn mã chi tiết sự kiện, và Đoạn trích chi tiết công thức; Google khuyên bạn nên sử dụng JSON-LD cho các tính năng đó. Đối với các loại đoạn mã và đoạn mã chi tiết còn lại, Google khuyên bạn nên sử dụng microdata hoặc RDFa.

http://developers.google.com/structured-data/schema-org

+0

trạng thái hiện tại là gì? có vẻ như Google rất chậm trong việc cập nhật tài liệu và tôi vẫn thấy trong tài liệu rằng họ đang "đang trong quá trình" cập nhật lên JSON-LD. –

3

(cập nhật câu trả lời!)

Về "phổ biến", vui lòng xem this question/answers.

Microdata hôm nay là phổ biến nhất: trong vũ trụ 34 triệu tên miền, 5,63 triệu (~ 17%) sử dụng "đánh dấu nội dung" (tôi sẽ sử dụng biệt ngữ đánh dấu) bởi RDFa (0,9 triệu) , Microdata (2,5 triệu) hoặc Microformats và ít hơn một nửa sử dụng được tách riêng mô tả ngữ nghĩa, nhận thấy phổ biến nhất là JSON-LD, với 2,12 triệu (6%).
PS: chúng tôi thích "thống kê trên mỗi tên miền" (thay vì số liệu thống kê trên mỗi trang) vì các trang trong cùng một tên miền nói chung có cùng mẫu và thực thi quy ước địa phương khác.

Trong một vũ trụ của "lĩnh vực thể hiện ngữ nghĩa" (7,75 triệu) hồ sơ thống kê là:

  • 73 đánh dấu% ngữ nghĩa
  • 27% tách ngữ nghĩa
  • (. .. giao điểm dưới dạng kết hợp "tách + đánh dấu" có thể bằng 0 để đơn giản hóa ...)

Quy tắc chung năm 2017

Sử dụng đánh dấu ngữ nghĩa với Microdatasau khi nó, nếu bạn cần phải thể hiện một cái gì đó nhiều hơn cho các máy, sử dụng JSON-LD.


Sử dụng đánh dấu ngữ nghĩa vì nó là phổ biến nhất, và vì đánh dấu mãn nguyện sẽ verificable/auditable đồng thời bởi con người và máy móc.

Quan trọng: hãy nhớ rằng Microdata, RDFa (tiêu chuẩn W3C) và JSON-LD (tiêu chuẩn W3C) có thể được dịch (dễ dàng) sang RDF, vì vậy tất cả các định dạng này đều tương thích.


PS: cho bảng HTML cũng xem W3C's tabular-metadata. Đối với các tài nguyên không phải HTML mở, dưới dạng tệp CSV, hãy sử dụng tương thích RDF W3C's tabular-data-model và/hoặc frictionlessdata/specs.

0

Từ đầu, JSON-LD sẽ là con đường để đi. Chúng ta hãy để cho one of the primary creators of JSON-LD, Manu Sporny, cân nhắc trong:

Mong muốn cho Web APIs tốt hơn là những gì thúc đẩy việc tạo ra các JSON-LD, không Semantic Web. Nếu bạn muốn biến Web ngữ nghĩa thành hiện thực là , hãy ngừng tạo trường hợp và dành thời gian làm thứ gì đó hữu ích hơn, như thực sự làm cho máy trở nên thông minh hơn hoặc giúp mọi người xuất bản dữ liệu theo cách hữu ích cho họ.

JSON-LD là tất cả về công bố dữ liệu theo những cách mà có ích/dễ thực hiện vì ...

nó dựa trên công nghệ mà hầu hết các nhà phát triển web sử dụng ngày nay.

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