Skip to content

Instantly share code, notes, and snippets.

@ntj
Created May 27, 2025 14:22
Show Gist options
  • Save ntj/d043c3d8e89fd66a90bd96a4993e7e35 to your computer and use it in GitHub Desktop.
Save ntj/d043c3d8e89fd66a90bd96a4993e7e35 to your computer and use it in GitHub Desktop.

1. Workshop Research Data Management

Motivation

  {{1}}

Fehlen technischer Expertise

history of writing

  {{2}}

Separierung durch Werkzeuge, Plattformen und Formate

islands

  {{3}}

OER hat Keine Sprache & Keine Zusammenarbeit

tower of babel

LiaScript?

!?YouTube: Industrial eLab

{{1}}
# Markdown Einkaufsliste

- `Teig`
- _Tomaten_ und _Käse_
- ~keine Salami~

```
Rezept

man nehme ...
```

Hello World!

--{{0}}--

!? Hello, my name is LiaScript, I am a Markdown-based language that has been specially developed to create educational materials. The advantage of Markdown is that it is already widely used, easy to write and read, and supported by many platforms. The biggest drawback, however, is that it is @burn(static as hell) and offers no interactivity.

 {{1-2}}
--{{1}}--

!? So my creators set out to rethink Markdown from the ground up...

... Once you free your mind about a concept of Harmony and of music being "correct" you can do whatever you want ...

-- Giorgio Moroder (inventor of disco music)

--{{2}}--

!? Actually, tables in Markdown are simple to create and, as mentioned, are quite @burn(static). However, a table can also represent a dataset that strives for its ideal visualization.

  {{2}}
Animal Weight in kg Lifespan (years) Mitogen
Mouse 0.028 02 95
Flying Squirrel 0.085 15 50
Brown Bat 0.020 30 10
Sheep 90 12 95
Human 68 70 10
--{{3}}--

!? Another tabular structure can produce a different visualization that can be fine-tuned by the creator. In total, I support 10 different types of visualizations.

  {{3}}
Seattle Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
0 40.7 41.5 43.6 46.6 51.4 56.0 60.5 61.2 57.0 50.1 44.1 39.6
2 40.2 40.7 42.7 45.3 50.0 54.4 58.5 59.2 55.4 49.2 43.5 39.3
4 39.7 40.0 41.9 44.4 48.9 53.2 57.0 57.7 54.2 48.6 43.1 38.9
6 39.6 39.5 41.3 44.2 49.5 54.2 57.8 57.4 53.6 48.2 42.8 38.7
8 39.6 39.9 42.9 47.1 52.7 57.3 61.3 61.1 56.7 49.5 43.1 38.7
10 41.3 42.7 46.4 50.7 56.4 60.9 65.2 65.4 60.9 52.8 45.5 40.4
12 43.8 46.0 49.5 53.8 59.6 64.3 69.4 69.8 65.1 56.0 47.8 42.6
14 45.1 47.7 51.3 55.9 61.9 66.9 72.6 73.2 67.7 57.8 48.8 43.6
16 44.5 47.5 51.4 55.9 62.3 67.5 73.9 74.3 68.2 57.4 47.8 42.6
18 42.6 44.7 48.7 53.8 60.3 65.9 72.3 72.2 64.6 53.9 46.0 41.2
20 42.0 43.3 46.4 50.2 56.0 61.4 66.9 66.6 60.7 52.3 45.2 40.7
22 41.4 42.5 45.0 48.3 53.5 58.2 63.2 63.5 58.7 51.1 44.5 40.1
--{{4}}--

!? What Markdown has always lacked was the embedding of multimedia content ...

--{{5}}--

!? I support audio content ...

 {{5-6}}

?a horse

--{{6}}--

!? I can handle video as well, and of course, I work on feature phones even if they are offline.

 {{6-7}}

!?LiaScript on Nokia

--{{7}}--

!? I can also try to embed other types of content that do not fall into either of the two categories

  {{7}}

??3D scan cathedral

--{{8}}--

!? And much, much more... We will soon show you how everything works.

  {{8}}
