CategoryCode Proposal (formerly EnumerationValue Proposal) #894

Open
RichardWallis opened this Issue Nov 13, 2015 · 49 comments

Comments

Projects
None yet
@RichardWallis
Contributor

RichardWallis commented Nov 13, 2015

Background

When marking-up with Schema.org there is often need to associate the Thing being described with a pre-defined value - a type, category, subject, topic, definition, etc.

In certain specific cases the vocabulary handles this using Enumerations and Enumeration subtypes to provide a specific type value. For example BookFormatType, which has subtypes of EBook, HardCover, PaperBack, and in the bib.schema.org extension, http://bib.schema.org/GraphicNovel. This mechanism works well with enumerations containing a small number of enumeration types and of fairly static content.

Where it is not practical, or desired, for Schema.org to become the authority for many, various, and or large sets of values, external enumerations are recommended. In a blog post referenced from the Schema.org documentation the mechanism for external enumerations is introduced for referencing lists of values external to the vocabulary.

What could be viewed as a compromise between these approaches is demonstrated in the DayOfWeek Type. It could be argued that the actual days of the week should have been defined in Schema.org, Monday, Tuesday, etc., as subtypes of DayOfWeek. Instead values in the GoodRelations vocabulary, for days of the week, are documented as commonly used. Thus both encouraging the use of external values whilst, expressing implied preference for a particular external set of values.

Markup for External Enumerations
What Schema.org does not yet address however, is the markup of external enumeration values in the context of them being shared on the web. The use-cases for this include potential addition of Schema.org markup for existing sets of values and for the creation of new sets. Examples include adding Schema markup to values, often referred to as authorities in the library domain, for subjects and persons at national level libraries such as The Library of Congress; the markup of a new authoritative list of sports types, or bank account types, or medical treatment types.

Previous discussions [1] [2] referencing an earlier MiniSKOS proposal provide background and some use cases to view this simple proposal against.

Proposal

This proposal consists of:

  • A new Type - EnumerationValue - a subtype of Enumeration ."An enumeration value"
  • A new Type - EnumerationValueSet - a subtype of CreativeWork. "A set of enumeration values."
  • Three new properties:
    • valueCode - Domain: EnumerationValue Range: Text. "Provides the ability to share item codes or similar which are often a key value in existing code sets.:
    • partOfValueSet - sub-property of isPartOf. Domain: EnumerationValue Range: EnumerationValueSet. "The value set of which this value is part of."
    • hasEnumerationValue - sub-property of hasPart Domain: EnumerationValueSet Range: EnumerationValue

Definition RDFa

<div typeof="rdfs:Class" resource="http://schema.org/EnumerationValue">
  <span class="h" property="rdfs:label">EnumerationValue</span>
  <span property="rdfs:comment">An enumeration value.</span>
  <span>Subclass of: <a property="rdfs:subClassOf" href="http://schema.org/Enumeration">Enumeration</a></span>
</div>

<div typeof="rdfs:Class" resource="http://schema.org/EnumerationValueSet">
  <span class="h" property="rdfs:label">EnumerationValueSet</span>
  <span property="rdfs:comment">A set of enumerated values.</span>
  <span>Subclass of: <a property="rdfs:subClassOf" href="http://schema.org/CreativeWork">CreativeWork</a></span>
</div>

<div typeof="rdf:Property" resource="http://schema.org/enumerationValueCode">
    <span class="h" property="rdfs:label">enumerationValueCode</span>
    <span property="rdfs:comment">A short textual code that uniquely identifies the value. The code is typically used in structured URLs.</span>
    <span>Domain: <a property="http://schema.org/domainIncludes" href="http://schema.org/EnumerationValue">EnumerationValue</a></span>
    <span>Range: <a property="http://schema.org/rangeIncludes" href="http://schema.org/Text">Text</a></span>
</div>

<div typeof="rdf:Property" resource="http://schema.org/partOfEnumerationValueSet">
    <span class="h" property="rdfs:label">partOfEnumerationValueSet</span>
    <span property="rdfs:comment">The set (enumeration) of values of which contains this value.</span>
    <link property="rdfs:subPropertyOf" href="http://schema.org/isPartOf" />
    <span>Domain: <a property="http://schema.org/domainIncludes" href="http://schema.org/EnumerationValue">EnumerationValue</a></span>
    <span>Range: <a property="http://schema.org/EnumerationValueSet" href="http://schema.org/Text">EnumerationValueSet</a></span>
</div>

<div typeof="rdf:Property" resource="http://schema.org/hasEnumerationValue">
    <span class="h" property="rdfs:label">hasEnumerationValue</span>
    <span property="rdfs:comment">Value contained in value set.</span>
    <link property="rdfs:subPropertyOf" href="http://schema.org/hasPart" />
    <span>Domain: <a property="http://schema.org/domainIncludes" href="http://schema.org/EnumerationValueSet">EnumerationValueSet</a></span>
    <span>Range: <a property="http://schema.org/EnumerationValue" href="http://schema.org/Text">EnumerationValue</a></span>
</div>

Examples (Turtle)

1- A Library of Congress resource type

    <http://id.loc.gov/vocabulary/resourceTypes/Man>
       a schema:EnumerationValue;
       schema:name "Manuscript";
       schema:enumerationvalueCode "Man";
       schema:partOfEnumerationValueSet <http://id.loc.gov/vocabulary/resourceTypes>.

2- An animal classification term and term set

    <http://mammals.example.com/Carnivore>
       a schema:EnumerationValue;
       schema:name "Carnivore";
       schema:description "A mammal that feeds on other animals";
       schema:partOfEnumerationValueSet <http://mammals.example.com>;
       schema:sameAs <https://www.wikidata.org/wiki/Q81875>.

    <http://mammals.example.com>
      a schema:EnumerationValueSet;
      schema:name "The Mammal Classification List".

3- Terms in a dictionary of legal terms

    <http://openjurist.org/dictionary/Ballentine>
      a schema:CreativeWork, schema:EnumerationValueSet;
      schema:name "Ballentine’s Law Dictionary".

    <http://openjurist.org/dictionary/Ballentine/term/schema> 
      a schema:EnumerationValue;
      schema:name "schema";
      schema:description "A representation of a plan or theory in the form of an    outline or model.";
      schema:partOfEnumerationValueSet <http://openjurist.org/dictionary/Ballentine>.

    <http://openjurist.org/dictionary/Ballentine/term/calendar-year> 
      a schema:EnumerationValue;
      schema:name "calendar year";
      schema:description "The period from January 1st to December 31st, inclusive, of any year.";
      schema:sameAs <https://www.wikidata.org/wiki/Q3186692>;
      schema:partOfEnumerationValueSet <http://openjurist.org/dictionary/Ballentine>.

