public function getVocabulary($prefix)
    {
        $prefix = self::validateVocabPrefix($prefix);

        // If the prefix has not been registered
        if (empty($this->vocabularies[$prefix])) {
            throw new OutOfBoundsException(
                sprintf(OutOfBoundsException::UNKNOWN_VOCABULARY_PREFIX_STR, $prefix),
                OutOfBoundsException::UNKNOWN_VOCABULARY_PREFIX
            );
        }

        return new Vocabulary($this->vocabularies[$prefix]);
    }