X: 1
M: 4/4
L: 1/8
K: Emin
|:D2|"Em"EBBA B2 EB|~B2 AB dBAG|"D"FDAD BDAD|FDAD dAFD|
"Em"EBBA B2 EB|B2 AB defg|"D"afe^c dBAF|"Em"DEFD E2:|

@ABCJS.eval

--{{9}}--

!? You might have noticed that this document is being used like a PowerPoint presentation. However, our intention was to utilize LiaScript in various contexts. With LiaScript, you can create presentations, enable self-study through browser-based text-to-speech output, or read the content as a simple yet interactive textbook, without animations.

LiaScript meets FDM & OER

{{0-1}} Suchergebnisse zu "LiaScript Forschungsdatenmanagement"

{{1-2}}

Autor_innen Titel & Link Hinweise
Tim Bender, Hessische Forschungsdateninfrastrukturen (HeFDI) HeFDI-FDM-Selbstlerneinheit https://code.fbi.h-da.de/fbmd1715/hefdi-selbstlerneinheit Überzeugende Motivation anhand einer FDM-Foto-Lovestory
Antje Ahrens, Nicola Seitz, Henrik Wagner, C3L – Center für lebenslanges Lernen, Carl von Ossietzky Universität Oldenburg Universität Oldenburg, Research Data Management in the Energy Sector https://github.com/NFDI4Energy/EFZN_rdm Im August 2023 war dieser Kurs "Twillo edu-sharing Perle des Monats", Einbettung von H5P Elementen
Rose Hartmann, Joy Payton, ARCUS Projekt, Children's Hospital of Philadelphia Data Education Courses https://github.com/arcus/education_modules Grandioses Frontend für die Verwaltung der LiaScript-FDM-Kurse

2. Crashkurs Forschungs-Daten-Management

1. Forschungsdaten (FD)

... sind alle Daten, die während eines wissenschaftlichen Forschungsprozesses entstehen, verarbeitet werden oder dessen Ergebnis sind.

Aufgrund der Fächervielfalt sind FD sehr heterogen. Das können z. B. sein: Messdaten, Laborwerte, audiovisuelle Informationen,

Texte, Surveydaten, Objekte aus Sammlungen oder Proben, methodische Testverfahren (Fragebögen, Interviews), Transkripte, Beobachtungen, Software, Code, Simulationen.

2 Forschungsdaten-Lebenszyklus

... ist eine schematische Darstellung der Phasen, die Daten in einem Forschungsprozess idealerweise durchlaufen. Hieraus ergeben sich die Aufgaben im Forschungsdatenmanagement (FDM) für Forschende und Einrichtungen der wissenschaftlichen Infrastruktur. Die Phasen des Forschungsdatenlebenszyklus bilden zudem die Grundlage für das Aufstellen eines Datenmanagementplans sowie für die Kostenkalkulation im Gesamtprojekt.

                        .---------------------.
              .-------> |     📝  Erhebung    |▓--------.
             /          '---------------------+▓         \
            /             ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓          \
           /                                               V
 .---------------------.                            .---------------------.
 |   ♻️  Nachnutzung   |▓                           |   ⚙️  Verarbeitung  |▓
 '---------------------+▓                           '---------------------+▓
   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                             ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
          A                                                 |
          |                     D A T E N                   |
          |                                                 |
          |                                                 V
 .---------------------.                            .---------------------.
 | 📢 Veröffentlichung |▓                           |     🔍  Analyse     |▓
 '---------------------+▓                           '---------------------+▓
   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                             ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
            A                                             /
             \          .---------------------.          /
              '-------- |  🗄️   Archivierung  |▓ <------'
                        '---------------------+▓
                          ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
ASCII-Art
  1. Erhebung

  2. Verarbeitung

  3. Analyse

    • Interpretation der Daten
    • Präsentation der Forschungsergebnisse
    • Publikationsprozess
    • Vorbereitung für Datenerhalt (Metadaten)
    • Beachten der FAIR-Prinzipien
  4. Archivierung ...

  5. Veröffentlichung ...

  6. Nachnutzung ...

3 FAIR Prinzipien

(F)indable (A)ccessible (I)nteroperable (R)eusable