4- A occupation term defined by O*Net Online

    <http://onetonline.org/link/details/51-6042.00> 
      a schema:EnumerationValue;
      schema:enumerationValueCode "51-6042.00";
      schema:name "Shoe Machine Operators and Tenders";
      schema:description "Operate or tend a variety of machines to join, decorate, reinforce, or finish shoes and shoe parts.";
      schema:partOfEnumerationValueSet <http://onetonline.org>.

5- An ISO639-2 Language Code

    <http://id.loc.gov/vocabulary/iso639-2>
      a schema:EnumerationValueSet;
      schema:name "ISO 639-2: Codes for the Representation of Names of Languages";
      schema:hasEnumerationValue <http://id.loc.gov/vocabulary/iso639-2/cze>.

    <http://id.loc.gov/vocabulary/iso639-2/cze> 
      a schema:EnumerationValue;
      schema:enumerationValueCode "cze";
      schema:name "Czech"@en;
      schema:name "tchèque"@fr;
      schema:name "Tschechisch"@de;
      schema:partOfEnumerationValueSet <http://id.loc.gov/vocabulary/iso639-2>.
@stuartasutton

This comment has been minimized.

Show comment
Hide comment
@stuartasutton

stuartasutton Jan 19, 2016

This is a very useful proposal for all of us developing markup of external enumerations of considerable size and working with organizations for the deployment of such enumerations in the context of sharing them on the web. I'm pleased to see a pull request in place.

This is a very useful proposal for all of us developing markup of external enumerations of considerable size and working with organizations for the deployment of such enumerations in the context of sharing them on the web. I'm pleased to see a pull request in place.

@westurner

This comment has been minimized.

Show comment
Hide comment
@westurner

westurner Jan 20, 2016

Contributor

In OWL, are these "Object Property Restrictions" [edit slash "Data Property Restrictions"] like owl:allValuesFrom and owl:someValuesFrom?

https://www.w3.org/TR/owl2-quick-reference/#Class_Expressions

... The class / instance distinction here is less than clear.

Contributor

westurner commented Jan 20, 2016

In OWL, are these "Object Property Restrictions" [edit slash "Data Property Restrictions"] like owl:allValuesFrom and owl:someValuesFrom?

https://www.w3.org/TR/owl2-quick-reference/#Class_Expressions

... The class / instance distinction here is less than clear.

@Dataliberate

This comment has been minimized.

Show comment
Hide comment
@Dataliberate

Dataliberate Jan 21, 2016

Contributor

Firstly as with the rest of Schema.org there are no implied constraints, rules, or inference implied in this proposal. That is not to say that a set of values applicable to a specific situation could not be described (and published using Schema) using the types and properties proposed here.

It would be up to an individual application to apply its own internal [OWL] rules to indicate the all the EnumerationValues that are 'part of' a particular EnumerationValueSet are valid in a specific circumstance. However, in Schema markup no such inference could be made.

Contributor

Dataliberate commented Jan 21, 2016

Firstly as with the rest of Schema.org there are no implied constraints, rules, or inference implied in this proposal. That is not to say that a set of values applicable to a specific situation could not be described (and published using Schema) using the types and properties proposed here.

It would be up to an individual application to apply its own internal [OWL] rules to indicate the all the EnumerationValues that are 'part of' a particular EnumerationValueSet are valid in a specific circumstance. However, in Schema markup no such inference could be made.

@westurner

This comment has been minimized.

Show comment
Hide comment
@westurner

westurner Jan 23, 2016

Contributor

However, in Schema markup no such inference could be made.

Contributor

westurner commented Jan 23, 2016

However, in Schema markup no such inference could be made.

@Dataliberate

This comment has been minimized.

Show comment
Hide comment
@Dataliberate

Dataliberate Jan 23, 2016

Contributor

On 23 January 2016 at 07:40, Wes Turner wrote:

However, in Schema markup no such inference could be made.

That is correct. The Schema.org use case is to enable mark up of structured
data within html. Not to provide inference over, or ontological control of,
a data set.

A recommended read that lays out the underlying principles and history of
Schema.org: http://queue.acm.org/detail.cfm?id=2857276

Contributor

Dataliberate commented Jan 23, 2016

On 23 January 2016 at 07:40, Wes Turner wrote:

However, in Schema markup no such inference could be made.

That is correct. The Schema.org use case is to enable mark up of structured
data within html. Not to provide inference over, or ontological control of,
a data set.

A recommended read that lays out the underlying principles and history of
Schema.org: http://queue.acm.org/detail.cfm?id=2857276

@westurner westurner referenced this issue Jan 27, 2016

Open

Schema.org Course Extension RDFa & Examples #972

2 of 4 tasks complete
@philbarker

This comment has been minimized.

Show comment
Hide comment
@philbarker

philbarker Jan 29, 2016

Contributor

@Dataliberate Q: what is the difference between (or relation between) the proposed EnumerationValueSet and http://schema.org/Enumeration ?

Contributor

philbarker commented Jan 29, 2016

@Dataliberate Q: what is the difference between (or relation between) the proposed EnumerationValueSet and http://schema.org/Enumeration ?

@Dataliberate

This comment has been minimized.

Show comment
Hide comment
@Dataliberate

Dataliberate Jan 31, 2016

Contributor

@philbarker good question!

The main relation is between EnumerationValue and Enumeration.

The relation being very similar to that of the core Schema.org vocabulary, hosted extensions such as auto.schema.org, and external extensions.

In theory any value, or identifier for that value, could be defined in the Schema.org vocabulary as an Enumeration-subtype type. As per current examples - OrderInTransit a subtype of OrderStatus, Paperback a subtype of BookFormatType, etc. all themselves subtypes of Enumeration.

However, other than for commonly known/used values, it is not practical to burden the vocabulary, and the agreement process for managing it, with the maintenance of all the potential lists of values for such things. Wanting to address the need to be able to mark up, using Schema.org, these terms and values that probably will never get assigned in the vocabulary, is what is behind the proposal for EnumerationValue.

EnumerationValue could be considered an 'external Enumeration value'. So in answer to your question, they are closely related at least in how they are/would be used. So much so, that I am considering updating the proposal to make EnumerationValue a subtype of Enumeration.

There are already in existence many candidates for terms that could be marked up in Schema using this approach. These examples often have properties in addition to their URI value (name, description, code, etc.) and are often grouped together in sets/dictionaries/terms such as the Library of Congress Subject Headings. That style of need being catered for with the EnumerationValueSet and valueCode property in the proposal.

Hope that helps.
~Richard.

Contributor

Dataliberate commented Jan 31, 2016

@philbarker good question!

The main relation is between EnumerationValue and Enumeration.

The relation being very similar to that of the core Schema.org vocabulary, hosted extensions such as auto.schema.org, and external extensions.

In theory any value, or identifier for that value, could be defined in the Schema.org vocabulary as an Enumeration-subtype type. As per current examples - OrderInTransit a subtype of OrderStatus, Paperback a subtype of BookFormatType, etc. all themselves subtypes of Enumeration.

