Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Case study: Author #6

Open
mslw opened this issue Nov 27, 2023 · 1 comment
Open

Case study: Author #6

mslw opened this issue Nov 27, 2023 · 1 comment

Comments

@mslw
Copy link
Contributor

mslw commented Nov 27, 2023

This is about slots with two possible classes in their range - and about reusing schema.org definitions when we in fact rely on a modified subset of their properties.

Current state

Our Dataset class defines author slot as:

author:
slot_uri: schema:author
required: true
multivalued: true
range: Author
description: >-
One or more entities (natural persons or organizations) that
are considered authors of the dataset. These authors need
not be identical to an author list of an associated
publication. Any entity listed in this table will be
credited on the catalog page of the dataset.

In https://schema.org/author (as in real life), an author is expected to be an Organization or a Person.

In SFB tabby, we expect an author to have name, email, orcid, affiliation.

We model that as an Author class:

Author:
class_uri: schema:Person
description: >-
Entity (natural person or organization) that is considered an
author of the dataset. Dataset authors need not be identical to
an author list of an associated publication. An entity listed as
dataset author will be credited on the catalog page of the
dataset.
slots:
- name
- email
slot_usage:
name:
required: true
description: >-
The full name of the author. For example, the name of a CRC
member.
email:
required: false
description: >-
An email address with which the author can be contacted.
attributes:
orcid:
slot_uri: obo:IAO_0000708
required: false
recommended: true
description: >-
ORCID of an author, to uniquely identify a researcher.
affiliation:
slot_uri: schema:affiliation
required: false
multivalued: true
description: >-
One or more names of organizations or institutions an author
is affiliated with. Affiliations are free-form.

Similar case: DataController.

Issues

  • Despite the description, we assign class_uri: schema:Person to our Author
    • I don't know how to express range: Organization or Person in linkml?
    • It would not be possible to distinguish organizations and persons from the sfb tabby input
  • Despite class_uri: schema:Person, we only use a subset of https://schema.org/Person properties (name, email, affiliation) and define one additional field (orcid)

Thoughts

Should our Author really have class_uri: schema:Person, or be our "own" definition of an Author which is related to a schema:Person? LinkML allows to define mappings, such as close_mapping which map to SKOS data model.

This would shows in the docs as:
URI: sfb1451_schema:Author
and then in the "Mappings section" as:

Mapping Type Mapped Value
self sfb1451_schema:Author
native sfb1451_schema:Author
close schema:Person

OTOH I am not sure what other practical meaning that would have. E.g. if what I care is feeding the data to the catalog, it's probably better to carry over the schema IRI?

@mslw
Copy link
Contributor Author

mslw commented Dec 14, 2023

A snapshot from a whiteboard discussion, to refresh our memories:

PXL_20231213_140119842

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant