Skip to content
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
Binary file modified .talk-assets/slides.tar.gz
Binary file not shown.
27 changes: 25 additions & 2 deletions public/recent_work.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"generatedAt": "2026-04-27T13:19:51.069Z",
"generatedAt": "2026-05-01T13:25:24.897Z",
"baseIri": "https://eliascrum.github.io/eliascrum/",
"datasetUrl": "https://eliascrum.github.io/eliascrum/recent_work.json",
"sparqlGraphUrl": "https://eliascrum.github.io/eliascrum/recent_work.ttl",
"totalItems": 37,
"totalItems": 38,
"recentWork": [
{
"id": "Publication:solid-cockpit-eswc-2026-demo",
Expand All @@ -23,6 +23,29 @@
"url": "https://eliascrum.github.io/eliascrum/publications/solid-cockpit-eswc-2026-demo/paper",
"itemUrl": "https://eliascrum.github.io/eliascrum/publications/solid-cockpit-eswc-2026-demo/paper"
},
{
"id": "Talk:sosy2026",
"type": "Talk",
"title": "Solid Cockpit",
"tags": [
"Symposium",
"Solid Symposium",
"Solid",
"Semantic Web",
"Data Privacy",
"Semantic Querying",
"Semantic Web Researchers",
"Computer Scientists",
"Short",
"Small"
],
"slug": "sosy2026",
"dateIso": "2026-04-30",
"summary": "Demonstration of Solid Cockpit as a unified web interface for Solid Pods, integrating data management, privacy and access-control editing, notification support, and in-browser SPARQL data discovery.",
"url": "https://eliascrum.github.io/eliascrum/talks/sosy2026",
"sourceUrl": "https://eliascrum.github.io/eliascrum/talks/slides/sosy2026.pdf",
"itemUrl": "https://eliascrum.github.io/eliascrum/talks/sosy2026"
},
{
"id": "Talk:edc-knows-26",
"type": "Talk",
Expand Down
98 changes: 60 additions & 38 deletions public/recent_work.ttl

Large diffs are not rendered by default.

Binary file modified public/talks/posters/E(i)xchange24_Poster_EDC.pdf
Binary file not shown.
Binary file modified public/talks/posters/EDC_Poster_ISWS2024(award_winner).pdf
Binary file not shown.
Binary file modified public/talks/posters/ESWC_24_Poster_EDC.pdf
Binary file not shown.
Binary file modified public/talks/posters/SWAT4HCLS_24_poster_EDC.pdf
Binary file not shown.
Binary file modified public/talks/posters/swat4hcls_2025.pdf
Binary file not shown.
Binary file modified public/talks/posters/swat4hcls_2026.pdf
Binary file not shown.
Binary file modified public/talks/slides/18m-vito-internal-jury.pdf
Binary file not shown.
Binary file modified public/talks/slides/dph-day-talk.pdf
Binary file not shown.
Binary file modified public/talks/slides/edc-knows-26.pdf
Binary file not shown.
Binary file modified public/talks/slides/eswc-phdsymp-pangquin.pdf
Binary file not shown.
Binary file modified public/talks/slides/fwo-interview.pdf
Binary file not shown.
Binary file modified public/talks/slides/isws-group-project-presentation.pdf
Binary file not shown.
Binary file modified public/talks/slides/sib-researchstay-reflection.pdf
Binary file not shown.
Binary file modified public/talks/slides/sib-vital-it-talk.pdf
Binary file not shown.
Binary file modified public/talks/slides/solid-intro-triple-consortium.pdf
Binary file not shown.
Binary file modified public/talks/slides/solidsymp-genomepods.pdf
Binary file not shown.
Binary file added public/talks/slides/sosy2026.pdf
Binary file not shown.
Binary file modified public/talks/slides/sphn-pengquin-talk.pdf
Binary file not shown.
Binary file modified public/talks/slides/swissprot-talk.pdf
Binary file not shown.
Binary file modified public/talks/slides/ugent-genomics-talk.pdf
Binary file not shown.
72 changes: 72 additions & 0 deletions src/components/SlideDetail.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@
</div>
<div class="slide-actions">
<router-link to="/talks" class="action-btn btn-back">Back to Talks</router-link>
<a
v-if="slideEmbedUrl"
:href="slideEmbedUrl"
target="_blank"
rel="noopener noreferrer"
class="action-btn btn-external"
>
Open Google Slides
</a>
<a :href="slidePdfUrl" target="_blank" rel="noopener noreferrer" class="action-btn btn-pdf">
Open Slides PDF
</a>
Expand Down Expand Up @@ -73,7 +82,19 @@
<section id="talk-detail-slides" class="work-section">
<article class="slide-panel toc-anchor">
<h2>Slides</h2>
<div v-if="useEmbeddedSlides" class="slide-embed-shell">
<iframe
class="slide-embed-frame"
:src="slideEmbedUrl"
frameborder="0"
allowfullscreen="true"
mozallowfullscreen="true"
webkitallowfullscreen="true"
loading="lazy"
></iframe>
</div>
<div
v-else
ref="slideFrameShell"
class="slide-frame-shell"
>
Expand Down Expand Up @@ -308,6 +329,12 @@ export default defineComponent({
slidePdfUrl(): string {
return this.talk ? resolvePublicAssetPath(this.talk.slidePath) : "";
},
slideEmbedUrl(): string {
return this.talk?.slideEmbedUrl?.trim() ?? "";
},
useEmbeddedSlides(): boolean {
return Boolean(this.slideEmbedUrl);
},
slidePageInputStyle(): Record<string, string> {
const digitCount = String(Math.max(1, this.currentSlidePage)).length;
const widthCh = Math.min(4.4, Math.max(1.7, digitCount + 0.35));
Expand Down Expand Up @@ -345,6 +372,9 @@ export default defineComponent({
mounted() {
window.addEventListener("keydown", this.onSlideKeyboardNav);
this.$nextTick(() => {
if (this.useEmbeddedSlides) {
return;
}
this.initSlideResizeObserver();
this.queueSlideRender();
});
Expand All @@ -355,9 +385,30 @@ export default defineComponent({
handler(nextUrl: string) {
this.currentSlidePage = 1;
this.maxSlidePage = null;
if (this.useEmbeddedSlides) {
this.isPdfLoading = false;
this.isPdfRenderError = false;
this.pdfRenderErrorMessage = "";
return;
}
void this.loadSlidePdfDocument(nextUrl);
},
},
useEmbeddedSlides: {
immediate: true,
handler(useEmbedded: boolean) {
if (useEmbedded) {
this.isPdfLoading = false;
this.isPdfRenderError = false;
this.pdfRenderErrorMessage = "";
return;
}
this.$nextTick(() => {
this.initSlideResizeObserver();
this.queueSlideRender();
});
},
},
"$route.params.slug"() {
this.currentSlidePage = 1;
},
Expand Down Expand Up @@ -1163,6 +1214,21 @@ export default defineComponent({
resize: vertical;
}

.slide-embed-shell {
width: 100%;
border: 1px solid var(--surface-outline);
border-radius: 10px;
overflow: hidden;
background: #0f0f0f;
}

.slide-embed-frame {
width: 100%;
height: clamp(560px, 80vh, 980px);
display: block;
border: 0;
}

.slide-canvas-shell {
width: 100%;
flex: 1 1 auto;
Expand Down Expand Up @@ -1290,6 +1356,12 @@ export default defineComponent({
resize: none;
}

.slide-embed-frame {
min-height: 56vh;
height: 62vh;
max-height: 78vh;
}

.slide-canvas-shell {
min-height: 0;
}
Expand Down
2 changes: 1 addition & 1 deletion src/data/softwareReleases.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export interface SoftwareReleaseInfo {
publishedAt: string | null;
}

export const softwareReleaseLastUpdatedIso: string | null = "2026-04-27T13:19:50.824Z";
export const softwareReleaseLastUpdatedIso: string | null = "2026-05-01T13:25:24.646Z";

export const softwareReleasesBySoftwareId: Record<string, SoftwareReleaseInfo | null> = {
"genome-sharing-paper-webpage": null,
Expand Down
2 changes: 2 additions & 0 deletions src/data/talkCatalog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export interface TalkViewEntry extends TalkEntry {
displayDateIso: string;
displayDateLabel: string;
displayDateDetailedLabel: string;
slideEmbedUrl?: string;
summary: string;
abstract: string;
goal: string;
Expand Down Expand Up @@ -160,6 +161,7 @@ function hydrateTalkEntry(talk: TalkEntry): TalkViewEntry {
displayDateIso,
displayDateLabel,
displayDateDetailedLabel,
slideEmbedUrl: meta?.slideEmbedUrl,
summary,
abstract,
goal,
Expand Down
20 changes: 20 additions & 0 deletions src/data/talkMetadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ export interface TalkMetadata {
title?: string;
dateIso?: string; // YYYY-MM-DD
dateLabel?: string; // Optional display label, e.g. "April 2025"
slideEmbedUrl?: string;

// Required content used in the list/detail UIs and homepage update aggregation.
summary: string;
Expand Down Expand Up @@ -72,6 +73,25 @@ export const talkMetadataBySlug: Record<string, TalkMetadata> = {
venueTags: ["Internal Meeting", "KNoWS Day"],
topicTags: ["Semantic Web", "Clinical Genomics", "Knowledge Representation", "Data Privacy"],
},
"sosy2026": {
title: "Solid Cockpit",
dateIso: "2026-04-30",
slideEmbedUrl:
"https://docs.google.com/presentation/d/e/2PACX-1vSpl7vZPFJZhowI5LQCYgmOvjPNfESqYIHMaNdDlcJdYKvoS9PH-Fz-NWBVPwTbGmnpGbfciYG0SJDc/pubembed?start=false&loop=false&delayms=3000",
summary:
"Demonstration of Solid Cockpit as a unified web interface for Solid Pods, integrating data management, privacy and access-control editing, notification support, and in-browser SPARQL data discovery.",
abstract:
"Solid Pods provide decentralized, user-controlled data storage with fine-grained privacy controls, but practical usage still presents a steep learning curve for users unfamiliar with RDF and web-server concepts. This work introduces Solid Cockpit, a web-based interface designed to lower that barrier by bringing core Solid workflows into a single environment. The application supports uploading and organizing Pod data, modifying privacy and access permissions, and querying connected resources, while maintaining a fully client-side architecture through the Inrupt Solid-Client SDK. The system also incorporates linked-data privacy notification and SPARQL result-materialization specifications to improve workflow transparency and reusable query outcomes. Together, these capabilities position Solid Cockpit as a practical bridge between Solid’s decentralized architecture and everyday user interaction needs.",
goal:
"Show that a single, user-oriented interface can make decentralized Solid Pod workflows substantially more accessible without sacrificing privacy-aware controls or query capabilities.",
audienceExpertise:
"Semantic web and decentralized-data researchers evaluating practical user interfaces for privacy-aware Solid ecosystem workflows.",
audienceGroups: ["Semantic Web Researchers", "Computer Scientists"],
durationMinutes: 5,
audienceSizeApprox: 25,
venueTags: ["Symposium", "Solid Symposium"],
topicTags: ["Solid", "Semantic Web", "Data Privacy", "Semantic Querying"],
},
"sphn-pengquin-talk": {
title: "Swiss Public Health Network (SPHN)",
dateIso: "2025-04-29",
Expand Down
8 changes: 8 additions & 0 deletions src/data/talksData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ export interface PosterEntry {
}

export const talks: TalkEntry[] = [
{
slug: "sosy2026",
title: "SoSy2026",
sourceFile: "SoSy2026.pdf",
dateIso: "2026-04-30",
dateLabel: "30/04/2026",
slidePath: "/talks/slides/sosy2026.pdf",
},
{
slug: "edc-knows-26",
title: "EDC KNoWS 26",
Expand Down
Loading