Re: Overriding type of existing property with Enumeration

Hi Kevin,

There are couple of things that may help you here.

Firstly, check out the data model documentation, especially the second
paragraph of the Conformance
<https://schema.org/docs/datamodel.html#conformance> section.  From that
you will find that any property, such as *employmentType*, can accept a
value that is either a Text <https://schema.org/Text>, URL
<https://schema.org/URL>, or Role <https://schema.org/Role> in addition to
its defined expected type(s).   I believe *URL* would be what you are
looking for here, you can provide the URL of the relevant element in your
hosted set of defined employment types.

You would then have a couple of options as to how you use Schema to
describe those employment types.  You could define a new local
EmploymentType Type, as a subtype of schema:Enumeration and then each
enumerated value as a subtype of your EmploymentType.

Alternatively you could describe each type as a DefinedTerm
<https://pending.schema.org/DefinedTerm>, collecting them together in a
DefinedTermSet <https://pending.schema.org/DefinedTermSet> in which you can
then also describe who publishes them etc.

Equally, if you can find a set of already defined employment types to link
to you might save some time - checkout the *DefinedTerm* example
<https://pending.schema.org/DefinedTerm#defterm-4> which mocks up how you
might link to O*NET OnLineā€™s job types
<https://www.onetonline.org/link/summary/51-6042.00>.

Hope that helps.

~Richard.

Richard Wallis
Founder, Data Liberate
http://dataliberate.com
Linkedin: http://www.linkedin.com/in/richardwallis
Twitter: @rjw

On 29 June 2018 at 15:40, Kevin Brown <kevinbrown2354@gmail.com> wrote:

> I've read these resources about external enumerations:
>
> http://blog.schema.org/2012/05/schemaorg-markup-for-external-lists.html
> https://www.w3.org/wiki/WebSchemas/ExternalEnumerations
>
> The examples in those resources show how to use external lists with an
> example of the "Country" field (which is an object type) for "Movie" types.
> I want to do something similar for the "employmentType" property of
> "jobPosting"; however, "employmentType" is a primitive rather than an
> object ("Values expected to be one of these types: Text").
>
> What I'd like to do I think is define an externally-hosted schema for
> "employmentType" and override that existing property on "jobPosting". I
> could create a new property like "employmentTypeObject" or something that
> uses "rdfs:subClassOf" the original "employmentType", but that seems really
> convoluted. My reason is that I want to use an "Enumeration" as the
> expected value for "employmentType", rather than a primitive (text string).
>
> What's the best way to handle this? Is there a clean way to override an
> existing property in an existing class?
>

Received on Friday, 29 June 2018 15:57:34 UTC