However, other than for commonly known/used values, it is not practical to burden the vocabulary, and the agreement process for managing it, with the maintenance of all the potential lists of values for such things. Wanting to address the need to be able to mark up, using Schema.org, these terms and values that probably will never get assigned in the vocabulary, is what is behind the proposal for EnumerationValue.

EnumerationValue could be considered an 'external Enumeration value'. So in answer to your question, they are closely related at least in how they are/would be used. So much so, that I am considering updating the proposal to make EnumerationValue a subtype of Enumeration.

There are already in existence many candidates for terms that could be marked up in Schema using this approach. These examples often have properties in addition to their URI value (name, description, code, etc.) and are often grouped together in sets/dictionaries/terms such as the Library of Congress Subject Headings. That style of need being catered for with the EnumerationValueSet and valueCode property in the proposal.

Hope that helps.
~Richard.

@stuartasutton

This comment has been minimized.

Show comment
Hide comment
@stuartasutton

stuartasutton Mar 26, 2016

@Dataliberate Q: Did you consider making EnumerationValue a subtype of Enumeration? I think it would be useful.

@Dataliberate Q: Did you consider making EnumerationValue a subtype of Enumeration? I think it would be useful.

@Dataliberate

This comment has been minimized.

Show comment
Hide comment
@Dataliberate

Dataliberate Mar 27, 2016

Contributor

Yes I did, and having be asked a couple of times about it, I have concluded that it would be the right thing to do.

So my @RichardWallis persona has just done it.

Contributor

Dataliberate commented Mar 27, 2016

Yes I did, and having be asked a couple of times about it, I have concluded that it would be the right thing to do.

So my @RichardWallis persona has just done it.

@nichtich

This comment has been minimized.

Show comment
Hide comment
@nichtich

nichtich Apr 4, 2016

I'm trying to translate this proposal for those familiar with SKOS. Please correct my if I'm wrong:

  • schema:EnumerationValueSetskos:ConceptScheme
  • schema:EnumerationValueskos:Concept
  • schema:enumerationValueCodeskos:notation
  • schema:partOfEnumerationValueSetskos:inScheme
  • schema:hasEnumerationValue ≈ inverse of skos:inScheme (in some cases skos:hasTopConcept)

I miss counterparts of skos:related (see #582) and skos:broader/skos:narrower (see #251).

nichtich commented Apr 4, 2016

I'm trying to translate this proposal for those familiar with SKOS. Please correct my if I'm wrong:

  • schema:EnumerationValueSetskos:ConceptScheme
  • schema:EnumerationValueskos:Concept
  • schema:enumerationValueCodeskos:notation
  • schema:partOfEnumerationValueSetskos:inScheme
  • schema:hasEnumerationValue ≈ inverse of skos:inScheme (in some cases skos:hasTopConcept)

I miss counterparts of skos:related (see #582) and skos:broader/skos:narrower (see #251).

@nichtich nichtich referenced this issue in gbv/jskos Apr 4, 2016

Open

Provide mapping to schema.org #37

@Dataliberate

This comment has been minimized.

Show comment
Hide comment
@Dataliberate

Dataliberate Apr 4, 2016

Contributor

@nichtich your list of approximate relations to SKOS terms is about right for the proposal as it stands. Glad you used '≈'.

As described above this is a simple proposal mainly targeted at simple use cases. For example an already existent list of values for some types of things (eg. The list of ISO639-2 Language Codes). Many of these do not have any of the hierarchy or relationship concepts that would require the extra modelling power of SKOS (related,broader,narrower,exactMatch,etc.).

Yes it could be applied to sets of terms already defined in SKOS, but for an initial simple proposal adding much more would a) Introduce complexity; b) Consequentially reduce the potential for broad adoption across the [mostly non-SKOS] web.

The several issues/threads, dedicated to the re-creation of SKOS in Schema, that as yet are to come to a satisfactory conclusion are I believe symptomatic of a lack of a view of where it would be implemented widely.

My approach in making this proposal was to take something simple, with obvious simple use cases, that could possibly be used to partially address more complex issues. If we implement it and it gets used, we would have a real foundation with real usage to build on for future extension/enhancement.

Meanwhile the much wider discussions around similarity, relatedness, matching, and sameAs can come to a natural conclusion in their own time and future proposals

So I think we should continue with this in its current state.

Contributor

Dataliberate commented Apr 4, 2016

@nichtich your list of approximate relations to SKOS terms is about right for the proposal as it stands. Glad you used '≈'.

As described above this is a simple proposal mainly targeted at simple use cases. For example an already existent list of values for some types of things (eg. The list of ISO639-2 Language Codes). Many of these do not have any of the hierarchy or relationship concepts that would require the extra modelling power of SKOS (related,broader,narrower,exactMatch,etc.).

Yes it could be applied to sets of terms already defined in SKOS, but for an initial simple proposal adding much more would a) Introduce complexity; b) Consequentially reduce the potential for broad adoption across the [mostly non-SKOS] web.

The several issues/threads, dedicated to the re-creation of SKOS in Schema, that as yet are to come to a satisfactory conclusion are I believe symptomatic of a lack of a view of where it would be implemented widely.

My approach in making this proposal was to take something simple, with obvious simple use cases, that could possibly be used to partially address more complex issues. If we implement it and it gets used, we would have a real foundation with real usage to build on for future extension/enhancement.

Meanwhile the much wider discussions around similarity, relatedness, matching, and sameAs can come to a natural conclusion in their own time and future proposals

So I think we should continue with this in its current state.

@ldodds

This comment has been minimized.

Show comment
Hide comment
@ldodds

ldodds Jan 19, 2017

Contributor

@Dataliberate I like this approach, fits well with what I need for my current project. However I also need to relate an EnumerationValue to its parent.

This would be equivalent to skos:broader. Supporting skos:narrower might also be useful.

Contributor

ldodds commented Jan 19, 2017

@Dataliberate I like this approach, fits well with what I need for my current project. However I also need to relate an EnumerationValue to its parent.

This would be equivalent to skos:broader. Supporting skos:narrower might also be useful.

@ldodds

This comment has been minimized.

Show comment
Hide comment
@ldodds

ldodds Jan 19, 2017

Contributor

Further question: is it still recommended to add types for these category values, as defined in the original guidance. Or is this route only intended whether that is not useful/advised?

I'm having a hard time deciding which option might be best, so was hoping I could use this approach and later add some types & extra semantics if necessary.

Contributor

ldodds commented Jan 19, 2017

Further question: is it still recommended to add types for these category values, as defined in the original guidance. Or is this route only intended whether that is not useful/advised?

I'm having a hard time deciding which option might be best, so was hoping I could use this approach and later add some types & extra semantics if necessary.

@RichardWallis

This comment has been minimized.

Show comment
Hide comment
@RichardWallis

RichardWallis Jan 19, 2017

Contributor

