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

Add logo, update docs and generated code. #38

Merged
merged 2 commits into from
Jan 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 15 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
[![CI - main](https://github.com/nfdi4cat/pid4cat-model/actions/workflows/main.yaml/badge.svg)](https://github.com/nfdi4cat/pid4cat-model/actions/workflows/main.yaml)
[![CI - docs](https://github.com/nfdi4cat/pid4cat-model/actions/workflows/deploy-docs.yaml/badge.svg?branch=main)](https://github.com/nfdi4cat/pid4cat-model/actions/workflows/deploy-docs.yaml)

# PID4cat model
# Persistent Identifiers for FAIR data in Catalysis

![pid4cat logo](src/docs/files/logo-with-text.svg)

**pid4cat** is NFDI4Cat´s service for metadata rich, universal persistent identifiers. PID4Cat builds upon the handle-system (as DOIs do). PID4Cat adds a **custom API** to a handle server and provides a **LinkML model for PID-related metadata**. The metadata are stored in the handle records. **pid4cat** persistent identifiers are used for samples, devices, and more, to ensure consistent tracking, integration, and accessibility of resources across both central and local RDM systems.

## pid4cat metadata model

This repository contains the **pid4cat model** expressed as a [LinkML](https://linkml.io/) model. The model is generic and may be useful beyond catalysis.

> Status: beta - This is in development and may still change.
> We are interested in feedback of potential users.
> Please use [issues](https://github.com/nfdi4cat/pid4cat-model/issues) for your comments, questions or ideas!

A LinkML model for handle-based PIDs for resources in catalysis.

## Documentation

- [PID4Cat model](https://nfdi4cat.github.io/pid4cat-model) documentation
- [pid4cat model](https://nfdi4cat.github.io/pid4cat-model) documentation
- [NFDI4Cat PID concept](nfdi4cat_details.md) - more information about the role and use of this model.

## Repository Structure
Expand All @@ -28,12 +34,15 @@ A LinkML model for handle-based PIDs for resources in catalysis.

## Developer Documentation

<details>
Use the `make` command to generate project artefacts:

- `make`: list all commands
- `make all`: make everything
- `make deploy`: deploys site
</details>

Instead of `make` you may use [just](https://just.systems/man/en/) (especially on Windows where make is not easily available). The `justfile` contains the same commands as the make file. `just` is available for all major platforms and supports many install options. It can even be installed with [pipx](https://pipx.pypa.io/).

- `just`: list all commands

## Contributors

Expand Down
3 changes: 3 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ theme:
# primary: cyan
features:
- content.tabs.link
favicon: images/favicon.svg
logo: images/logo-icon.svg

plugins:
- search
- mermaid2:
Expand Down
5 changes: 4 additions & 1 deletion poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified project/excel/pid4cat_model.xlsx
Binary file not shown.
24 changes: 24 additions & 0 deletions project/java/Agent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package None;

import java.util.List;
import lombok.*;






/**
Person who plays a role relative to PID creation or curation.
**/
@Data
@EqualsAndHashCode(callSuper=false)
public class Agent {

private String name;
private String email;
private String orcid;
private String affiliationRor;
private String role;

}
20 changes: 20 additions & 0 deletions project/java/Container.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package None;

import java.util.List;
import lombok.*;






/**
A container for all PID4Cat instances.
**/
@Data
@EqualsAndHashCode(callSuper=false)
public class Container {

private List<PID4CatRecord> containsPids;

}
23 changes: 23 additions & 0 deletions project/java/LogRecord.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package None;

import java.util.List;
import lombok.*;






/**
A log record for changes made on a PID4CatRecord starting from registration.
**/
@Data
@EqualsAndHashCode(callSuper=false)
public class LogRecord {

private String datetimeLog;
private Agent hasAgent;
private String changedField;
private String description;

}
28 changes: 28 additions & 0 deletions project/java/PID4CatRecord.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package None;

import java.util.List;
import lombok.*;






/**
Represents a PID4CatRecord
**/
@Data
@EqualsAndHashCode(callSuper=false)
public class PID4CatRecord {

private String id;
private String landingPageUrl;
private String status;
private String pidSchemaVersion;
private String license;
private String curationContactEmail;
private ResourceInfo resourceInfo;
private List<PID4CatRelation> relatedIdentifiers;
private List<LogRecord> changeLog;

}
22 changes: 22 additions & 0 deletions project/java/PID4CatRelation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package None;

import java.util.List;
import lombok.*;






/**
A relation between PID4CatRecords or between a PID4CatRecord and other resources with a PID.
**/
@Data
@EqualsAndHashCode(callSuper=false)
public class PID4CatRelation {

private String relationType;
private String relatedIdentifier;
private String datetimeLog;

}
23 changes: 23 additions & 0 deletions project/java/RepresentationVariant.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package None;

import java.util.List;
import lombok.*;






/**
A representation of the resource in other media types than text/html which is the default for landing_page_url.
**/
@Data
@EqualsAndHashCode(callSuper=false)
public class RepresentationVariant {

private String url;
private String mediaType;
private String encodingFormat;
private Integer size;

}
23 changes: 23 additions & 0 deletions project/java/ResourceInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package None;

import java.util.List;
import lombok.*;






/**
Data object to hold information about the resource and its representation.
**/
@Data
@EqualsAndHashCode(callSuper=false)
public class ResourceInfo {

private String label;
private String description;
private String resourceCategory;
private List<RepresentationVariant> representationVariants;

}
2 changes: 1 addition & 1 deletion project/jsonld/pid4cat_model.context.jsonld
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"comments": {
"description": "Auto generated by LinkML jsonld context generator",
"generation_date": "2024-12-19T15:21:00",
"generation_date": "2025-01-05T16:58:06",
"source": "pid4cat_model.yaml"
},
"@context": {
Expand Down
6 changes: 3 additions & 3 deletions project/jsonld/pid4cat_model.jsonld
Original file line number Diff line number Diff line change
Expand Up @@ -1239,9 +1239,9 @@
],
"metamodel_version": "1.7.0",
"source_file": "pid4cat_model.yaml",
"source_file_date": "2024-12-09T21:30:49",
"source_file_size": 13430,
"generation_date": "2024-12-19T15:21:00",
"source_file_date": "2024-12-21T19:52:46",
"source_file_size": 13831,
"generation_date": "2025-01-05T16:58:06",
"@type": "SchemaDefinition",
"@context": [
"project/jsonld/pid4cat_model.context.jsonld",
Expand Down
Loading
Loading