2014-10-29 10 views
5

varsayalım aşağıdaki JSON var:JSON-LD'de, bir özellik değeri için bir URI eşlemesi tanımlamak mümkün mü?

{ 
    "@context": 
    { 
    "name": "http://schema.org/name", 
    "status": "http://schema.org/status" 
    }, 
    "name": "Manu Sporny", 
    "status": "trollin'" 
} 

(JSON-LD Playground)

en biz trollin' statüsü için bir URI var diyelim: http://example.com/trolling.

trollin' anahtar sözcüğünü URI ile eşleştirmek mümkün oluyor mu? basit

şey çalışmaz: o trollin' göreli URI üstlenecek çünkü

{ 
    "@context": 
    { 
    "name": "http://schema.org/name", 
    "status": "http://schema.org/status", 
    "trollin'": "http://example.com/trolling" 
    }, 
    "name": "Manu Sporny", 
    "status": "trollin'" 
} 

(JSON Playground)

da işe yaramaz status@id için türünü zorlamak.

{ 
    "@context": 
    { 
    "name": "http://schema.org/name", 
    "status": { 
     "@id": "http://schema.org/status", 
     "@type": "@id" 
    }, 
    "trollin'": "http://example.com/trolling" 
    }, 
    "name": "Manu Sporny", 
    "status": "trollin'" 
} 

(JSON-LD Playground)

cevap

4

Evet, bunu yapabilirsiniz, sen @vocab için durumu türünü ayarlamanız gerekir:

{ 
    "@context": 
    { 
    "name": "http://schema.org/name", 
    "status": { 
     "@id": "http://schema.org/status", 
     "@type": "@vocab" 
    }, 
    "trollin'": "http://example.com/trolling" 
    }, 
    "name": "Manu Sporny", 
    "status": "trollin'" 
} 

İşte oyun alanına bir link bu.

+2

Bu "{" @type ":" @vocab "} nerede açıklanmaktadır? [Resmi JSON-LD spesifikasyonunda] herhangi bir yerde bulamıyorum (http://www.w3.org/TR/json-ld/). GÜNCELLEME: // www: http beni işaret Gregg ile bazı tartışmalar sonra http://lists.w3.org/Archives/Public/public-hydra/2014Sep/0029.html >: Ben buldum. w3.org/TR/json-ld-api/#value-expansion, sonuç budur. > @vocab anahtar kelimesi, yalnızca api'de json-ld spec içinde belirtilmeyen ikinci bir anlama sahiptir. bağlamında @type değeri olarak kullanılırsa, karşılık gelen özellik değerinin bir IRI'ye genişletilmiş olması gerektiğini belirtir. –

+1

Meraklı ... neden JSON-LD spesifikasyonlarında hiç bahsedilmiyor? Ayrıca ... JSON-LD API spesifikasyonları _very_ şifreli (gerçek RDF stili), tam olarak nerede bulamadığını göremiyorum bu {{@ @ tip ":" @vocab "}' yapı tanımlanmıştır ... –

İlgili konular