- Semantic Web từng là Web 3.0 ngày trước. Trước khi "Web 3.0" mang nghĩa "những thứ kiểu crypto", nó từng có nghĩa là "website máy có thể đọc được (Machine-Readable)"
- Tưởng rằng khái niệm Semantic Web không còn được dùng nữa, nhưng hóa ra giờ đây Semantic Web đã được chấp nhận rất rộng rãi, đến mức nói rằng chúng ta đã dùng Web 3.0 rồi cũng không quá lời
- Nếu Web 3.0 đã tồn tại, thì nó ở đâu? Phần lớn nó được giấu trong markup
Bài đăng blog dùng JSON-LD
- Có thể thêm metadata JSON-LD bằng cách chèn phần tử
<script type="application/ld+json"> vào trong <head> của trang HTML
- JSON-LD là định dạng chính để mã hóa metadata của Semantic Web
- Ví dụ: mô tả bằng kiểu BlogPosting
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "From Shell to Excel - with a little bit of HTTPS",
"url": "https://csvbase.com/blog/10",
"description": "Write once, read everywhere",
"author": {
"@type": "Person",
"name": "Cal Paterson",
"email": "cal@calpaterson.com",
"url": "https://calpaterson.com/about.html"
},
"image": "https://csvbase.com/blog-static/excel.png",
"datePublished": "2024-08-12",
"dateCreated": "2024-08-12",
"dateModified": "2024-08-12"
}
- Các key bắt đầu bằng @ là metadata (meta-metadata?)
@context biểu thị namespace, còn @type biểu thị kiểu lớp
- Các key còn lại là những mục được cho phép trong kiểu BlogPosting
- Giá trị của key có thể là kiểu khác (như Person trong key author)
Cái này mang lại lợi ích gì cho tôi?
- Ai đọc cái này? Rất nhiều bot sẽ parse metadata JSON-LD
- Bài blog có chứa metadata Semantic Web sẽ dễ hiển thị phần xem trước liên kết trên các mạng xã hội, giúp tăng tỷ lệ nhấp
- Trình thu thập dữ liệu của công cụ tìm kiếm dùng metadata này để hiển thị thêm thông tin trong kết quả tìm kiếm
- Các trình tổng hợp liên kết tự động cũng dùng dữ liệu này để hiển thị bài viết cho người dùng (ví dụ như Android hiển thị nhiều trang trên màn hình tin tức)
- Metadata Semantic Web không cần xin quyền và trung lập với nhà cung cấp
Cái này có khó không?
- Không, JSON-LD rất đơn giản
- JSON-LD chỉ là cách sắp xếp thông tin vốn đã có trên trang để máy tính có thể đọc được
- Nếu bạn có thể viết ứng dụng frontend thì cũng sẽ dễ hiểu JSON-LD
Các kiểu khác của JSON-LD
- Ngoài BlogPosting còn có các kiểu như Event, LocalBusiness, JobPosting, Product, Recipe...
- csvbase dùng kiểu Dataset để mô tả dữ liệu bảng.
{
"@context": ["https://schema.org", {"csvw": "https://www.w3.org/ns/csvw#"}],
"@type": "Dataset",
"name": "stock-exchanges",
"url": "https://csvbase.com/meripaterson/stock-exchanges",
"isAccessibleForFree": true,
"distribution": [
{
"@type": "DataDownload",
"contentUrl": "https://csvbase.com/meripaterson/stock-exchanges.csv",
"encodingFormat": "text/csv",
"contentSize": "16222"
},
{
"@type": "DataDownload",
"contentUrl": "https://csvbase.com/meripaterson/stock-exchanges.parquet",
"encodingFormat": "application/parquet",
"contentSize": "10751"
},
{
"@type": "DataDownload",
"contentUrl": "https://csvbase.com/meripaterson/stock-exchanges.xlsx",
"encodingFormat": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"contentSize": "15500"
},
{
"@type": "DataDownload",
"contentUrl": "https://csvbase.com/meripaterson/stock-exchanges.jsonl",
"encodingFormat": "application/x-jsonlines",
"contentSize": "38627"
}
],
"dateCreated": "2022-04-25T13:43:24.746075+01:00",
"dateModified": "2023-04-02T20:27:33.255648+01:00",
"maintainer": {
"@type": "Person",
"name": "meripaterson",
"url": "https://csvbase.com/meripaterson"
},
"description": "The world's stock exchanges...",
"mainEntity": {
"@type": "csvw:Table",
"csvw:tableSchema": {
"csvw:columns": [
{"csvw:name": "csvbase_row_id", "csvw:datatype": "integer"},
{"csvw:name": "Continent", "csvw:datatype": "string"},
{"csvw:name": "Country", "csvw:datatype": "string"},
{"csvw:name": "Name", "csvw:datatype": "string"},
{"csvw:name": "MIC", "csvw:datatype": "string"},
{"csvw:name": "Last changed", "csvw:datatype": "date"}
]
}
}
}
Tất cả những thứ này có thực sự cần thiết không? AI chẳng phải sẽ tự giải quyết hết sao?
- Các mô hình ngôn ngữ lớn (LLM) thường mắc lỗi
- Việc cung cấp metadata để đảm bảo độ chính xác là rất quan trọng
- Dùng LLM tốn kém, và cần GPU để đọc trang web
Các lựa chọn thay thế
- Open Graph Protocol: tiêu chuẩn do Facebook tạo ra, chủ yếu để mô tả nội dung
- Microdata: đơn giản nhưng khó parse
- Twitter Cards: mô tả cách Twitter hiển thị nội dung
- Các tiêu chuẩn cũ dựa trên XML: được hỗ trợ sâu trong các hệ thống thư viện và lưu trữ
Công nghệ nhàm chán (Boring technology)
- Việc Semantic Web lại low-key đến mức này thật đáng ngạc nhiên. Rất nhiều website đã thiết lập loại metadata này từ lâu
- "Semantic Web đã lan rộng khắp nơi, chỉ là không có khoảnh khắc chiến thắng mà thôi"
Tóm tắt của GN⁺
- Semantic Web là công nghệ tạo ra các website mà máy có thể đọc được, và hiện đã được sử dụng rất rộng rãi.
- JSON-LD là định dạng chính để mã hóa metadata Semantic Web, hỗ trợ nhiều kiểu như bài đăng blog, sự kiện, sản phẩm...
- Metadata Semantic Web giúp cải thiện phần xem trước liên kết trên mạng xã hội và nâng cao kết quả tìm kiếm trên công cụ tìm kiếm.
- Việc dùng AI để tự động trích xuất metadata có thể tốn kém và không chính xác.
- Có nhiều lựa chọn thay thế như Open Graph Protocol, Microdata, Twitter Cards.
4 bình luận
Tôi gợi ý bài tiểu luận này cho những ai tò mò về lịch sử của Semantic Web và vị thế của nó ngày nay.
https://lespetitescases.net/why-I-dont-use-semantic-web-technologies-a…
Tôi không nghĩ JSON-LD là cốt lõi hay công nghệ then chốt của semantic web, nhưng tôi rất đồng cảm với nhận định rằng "semantic web thực ra đã được áp dụng rộng rãi rồi, chỉ là chưa từng có một khoảnh khắc chiến thắng rõ ràng"..!
Ý kiến Hacker News
Vấn đề của các tiêu chuẩn web ngữ nghĩa
Trải nghiệm thử nghiệm thất bại
So sánh JSON-LD và RSS
Ý nghĩa của LLM và web ngữ nghĩa
Tình trạng hiện tại của web ngữ nghĩa
Thiếu các khái niệm quan trọng
Metadata của PDF
Tầm quan trọng của HTML
AI và metadata
JSON-LD và SEO