- Semantik web, eski Web 3.0’dı. "Web 3.0" "kripto gibi şeyler" anlamına gelmeden önce, "makine tarafından okunabilir (Machine-Readable) web siteleri" anlamına geliyordu
- Semantik web kavramının artık kullanılmadığını sanıyordum, ama görünen o ki semantik web artık çok yaygın biçimde benimsenmiş durumda; hatta halihazırda Web 3.0’ı kullandığımızı söylemek bile abartı sayılmaz
- Web 3.0 zaten varsa, nerede? Büyük ölçüde markup içinde gizli
JSON-LD ile blog gönderileri
- HTML sayfasının
<head> bölümüne <script type="application/ld+json"> öğesi eklenerek JSON-LD metadata’sı dahil edilebilir
- JSON-LD, semantik web metadata’sını kodlamak için kullanılan başlıca biçimdir
- Örnek:
BlogPosting tipi kullanılarak yapılan tanım
{
"@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"
}
@ ile başlayan anahtarlar metadata’dır (meta-metadata?)
@context namespace’i, @type ise class type’ı belirtir
- Geri kalan anahtarlar,
BlogPosting tipinde izin verilen alanlardır
- Anahtarların değerleri başka türlerde de olabilir (
author anahtarındaki Person gibi)
Bunun bana ne faydası var?
- Bunu kim okuyor? Birçok bot JSON-LD metadata’sını parse eder
- Semantik web metadata’sı içeren blog gönderileri, sosyal medya sitelerinde link önizlemeleri gösterilmesini sağlayarak tıklanma oranını artırır
- Arama motoru crawler’ları bu metadata’yı kullanarak arama sonuçlarında daha fazla bilgi gösterir
- Otomatik link aggregator’ları bu veriyi kullanarak gönderileri kullanıcılara gösterir (Android’in haber ekranında birden fazla siteyi göstermesi gibi)
- Semantik web metadata’sı izin gerektirmez ve vendor-neutral’dır
Bu zor mu?
- Hayır, JSON-LD çok basit
- JSON-LD, sayfada zaten bulunan bilgilerin bilgisayarın okuyabileceği şekilde düzenlenmiş halidir
- Frontend uygulaması yazabiliyorsanız JSON-LD’yi de kolayca anlayabilirsiniz
JSON-LD’nin diğer türleri
BlogPosting dışında Event, LocalBusiness, JobPosting, Product, Recipe gibi tipler de vardır
- csvbase, tablo verisini tanımlamak için
Dataset tipini kullanıyor
{
"@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"}
]
}
}
}
Bunların hepsi gerçekten gerekli mi? Yapay zeka bunu tamamen çözmez mi?
- Büyük dil modelleri (LLM) sık sık hata yapar
- Doğruluğu garanti etmek için metadata sağlamak önemlidir
- LLM kullanmak pahalıdır ve web sayfasını okumak için GPU gerekir
Alternatifler
- Open Graph Protocol: Facebook tarafından oluşturulmuş, ağırlıklı olarak içeriği tanımlayan bir standart
- Microdata: basit ama parse etmesi zor
- Twitter Cards: içeriğin Twitter’da nasıl gösterileceğini tanımlar
- XML tabanlı eski standartlar: kütüphane ve arşiv sistemlerinde derin destek görür
Sıkıcı teknoloji (Boring technology)
- Semantik webin bu kadar low-key olması oldukça şaşırtıcı. Çok sayıda site bu tür metadata’yı zaten kurmuş durumda
- "Semantik web zaten çoktan yaygınlaştı; sadece bir zafer anı yaşanmadı"
GN⁺ özeti
- Semantik web, makinelerin okuyabildiği web siteleri oluşturma teknolojisidir ve zaten yaygın biçimde kullanılmaktadır.
- JSON-LD, semantik web metadata’sını kodlamak için kullanılan başlıca biçimdir ve blog gönderileri, etkinlikler, ürünler gibi çeşitli tipleri destekler.
- Semantik web metadata’sı, sosyal medya ve arama motorlarında link önizlemelerini ve arama sonuçlarını iyileştirmeye yardımcı olur.
- Metadata’yı yapay zeka ile otomatik çıkarmak pahalıdır ve her zaman doğru olmayabilir.
- Open Graph Protocol, Microdata, Twitter Cards gibi çeşitli alternatifler de vardır.
4 yorum
Semantik webin tarihi ve bugünkü konumu hakkında merak edenlere bu denemeyi öneririm.
https://lespetitescases.net/why-I-dont-use-semantic-web-technologies-a…
JSON-LD'nin semantik webin çekirdeği ya da temel teknolojisi olduğunu düşünmüyorum ama, "semantik web zaten yaygın biçimde benimsendi, sadece bir zafer anı olmadı" sözüne gerçekten çok katılıyorum..!
Hacker News görüşü
Semantic Web standartlarının sorunları
Deneme ve başarısızlık deneyimi
JSON-LD ve RSS karşılaştırması
LLM ve Semantic Web'in anlamı
Semantic Web'in mevcut durumu
Eksik önemli kavramlar
PDF metaverisi
HTML'nin önemi
Yapay zeka ve metadata
JSON-LD ve SEO