Skip to content

Conversation

@sharifX
Copy link
Contributor

@sharifX sharifX commented Jul 30, 2025

A new FDO type to accommodate the controlled values in terms. Example topicDiscipline has a value called Botany. We need a schema to indicate that this a value and it belongs to a term and also vice versa. In essence the term and controlled-value are mostly same but with the above distinction. we need separate entities to link terms with values and extend the term also in future have hierarchies.

A new FDO type to accommodate the controlled values in terms. Example topicDiscipline has a value called Botany. We need a schema to indicate that this a value and it belongs to a term and also vice versa. In essence the term and  controlled-value are mostly same but with the above distinction. we need separate entities to link terms with values and extend the term also in future have hierarchies.
sharifX added 2 commits July 30, 2025 12:20
here skos:broader as optional. this tells that 

Term: topicDiscipline
├── ControlledValue: Anthropology  
├── ControlledValue: Botany
├── ControlledValue: Astrogeology
└── ControlledValue: Geology

Each ControlledValue (like Botany) uses:

skos:inScheme → points back to the Term (topicDiscipline)
skos:broader → (optional) points to parent ControlledValue if there's hierarchy

So Botany is a controlled value of topicDiscipline, not a narrower concept of the term itself. The term defines the "field" and the controlled values are the allowed "options" for that field.
Copy link
Contributor

@samleeflang samleeflang left a comment

Choose a reason for hiding this comment

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

Got some comments. Check the assumption that a controlled value is always only associated with a single term. Otherwise, this approach will create issues.

},
"ods:fdoType": {
"type": "string",
"description": "The DOI to the FDO type of the object",
Copy link
Contributor

Choose a reason for hiding this comment

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

Better to use handle as FDO types only got a handle at the moment

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ok. I will update. but we need to update the other types also.

"@id": {
"type": "string",
"description": "The unique identifier (handle) of the controlled value",
"pattern": "^https://hdl\\.handle\\.net/20\\.500\\.1025/.+",
Copy link
Contributor

Choose a reason for hiding this comment

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

I think the pattern needs an update. It should always be https://hdl.handle.net/20.500.1025/ + some string + /. A controlled value should always fall beneath one term right? Could there be a case where we have a controlled value that is shared over multiple terms?

1
]
},
"ods:hasAgents": {
Copy link
Contributor

Choose a reason for hiding this comment

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

Formatting looks a bit off here

},
"ods:hasAgents": {
"type": "array",
"description": "Contains all agents that are connected to the specimen. Agents that are part of a specific part of the specimen should be added there. For example, a Collector is connected to the CollectingEvent so is added in the event.",
Copy link
Contributor

Choose a reason for hiding this comment

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

Description is specimen specific at the moment

Copy link
Contributor Author

Choose a reason for hiding this comment

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

made the desc more generic.

"$ref": "https://schemas.dissco.tech/schemas/fdo-type/shared-model/0.4.0/agent.json"
}
},
"dcterms:title": {
Copy link
Contributor

Choose a reason for hiding this comment

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

Could you add more examples for the below fields

"description": "Timestamp of last modification"
}
},
"required": [
Copy link
Contributor

Choose a reason for hiding this comment

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

Missing ods:status, ods:fdoType. I think modified should be optional

"ods:status": "ods:Active",
"ods:version": 1,
"ods:hasAgents": [
{
Copy link
Contributor

Choose a reason for hiding this comment

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

roleName incorrectly added. Should be a separate object

"@type": "schema:Person",
"schema:name": "FirstName LastName",
"schema:roleName": "Creator",
"dcterms:created": "2024-01-15T10:30:00Z"
Copy link
Contributor

Choose a reason for hiding this comment

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

Not part of agent object

"skos:inScheme": "https://hdl.handle.net/20.500.1025/topicDiscipline",
"owl:deprecated": false,
"dcterms:created": "2024-01-15T10:30:00Z",
"dcterms:modified": "2024-01-15T10:30:00Z"
Copy link
Contributor

Choose a reason for hiding this comment

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

Remove or add a modifier role

{
"@id": "https://hdl.handle.net/20.500.1025/topicDiscipline/Botany",
"@type": "ods:ControlledValue",
"ods:fdoType": "https://doi.org/21.T11148/bbad8c4e101e8af01115",
Copy link
Contributor

Choose a reason for hiding this comment

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

Points to media, needs to be updated later when there is a fdoType for the ControlledValue

checked assumption: Each controlled value belongs to exactly ONE term. 
updated regex for FDO Type and controlled value 
update hasAgents desc to a more generic one 
add more examples 
ods:status and ods:fdoType now required. moved modified from required.
@sharifX sharifX requested a review from samleeflang October 28, 2025 12:02
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

Successfully merging this pull request may close these issues.

3 participants