Skip to content
New issue

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

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

Already on GitHub? # to your account

Discuss: Event Metadata #1

Open
wants to merge 1 commit into
base: discussions/event-metadata/base
Choose a base branch
from

Conversation

LukasKalbertodt
Copy link
Member

@LukasKalbertodt LukasKalbertodt commented Mar 20, 2025

This discussion PR is for only event metadata.

To add new comments, go into the "files changed" tab and comment on individual lines or sections of lines. Or you can comment on existing discussion threads here. If you feel like you want to start a discussion about a broader topic (than something mainly referencing a few lines), consider open a new discussion here.

(🟦) Metadata fields marked with this symbol are *Opencast-managed*: they are read-only for users/external applications. All other fields can be freely changed, as long as validity checks pass.

#### General
- `id: ID` 🟦: unique among all events.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed recently, this needs clearer definition. Is the id unique to the system, tenancy ( or even globally)? I think the feeling was that id+organization should be unique because of the possibility of loading the same MediaPackage into different tenancies in the same system.

Need to add organization: NonBlankString ?

- `creators: NonBlankString[]`: The people mainly responsible for creating this video and/or presenting the talk which this video is a recording of. Should contain human-readable names and not usernames. Plain text. This is the main "who?"-information shown in the UIs; other fields in `extraMetadata` (e.g. `dct:contributor`) might be shown too, but less prominently.
- `language: LangCode?`: describes the (main) language of this event and its metadata. For example, the audio language and (if applicable) language of video content is more important than the language of available subtitles. Generally, assets can have their own language specified.
- `series: SeriesID?`: optional ID of the series this event belongs to. Must be a valid series ID of an existing series at all time.
- `owner: Username`: TODO figure out details

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we allow owner to also be a group rather than just an individual?

- `startTime: DateTime?`: Actual real life datetime when the video recording started or will start, with timezone. If this is not applicable, for example because it's a short movie, this should be undefined. UIs should use this as primary date to show for a video and if unset, fallback to `created`.
- `endTime: DateTime?`: Like `startTime`, but when the video recording stopped. Due to cutting, recording pauses and etc, the `duration` is not necessarily `end - start`.
- `duration: Milliseconds` 🟦: duration of the event. As specified in ["assets"](./assets), this needs to always match the duration of all non-internal tracks.
- `updated: Timestamp` 🟦: Timestamp of when anything about this event was last changed.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

modified ?
Again needs a clear definition of what affects a change e.g. if the series is modified

- `endTime: DateTime?`: Like `startTime`, but when the video recording stopped. Due to cutting, recording pauses and etc, the `duration` is not necessarily `end - start`.
- `duration: Milliseconds` 🟦: duration of the event. As specified in ["assets"](./assets), this needs to always match the duration of all non-internal tracks.
- `updated: Timestamp` 🟦: Timestamp of when anything about this event was last changed.
- `created: Timestamp` 🟦: Timestamp of when the event was created in Opencast. It is set once when the event is first stored in Opencast's DB, and never changed again. This also implies that scheduled event's `created` date is when the scheduling took place, _not_ the time it is scheduled for (that would be `startDate`)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add immutable flag

- `endTime: DateTime?`: Like `startTime`, but when the video recording stopped. Due to cutting, recording pauses and etc, the `duration` is not necessarily `end - start`.
- `duration: Milliseconds` 🟦: duration of the event. As specified in ["assets"](./assets), this needs to always match the duration of all non-internal tracks.
- `updated: Timestamp` 🟦: Timestamp of when anything about this event was last changed.
- `created: Timestamp` 🟦: Timestamp of when the event was created in Opencast. It is set once when the event is first stored in Opencast's DB, and never changed again. This also implies that scheduled event's `created` date is when the scheduling took place, _not_ the time it is scheduled for (that would be `startDate`)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

available: DateTimeRange : publication period when the event is visible to intended audience. Can be unset or open-ended.

Maybe this should be specific to each publication?

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

Successfully merging this pull request may close these issues.

2 participants