Это действительно зависит от реализации. Вы используете TinkerGraph, который, в свою очередь, может хранить любой объект Java, поэтому вы можете свободно помещать туда все, что вам нравится:
gremlin> g.addV().property('function',{it.length()})
==>v[2]
gremlin> g.V().sideEffect{println(it.get().value('function')("four"))}
4
==>v[2]
сумасшедший, верно? Конечно, вам нужно будет рассмотреть такие проблемы, как сериализация и тому подобное, если вы начнете вставлять туда случайные шансы и вам понадобится сохранить эти объекты или протолкнуть их по проводам (как через Gremlin Server).
Нет проблем с вложенным объектом в качестве значения свойства TinkerGraph. Просто будь осторожен. Действительно перестаньте думать о своей схеме, прежде чем углубляться в путь хранения сложных объектов Java в качестве свойств. Возможно, было бы лучше просто смоделировать эти объекты как элементы графа как граждан первого класса, чтобы позволить обходам Gremlin работать непосредственно над ними.