diff --git a/index.json b/index.json new file mode 100644 index 0000000..794141e --- /dev/null +++ b/index.json @@ -0,0 +1,459 @@ +{ + "@context": "https://xpub.nl/contexts/projects.json", + "@graph": [ + { + "student": "Giulia de Giovanelli", + "thesis": "https://project.xpub.nl/unlearning-the-rules-of-collectivity/pdf/Publication-thesis%20Giuliade%20Giovanelli.pdf", + "title": "Unlearning the Rules of Collectivity", + "type": "project", + "url": "https://project.xpub.nl/unlearning-the-rules-of-collectivity/" + }, + { + "student": "Joca van der Horst", + "thesis": "https://project.xpub.nl/smart-speaker-theatre/pdf/ghost_in_the_speaker.pdf", + "title": "Smart Speaker Theatre", + "type": "project", + "url": "https://project.xpub.nl/index.html/" + }, + { + "student": "Gersande Schellinx", + "thesis": "https://project.xpub.nl/social-shelves-project/xpub_master-thesis_gersande-schellinx.pdf", + "title": "The Social Shelf Project", + "type": "project", + "url": "https://project.xpub.nl/social-shelves-project/" + }, + { + "student": "Erica Gargaglione", + "thesis": "https://project.xpub.nl/hacking-maintenance-with-care/pdf/HMWC.pdf", + "title": "Hacking Maintenance with Care", + "type": "project", + "url": "https://project.xpub.nl/hacking-maintenance-with-care/" + }, + { + "student": "Max Franklin", + "thesis": "https://project.xpub.nl/anomolous-faces/pdf/Publication-POD_Thesis_Max-Franklin.pdf", + "title": "Anomolous faces", + "type": "project", + "url": "https://project.xpub.nl/anomolous-faces/" + }, + { + "student": "Alice Strete", + "thesis": "https://project.xpub.nl/is-it-time-to-eat-or-is-there-no-more-time-to-eat/pdf/your-body-will-make-itself-heard.pdf", + "title": "Is it time to eat, or is there no more time to eat?", + "type": "project", + "url": "https://project.xpub.nl/is-it-time-to-eat-or-is-there-no-more-time-to-eat/" + }, + { + "student": "Nami Kim", + "thesis": "https://project.xpub.nl/usx/Nami%20Kim_graduation%20thesis_Xpub.pdf", + "title": "User Sentimental eXperience", + "type": "project", + "url": "https://project.xpub.nl/usx/" + }, + { + "student": "Chaeyoung Kim", + "thesis": "https://project.xpub.nl/minor_stories/pdf/(compressed)_spark(l)ing_curiosities_through_intimate_publishing.pdf", + "title": "Minor Stories", + "type": "project", + "url": "https://project.xpub.nl/minor_stories/" + }, + { + "student": "Nadine Rotem-Stibbe", + "thesis": "https://project.xpub.nl/unpublishing/Thesis-N.Rotem-Stibbe.pdf", + "title": "Unpublishing", + "type": "project", + "url": "https://project.xpub.nl/unpublishing/" + }, + { + "student": "Avital Barkai", + "thesis": "https://project.xpub.nl/writing_cure/pdf/Avital_Barkai_thesis_compressed.pdf", + "title": "Writing Cure", + "type": "project", + "url": "https://project.xpub.nl/writing_cure/" + }, + { + "student": "Louisa Teichmann", + "thesis": "http://louisateichmann.com/asphaltspur.pdf", + "title": "868 MHz", + "type": "project", + "url": "https://project.xpub.nl/868-mhz/" + }, + { + "student": "Emma Prato", + "thesis": "https://project.xpub.nl/how-to-make-a-notebook-that/Thesis-Paper-Notebooks.pdf", + "title": "Paper Notebooks: From an Industrial Model to a Tool of Expression", + "type": "project", + "url": "https://project.xpub.nl/how-to-make-a-notebook-that/" + }, + { + "student": "Tancredi Di Giovanni", + "thesis": "https://project.xpub.nl/ilinx/", + "title": "ilinx", + "type": "project", + "url": "https://project.xpub.nl/ilinx/" + }, + { + "student": "Jacopo Lega", + "thesis": "https://habitattt.it/thesis-Jacopo-Lega/Thesis--Habitat--Living-sharing-adapting---Jacopo-Lega.pdf", + "title": "Habitat", + "type": "project", + "url": "https://project.xpub.nl/habitat/" + }, + { + "student": "Kimberley Cosmilla", + "thesis": "https://project.xpub.nl/to-whom-it-may-affect/somewhere-highway-publishing.pdf", + "title": "\"To whom it may affect\"", + "type": "project", + "url": "https://project.xpub.nl/to-whom-it-may-affect/" + }, + { + "student": "Damlanur Bilgin", + "thesis": "https://project.xpub.nl/nothanks/pdf/THESIS-compressed.pdf", + "title": "No thanks, I'll make my own", + "type": "project", + "url": "https://project.xpub.nl/nothanks/" + }, + { + "student": "Rita Graça", + "thesis": "https://project.xpub.nl/networks-of-care/pdf/networksofcare_thesis.pdf", + "title": "Networks of Care", + "type": "project", + "url": "https://project.xpub.nl/networks-of-care/" + }, + { + "student": "Biyi Wen", + "thesis": "https://project.xpub.nl/the-repeater-archive/pdf/Biyi_Wen_Thesis.pdf", + "title": "The Repeater Archive", + "type": "project", + "url": "https://project.xpub.nl/the-repeater-archive/" + }, + { + "student": "Max Lehmann", + "thesis": "https://project.xpub.nl/makeinclusivewebsites/pdf/MaxLehmann_Thesis_compressed.pdf", + "title": "Make Inclusive Websites", + "type": "project", + "url": "https://project.xpub.nl/makeinclusivewebsites/" + }, + { + "student": "Paloma Garcia", + "thesis": "https://project.xpub.nl/cartographies-of-counter-speculation/pdf/garcia-paloma-cartographies-of-invisibility.pdf", + "title": "Cartographies of Counter Speculation", + "type": "project", + "url": "https://project.xpub.nl/cartographies-of-counter-speculation/" + }, + { + "student": "Zalán Szakács", + "thesis": "https://project.xpub.nl/eigengrau/pdf/Phantasmagoria_Zalan_Szakacs_Thesis.pdf", + "title": "Eigengrau", + "type": "project", + "url": "https://project.xpub.nl/eigengrau/" + }, + { + "student": "Bohye Woo", + "thesis": "https://project.xpub.nl/parallel-colonialism/pdf/bohye-woo-thesis-2020.pdf", + "title": "Parallel Colonialism", + "type": "project", + "url": "https://project.xpub.nl/parallel-colonialism/" + }, + { + "student": "Ål Nik [Alexandra Nikolova]", + "thesis": "https://project.xpub.nl/sound-jams/alnik-xpub-thesis.pdf", + "title": "Sound Jams: Deluxe Edition", + "type": "project", + "url": "https://project.xpub.nl/sound-jams/" + }, + { + "student": "Pedro Sá Couto", + "thesis": "https://project.xpub.nl/tactical-watermarks/pdf/Thesis_Master_PSC_HD.pdf", + "title": "Tactical Watermarks", + "type": "project", + "url": "https://project.xpub.nl/tactical-watermarks/" + }, + { + "student": "Jian Haake [ohjian]", + "thesis": "https://media.xpub.nl/2023/thesis/modular-matter-Jian_Haake.pdf", + "title": "MODULAR MATTER", + "type": "project", + "url": "https://project.xpub.nl/modular-matter/" + }, + { + "student": "Simon Browne", + "thesis": "https://project.xpub.nl/the-bootleg-library/pdf/thesis.pdf", + "title": "the bootleg library", + "type": "project", + "url": "https://project.xpub.nl/the-bootleg-library/" + }, + { + "date": "2023-06-01", + "hasPart": [ + "https://project.xpub.nl/hello-worlding/", + "https://project.xpub.nl/sound-jams/", + "https://project.xpub.nl/how-to-make-a-notebook-that/", + "https://project.xpub.nl/howtobeasocialjusticewarrior/", + "https://project.xpub.nl/hacking-maintenance-with-care/", + "https://project.xpub.nl/to-whom-it-may-affect/", + "https://project.xpub.nl/minor_stories/", + "https://project.xpub.nl/social-shelves-project/", + "https://project.xpub.nl/modular-matter/", + "https://project.xpub.nl/dear-cross-maker/", + "https://project.xpub.nl/thanks_for_listening/" + ], + "image": "https://media.xpub.nl/2023/xpub2023-makingthingsbubblic.svg", + "title": "Making things Bubblic", + "type": "gradshow", + "url": "https://project.xpub.nl/index.rdfa.html#Making-things-Bubblic" + }, + { + "date": "2021-07-01", + "hasPart": [ + "https://project.xpub.nl/the-constitution/", + "https://project.xpub.nl/low-tech-chronicles/", + "https://project.xpub.nl/lever_burns/", + "https://project.xpub.nl/makeinclusivewebsites/", + "https://project.xpub.nl/nothanks/", + "https://project.xpub.nl/writing_cure/", + "https://project.xpub.nl/when-you-might-go-astray/", + "https://project.xpub.nl/terrafying-hear-say/", + "https://project.xpub.nl/desire_revolution/" + ], + "image": "https://git.xpub.nl/XPUB/project.xpub.nl/raw/branch/master/img/logo_indigo_2021.png", + "title": "blue links", + "type": "gradshow", + "url": "https://project.xpub.nl/index.rdfa.html#blue-links" + }, + { + "student": "Franc González", + "thesis": "https://project.xpub.nl/referendum-medialogs/pdf/Publication-referendum_medialogs.pdf", + "title": "Referendum Medialogs", + "type": "project", + "url": "https://project.xpub.nl/referendum-medialogs/" + }, + { + "student": "Euna Lee", + "thesis": "https://project.xpub.nl/frabjousish/pdf/thesis.pdf", + "title": "Frabjousish", + "type": "project", + "url": "https://project.xpub.nl/frabjousish/" + }, + { + "student": "Alexander Roidl", + "thesis": "https://project.xpub.nl/poetic-software/pdf/poetic_software_thesis.pdf", + "title": "Poetic Software", + "type": "project", + "url": "https://project.xpub.nl/poetic-software/" + }, + { + "date": "2020-07-01", + "hasPart": [ + "https://project.xpub.nl/syster-papyri-magicae/", + "https://project.xpub.nl/the-bootleg-library/", + "https://project.xpub.nl/parallel-colonialism/", + "https://project.xpub.nl/the-repeater-archive/", + "https://project.xpub.nl/tactical-watermarks/", + "https://project.xpub.nl/networks-of-care/", + "https://project.xpub.nl/ilinx/", + "https://project.xpub.nl/cartographies-of-counter-speculation/" + ], + "image": "https://project.xpub.nl/img/xpub_logo_2020.svg", + "title": "c_o_l_l_e_c_t_i_v_e_i_o_n_i_n_g", + "type": "gradshow", + "url": "https://project.xpub.nl/index.rdfa.html#c_o_l_l_e_c_t_i_v_e_i_o_n_i_n_g" + }, + { + "student": "Camilo García A.", + "thesis": "https://project.xpub.nl/attempting-diffraction/pdf/Camilo_Garcia_Aycardi_Graduation_Thesis_XPUB_.pdf", + "title": "Attempting Diffraction", + "type": "project", + "url": "https://project.xpub.nl/attempting-diffraction/" + }, + { + "student": "Supisara Burapachaisri", + "thesis": "https://media.xpub.nl/2023/thesis/supi_Cross-Making.pdf", + "title": "Dear (Cross) Maker,", + "type": "project", + "url": "https://project.xpub.nl/dear-cross-maker/" + }, + { + "student": "Kendal Beynon", + "thesis": "https://project.xpub.nl/virtualgarden/XPUB-Cyberhotels-KB.pdf", + "title": "Virtual Gardens", + "type": "project", + "url": "https://project.xpub.nl/virtualgarden/" + }, + { + "student": "Anna Sandri", + "thesis": "https://project.xpub.nl/when-you-might-go-astray/pdf/wymga.pdf", + "title": "When you might go astray", + "type": "project", + "url": "https://project.xpub.nl/when-you-might-go-astray/" + }, + { + "student": "Mika Motskobili", + "thesis": "https://project.xpub.nl/lever_burns/pdf/Ezn_LeverBurns.pdf", + "title": "Lever Burns", + "type": "project", + "url": "https://project.xpub.nl/lever_burns/" + }, + { + "date": "2018-07-01", + "hasPart": [ + "https://project.xpub.nl/referendum-medialogs/", + "https://project.xpub.nl/unpublishing/", + "https://project.xpub.nl/unlearning-the-rules-of-collectivity/", + "https://project.xpub.nl/back-it-up/", + "https://project.xpub.nl/anomolous-faces/", + "https://project.xpub.nl/alt-reality-lexicon/" + ], + "image": "https://project.xpub.nl/img/xpub_logo_2018.svg", + "title": "Ex, XPUB", + "type": "gradshow", + "url": "https://project.xpub.nl/index.rdfa.html#Ex,-XPUB" + }, + { + "student": "Francesco Luzzana, km0, sumo, tofu, etc.", + "thesis": "https://media.xpub.nl/2023/thesis/Hello%20Worlding%20-%20kamo%20-%20THE%20REAL%20ONE.pdf", + "title": "Hello Worlding", + "type": "project", + "url": "https://project.xpub.nl/hello-worlding/" + }, + { + "student": "Karina Dukalska", + "thesis": "https://project.xpub.nl/back-it-up/pdf/Publication-Karina_ABC_thesis.pdf", + "title": "Back It Up", + "type": "project", + "url": "https://project.xpub.nl/back-it-up/" + }, + { + "student": "Artemis Gryllaki", + "thesis": "https://project.xpub.nl/syster-papyri-magicae/pdf/ArtemisGryllaki-Thesis.pdf", + "title": "Syster Papyri Magicae", + "type": "project", + "url": "https://project.xpub.nl/syster-papyri-magicae/" + }, + { + "student": "Pleun Gremmen", + "thesis": "https://project.xpub.nl/alt-reality-lexicon/pdf/Publication-AltRealityLexBook.pdf", + "title": "Alt Reality Lexicon", + "type": "project", + "url": "https://project.xpub.nl/alt-reality-lexicon/" + }, + { + "date": "2019-07-01", + "hasPart": [ + "https://project.xpub.nl/is-it-time-to-eat-or-is-there-no-more-time-to-eat/", + "https://project.xpub.nl/index.html/", + "https://project.xpub.nl/poetic-software/", + "https://project.xpub.nl/lets-amplify-unspeakable-things/", + "https://project.xpub.nl/instant-warnet/", + "https://project.xpub.nl/eigengrau/" + ], + "image": "https://project.xpub.nl/img/xpub_logo_2019.png", + "title": "UPSETTING SETTINGS", + "type": "gradshow", + "url": "https://project.xpub.nl/index.rdfa.html#UPSETTING-SETTINGS" + }, + { + "date": "2022-06-01", + "hasPart": [ + "https://project.xpub.nl/RuralComputing/", + "https://project.xpub.nl/virtualgarden/", + "https://project.xpub.nl/notitleyet/", + "https://project.xpub.nl/868-mhz/", + "https://project.xpub.nl/usx/", + "https://project.xpub.nl/habitat/", + "https://project.xpub.nl/generatingstories/", + "https://project.xpub.nl/frabjousish/", + "https://project.xpub.nl/sobremesa/", + "https://project.xpub.nl/attempting-diffraction/" + ], + "image": "https://git.xpub.nl/XPUB/project.xpub.nl/raw/branch/master/img/walkie-talkie-ref.png", + "title": "Walkie-Talkie", + "type": "gradshow", + "url": "https://project.xpub.nl/index.rdfa.html#Walkie-Talkie" + }, + { + "student": "Natasha Berting", + "thesis": "https://project.xpub.nl/instant-warnet/pdf/Berting-Making-Silences-On-Social-Media.pdf", + "title": "Instant Warnet", + "type": "project", + "url": "https://project.xpub.nl/instant-warnet/" + }, + { + "student": "mitsitron [mitsa chaida michelakou]", + "thesis": "https://project.xpub.nl/thanks_for_listening/thesis_mitsitron.pdf", + "title": "Thanks for listening", + "type": "project", + "url": "https://project.xpub.nl/thanks_for_listening/" + }, + { + "student": "Angeliki Diakrousi", + "thesis": "https://project.xpub.nl/lets-amplify-unspeakable-things/pdf/diakrousi-lets-amplify-unspeakable-things.pdf", + "title": "Let's Amplify Unspeakable Things", + "type": "project", + "url": "https://project.xpub.nl/lets-amplify-unspeakable-things/" + }, + { + "student": "Miriam Schöb", + "thesis": "https://project.xpub.nl/howtobeasocialjusticewarrior/img/Masterthesis_MiriamSch%C3%B6b_TheLeftCanMeme.pdf", + "title": "How to be a social justice warrior", + "type": "project", + "url": "https://project.xpub.nl/howtobeasocialjusticewarrior/" + }, + { + "student": "Mark van den Heuvel", + "thesis": "https://project.xpub.nl/low-tech-chronicles/", + "title": "Low-Tech Chronicles", + "type": "project", + "url": "https://project.xpub.nl/low-tech-chronicles/" + }, + { + "student": "Floor van Meeuwen", + "thesis": "https://project.xpub.nl/sobremesa/pdf/thesis.pdf", + "title": "Sobremesa", + "type": "project", + "url": "https://project.xpub.nl/sobremesa/" + }, + { + "student": "Federico Poni", + "thesis": "https://project.xpub.nl/RuralComputing/pdf/thesis.pdf", + "title": "Concert, Computation, Conviviality", + "type": "project", + "url": "https://project.xpub.nl/RuralComputing/" + }, + { + "student": "Tisa Neža Herlec", + "thesis": "https://project.xpub.nl/the-constitution/pdf/Tisa-Ne%C5%BEa-Herlec_The-Constitution.pdf", + "title": "The Constitution", + "type": "project", + "url": "https://project.xpub.nl/the-constitution/" + }, + { + "student": "Ioana Tomici", + "thesis": "https://project.xpub.nl/terrafying-hear-say/pdf/thesis.pdf", + "title": "Terrafying Hear/Say", + "type": "project", + "url": "https://project.xpub.nl/terrafying-hear-say/" + }, + { + "student": "Clara Noseda", + "thesis": "https://project.xpub.nl/desire_revolution/pdf/A%20SAILORS%20GUIDE%20TO%20EARTH_Clara%20Noseda.pdf", + "title": "CONSIDER DISASTER, DESIRE REVOLUTION: A repository for astropolitical research", + "type": "project", + "url": "https://project.xpub.nl/desire_revolution/" + }, + { + "student": "Clara Gradel", + "thesis": "https://project.xpub.nl/generatingstories/thesis.pdf", + "title": "a and a", + "type": "project", + "url": "https://project.xpub.nl/generatingstories/" + }, + { + "student": "Martin Foucaut", + "thesis": "https://project.xpub.nl/notitleyet/pdf/Martin_Foucaut_Graduation_Thesis_XPUB_2022.pdf", + "title": "Count On Me", + "type": "project", + "url": "https://project.xpub.nl/notitleyet/" + } + ] +} diff --git a/index.rdfa.html b/index.rdfa.html index 524c743..e31601a 100644 --- a/index.rdfa.html +++ b/index.rdfa.html @@ -1,4 +1,6 @@ - + + + XPUB Grad diff --git a/scripts/check_index_json.py b/scripts/check_index_json.py new file mode 100644 index 0000000..136e66e --- /dev/null +++ b/scripts/check_index_json.py @@ -0,0 +1,15 @@ +import json + +with open("index.json") as fin: + data = json.load(fin) + +projects, shows = 0, 0 + +for item in data["@graph"]: + if item['type'] == "project": + projects += 1 + elif item['type'] == "gradshow": + shows +=1 + else: + raise Exception("unknown type") +print (f"{shows} shows, {projects} projects") \ No newline at end of file diff --git a/scripts/extract_rdf.py b/scripts/extract_rdf.py index 4ab1d6b..d8d1a76 100644 --- a/scripts/extract_rdf.py +++ b/scripts/extract_rdf.py @@ -14,22 +14,22 @@ g = Graph() g.parse("https://project.xpub.nl/index.rdfa.html", format="rdfa") -context = { - "@context": { - "@vocab": "http://xpub.nl/terms/", - "@language": "en", - "xpub": "http://xpub.nl/terms/", - "xpubproject": "https://project.xpub.nl/", - "dc": "http://purl.org/dc/terms/", - "student": { "@id": "xpub:student", "@lang": "en" }, - "project": { "@id": "xpub:project", "@type": "@id" }, - "thesis": { "@id": "xpub:thesis", "@type": "@id" }, - "image": {"@id": "dc:image", "@type": "@id" }, - "title": "dc:title", - "date": {"@id": "dc:date", "@type": "http://www.w3.org/2001/XMLSchema#date"}, - "hasPart": {"@id": "dc:hasPart", "@type": "@id"}, - "url": {"@id": "@id", "@type": "@id"}, - "type": {"@id": "@type", "@type": "@id"} - } -} -print (g.serialize(format="json-ld", context=context, auto_compact=True)) +# context = { +# "@context": { +# "@vocab": "http://xpub.nl/terms/", +# "@language": "en", +# "xpub": "http://xpub.nl/terms/", +# "xpubproject": "https://project.xpub.nl/", +# "dc": "http://purl.org/dc/terms/", +# "student": { "@id": "xpub:student", "@lang": "en" }, +# "project": { "@id": "xpub:project", "@type": "@id" }, +# "thesis": { "@id": "xpub:thesis", "@type": "@id" }, +# "image": {"@id": "dc:image", "@type": "@id" }, +# "title": "dc:title", +# "date": {"@id": "dc:date", "@type": "http://www.w3.org/2001/XMLSchema#date"}, +# "hasPart": {"@id": "dc:hasPart", "@type": "@id"}, +# "url": {"@id": "@id", "@type": "@id"}, +# "type": {"@id": "@type", "@type": "@id"} +# } +# } +print (g.serialize(format="json-ld", context="https://xpub.nl/contexts/projects.json", auto_compact=True))