Desidero utilizzare i metodi expand
e compact
della libreria jsonld.js per convertire dati da varie origini in un formato comune per l'elaborazione. Se prendo un documento JSON di origine, aggiungo uno @context
a esso, quindi lo passo attraverso il metodo expand
Sono in grado di ottenere il formato comune di cui ho bisogno.Definire JSON-LD @context per unire/dividere valori?
Il caso d'uso per il quale non sono stato in grado di trovare una soluzione è quando è necessario unire più valori. Ad esempio, schema.org definisce un PostalAddress
con un singolo campo per lo streetAddress
, ma molti sistemi memorizzano l'indirizzo come valori separati (numero civico, nome della via, direzione della strada ...). Per tradurre i dati in arrivo nel formato schema.org ho bisogno di un modo per indicare nel mio @context
che più campi compongono il streetAddress
, nell'ordine corretto.
Compacted Documento
{
"@context": {
"displaName": "http://schema.org/name",
"website": "http://schema.org/homepage",
"icon": "http://schema.org/image",
"streetNumber": "http://schema.org/streetAddress"
},
"displaName": "John Doe",
"website": "http://example.com/",
"icon": "http://example.com/images/test.png",
"streetNumber": "123",
"streetName": "Main St",
"streetDirection": "South"
}
Documento Expanded
{
"http://schema.org/name":[
{
"@value":"John Doe"
}
],
"http://schema.org/image":[
{
"@value":"http://example.com/images/test.png"
}
],
"http://schema.org/streetAddress":[
{
"@value":"123"
}
],
"http://schema.org/homepage":[
{
"@value":"http://example.com/"
}
]
}
ho rivisto tutte le specifiche JSON-LD che ho potuto trovare e non sono stati in grado di individuare qualsiasi cosa che indica un modo per dividere o concatenare valori usando @context
.
Qualcuno è a conoscenza di un modo per mappare più valori in una proprietà di contesto, nell'ordine corretto ed eventualmente aggiungere spazi bianchi tra i valori. Devo anche trovare una soluzione per lo scenario inverso, in cui ho bisogno di dividere un campo in più valori, nell'ordine corretto.
Nota: anche se mappo tutte e tre le proprietà su streetAddress
, tutti i valori verranno inclusi nell'array, ma non è garantito che siano nell'ordine corretto.
grazie per la risposta. Purtroppo ho bisogno di mantenere intatto il documento originale. Lo scopo della domanda è trovare un modo per gestire la traduzione utilizzando il contesto, supponendo che io non sia quello che fornisce i dati di input. –
Ok, capisco, mi dispiace per l'incomprensione. Potrei sapere in un altro modo, fammi controllare. Anche se i campi devono essere lasciati intatti, hai il pieno controllo su '@ context'? – Val
Sì. Sto cercando di creare un modo per consentire agli utenti di mappare le uscite API in un formato comune.Ho già un'interfaccia utente funzionante per consentire una mappatura uno a uno, ma non sono stato in grado di capire dalla documentazione del processore json-ld come manipolare i dati all'interno del documento sorgente, oltre a mappare le chiavi al loro rispettivo vocabolario. –