Update:
Proposals to change the naming of the terms in this proposal (eg. from EnumerationValue to CategoryCode) have now been published complete with examples on the webschemas.org preview site:

@ldodds Part of the motivations behind this proposal were previous discussions about if Schema.org should include/support/reference SKOS and if so by how much. It was designed as a very lightweight approach that could be built upon based usage experience. I would suggest that, at least initially, broader/narrower hierarchical relationships between values would be best handled in localised data structures that the [proposed] Schema types would be added to for wider sharing.

As per the examples, it depends on what is already in place as to the final modelling of a set of CategoryCodes. If the terms are already defined (in SKOS or something else), it would be a matter of adding further Schema Types. For example a term could be defined as being both a skos:Concept and a schema:CategoryCode.

Contributor

RichardWallis commented Jan 19, 2017

Update:
Proposals to change the naming of the terms in this proposal (eg. from EnumerationValue to CategoryCode) have now been published complete with examples on the webschemas.org preview site:

@ldodds Part of the motivations behind this proposal were previous discussions about if Schema.org should include/support/reference SKOS and if so by how much. It was designed as a very lightweight approach that could be built upon based usage experience. I would suggest that, at least initially, broader/narrower hierarchical relationships between values would be best handled in localised data structures that the [proposed] Schema types would be added to for wider sharing.

As per the examples, it depends on what is already in place as to the final modelling of a set of CategoryCodes. If the terms are already defined (in SKOS or something else), it would be a matter of adding further Schema Types. For example a term could be defined as being both a skos:Concept and a schema:CategoryCode.

@RichardWallis RichardWallis changed the title from EnumerationValue Proposal to CategoryCode Proposal (formerly EnumerationValue Proposal) Jan 19, 2017

@ldodds

This comment has been minimized.

Show comment
Hide comment
@ldodds

ldodds Jan 19, 2017

Contributor

@RichardWallis I'm not sure what you mean by "best handled in localised data structures", that we'd need to define a custom set of properties?

For the openactive project none of these category code sets exists as SKOS, or even as publicly available data for the most part. So part of my interest here is in helping that data be made open. The broader/narrower relationships are quite important for tieing together physical activities. Also for many, many different controlled vocabularies.

Their addition here seems like a relatively small change to me?

Contributor

ldodds commented Jan 19, 2017

@RichardWallis I'm not sure what you mean by "best handled in localised data structures", that we'd need to define a custom set of properties?

For the openactive project none of these category code sets exists as SKOS, or even as publicly available data for the most part. So part of my interest here is in helping that data be made open. The broader/narrower relationships are quite important for tieing together physical activities. Also for many, many different controlled vocabularies.

Their addition here seems like a relatively small change to me?

@RichardWallis

This comment has been minimized.

Show comment
Hide comment
@RichardWallis

RichardWallis Jan 19, 2017

Contributor

@ldodds By localised structures I meant where they were already defined (in SKOS for instance). In such cases what you describe would already be in place if needed.

As to starting from scratch I can understand your desire, in this use case, to introduce broader/narrower into Schema.

In isolation it does seem like a small addition. However, it would also potentially introduce some assumptions about things marked up as CategoryCode types and the relationships between them that do not exist. SKOS, and hence its terms, assumes an organised structure of terms, such as in some controlled vocabularies. Whereas CategoryCodes could be applied to disconnected things with no such relationships or hierarchy.

In previous discussions around possibly including SKOS in Schema, potential issues about introducing a too constraining structure, were raised. Also the issue of where you draw the line as to which terms would/would not be a small change to include was subject of some debate.

Although such relationships are important within controlled vocabularies, I wonder if or how they would be used by data consumers

At this stage I am still inclined to keep this proposal as simple as possible, which in itself will be a major step forward in this area. Looking to future proposals to possibly extended it based on experience of implementation.

Contributor

RichardWallis commented Jan 19, 2017

@ldodds By localised structures I meant where they were already defined (in SKOS for instance). In such cases what you describe would already be in place if needed.

As to starting from scratch I can understand your desire, in this use case, to introduce broader/narrower into Schema.

In isolation it does seem like a small addition. However, it would also potentially introduce some assumptions about things marked up as CategoryCode types and the relationships between them that do not exist. SKOS, and hence its terms, assumes an organised structure of terms, such as in some controlled vocabularies. Whereas CategoryCodes could be applied to disconnected things with no such relationships or hierarchy.

In previous discussions around possibly including SKOS in Schema, potential issues about introducing a too constraining structure, were raised. Also the issue of where you draw the line as to which terms would/would not be a small change to include was subject of some debate.

Although such relationships are important within controlled vocabularies, I wonder if or how they would be used by data consumers

At this stage I am still inclined to keep this proposal as simple as possible, which in itself will be a major step forward in this area. Looking to future proposals to possibly extended it based on experience of implementation.

@danbri

This comment has been minimized.

Show comment
Hide comment
@danbri

danbri Jan 23, 2017

Contributor

So to revisit / recap the earlier (mini)SKOS discussions:

  • in the general case for mainstream webmasters, schema.org has a reasonable usability story for doing everything in one big flat namespace
  • for cases where the publishers are professional information-organizing data people, and who may already be some way along the path of using related standards, the "do it all inside schema.org" story is significantly weaker.

There are two obvious situations that fall under this category: datasets (c.f. W3C DCAT) and SKOS. With DCAT we did include Dataset and related terms, and with a design that shadows the shape of the (pretty commonsensy) DCAT model, but using schema.org existing vocab for properties.

With SKOS we concluded eventually that it would probably be counter-productive to include 100% of SKOS's functionality within schema.org, and that the most useful minimalistic thing to do would be to have a term along lines of skos:Concept so that it can be used to model the various existing bits and pieces within schema.org where a property expects a skos-like controlled value. And that things like http://schema.org/occupationalCategory could be given a bit more rigour.

Which brings us into the 'external enumerations' territory, i.e. external parties enumerate the actual lists of values. And they may as well use SKOS for that, hopefully writing the data in one of the formats (json-ld, rdfa, microdata) which are common for schema.org. And perhaps also including a bit of schema.org vocab as well as the SKOS terminology.

Contributor

danbri commented Jan 23, 2017

So to revisit / recap the earlier (mini)SKOS discussions:

  • in the general case for mainstream webmasters, schema.org has a reasonable usability story for doing everything in one big flat namespace
  • for cases where the publishers are professional information-organizing data people, and who may already be some way along the path of using related standards, the "do it all inside schema.org" story is significantly weaker.

There are two obvious situations that fall under this category: datasets (c.f. W3C DCAT) and SKOS. With DCAT we did include Dataset and related terms, and with a design that shadows the shape of the (pretty commonsensy) DCAT model, but using schema.org existing vocab for properties.

With SKOS we concluded eventually that it would probably be counter-productive to include 100% of SKOS's functionality within schema.org, and that the most useful minimalistic thing to do would be to have a term along lines of skos:Concept so that it can be used to model the various existing bits and pieces within schema.org where a property expects a skos-like controlled value. And that things like http://schema.org/occupationalCategory could be given a bit more rigour.

