Closed stain closed 1 year ago
What I am not sure if we should say something about then is use of subclasses - e.g. can I use CollegeOrUniversity as @type
for the Organization in RO-Crate or do I literally have to include also the superclass Organization
?
I think what we have evolved for instance in extensions like ComputationalWorkflow
(which is defined outside schema.org) we also list the most specific schema.org type (SoftwareSourceCode
). But we've not said explicitly that schema.org subtypes can/should be used or not. Allowing this directly would mean full knowledge of the schema.org hierarchy in clients looking for particular entities.
3. The
@type
SHOULD include at least one [Schema.org] type, chosen to most accurately describe the entity (ultimate fallback: [Thing]), except where defined in this specification
This would encourage adding a lot of Thing
occurrences to crates conforming to highly domain-specific profiles with lots of custom types, with an impact on human-readability. Also thinking about machine-readability and the constant need to check for type arrays.
This would encourage adding a lot of
Thing
occurrences to crates conforming to highly domain-specific profiles with lots of custom types, with an impact on human-readability. Also thinking about machine-readability and the constant need to check for type arrays.
Agree that could get awkward for extension profiles.. perhaps better is to have:
The
@type
SHOULD include at least one Schema.org type, withThing
(or more typicallyCreativeWork
) as fallback if no alternative external or ad-hoc term is found (see Extending RO-Crate).
Basically we just provide Thing
so you don't violate the previous point to always provide a @type
, and can still have a name
.
(For the edge case of someone using SomeExtension
only as @type (as we do ourselves with RepositoryFile
) then supplying name
then would informally make them implicitly Thing
instances, if not in an OWL-semantic-inference kind of way. But as this is the most harmless class in Schema.org I think that is OK)
Namely that @type is required and name SHOULD be present.
This fixes #225
Also clarifies that schema.org types should be used.
New text (hyperlinks not shown here):
Common principles for RO-Crate entities
For all entities listed in an RO-Crate Metadata Document the following principles apply:
@id
(see [Describing entities in JSON-LD]())@type
, which MAY be an array.@type
SHOULD include at least one [Schema.org] type, chosen to most accurately describe the entity (ultimate fallback: [Thing]), except where defined in this specificationname
, in particular if its@id
do not go to a human-readable Web page@type
(or superclass) according to their definitions. For instance, the property [publisher] can be used on a [Dataset] as it applies to its superclass [CreativeWork].author
property to aPerson
entity) SHOULD use the{ "@id": "..."}
object form (see [JSON-LD appendix]())Base metadata standard: Schema.org
...