Publikationen
Alle Artikel sollten hier direkt zum Download bereit stehen (im Sinne verstreuter, dezentraler Archivierung von Wissenschaftsdaten) oder alternativ beispielsweise über mein Google Scholar profile als Open Access Publikationen zugänglich sein. Bitte melden, falls dies nicht funktioniert.
journal_data = FileAttachment("publications/journal_articles.json").json()
preprints_data = FileAttachment("publications/preprints.json").json()
chapters_data = FileAttachment("publications/book_chapters.json").json()
reports_data = FileAttachment("publications/reports.json").json()
datasets_data = FileAttachment("publications/datasets.json").json()
// Combine all publications for counting
allPublications = [
...journal_data.map(p => ({...p, pubType: 'journal'})),
...preprints_data.map(p => ({...p, pubType: 'preprint'})),
...chapters_data.map(p => ({...p, pubType: 'chapter'})),
...reports_data.map(p => ({...p, pubType: 'report'})),
...datasets_data.map(p => ({...p, pubType: 'dataset'}))
]
// Filter function
filterPublications = (pubs, query) => {
if (!query || query.trim() === '') return pubs;
const q = query.toLowerCase().trim();
return pubs.filter(pub => {
const title = (pub.title || '').toLowerCase();
const abstract = (pub.abstract || '').toLowerCase();
return title.includes(q) || abstract.includes(q);
});
}
// Reusable function to render a publication
renderPublication = (pub, index, type) => {
const title = pub.title;
const authors = pub.authors;
const year = pub.year;
// Build main detail line with emoji and specific venue fields
let venueInfo = '';
let emoji = '';
if (pub.journal) {
emoji = '📄';
venueInfo = pub.journal;
} else if (pub.conference) {
emoji = '🏛️';
venueInfo = pub.conference;
} else if (pub.book_title) {
emoji = '📚';
venueInfo = pub.book_title;
} else if (pub.preprint_server) {
emoji = '📝';
venueInfo = pub.preprint_server;
} else if (pub.repository) {
emoji = '💾';
venueInfo = pub.repository;
}
let mainDetail = venueInfo;
let details = [];
if (pub.volume) details.push(`Vol. ${pub.volume}`);
if (pub.issue) details.push(pub.volume ? `(${pub.issue})` : `Issue ${pub.issue}`);
if (pub.pages) details.push(`pp. ${pub.pages}`);
if (pub.article) details.push(`Art. ${pub.article}`);
if (pub.date) details.push(pub.date);
if (pub.editors) details.push(`Ed. by ${pub.editors}`);
if (pub.edition) details.push(pub.edition);
if (pub.publisher && !mainDetail.includes(pub.publisher)) details.push(pub.publisher);
if (details.length > 0) {
mainDetail += ` - ${details.join(', ')}`;
}
// Build links
let links = "";
if (pub.pdf) {
const linkText = type === 'dataset' ? '⬇️ Download' : '⬇️ Download paper';
links += `<a href="${pub.pdf}" class="download-link">${linkText}</a>`;
}
if (pub.doi) {
const doi_url = pub.doi.startsWith('http') ? pub.doi : `https://doi.org/${pub.doi}`;
links += `<a href="${doi_url}" class="doi-link" target="_blank"><img src="assets/icons/doi_logo.svg" class="doi-icon" alt="DOI">${doi_url}</a>`;
}
if (pub.replication_data) {
const replicationIcon = pub.zenodo
? `<img src="assets/icons/zenodo_logo.svg" class="zenodo-icon" alt="Zenodo">`
: `📊`;
links += `<a href="${pub.replication_data}" class="repo-link" target="_blank">${replicationIcon} Replication Materials: ${pub.replication_data}</a>`;
}
if (pub.url) {
links += `<a href="${pub.url}" target="_blank">🔗 Link</a>`;
}
// Build abstract section
const abstractId = `abstract-${type}-${index}`;
let abstractSection = "";
if (pub.abstract) {
abstractSection = `
<button class="abstract-toggle" onclick="toggleAbstract('${abstractId}')">Show Abstract</button>
<div id="${abstractId}" class="abstract-content">
${pub.abstract}
</div>
`;
}
return `
<div class="publication-item">
<div class="publication-title">${title}</div>
<div class="publication-authors">${authors} (${year})</div>
<div class="publication-venue">${emoji ? `<span class="venue-emoji">${emoji}</span> ` : ''}<span class="venue-text">${mainDetail}</span></div>
${links ? `<div class="publication-links">${links}</div>` : ''}
${abstractSection}
</div>
`;
}// Toggle abstract function
window.toggleAbstract = function(id) {
const element = document.getElementById(id);
const button = element.previousElementSibling;
if (element.classList.contains('show')) {
element.classList.remove('show');
button.textContent = 'Show Abstract';
} else {
element.classList.add('show');
button.textContent = 'Hide Abstract';
}
}filteredJournalData = filterPublications(journal_data, searchQuery).sort((a, b) => b.year - a.year)
filteredPreprints = filterPublications(preprints_data, searchQuery).sort((a, b) => b.year - a.year)
filteredChapters = filterPublications(chapters_data, searchQuery).sort((a, b) => b.year - a.year)
filteredReports = filterPublications(reports_data, searchQuery).sort((a, b) => b.year - a.year)
filteredDatasets = filterPublications(datasets_data, searchQuery).sort((a, b) => b.year - a.year)
// Calculate totals
totalFiltered = filteredJournalData.length + filteredPreprints.length +
filteredChapters.length + filteredReports.length + filteredDatasets.lengthhtml`${searchQuery && searchQuery.trim() !== '' ? `
<div class="search-results-summary">
<div>Showing ${totalFiltered} of ${allPublications.length} publications</div>
<div class="search-results-breakdown">${
(() => {
const breakdown = [];
if (filteredJournalData.length > 0) breakdown.push(`${filteredJournalData.length} journal article${filteredJournalData.length !== 1 ? 's' : ''}`);
if (filteredPreprints.length > 0) breakdown.push(`${filteredPreprints.length} preprint${filteredPreprints.length !== 1 ? 's' : ''}`);
if (filteredChapters.length > 0) breakdown.push(`${filteredChapters.length} book chapter${filteredChapters.length !== 1 ? 's' : ''}`);
if (filteredReports.length > 0) breakdown.push(`${filteredReports.length} report${filteredReports.length !== 1 ? 's' : ''}`);
if (filteredDatasets.length > 0) breakdown.push(`${filteredDatasets.length} dataset${filteredDatasets.length !== 1 ? 's' : ''}`);
return breakdown.length > 0 ? breakdown.join(', ') : 'No results';
})()
}</div>
</div>
` : ''}`Wissenschaftliche Artikel (peer-reviewed)
Preprints (noch nicht peer-reviewed)
Buchkapitel
Berichte
Datensätze
Mehr
Neben wissenschaftlichen Publikationen, gibt es zu nachhaltiger Digitalisierung hier einen Kurz-Beitrag von mir, ein 3-minütiges Übersichtsvideo, hier einen kurzen Talk zu Digitalisierung und Klimaschutz in Unternehmen oder aber auch diese Podcast-Folge zu “Digitalisierung: Ökokiller oder Hoffnungsträger?”.