protected function exportProperties(ThingInterface $thing)
    {
        $properties = [];
        foreach ($thing->getProperties() as $propertyIri => $propertyValues) {
            if (count($propertyValues)) {
                $propertyValues = array_map([$this, 'exportProperty'], $propertyValues);
                $properties[strval($propertyIri)] = $this->iri ?
                    (object)[
                        'profile' => $propertyIri->getProfile(),
                        'name' => $propertyIri->getName(),
                        'values' => $propertyValues,
                    ] : $propertyValues;
            }
        }

        return $properties;
    }