Я хочу, чтобы создать коллекцию людей в формате JSON-LD, но мне нужно, чтобы сохранить некоторые ключи вместо того, чтобы использовать массивы, так что я попытался это первым:Правильно ли это использование JSON-LD Index Maps?
{
"@context" : {
"@base" : "http://www.example.com/data/",
"@vocab" : "http://www.example.com/vocab#",
"name" : "schema:name",
"people" : {
"@container" : "@index",
"@id" : "people"
},
"schema" : "http://schema.org/"
},
"@id" : "http://www.example.com",
"people" : {
"person1" : {
"@id" : "people/person1",
"name" : "Person 1"
},
"person2" : {
"@id" : "people/person2",
"name" : "Person 2"
},
"person3" : {
"@id" : "people/person3",
"name" : "Person 3"
},
"person4" : {
"@id" : "people/person4",
"name" : "Person 4"
}
}
}
тестирование в формате JSON-LD Playground все выглядит отлично и N-Каре результат показать что-то, как и ожидалось, как это:
<http://www.example.com/data/people/person1> <http://schema.org/name> "Person 1" .
<http://www.example.com/data/people/person2> <http://schema.org/name> "Person 2" .
<http://www.example.com/data/people/person3> <http://schema.org/name> "Person 3" .
<http://www.example.com/data/people/person4> <http://schema.org/name> "Person 4" .
<http://www.example.com> <http://www.example.com/vocab#people> <http://www.example.com/data/people/person1> .
<http://www.example.com> <http://www.example.com/vocab#people> <http://www.example.com/data/people/person2> .
<http://www.example.com> <http://www.example.com/vocab#people> <http://www.example.com/data/people/person3> .
<http://www.example.com> <http://www.example.com/vocab#people> <http://www.example.com/data/people/person4> .
Затем я хотел бы добавить схему: знает свойство также держать ключи и не использовать массивы, как это:
{
"@context" : {
"@base" : "http://www.example.com/data/",
"@vocab" : "http://www.example.com/vocab#",
"knows" : {
"@container" : "@index",
"@id" : "schema:knows",
"@type" : "@id"
},
"name" : "schema:name",
"people" : {
"@container" : "@index",
"@id" : "people"
},
"schema" : "http://schema.org/"
},
"@id" : "http://www.example.com",
"people" : {
"person1" : {
"@id" : "people/person1",
"knows" : {
"person2" : "people/person2",
"person3" : "people/person3"
},
"name" : "Person 1"
},
"person2" : {
"@id" : "people/person2",
"name" : "Person 2"
},
"person3" : {
"@id" : "people/person3",
"name" : "Person 3"
},
"person4" : {
"@id" : "people/person4",
"name" : "Person 4"
}
}
}
На этот раз, когда я тестировал на детской площадке она возвращает следующую ошибку:
{ "name": "jsonld.SyntaxError", "message": "Invalid JSON-LD syntax; conflicting @index property detected.", "details": { "code": "conflicting indexes", "subject": { "@id": " http://www.example.com/data/people/person2 ", "@index": "person2" } } }
Так что альтернатива, чтобы держать ключи и не использовать массивы или правильный способ использования индексных карт?
С уважением