Which brings us into the 'external enumerations' territory, i.e. external parties enumerate the actual lists of values. And they may as well use SKOS for that, hopefully writing the data in one of the formats (json-ld, rdfa, microdata) which are common for schema.org. And perhaps also including a bit of schema.org vocab as well as the SKOS terminology.

@jvandriel

This comment has been minimized.

Show comment
Hide comment
@jvandriel

jvandriel Jan 23, 2017

Might it be an idea to include CategoryCode as an expected value for the category property?

This way a Product's category could for example be specified as a GS1 GPC (Segment, Family, Class or Brick) code, eg:

<script type="application/ld+json">
{
  "@context":"http://schema.org",
  "@type":"Product",
  "name":"Acme's Italian restaurant",
  "category":
  {
    "@type":"CategoryCode",
    "name":"Pizza Makers",
    "codeValue":"10001985",
    "inCodeSet":"http://www.gs1.org/gpc/december-2016"
  }
}
</script>

jvandriel commented Jan 23, 2017

Might it be an idea to include CategoryCode as an expected value for the category property?

This way a Product's category could for example be specified as a GS1 GPC (Segment, Family, Class or Brick) code, eg:

<script type="application/ld+json">
{
  "@context":"http://schema.org",
  "@type":"Product",
  "name":"Acme's Italian restaurant",
  "category":
  {
    "@type":"CategoryCode",
    "name":"Pizza Makers",
    "codeValue":"10001985",
    "inCodeSet":"http://www.gs1.org/gpc/december-2016"
  }
}
</script>
@danbri

This comment has been minimized.

Show comment
Hide comment
@danbri

danbri Jan 23, 2017

Contributor

Yup, I'm planning to go through and pull together all the category-valued properties with category as superproperty of them all. A bit like we did for http://webschemas.org/identifier recently...

Contributor

danbri commented Jan 23, 2017

Yup, I'm planning to go through and pull together all the category-valued properties with category as superproperty of them all. A bit like we did for http://webschemas.org/identifier recently...

@jvandriel

This comment has been minimized.

Show comment
Hide comment
@jvandriel

jvandriel Jan 23, 2017

A bit like we did for http://webschemas.org/identifier recently...

Cool, hadn't seen that yet, nice work - loving the overview this offers. Makes searching for properties a lot easier.

