|
1 | | -# sv |
| 1 | +# HoMER Venue Research Index |
2 | 2 |
|
3 | | -Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). |
| 3 | +The HoMER Venue Research Index is a demo web application that lists venues (predominantly cinema related) from various datasets made by HoMERites (part of the HoMER Network, https://homernetwork.org/). |
4 | 4 |
|
5 | | -## Creating a project |
| 5 | +The goal of this application is to provide a central place for researchers to find and share research output (articles, books, websites, datasets, etc.) in which these venues are discussed. At the same time, it serves as a demonstration of the use of the HoMER Vocabulary of Moviegoing, a shared vocabulary for cinema research, promoting the use of shared vocabularies in cinema research. |
6 | 6 |
|
7 | | -If you're seeing this, you've probably already done this step. Congrats! |
| 7 | +The website was presented as part of a HoMER Vocabulary Workshop at the HoMER Annual Conference 2025, held in Istanbul, Turkey. See: https://homernetwork.github.io/venues/ |
8 | 8 |
|
9 | | -```bash |
10 | | -# create a new project in the current directory |
11 | | -npx sv create |
12 | | - |
13 | | -# create a new project in my-app |
14 | | -npx sv create my-app |
15 | | -``` |
16 | | - |
17 | | -## Developing |
18 | | - |
19 | | -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: |
| 9 | +## Contribute venue data |
20 | 10 |
|
21 | | -```bash |
22 | | -npm run dev |
23 | | - |
24 | | -# or start the server and open the app in a new browser tab |
25 | | -npm run dev -- --open |
| 11 | +1. Start with a copy of the template file located at `data/template.tsv` |
| 12 | +2. Fill in the required information for each venue |
| 13 | +3. Save your completed file as `your-dataset-name.tsv` in the `static` directory, or send it to us for inclusion. You can also open an issue and attach your file there. Please provide metadata for your set of venues. See the section below for details on required fields. |
| 14 | +4. In case you want to make a PR to the repository, please also generate a JSON-LD file from your TSV file. See the section below for details on how to do this. |
| 15 | + |
| 16 | +### TSV Template Fields |
| 17 | + |
| 18 | +| Field | Description | Example | Required | |
| 19 | +| ------------------ | --------------------------------------------------------------- | -------------------------------------- | -------- | |
| 20 | +| id | Unique identifier for the venue | http://www.cinemacontext.nl/id/B000016 | Optional | |
| 21 | +| name | Name of the venue | Kriterion | Required | |
| 22 | +| description | Detailed description | Filmtheater Kriterion, officieel... | Optional | |
| 23 | +| additionalTypeId | ID for venue type, split multiple values by semicolon (;) | cinema | Optional | |
| 24 | +| additionalTypeName | Type of venue, split multiple values by semicolon (;) | Art house cinema | Optional | |
| 25 | +| startDate | Date when venue opened (YYYY-MM-DD) | 1945-11-06 | Required | |
| 26 | +| endDate | Date when venue closed (YYYY-MM-DD) | (Empty when still in operation) | Optional | |
| 27 | +| addressLocality | City | Amsterdam | Optional | |
| 28 | +| addressRegion | Province/state code | NH | Optional | |
| 29 | +| postalCode | Postal code | 1012 | Optional | |
| 30 | +| streetAddress | Street address | Roetersstraat 170 | Optional | |
| 31 | +| latitude | Geographic latitude | 52.3625 | Required | |
| 32 | +| longitude | Geographic longitude | 4.910556 | Required | |
| 33 | +| citation | Bibliographic reference, split multiple values by semicolon (;) | Cinema Context | Optional | |
| 34 | +| sameAs | External identifier URL, split multiple values by semicolon (;) | http://www.cinemacontext.nl/id/B000016 | Optional | |
| 35 | + |
| 36 | +### Dataset Metadata Fields |
| 37 | + |
| 38 | +Example dataset entry in `static/index.json`: |
| 39 | + |
| 40 | +```json |
| 41 | +{ |
| 42 | + "@id": "cinema-context", |
| 43 | + "@type": "Dataset", |
| 44 | + "name": "Cinema Context", |
| 45 | + "description": "Cinema Context is a database of Dutch cinema and film culture.", |
| 46 | + "citation": "Cinema Context. n.d. Cinema Context. https://www.cinemacontext.nl/", |
| 47 | + "url": "https://www.cinemacontext.nl/", |
| 48 | + "distribution": [ |
| 49 | + { |
| 50 | + "@type": "DataDownload", |
| 51 | + "encodingFormat": "text/tab-separated-values", |
| 52 | + "contentUrl": "cinema-context.tsv" |
| 53 | + }, |
| 54 | + { |
| 55 | + "@type": "DataDownload", |
| 56 | + "encodingFormat": "application/ld+json", |
| 57 | + "contentUrl": "cinema-context.jsonld" |
| 58 | + } |
| 59 | + ], |
| 60 | + "dateModified": "2025-03-20", |
| 61 | + "isBasedOn": "cinema-context.tsv" |
| 62 | +} |
26 | 63 | ``` |
27 | 64 |
|
28 | | -## Building |
| 65 | +### Converting TSV to JSON-LD |
29 | 66 |
|
30 | | -To create a production version of your app: |
| 67 | +Run the following command to convert your TSV file to JSON-LD: |
31 | 68 |
|
32 | 69 | ```bash |
33 | | -npm run build |
| 70 | +node scripts/tsv_to_jsonld.ts |
34 | 71 | ``` |
35 | 72 |
|
36 | | -You can preview the production build with `npm run preview`. |
| 73 | +This will convert your TSV file into the right format so that it can be shown on the website. |
37 | 74 |
|
38 | | -> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. |
| 75 | +## Development of the website |
39 | 76 |
|
40 | | -# Venues Data Submission |
| 77 | +This website is built using SvelteKit. To contribute to the development of the website, follow these steps: |
41 | 78 |
|
42 | | -## How to Submit Venue Data |
| 79 | +1. Clone/fork the repository |
| 80 | +2. Install the dependencies: `npm install` |
| 81 | +3. Start the development server: `npm run dev` |
| 82 | +4. Make your changes and test them locally: `npm run preview` |
| 83 | +5. Commit your changes and push them to the repository |
| 84 | +6. Create a pull request |
43 | 85 |
|
44 | | -1. Start with a copy of the template file located at `data/template.tsv` |
45 | | -2. Fill in the required information for each venue |
46 | | -3. Save your completed file as `venues.tsv` in the `data` directory |
47 | | -4. Run the conversion script to generate JSON-LD |
48 | | - |
49 | | -## TSV Template Fields |
50 | | - |
51 | | -| Field | Description | Example | Required | |
52 | | -| ------------------ | ----------------------------------- | -------------------------------------- | -------- | |
53 | | -| id | Unique identifier for the venue | http://www.cinemacontext.nl/id/B000016 | Optional | |
54 | | -| name | Name of the venue | Kriterion | Required | |
55 | | -| description | Detailed description | Filmtheater Kriterion, officieel... | Optional | |
56 | | -| additionalTypeId | ID for venue type | cinema | Optional | |
57 | | -| additionalTypeName | Type of venue | Art house cinema | Optional | |
58 | | -| startDate | Date when venue opened (YYYY-MM-DD) | 1945-11-06 | Required | |
59 | | -| endDate | Date when venue closed (YYYY-MM-DD) | (Empty when still in operation) | Optional | |
60 | | -| addressLocality | City | Amsterdam | Optional | |
61 | | -| addressRegion | Province/state code | NH | Optional | |
62 | | -| postalCode | Postal code | 1012 | Optional | |
63 | | -| streetAddress | Street address | Roetersstraat 170 | Optional | |
64 | | -| latitude | Geographic latitude | 52.3625 | Required | |
65 | | -| longitude | Geographic longitude | 4.910556 | Required | |
66 | | -| citation | Bibliographic reference | Cinema Context | Optional | |
67 | | -| sameAs | External identifier URL | http://www.cinemacontext.nl/id/B000016 | Optional | |
68 | | - |
69 | | -## Converting TSV to JSON-LD |
70 | | - |
71 | | -Run the following command to convert your TSV file to JSON-LD: |
72 | | - |
73 | | -```bash |
74 | | -node scripts/tsv_to_jsonld.ts |
75 | | -``` |
| 86 | +## Contact |
76 | 87 |
|
77 | | -This will read the venues.tsv file and generate a venues.json file in the data directory. |
| 88 | +For any questions or contributions, please open an issue, or email l.vanwissen@uva.nl. |
0 commit comments