this is a helper function to facilitate the creation of semantic Properties type and id.

By passing a schema all definitions are extended with an @id and a @type property. By setting the typeKey and idKey explicitly one can alter that behavior to other keyNames