В общем, есть четыре способа, как это можно сделать:
- Для типов (или классов):
- Добавить тип. Чтобы передать, что
schema:Person
вымышленный, вы можете добавить тип ex:FictionalThing
к этому объекту.
- Вместо этого используйте подтип. Чтобы передать, что
schema:Person
вымышленный, вы можете определить ex:FictionalPerson
как подтип из schema:Person
, и только ¹ используйте ex:FictionalPerson
.
- Для свойств:
- Добавить свойство. Чтобы указать псевдоним для
schema:Person
, вы можете добавить свойство ex:nickname
.²
- Вместо этого используйте подчиненное свойство. Вы можете определить
ex:nickname
как вспомогательное свойство из schema:additionalName
и только¹ использовать ex:nickname
.²
Хорошей практикой является повторное использование существующих типов / свойств RDF . Если нет подходящего термина / словаря, определите свой .
В вашем конкретном случае мне кажется, что вам нужен тип для представления учетной записи пользователя, так как schema:Person
может иметь несколько учетных записей, и, вероятно, нет пользовательских данных, которые соответствуют действительности для всех учетных записей этого человека. , Таким образом, вы можете рассмотреть возможность использования объекта для представления учетной записи пользователя и свойства для подключения такой учетной записи с schema:Person
.
Вы можете, например, использовать свойство foaf:account
, чтобы добавить foaf:OnlineAccount
к schema:Person
:
{
"@context": "http://www.w3.org/2013/json-ld-context/rdfa11",
"@type": "schema:Person",
"schema:name": "Name of the person",
"foaf:account": {
"@type": "foaf:OnlineAccount",
"schema:name": "Name of the online account"
}
}
¹ Или используйте его в дополнение к супер-типу / супер-свойству, что обычно является хорошей идеей, если вы хотите поддержать потребителей, которые сначала не читают ваш собственный словарь.
² Для этого вам не нужно добавлять другой тип рядом с schema:Person
, поскольку вы можете свободно смешивать типы и свойства из разных словарей. Также обратите внимание, что вы можете определить домен и диапазон свойства, что позволяет вам "неявно" добавлять типы к ссылочным / ссылочным объектам. В приведенном выше примере потребитель, который знает словарь FOAF, добавит тип foaf:Agent
к праву с типом schema:Person
, поскольку это домен свойства foaf:account
.