*The original idea of the web was that it should be a collaborative space where you can communicate through sharing information.

-- Tim Berners-Lee

3.1 Verweise

https://zenodo.org

Weitere Informationen findet ihr hier

3.2 Bilder !

Fair Data Prinzipien

lorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubablorem ipsujm blublbubab

3.3 Audio ? & Video !?

?Audio: NFDI podcast - For a FAIR Data Future !?Video: An introduction to FAIR data !?YouTube FairData

3.4 Alles zu oEmbed-den ??

??sketchfab

3D Scan - Familienschacht in Freiberg

NFDI podcast - For a FAIR Data Future

4 Forschungsdaten-Management

... umfasst alle Aktivitäten, die mit

  • Aufbereitung,

  • Speicherung,

  • Archivierung und

  • Veröffentlichung von FD verbunden sind.

      9 |                                       (* dots)
        |rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr      (r obere Grenze)
      y |                              *
      - |
      a |                    *
      x |
      i |          *
      s |
        |*
      0 +------------------------------------
        0            x-axis                 360
    
    x dots rot
    0 0 22
    10 2 23
    20 4 23
    30 6 44

    4.1 Mehr Daten

Animal weight in kg Lifespan years Mitogen
Mouse 0.028 2 95
Flying squirrel 0.085 15 50
Brown bat 0.020 30 10
Sheep 90 12 95
Human 68 70 10
Music-Style Classic Country Reggae Hip-Hop Hard-Rock Samba
1994 50 50 100 200 350 250
2014 20 30 100 220 400 230
demo 2034 5 12 98 293 345 32
Seattle Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
0 40.7 41.5 43.6 46.6 51.4 56.0 60.5 61.2 57.0 50.1 44.1 39.6
2 40.2 40.7 42.7 45.3 50.0 54.4 58.5 59.2 55.4 49.2 43.5 39.3
4 39.7 40.0 41.9 44.4 48.9 53.2 57.0 57.7 54.2 48.6 43.1 38.9
6 39.6 39.5 41.3 44.2 49.5 54.2 57.8 57.4 53.6 48.2 42.8 38.7
8 39.6 39.9 42.9 47.1 52.7 57.3 61.3 61.1 56.7 49.5 43.1 38.7
10 41.3 42.7 46.4 50.7 56.4 60.9 65.2 65.4 60.9 52.8 45.5 40.4
12 43.8 46.0 49.5 53.8 59.6 64.3 69.4 69.8 65.1 56.0 47.8 42.6
14 45.1 47.7 51.3 55.9 61.9 66.9 72.6 73.2 67.7 57.8 48.8 43.6
16 44.5 47.5 51.4 55.9 62.3 67.5 73.9 74.3 68.2 57.4 47.8 42.6
18 42.6 44.7 48.7 53.8 60.3 65.9 72.3 72.2 64.6 53.9 46.0 41.2
20 42.0 43.3 46.4 50.2 56.0 61.4 66.9 66.6 60.7 52.3 45.2 40.7
22 41.4 42.5 45.0 48.3 53.5 58.2 63.2 63.5 58.7 51.1 44.5 40.1

Mehr Informatione zu Tabellen: https://liascript.github.io/course/?https://raw.githubusercontent.com/liaScript/docs/master/README.md#fun-with-tables

5 Forschungsdatenpolicies?

  • habe ich gemacht
  • noch offen

{{|>}} Welches [[Akronym ]] beschreibt im Forschungsdatenmanagement die Prinzipien, dass Daten auffindbar, zugänglich, interoperabel und wiederverwendbar sein sollen?

[[FAIR]] [[?]] Es ist ein Acronym und muss groß geschrieben werden. [[?]] Es beginnt mit F

<script> const x = "@input".toLowerCase() x == "fair" </script>

Welche der Beispiele für Dateinamen auf folgen einer guten Benennungskonvention und warum?

  • [( )] Olga_170413_probe17k
  • [( )] Naturepaper karl britta james fertig!
  • [( )] Naturepaper+karl+britta+james &nal
  • [( )] Naturepaper+karl+britta+james fertig! überarbeitet
  • [(X)] Kristall_765_spektr_20161203
  • [( )] Nature_karlbrittajames_endendversion
  • [( )] 28q8QGlHKwrRw.pdf
  • [( )] Tagung_Digitale_Wissenschaft.pdf

