hackathon.json
A standard data model for assessment of citizen participation in technical events
hackathon.json Specification
A standard data format for publishing evidence of public participation in technical events.
Overview
Our goals are to have a shared and linked metadata and data model for opening data from and about hackathons. Here we describe how this may be published in the JSON serialization for Linked Data (JSON-LD, or just json
) format.
Basic type
The data model for hackathon.json
is based on the Hackathon type at Schema.org, which defines the properties and sub-entities involved in describing an event of this type.
The essentials of this is a header that includes a @context
and @type
reference, along with top-level properties such as name
and startDate
, as follows:
{
"@context": "http://schema.org",
"@type": "Hackathon",
"name": "GLAMhack 2024",
"startDate": "2024-09-06T09:00",
"endDate": "2024-09-07T16:00",
...
}
Location
The geographic location of the event, if it has a physical address or geocoordinates, can be documented with the Location property, which may be formatted as a Place
, PostalAddress
, VirtualLocation
, or just be a plain Text
description.
Offers
Using the offers property, we can describe requirements of joining the hackathon, just as the obligation to buy a ticket or join a waiting list.
CreativeWork
The Schema.org type proposes the use of CreativeWork sub-entities to document the results of an event. This would include a @context
, as well as name
, dateCreated
and so on. You can see this in the example below.
Full example
Retrieved from https://hack.glam.opendata.ch/hackathon.json on 2024-10-22:
{
"@context": "http://schema.org",
"@type": "Hackathon",
"name": "GLAMhack 2024",
"startDate": "2024-09-06T09:00",
"endDate": "2024-09-07T16:00",
"description": "10th Swiss Open Cultural Data Hackathon in Luzern",
"mainEntityOfPage": "https://opendata.ch/de/events/glamhack24/",
"url": "https://hack.glam.opendata.ch/event/12",
"image": "https://s3.dribdat.cc/odch/a/1771/IBXKQB3UD3XW2PFOVONZNBX8/OpenGLAM_CH_Logo.svg.png",
"location": {
"@type": "Place",
"address": "Lucerne",
"name": "OpenGLAM CH"
},
"offers": {
"@type": "Offer",
"url": "https://opendata.ch/de/events/glamhack24/"
},
"workPerformed": [
{
"@type": "CreativeWork",
"name": "DeepGLAM",
"dateCreated": "2024-09-02T06:28",
"dateModified": "2024-09-15T16:13",
"description": "A \"meta\" challenge, in the form of a visualization that encourages participants to share some feedback/thoughts about this platform",
"discussionUrl": "https://github.com/we-art-o-nauts/DeepGLAM/issues",
"image": "https://s3.dribdat.cc/glam/c/1/JWWCD87JGB82LF0358POUQX8/Screenshot_from_20240906_220057.jpg",
"license": "https://creativecommons.org/licenses/by/4.0/",
"url": "https://hack.glam.opendata.ch/project/300"
},
...
]
}
Related standards
Implementations
The following applications help to generate a hackathon.json
, or visualize this format to showcase documentation, prototypes, and other sprint results. Please add yours to this list with a quick Pull Request.
Previous
Hello, World