(Maybe in the future we could even have a tree of properties (similar to the tree of types to make searching for properties even easier.)

jvandriel commented Jan 23, 2017

A bit like we did for http://webschemas.org/identifier recently...

Cool, hadn't seen that yet, nice work - loving the overview this offers. Makes searching for properties a lot easier.

(Maybe in the future we could even have a tree of properties (similar to the tree of types to make searching for properties even easier.)

@radusi

This comment has been minimized.

Show comment
Hide comment
@radusi

radusi Jan 24, 2017

Last September received this example from @ekgs1 . Uses schema.org complemented by GS1 GPC extension. Validated by SDTT and SDL . Maybe someone else will also use it.

<script type="application/ld+json">
{
    "@context": {
        "gs1": "http://gs1.org/voc/",
        "s": "https://schema.org/",
        "xsd": "http://www.w3.org/2001/XMLSchema#",
        "@vocab": "http://gs1.org/voc/"
    },
    "@type": [ "gs1:Offer", "s:Offer" ],
    "itemOffered": {
        "@type": [ "gs1:Beverage", "s:Product" ],
        "s:name": [
            {
                "@value": "Prosecco Millesimato Villa Sandi",
                "@language": "en"
            }
        ],
        "gpcCategoryCode": "10000275",
        "alcoholicBeverageSubregion": [
            {
                "@value": "\"IT-TV\", \"IT-VE\", \"IT-VI\", \"IT-PD\", \"IT-BL\", \"IT-GO\", \"IT-PN\", \"IT-TN\", \"IT-UD\"",
                "@language": "en"
            }
        ],
        "countryOfOrigin": [
            {
                "@type": [ "gs1:Country", "s:Country" ],
                "countryCode": "IT"
            }
        ],
        "s:additionalProperty": [
                             {
                             "@type": "schema:PropertyValue",
                             "s:propertyID": "gpc:20000164",          
                             "s:value": "gpc:30003010",
                             "s:description": "Prosecco"
                             },
                             {
                             "@type": "schema:PropertyValue",
                             "s:propertyID": "gpc:20002829",          
                             "s:value": "gpc:30002173",
                             "s:description": "DRY"
                             }
         ]
         }
}
</script>

radusi commented Jan 24, 2017

Last September received this example from @ekgs1 . Uses schema.org complemented by GS1 GPC extension. Validated by SDTT and SDL . Maybe someone else will also use it.

<script type="application/ld+json">
{
    "@context": {
        "gs1": "http://gs1.org/voc/",
        "s": "https://schema.org/",
        "xsd": "http://www.w3.org/2001/XMLSchema#",
        "@vocab": "http://gs1.org/voc/"
    },
    "@type": [ "gs1:Offer", "s:Offer" ],
    "itemOffered": {
        "@type": [ "gs1:Beverage", "s:Product" ],
        "s:name": [
            {
                "@value": "Prosecco Millesimato Villa Sandi",
                "@language": "en"
            }
        ],
        "gpcCategoryCode": "10000275",
        "alcoholicBeverageSubregion": [
            {
                "@value": "\"IT-TV\", \"IT-VE\", \"IT-VI\", \"IT-PD\", \"IT-BL\", \"IT-GO\", \"IT-PN\", \"IT-TN\", \"IT-UD\"",
                "@language": "en"
            }
        ],
        "countryOfOrigin": [
            {
                "@type": [ "gs1:Country", "s:Country" ],
                "countryCode": "IT"
            }
        ],
        "s:additionalProperty": [
                             {
                             "@type": "schema:PropertyValue",
                             "s:propertyID": "gpc:20000164",          
                             "s:value": "gpc:30003010",
                             "s:description": "Prosecco"
                             },
                             {
                             "@type": "schema:PropertyValue",
                             "s:propertyID": "gpc:20002829",          
                             "s:value": "gpc:30002173",
                             "s:description": "DRY"
                             }
         ]
         }
}
</script>
@philbarker

This comment has been minimized.

Show comment
Hide comment
@philbarker

philbarker Oct 18, 2017

Contributor

A discussion about Dictionary Items (issue #1711 ) converged with this issue. On that thread there seemed to be agreement that the same terms could work for Dictionary Items and for the use cases discussed here. The suggestion from @RichardWallis was that dictionary items are very similar to enumerated values; indeed there is an example above showing how to treat them. CategoryCode doesn't really fit this use case well because they are not categories and there isn't a code. A better name would be DefinedTerm (category codes are defined terms). Consequent changes would be:

CategoryCode->DefinedTerm, a word, name, acronym, phrase, etc. with a formal definition. Often used in the context of category or subject classification, glossaries or dictionaries, product or creative work types, etc. Use the name property for the term being defined, use termCode if the term has an alpha-numeric code allocated, use description to provide the definition of the term.

CategoryCodeSet->DefinedTermSet, A set of defined terms for example a set of categories or a classification scheme, a glossary, dictionary or enumeration.

inCodeSet->inDefinedTermSet, a DefinedTermSet that contains this DefinedTerm

codeValue->termCode, A code that identifies this DefinedTerm within a DefinedTermSet

hasCategoryCode->hasDefinedTerm A DefinedTerm that is a member of this DefinedTermSet

Is there general agreement that these changes are worth making? If so, how can I help?

Contributor

philbarker commented Oct 18, 2017

A discussion about Dictionary Items (issue #1711 ) converged with this issue. On that thread there seemed to be agreement that the same terms could work for Dictionary Items and for the use cases discussed here. The suggestion from @RichardWallis was that dictionary items are very similar to enumerated values; indeed there is an example above showing how to treat them. CategoryCode doesn't really fit this use case well because they are not categories and there isn't a code. A better name would be DefinedTerm (category codes are defined terms). Consequent changes would be:

CategoryCode->DefinedTerm, a word, name, acronym, phrase, etc. with a formal definition. Often used in the context of category or subject classification, glossaries or dictionaries, product or creative work types, etc. Use the name property for the term being defined, use termCode if the term has an alpha-numeric code allocated, use description to provide the definition of the term.

CategoryCodeSet->DefinedTermSet, A set of defined terms for example a set of categories or a classification scheme, a glossary, dictionary or enumeration.

inCodeSet->inDefinedTermSet, a DefinedTermSet that contains this DefinedTerm

codeValue->termCode, A code that identifies this DefinedTerm within a DefinedTermSet

hasCategoryCode->hasDefinedTerm A DefinedTerm that is a member of this DefinedTermSet

Is there general agreement that these changes are worth making? If so, how can I help?

@stuartasutton

This comment has been minimized.

Show comment
Hide comment
@stuartasutton

stuartasutton Oct 18, 2017

@westurner

This comment has been minimized.

Show comment
Hide comment
@westurner

westurner Oct 18, 2017

Contributor
Contributor

westurner commented Oct 18, 2017

@philbarker

This comment has been minimized.

Show comment
Hide comment
@philbarker

philbarker Oct 18, 2017

Contributor
Contributor

philbarker commented Oct 18, 2017

@jgoodell2

This comment has been minimized.

Show comment
Hide comment
@jgoodell2

jgoodell2 Oct 19, 2017

+1 @philbarker -- conceptually "DefinedTermSet" and "DefinedTerm" would be a good fit (better than "CategoryCode") for the kind of data elements defined in CEDS that could be expressed as structured data on the Internet using the construct.

+1 @philbarker -- conceptually "DefinedTermSet" and "DefinedTerm" would be a good fit (better than "CategoryCode") for the kind of data elements defined in CEDS that could be expressed as structured data on the Internet using the construct.

@rrobson

This comment has been minimized.

Show comment
Hide comment
@rrobson

rrobson Oct 19, 2017

+1 @philbarker as well. In our competency-focused projects (e.g. www.cassproject.org and www.credentialengine.org) this would be extremely valuable so that web resources could be labelled with and discovered by competencies, relevant job classifications, etc.

rrobson commented Oct 19, 2017

+1 @philbarker as well. In our competency-focused projects (e.g. www.cassproject.org and www.credentialengine.org) this would be extremely valuable so that web resources could be labelled with and discovered by competencies, relevant job classifications, etc.

@jmarks

This comment has been minimized.

Show comment
Hide comment
@jmarks

jmarks Oct 19, 2017

+1 @philbarker @jgoodell2 @rrobson For the use in educational learning standards, and to be referenced by the core AlignmentObject, this approach seems workable. The main missing element is a way to define a hierarchy or taxonomy of skills and relationships between skills. We have a open source project, OpenSALT, https://github.com/opensalt/opensalt, used by education agencies that could (should) include DefinedTemSet and DefinedTerm. For example, this the the site for the learning goals in the US state of Georgia, and an example of a learning goal as a term-> https://case.georgiastandards.org/cftree/item/140363

My question is, would these DefinedTerms work to expose this important information as micro-data?

jmarks commented Oct 19, 2017

+1 @philbarker @jgoodell2 @rrobson For the use in educational learning standards, and to be referenced by the core AlignmentObject, this approach seems workable. The main missing element is a way to define a hierarchy or taxonomy of skills and relationships between skills. We have a open source project, OpenSALT, https://github.com/opensalt/opensalt, used by education agencies that could (should) include DefinedTemSet and DefinedTerm. For example, this the the site for the learning goals in the US state of Georgia, and an example of a learning goal as a term-> https://case.georgiastandards.org/cftree/item/140363

My question is, would these DefinedTerms work to expose this important information as micro-data?

@westurner

This comment has been minimized.

Show comment
Hide comment
@westurner

westurner Oct 19, 2017

Contributor
Contributor

westurner commented Oct 19, 2017

@philbarker

This comment has been minimized.

Show comment
Hide comment
@philbarker

philbarker Oct 19, 2017

Contributor

@westurner something like this:

<div vocab="http://schema.org/" typeof="ItemList DefinedTermSet">
  <h1 property="name">My example ordered definition list</h1>
  <div property="hasTerm itemListElement" typeof="DefinedTerm ListItem">
    <h2><span property="termCode">code1</span>: 
            <span property="name">Term <span property="position">1</span></span></h2>
    <p property="descriptioon">This is the definition of Term 1</p>
  </div>
  <div property="hasTerm itemListElement" typeof="DefinedTerm ListItem">
    <h2><span property="termCode">code2</span>: 
             <span property="name">Term <span property="position">2</span></span></h2>
    <p property="descriptioon">This is the definition of Term 1</p>
  </div>
  <div property="hasTerm itemListElement" typeof="DefinedTerm ListItem">
    <h2><span property="termCode">code3</span>: 
            <span property="name">Term <span property="position">3</span></span></h2>
    <p property="descriptioon">This is the definition of Term 3</p>
  </div>
</div>
Contributor

philbarker commented Oct 19, 2017

@westurner something like this:

<div vocab="http://schema.org/" typeof="ItemList DefinedTermSet">
  <h1 property="name">My example ordered definition list</h1>
  <div property="hasTerm itemListElement" typeof="DefinedTerm ListItem">
    <h2><span property="termCode">code1</span>: 
            <span property="name">Term <span property="position">1</span></span></h2>
    <p property="descriptioon">This is the definition of Term 1</p>
  </div>
  <div property="hasTerm itemListElement" typeof="DefinedTerm ListItem">
    <h2><span property="termCode">code2</span>: 
             <span property="name">Term <span property="position">2</span></span></h2>
    <p property="descriptioon">This is the definition of Term 1</p>
  </div>
  <div property="hasTerm itemListElement" typeof="DefinedTerm ListItem">
    <h2><span property="termCode">code3</span>: 
            <span property="name">Term <span property="position">3</span></span></h2>
    <p property="descriptioon">This is the definition of Term 3</p>
  </div>
</div>
@danbri

This comment has been minimized.

Show comment
Hide comment
@danbri

danbri Nov 22, 2017

Contributor

I've been looking in the Web for evidence that people have published markup exploring http://schema.org/CategoryCode - didn't find much. Note that the page on Schema.org for CategoryCode points fairly prominently to this discussion (Hello world!), where talk of renaming things may possibly discourage adoption in its current form.

I just had a chat with @stuartasutton about some of this. I can see that "category" may be too specific for some use cases, while "term" is so broad that it could cover things like the types/properties of a language like schema.org too. Perhaps we might leave CategoryCode in as a subtype?

Contributor

danbri commented Nov 22, 2017

I've been looking in the Web for evidence that people have published markup exploring http://schema.org/CategoryCode - didn't find much. Note that the page on Schema.org for CategoryCode points fairly prominently to this discussion (Hello world!), where talk of renaming things may possibly discourage adoption in its current form.

I just had a chat with @stuartasutton about some of this. I can see that "category" may be too specific for some use cases, while "term" is so broad that it could cover things like the types/properties of a language like schema.org too. Perhaps we might leave CategoryCode in as a subtype?

@erimille

This comment has been minimized.

Show comment
Hide comment
@erimille

erimille Nov 22, 2017

I can confirm being part of the group that has planned to use http://schema.org/CategoryCode for the likes of http://link.delawarelibrary.org/category/ but have been hesitant due to potential renaming.

I can confirm being part of the group that has planned to use http://schema.org/CategoryCode for the likes of http://link.delawarelibrary.org/category/ but have been hesitant due to potential renaming.

@thadguidry

This comment has been minimized.

Show comment
Hide comment
@thadguidry

thadguidry Nov 22, 2017

@danbri I personally prefer to just leave CategoryCode as a subtype. That aligns with DMCI Abstract Model and in particular their nearly equivalent usecase with VocabularyEncodingScheme as a Class http://dublincore.org/documents/dcmi-terms/#section-8

Anyways, can we just get DefinedTerm already ? :) Its Simple English and will foster more growth compared to "EnumerationBlah's" and "VocabularyBlah's" (and it comes from @philbarker who makes good judgement calls and has never failed us yet :)

thadguidry commented Nov 22, 2017

@danbri I personally prefer to just leave CategoryCode as a subtype. That aligns with DMCI Abstract Model and in particular their nearly equivalent usecase with VocabularyEncodingScheme as a Class http://dublincore.org/documents/dcmi-terms/#section-8

Anyways, can we just get DefinedTerm already ? :) Its Simple English and will foster more growth compared to "EnumerationBlah's" and "VocabularyBlah's" (and it comes from @philbarker who makes good judgement calls and has never failed us yet :)

@jvandriel

This comment has been minimized.

Show comment
Hide comment
@jvandriel

jvandriel Nov 22, 2017

I like the idea of having CategoryCode as a subType as well, especially since it represents more closely what marketers are looking for during day to day work. I fear using just TermDefinition will cause many marketers (and the developers that implement markup for them) to overlook it.

jvandriel commented Nov 22, 2017

I like the idea of having CategoryCode as a subType as well, especially since it represents more closely what marketers are looking for during day to day work. I fear using just TermDefinition will cause many marketers (and the developers that implement markup for them) to overlook it.

@rvguha

This comment has been minimized.

Show comment
Hide comment
@rvguha

rvguha Nov 22, 2017

Contributor
Contributor

rvguha commented Nov 22, 2017

@RichardWallis

This comment has been minimized.

Show comment
Hide comment
@RichardWallis

RichardWallis Nov 22, 2017

Contributor

Liking @danbri's suggestion of keeping CategoryCode as a subtype of DefinedTerm.

I will follow that logic through and map out how that would look with DefinedTermSet and relevant properties.

Contributor

RichardWallis commented Nov 22, 2017

Liking @danbri's suggestion of keeping CategoryCode as a subtype of DefinedTerm.

I will follow that logic through and map out how that would look with DefinedTermSet and relevant properties.

@philbarker

This comment has been minimized.

Show comment
Hide comment
@philbarker

philbarker Nov 23, 2017

Contributor

CategoryCode as a subtype of DefinedTerm sounds good.

I agree with @thadguidry's sentiment: I think these being in pending also inhibits uptake. Any prospect of moving this into the main vocabulary?

Contributor

philbarker commented Nov 23, 2017

CategoryCode as a subtype of DefinedTerm sounds good.

I agree with @thadguidry's sentiment: I think these being in pending also inhibits uptake. Any prospect of moving this into the main vocabulary?

@RichardWallis

This comment has been minimized.

Show comment
Hide comment
@RichardWallis

RichardWallis Dec 8, 2017

Contributor

I have now updated the PR (#1776) to reflect the proposal of making CategoryCode a subtype of TermDefinition - looks good to me.

This is still all in pending - as expressed by others, it would be good to get this in the core.

Contributor

RichardWallis commented Dec 8, 2017

I have now updated the PR (#1776) to reflect the proposal of making CategoryCode a subtype of TermDefinition - looks good to me.

This is still all in pending - as expressed by others, it would be good to get this in the core.

@thadguidry

This comment has been minimized.

Show comment
Hide comment

thadguidry commented Jun 23, 2018

@hekl

This comment has been minimized.

Show comment
Hide comment
@hekl

hekl Jun 25, 2018

I am rather late to this discussiion. First thinking about this from a practical viewpoint. In my institute we have a lot of vocabularies, classifications, termlists. Managing them in a specifc vocabulary tool, taking them out of excel files or normal webpages is my goal these days. Tools like that use SKOS. I might consider adding schema.org equivalents like proposed here. But there it stops for me. I want to use them as separate applications. I do agree that copying SKOS into schema.org is not a good thing. Still, going on about the case of Datasets and DCAT that is also mentioned, I would think that the case for SKOS support in schema.org is strong. Could definedTermSet in the future be one of the type SKOS? I am also triggered by the fact that Google in the schema.org/Dataset now gives support to DCAT as such. Anyway, these are interesting developments.

hekl commented Jun 25, 2018

I am rather late to this discussiion. First thinking about this from a practical viewpoint. In my institute we have a lot of vocabularies, classifications, termlists. Managing them in a specifc vocabulary tool, taking them out of excel files or normal webpages is my goal these days. Tools like that use SKOS. I might consider adding schema.org equivalents like proposed here. But there it stops for me. I want to use them as separate applications. I do agree that copying SKOS into schema.org is not a good thing. Still, going on about the case of Datasets and DCAT that is also mentioned, I would think that the case for SKOS support in schema.org is strong. Could definedTermSet in the future be one of the type SKOS? I am also triggered by the fact that Google in the schema.org/Dataset now gives support to DCAT as such. Anyway, these are interesting developments.

@dgrahn

This comment has been minimized.

Show comment
Hide comment
@dgrahn

dgrahn Jul 3, 2018

I'm going to jump in here. Does this extension support a range of categories? I.e. My Thing is in categories C-E.

Common in patents.

dgrahn commented Jul 3, 2018

I'm going to jump in here. Does this extension support a range of categories? I.e. My Thing is in categories C-E.

Common in patents.

@thadguidry

This comment has been minimized.

Show comment
Hide comment
@thadguidry

thadguidry Jul 3, 2018

@dgrahn yes, that would be the valueCode now in https://pending.schema.org/CategoryCode as "codeValue" that @RichardWallis proposed. It can be used to hold any "key" or "code" and where there is an associated meaningful value when that "key" or "code" is looked up. Your "C-E" key/code has some associated meaningful value to the publishers or consumers of patents.

 {
                "@type": "CategoryCode",
                "@id": "http://example.org/patentCodes/C/12",
                "identifier": "http://example.org/patentCodes/C/C-E"
                "codeValue": "C-E",
                "name": {
                        "en": "The name of the codeValue if it has one"
                },
                "description": "A fuller description or meaning of the codeValue or its usage.",
                "inCodeSet": "http://example.org/patentCodes"
}

By the way, what does "C-E" mean ?

@dgrahn yes, that would be the valueCode now in https://pending.schema.org/CategoryCode as "codeValue" that @RichardWallis proposed. It can be used to hold any "key" or "code" and where there is an associated meaningful value when that "key" or "code" is looked up. Your "C-E" key/code has some associated meaningful value to the publishers or consumers of patents.

 {
                "@type": "CategoryCode",
                "@id": "http://example.org/patentCodes/C/12",
                "identifier": "http://example.org/patentCodes/C/C-E"
                "codeValue": "C-E",
                "name": {
                        "en": "The name of the codeValue if it has one"
                },
                "description": "A fuller description or meaning of the codeValue or its usage.",
                "inCodeSet": "http://example.org/patentCodes"
}

By the way, what does "C-E" mean ?

@dgrahn

This comment has been minimized.

Show comment
Hide comment
@dgrahn

dgrahn Jul 3, 2018

@thadguidry It's an example. Could have done foo-bar.

What if you don't want to have users parse the value?

dgrahn commented Jul 3, 2018

@thadguidry It's an example. Could have done foo-bar.

What if you don't want to have users parse the value?

@thadguidry

This comment has been minimized.

Show comment
Hide comment
@thadguidry

thadguidry Jul 3, 2018

@dgrahn sorry, I don't understand. Can you explain further what you mean ? Give us the scenario or problem you have that you are trying to solve. That will help.

thadguidry commented Jul 3, 2018

@dgrahn sorry, I don't understand. Can you explain further what you mean ? Give us the scenario or problem you have that you are trying to solve. That will help.

@dgrahn

This comment has been minimized.

Show comment
Hide comment
@dgrahn

dgrahn Jul 3, 2018

So categories can sometimes be given as a range. i.e. from C to E. Those category names can actually have "special" characters in them like, - and /. It would be nice to be able to say something like this.

{
  "startCode": "C",
   "endCode": "E"
}

In fact, that's what I'm using right now as an extension of CategoryCode. I was just wondering if there was a pending canonical way to do it.

dgrahn commented Jul 3, 2018

So categories can sometimes be given as a range. i.e. from C to E. Those category names can actually have "special" characters in them like, - and /. It would be nice to be able to say something like this.

{
  "startCode": "C",
   "endCode": "E"
}

In fact, that's what I'm using right now as an extension of CategoryCode. I was just wondering if there was a pending canonical way to do it.

@thadguidry

This comment has been minimized.

Show comment
Hide comment
@thadguidry

thadguidry Jul 3, 2018

@dgrahn what would the parent types be for that scenario ? Can you give an example of the Thing that has a startCode of C and endCode of E ? I'm trying to understand that parent Thing and what is it called in Patent terminology ? If we can understand that better, then maybe we can find an easier path or different way to help.

thadguidry commented Jul 3, 2018

@dgrahn what would the parent types be for that scenario ? Can you give an example of the Thing that has a startCode of C and endCode of E ? I'm trying to understand that parent Thing and what is it called in Patent terminology ? If we can understand that better, then maybe we can find an easier path or different way to help.

@dgrahn

This comment has been minimized.

Show comment
Hide comment
@dgrahn

dgrahn Jul 3, 2018

I've been thinking about proposing Patent as a new CreativeWork. But in any case, patents have different classifications depending on where they are granted. One system is the USPC. These classifications can be presented as a range.

Is that making sense?

dgrahn commented Jul 3, 2018

I've been thinking about proposing Patent as a new CreativeWork. But in any case, patents have different classifications depending on where they are granted. One system is the USPC. These classifications can be presented as a range.

Is that making sense?

@thadguidry

This comment has been minimized.

Show comment
Hide comment
@thadguidry

thadguidry Jul 3, 2018

@dgrahn Yeap, makes much more sense now. OK, someone else has a common need and opened an issue for Patents: #1863

I would suggest to begin working with the community to create and maintain an extension for Patents (this might involve working with the loose Law proposals also in our issues, just search them).

To begin - See "Extensibility Mechanisms" section and other sections in How We Work

And use our mailing list to begin, or if you want to get formal, you can request a W3C Community, https://www.w3.org/community/schemaorg/

@dgrahn Yeap, makes much more sense now. OK, someone else has a common need and opened an issue for Patents: #1863

I would suggest to begin working with the community to create and maintain an extension for Patents (this might involve working with the loose Law proposals also in our issues, just search them).

To begin - See "Extensibility Mechanisms" section and other sections in How We Work

And use our mailing list to begin, or if you want to get formal, you can request a W3C Community, https://www.w3.org/community/schemaorg/

@stuartasutton

This comment has been minimized.

Show comment
Hide comment
@stuartasutton

stuartasutton Jul 3, 2018

If I am getting your intention @dgrahn, I don't think CategoryCode fits the bill since it provides the means for expressing a single defined category. So, if you have a range of categories 'C' through 'E', CategoryCode would be useful for expressing each category separately unless the range of 'C' through 'E' can itself be expressed as a category including a definition describing the range. I doubt that such defined expressions actually exist.

If I am getting your intention @dgrahn, I don't think CategoryCode fits the bill since it provides the means for expressing a single defined category. So, if you have a range of categories 'C' through 'E', CategoryCode would be useful for expressing each category separately unless the range of 'C' through 'E' can itself be expressed as a category including a definition describing the range. I doubt that such defined expressions actually exist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment