Try   HackMD
{
    "@type": "PhysicalSampleRecord",
    "sample_identifier":"",
    "alternate_identifiers":[{
        "@type": "IdentifierObjct",
        "label": "",
        "identifier": "",
        "scheme_name": ""
    }],
    "complies_with":[""],
    "curation": {
        "@type": "SpecimenCuration",
        "access_constraints":[""],
        "curation_location": "",
        "description": "",
        "label": "",
        "responsibility": [{
            "@type": "Agent",
            "name": "",
            "affiliation": "",
            "contact_information": "",
            "identifier": "",
            "role": ""
        }]
    },
    "description": "",
    "has_context_category": [{
        "@type": "IdentifierObject",
        "label": "",
        "identifier": "",
        "scheme_name": ""
    }],
    "has_material_category": [{
        "@type": "IdentifierObject",        
        "label": "",
        "identifier": "",
        "scheme_name": ""
    }],
    "has_specimen_category": [{
        "@type": "IdentifierObject",
        "label": "",
        "identifier": "",
        "scheme_name": ""
    }],
    "keywords": [{
        "@type": "Keyword",
        "keyword": "",
        "keyword_uri": "",
        "scheme_name": "",
        "scheme_uri": ""
    }],    
    "label": "",
    "produced_by": {
            "@type": "SamplingEvent",
            "identifier": "",
            "label": "",
            "description": "",
            "has_feature_of_interest": "",
            "responsibility": {
                "@type": "Agent",
                "name": "",
                "affiliation": "",
                "contact_information": "",
                "identifier": "",
                "role": ""                
            },
            "result_time": "2023-01-01",
            "sampling_site": {
                "@type": "SamplingSite",
                "description":"",
                "label": "",
                "location": {
                    "@type": "GeospatialCoordLocation",
                    "elevation": "",
                    "latitude": "",
                    "longitude": ""
                },
                "place_name": [""]
            },
            "authorized_by": ""
        },
    "registrant": {
            "@type": "Agent",
            "name": "",
            "affiliation": "",
            "contact_information": "",
            "identifier": "",
            "role": ""        
    },
    "related_resource": [{
        "@type": "SampleRelation",
        "description": "",
        "label": "",
        "relationship": "",
        "target": ""
    }],
    "sampling_purpose": ""
}

Persistence in Postgres

Draft Postgres schema

        
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

A thing can be a physical sample record or any "significant" components there of, e.g. an agent or sampling event.

Each thing has one or more guids.

Relationships between things is defined by relations between guids.

Things may have terms associated with them (keywords, controlled vocabulary values)