Begründung:

  • Keine Sonderzeichen
  • Sortierung nach: Bezeichnung, ID-Nummer, Datum
  • Spektr ist vermutlich das Experiment
  • Datum ist eindeutig zuzuordnen

Welche folgenden Punkte gehören typischerweise zu den Inhalten einer Forschungsdatenmanagement-Policy?

  • [[X]] Standardisierte Metadaten- und Dateiformate
  • [[ ]] Finanzierungs- und Budgetierungsrichtlinien für Projekte
  • [[x]] Regeln zur Datensicherung und Versionierung
  • [[ ]] Vorgaben zur Veröffentlichung von Forschungsergebnissen in Fachzeitschriften
  • [[x]] Aufbewahrungsfristen und Löschkonzepte

6 Datendokumentation (& Metadaten)

--{{1}}-- Eine Markdown-Datei ist eine menschenlesbare Textdatei, die einen Datensatz/einen Programmcode beschreibt, dient dessen Interpretation.

{{1-2}}

# Projektname

**Kurzbeschreibung:** Eine kurze Zusammenfassung des Forschungsprojekts und seiner Ziele.

## 1. Überblick

Beschreibe den Hintergrund und die Hauptfragestellung deines Projekts.

## 2. Datensatzbeschreibung

- **Daten-Typen:** (z.B. numerisch, qualitativ, Bilddaten)
- **Erhebungszeitraum:** (z.B. Januar 2020 – März 2021)
- **Geographische Abdeckung:** (Falls relevant)
- **Stichprobe:** (z.B. Anzahl Beobachtungen, Probanden)

## 3. Verzeichnisstruktur

```bash
.
├── data/
│   ├── raw/           # Unveränderte Originaldaten
│   ├── processed/     # Aufbereitete Daten
│   └── metadata/      # Metadaten-Dateien
├── docs/              # Begleitdokumentation
├── scripts/           # Analyse-Skripte
├── results/           # Ergebnisse (Tabellen, Grafiken)
└── README.md          # Diese Datei
```

## 4. Metadaten und Datenstandard

...

## Kontakt

...

Metadaten sind strukturierte Informationen, die den Inhalt, die Struktur und die Qualität von Daten beschreiben. Sie sind wichtig für die Auffindbarkeit, Zugänglichkeit und Wiederverwendbarkeit von Daten.

{{2-3}}

<?xml version="1.0" encoding="UTF-8"?>
<SimpleDarwinRecordSet
    xmlns="http://rs.tdwg.org/dwc/xsd/simpledarwincore/"
    xmlns:dc="http://purl.org/dc/terms/"
    xmlns:dwc="http://rs.tdwg.org/dwc/terms/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://rs.tdwg.org/dwc/xsd/simpledarwincore/ http://rs.tdwg.org/dwc/xsd/tdwg_dwc_simple.xsd">
    <SimpleDarwinRecord>
        <dc:modified>2009-02-12T12:43:31</dc:modified>
        <dc:language>en</dc:language>
        <dwc:basisOfRecord>Taxon</dwc:basisOfRecord>
        <dwc:scientificName>Ctenomys sociabilis</dwc:scientificName>
        <dwc:acceptedNameUsage>Ctenomys sociabilis Pearson and Christie, 1985</dwc:acceptedNameUsage>
        ...
    </SimpleDarwinRecord>
</SimpleDarwinRecordSet>

Persistent Identifier (PID) sind eindeutige, dauerhafte Identifikatoren, die zur eindeutigen Identifizierung von digitalen Objekten verwendet werden. Sie sind wichtig für die Auffindbarkeit und den langfristigen Zugang zu Daten.

{{3}}


Beispiele für PIDs sind:

  • DOI (Digital Object Identifier)
  • ARK (Archival Resource Key)
  • ORCID (Open Researcher and Contributor ID)
  • ISBN (International Standard Book Number)
  • ...

