Ответ состоит из двух частей. Во-первых, Individual
- это подкласс Jena Resource
, который определенно можно добавить в модель. Однако отдельные ресурсы, свойства или литералы не хранятся в Model
. A Model
хранит только тройки, представленные как Statement
объекты в Java API. Таким образом, чтобы добавить некоторый ресурс в модель, вы должны включить его в тройку.
В Йене индивидуум определяется как субъект тройки, предикат которой равен rdf:type
и чей объект не является одним из встроенных языковых классов. Так что если у вас есть:
ex:my_car rdf:type ex:Ferrari .
ex:Ferrari rdf:type owl:Class .
(примечание: этот пример полностью вымышленный!), Тогда ex:my_car
будет отдельным лицом, а ex:Ferrari
- нет (поскольку OWL Class
является встроенным типом). Итак, чтобы добавить своего индивидуума в вашу модель, вам просто нужно утверждать, что она какого-то типа. Поскольку я не знаю GWT и не использую Jastor, я не могу сказать, сохраняется ли ассоциация типов, которая обычно является частью Jena Individual
, после сериализации. Я не подозреваю, что в этом случае вам понадобятся другие средства для определения типа человека, которого вы хотите добавить, или используйте предикат, отличный от rdf:type
, чтобы добавить ресурс в Model
.
Все это говорит, лично я, вероятно, не решил бы вашу проблему таким образом вообще. Обычно, когда я работаю с клиентскими представлениями RDF на стороне сервера, я отправляю клиенту только минимальную информацию (например, URI и метку) в виде JSON. Если мне нужно больше данных для данного ресурса, я либо отправляю их вместе с начальной сериализацией JSON, либо это просто вызов Ajax. Но, как я уже сказал, я не использую GWT, так что совет может быть бесполезен для вас.