protected function exportThing(ThingInterface $thing)
    {
        $iri = $this->iri;

        return (object)[
            'type' => array_map(
                function (TypeInterface $type) use ($iri) {
                    return $iri ?
                        (object)[
                            'profile' => $type->getVocabulary()->getUri(),
                            'name' => $type->getType(),
                        ] :
                        $type->getVocabulary()->expand($type->getType());
                },
                $thing->getTypes()
            ),
            'id' => $thing->getResourceId(),
            'properties' => $this->exportProperties($thing),
        ];
    }