7 Rekapitulation Fair Data Prinzipien

ℹ️ Die FAIR Prinzipien sind eine international anerkannte, unverbindliche Richtlinie der Datendokumentation und -veröffentlichung.

Sie helfen, Forschungsdaten entlang ihres Lebenszyklus so zu organisieren, zu beschreiben, zu speichern, zu archivieren und zu veröffentlichen, dass diese sowohl von Menschen als auch von Maschinen gelesen und interpretiert werden können.

Die FAIR Prinzipien dienen damit in erster Linie dem nachhaltigen Datenerhalt und der -nachnutzung.

<style> .flip-card { background-color: transparent; width: 300px; height: 200px; perspective: 1000px; cursor: pointer; margin: 20px auto; } .flip-card-inner { position: relative; width: 100%; height: 100%; text-align: center; transition: transform 0.6s; transform-style: preserve-3d; } .flip-card.flipped .flip-card-inner { transform: rotateY(180deg); } .flip-card-front, .flip-card-back { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; border: 1px solid #ccc; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-family: sans-serif; padding: 1em; } .flip-card-front { background-color: #f9f9f9; } .flip-card-front p { padding: 1em; } .flip-card-back { background-color: #e1efef; transform: rotateY(180deg); display: block; } #flip-card-container { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; } </style>

Was bedeutet "Findable"?

Findable

Auffinden von Daten und deren Metadaten, menschen- und maschinenlesbar

Was bedeutet "Accessible"?

Accessible

Daten und Metadaten mittels Standard-Kommunikationsprotokollen abrufbar, herunterladbar oder lokal nutzbar

Was bedeutet "Interoperable"?

Interoperable

(teil)automatisierter Austausch, Interpretation und Kombination von Daten

Was bedeutet "Reusable"?

Reusable

Nachnutzung von Daten unter verständlichen Bedingungen

3. Datenanalyse mit ...

“Any application that can be written in JavaScript, will eventually be written in JavaScript.”

-- Atwood's Law

Erweiterungen / Templates

Titanic-Datensatz

@CSV

Survival of the richest

... am Beispiel einer PyScript Realisierung

Quelle des Moduls: https://github/LiaTemplates/PyScript

import: https://raw.githubusercontent.com/liaTemplates/PyScript/main/README.md

import pyodide.http
import pandas as pd
from io import StringIO

async def fetch_data(url):
    response = await pyodide.http.pyfetch(url)  # Daten abrufen
    csv_data = await response.string()  # Inhalt als String laden
    df = pd.read_csv(StringIO(csv_data))  # In DataFrame umwandeln
    return df

# Funktion direkt aufrufen mit `await` (NICHT `asyncio.run()`)
url = "https://zenodo.org/api/records/15424433/files/titanic-dataset.csv/content"
Titanic = await fetch_data(url)

# Ausgabe
Titanic

import matplotlib.pyplot as plt

# Absolute Häufigkeit der Überlebenden und Nicht-Überlebenden berechnen
absolute_counts = Titanic.groupby(["Pclass", "Sex"])["Survived"].value_counts().unstack()

# Visualisierung der absoluten Häufigkeiten
absolute_counts.plot(kind="bar", stacked=True, figsize=(10,6), edgecolor="black")
plt.title("Absolute Häufigkeit der Überlebenden nach Passagierklasse und Geschlecht")
plt.xlabel("Passagierklasse und Geschlecht")
plt.ylabel("Anzahl der Passagiere")
plt.xticks(rotation=0)
plt.legend(["Nicht Überlebt", "Überlebt"], title="Status")
plt.grid(axis="y", linestyle="--", alpha=0.7)
plt.show()
plt

Frauen und Kinder zu R st

... am Beispiel eines R Interpreters der auf einem Server (Coderunner) der TU Bergakademie läuft

https://github.com/LiaScript/CodeRunner

import: https://raw.githubusercontent.com/LiaScript/CodeRunner/master/README.md

suppressPackageStartupMessages({
  library(ggplot2)
  library(dplyr)
})

# CSV-Datei einlesen
df <- read.csv("https://zenodo.org/api/records/15424433/files/titanic-dataset.csv/content")

# Alter bereinigen (NA-Werte entfernen)
df <- df %>% filter(!is.na(Age))

# Überlebenswahrscheinlichkeit nach Geschlecht und Alter (inkl. Männer)
women_children_men <- df %>%
  mutate(Category = case_when(
    Sex == "female" & Age < 18 ~ "Female Child",
    Sex == "female" & Age >= 18 ~ "Female Adult",
    Sex == "male" & Age < 18 ~ "Male Child",
    Sex == "male" & Age >= 18 ~ "Male Adult"
  )) %>%
  group_by(Category) %>%
  summarise(SurvivalRate = mean(Survived), .groups = 'drop')

# PNG-Datei für Analyse speichern
png("women_children_men_survival.png", width = 800, height = 400)

ggplot(women_children_men, aes(x = Category, y = SurvivalRate, fill = Category)) +
  geom_bar(stat = "identity", position = "dodge") +
  ggtitle("Überlebenswahrscheinlichkeit von Frauen, Männern und Kindern") +
  xlab("Kategorie") +
  ylab("Überlebensrate") +
  scale_fill_manual(values = c("blue", "red", "green", "purple"), name = "Kategorie") +
  theme_minimal()

dev.off()

@LIA.r

Geschichten mit JavaScript

<script run-once style="display:block" modify="false">
async function queryDBpedia(lastName) {
  // Updated SPARQL query to also fetch images
  const query = `
    SELECT DISTINCT ?person ?name ?wikipediaLink ?image WHERE {
      ?person a dbo:Person ;
             rdfs:label ?name ;
             dbo:wikiPageWikiLink dbr:RMS_Titanic .
      ?person foaf:isPrimaryTopicOf ?wikipediaLink .
      OPTIONAL { ?person foaf:depiction ?image }
      FILTER(CONTAINS(LCASE(?name), "${lastName.toLowerCase()}"))
    }
    LIMIT 1
  `;

  const url = "https://dbpedia.org/sparql?query=" +
              encodeURIComponent(query) +
              "&format=json";

  try {
    const response = await fetch(url);
    const data = await response.json();
    return data.results.bindings[0] || null;
  } catch (error) {
    console.error("DBpedia query failed:", error);
    return null;
  }
}

async function csvToMarkdownTable(csvFile) {
  const response = await fetch(csvFile);
  const text = await response.text();
  const rows = Papa.parse(text).data;

  // Find the name column index
  const nameColumnIndex = rows[0].findIndex(header => header.includes("Name"));

  // Add an "Image" column header after the name column
  rows[0].splice(nameColumnIndex + 1, 0, "Image");

  let markdownTable = "| " + rows[0].join(" | ") + " |\n";
  markdownTable += "| " + rows[0].map(() => "---").join(" | ") + " |\n";

  // Process all rows in a single loop
  for (let i = 1; i < rows.length; i++) {
    if (rows[i].length === rows[0].length - 1) { // -1 because we added a column
      // Extract the name and get the last name
      const fullName = rows[i][nameColumnIndex];
      const nameParts = fullName.split(',');
      const lastName = nameParts[0].trim();

      // Try to find DBpedia entry
      const dbpediaInfo = await queryDBpedia(lastName);

      // Insert an image cell after the name cell
      let imageCell = "";

      if (dbpediaInfo) {
        // Add Wikipedia link to name if available
        if (dbpediaInfo.wikipediaLink) {
          rows[i][nameColumnIndex] = `[${fullName}](https://zenodo.org/api/records/15424433/files/README.md/${dbpediaInfo.wikipediaLink.value})`;
        }

        // Add image if available
        if (dbpediaInfo.image) {
          imageCell = `![${lastName}](https://zenodo.org/api/records/15424433/files/README.md/${dbpediaInfo.image.value})`;
        }
      }

      // Insert the image cell after the name
      rows[i].splice(nameColumnIndex + 1, 0, imageCell);

      markdownTable += "| " + rows[i].join(" | ") + " |\n";
    }
    send.lia("LIASCRIPT: <!-- data-type='none' --" + ">" + markdownTable);
  }

}

csvToMarkdownTable("https://zenodo.org/api/records/15424433/files/titanic-dataset.csv/content");

"LIA: wait"
</script>

4. Ausblick & Kombinationen

back to future

Echtzeitdaten ...

Beispiel: Wetterdaten

https://open-meteo.com/

longitude: <script default="13.33125" input="range" output="longitude">@input</script>

latitude: <script default="50.92558" input="range" output="latitude">@input</script>

<script run-once="true" style="display: block"> fetch("https://api.open-meteo.com/v1/forecast?latitude=@input(`latitude`)&longitude=@input(`longitude`)&hourly=temperature_2m") .then(response => response.json()) .then(data => { let table = "\n" table += "| Time | Temperature |\n" table += "| ---- | ----------- |\n" for (let i=0; i < data.hourly.time.length; i++) { table += "| " + data.hourly.time[i] + " | " + data.hourly.temperature_2m[i] + " |\n" } send.lia("LIASCRIPT: "+table) } ) .catch(e => { send.lia("ups, something went wrong") }) "waiting for the weather" </script>

SVG & LiaScript

DATEN

{{1}}

Erhebung

{{2}}

Verarbeitung

{{3}}

Analyse

{{4}}

Archivierung

{{5}}

Veröffentlichung

{{6}}

Nachnutzung

Explorative Darstellungen

Titel("Die Distanz zwischen A und B ist 5");

// Definiere Punkte
const A = Punkt(1, 2, "A");
const B = Punkt(4, 6, "B");
{{1}}

Vergleich quadratischer und linearer Funktionen

Überführe die Quadratische Funktion in eine Geraden-Gleichung und untersuche wie sich Veränderung der Steigung und des Achsenabschnitts auf die Funktion auswirken. Vergleiche die Ergebnisse mit den Ergebnissen der quadratischen Funktion. Der Exponent der Funktion $a =$ <script input="range" step="1" min="-1" max="6" value="2" output="a">@input</script>, der Koeffizient des linearen Terms ist $b =$ <script input="range" step="0.1" min="-10" max="10" value="0" output="b">@input</script> und der y-Achsenabschnitt ist $c =$ <script modify="false" input="range" step="0.1" min="-10" max="10" value="0" output="c">@input</script>

<script modify="false" run-once style="display: inline-block; width: 100%"> "LIASCRIPT: ### $$f(x) = x^{@input(`a`)} + x * @input(`b`) + @input(`c`)$$" </script> <script run-once style="display: inline-block; width: 100%"> function func(x) { return Math.pow(x, @input(`a`)) + @input(`b`) * x + @input(`c`); } function generateData() { let data = []; for (let i = -15; i <= 15; i += 0.01) { data.push([i, func(i)]); } return data; } let option = { animation: false, grid: { top: 40, left: 50, right: 40, bottom: 50 }, xAxis: { name: 'x', minorTick: { show: true }, splitLine: { lineStyle: { color: '#999' } }, minorSplitLine: { show: true, lineStyle: { color: '#ddd' } } }, yAxis: { name: 'y', min: -10, max: 10, minorTick: { show: true }, splitLine: { lineStyle: { color: '#999' } }, minorSplitLine: { show: true, lineStyle: { color: '#ddd' } } }, dataZoom: [{ show: true, type: 'inside', filterMode: 'none', xAxisIndex: [0], startValue: -20, endValue: 20 }, { show: true, type: 'inside', filterMode: 'none', yAxisIndex: [0], startValue: -20, endValue: 20 }], series: [ { type: 'line', showSymbol: false, clip: true, data: generateData() } ] } "HTML: " </script>

5. Wie geht es weiter?

Ressource Hinweise
https://liascript.github.io Projektwebseite mit Links zu allen Informationen, LiveEditor, Blogbeiträgen, ...
LiaScript erklärt LiaScript Dokumentation des Sprachumfanges
https://www.youtube.com/@liascript4180 Youtube Kanal
https://github.com/orgs/LiaScript/discussions Diskussionsforum von Nutzenden
https://app.gitter.im/#/room/#LiaScript_community:gitter.im Gitter Chatroom
eMail [email protected]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment