Warning:
This wiki has been archived and is now read-only.

Facet Property Names

From RDF Data Shapes Working Group
Jump to: navigation, search

This page was created to reach an agreement on the names of the facet properties built into the Core SHACL vocabulary. Votes should enumerate all viable options in descending order.

Tabular Summary of Options

chosen

Value Type Node Kind Cardinality Value Shape
sh:class sh:kind sh:minCardinality,
sh:maxCardinality
sh:shape
sh:objectType sh:nodeKind sh:minCardinality,
sh:maxCardinality,
sh:cardinality
sh:valueShape
sh:resourceType sh:nodeType sh:minCount,
sh:maxCount
sh:type sh:termKind sh:minCount,
sh:maxCount,
sh:count
sh:valueClass sh:objectKind sh:minOccurs,
sh:maxOccurs
sh:valueType sh:valueKind sh:minOccurs,
sh:maxOccurs,
sh:occurs
sh:minCount,
sh:maxCount,
sh:exactCount

Value Type

This facet restricts the values of a property by their rdf:type, i.e. all values must be instances of a given class.

Proposals:

  • sh:class
  • sh:objectType
  • sh:resourceType
  • sh:type
  • sh:valueClass
  • sh:valueType

Votes:

  • HK: sh:type > sh:class
  • RC: sh:class > the rest > sh:objectType and sh:resourceType; the last two are too confusing
  • HS: sh:type > sh:class
  • DK: sh:valueType > sh:valueClass
  • SSt: sh:type > sh:valueType > the rest (similarity of sh:type & rdf:type is imho beneficial)
  • KC: sh:valueType
  • TT: sh:valueType
  • AR: sh:valueType


  • Comment I think we should avoid giving properties names that are already commonly used in rdf/rdfs/owl. I also think that each property needs a clear label and definition (in English for starters). This may mean creating property names that are not words, such as "consType" with a label "Constraint type" or "SHACL constraint type." Karen Coyle (talk) 14:13, 4 April 2015 (UTC)

Node Kind

This facet restricts the values of a property by their RDF node kind (IRI, blank node, or literal)

Proposals

  • sh:kind
  • sh:nodeKind
  • sh:nodeType
  • sh:termKind
  • sh:objectKind (added by HS)
  • sh:valueKind (added by DK)

Votes:

  • HK: sh:nodeKind > sh:kind
  • RC: sh:termKind > the rest
  • HS: sh:objectKind > sh:kind > sh:nodeKind
  • DK: sh:valueKind
  • SSt: sh:valueKind > sh:nodeKind > the rest
  • KC: sh:nodeType
  • TT: sh:nodeType
  • AR: sh:valueKind

Cardinality

re: http://www.w3.org/2014/data-shapes/track/issues/38

Also: Should we support sh:count in addition to sh:minCount and sh:maxCount? Defaults are: min=0, max=unlimited, count=unspecified, i.e. [0..*]

Proposals:

  • sh:minCardinality, sh:maxCardinality
  • sh:minCardinality, sh:maxCardinality, sh:cardinality
  • sh:minCount, sh:maxCount
  • sh:minCount, sh:maxCount, sh:count
  • sh:minOccurs, sh:maxOccurs
  • sh:minOccurs, sh:maxOccurs, sh:occurs
  • sh:minCount, sh:maxCount, sh:exactCount (added by SSt)

Votes:

  • HK: sh:minCount, sh:maxCount, sh:count (because sh:count=1 is very common and cardinality is too long).
  • RC: sh:minOccurs, sh:maxOccurs > minCount, maxCount > the rest. I don't care much for the third property.
  • HS: sh:minCount, sh:maxCount, sh:count (shorthand for minCount = maxCount = Count)
  • DK: sh:minCount, sh:maxCount, sh:count
  • SSt: sh:minCount, sh:maxCount, (sh:count || sh:exactCount)
  • KC: sh:minOccurs, sh:maxOccurs (no count; count=1 is the only commonly used one, and that can be provided in user interfaces; also, count means something else in SQL and other languages, so would be confusing)
  • TT: sh:minOccurs, sh:maxOccurs
  • AR: sh:minOccurs, sh:maxOccurs

Value Shape

re: http://www.w3.org/2014/data-shapes/track/issues/39

This is the test of values against a given shape.

Proposals:

  • sh:shape
  • sh:valueShape

Votes:

  • HK: sh:shape > sh:valueShape
  • DK: sh:valueShape
  • SSt: sh:shape > sh:valueShape
    • (it depends on previous choices though (e.g. sh:type vs. sh:valueType))
    • sh:shape may be confused with sh:shapes (maybe call the latter one sh:shapeSet?)
  • RC: sh:shape > sh:valueShape
  • KC: valueShape
  • TT:valueShape
  • AR: sh:valueShape