rows { options { physical_type: PHYSICAL_STREAM_TYPE_QUADS max_name_table_size: 128 max_prefix_table_size: 16 max_datatype_table_size: 16 logical_type: LOGICAL_STREAM_TYPE_DATASETS version: 2 } } rows { prefix { value: "https://w3id.org/np/" } } rows { name { value: "RAUOWhc7I7B4lX1zwXxTcOTTYNv9P0RZ6a6yr-vhzc2kg" } } rows { namespace { name: "this" value { prefix_id: 1 } } } rows { prefix { value: "https://w3id.org/np/RAUOWhc7I7B4lX1zwXxTcOTTYNv9P0RZ6a6yr-vhzc2kg/" } } rows { name { } } rows { namespace { name: "sub" value { prefix_id: 2 } } } rows { prefix { value: "http://schema.org/" } } rows { namespace { name: "schema" value { prefix_id: 3 name_id: 2 } } } rows { prefix { value: "https://w3id.org/kpxl/gen/terms/" } } rows { namespace { name: "gen" value { prefix_id: 4 name_id: 2 } } } rows { prefix { value: "http://www.nanopub.org/nschema#" } } rows { namespace { name: "np" value { prefix_id: 5 name_id: 2 } } } rows { prefix { value: "http://purl.org/dc/terms/" } } rows { namespace { name: "dct" value { prefix_id: 6 name_id: 2 } } } rows { prefix { value: "https://w3id.org/np/o/ntemplate/" } } rows { namespace { name: "nt" value { prefix_id: 7 name_id: 2 } } } rows { prefix { value: "http://purl.org/nanopub/x/" } } rows { namespace { name: "npx" value { prefix_id: 8 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/2001/XMLSchema#" } } rows { namespace { name: "xsd" value { prefix_id: 9 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/2000/01/rdf-schema#" } } rows { namespace { name: "rdfs" value { prefix_id: 10 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/ns/prov#" } } rows { namespace { name: "prov" value { prefix_id: 11 name_id: 2 } } } rows { prefix { value: "http://xmlns.com/foaf/0.1/" } } rows { namespace { name: "foaf" value { prefix_id: 12 name_id: 2 } } } rows { name { value: "hasAssertion" } } rows { name { value: "assertion" } } rows { name { value: "Head" } } rows { quad { s_iri { prefix_id: 1 name_id: 1 } p_iri { prefix_id: 5 name_id: 3 } o_iri { prefix_id: 2 } g_iri { } } } rows { name { value: "hasProvenance" } } rows { name { value: "provenance" } } rows { quad { p_iri { prefix_id: 5 } o_iri { prefix_id: 2 } } } rows { name { value: "hasPublicationInfo" } } rows { name { value: "pubinfo" } } rows { quad { p_iri { prefix_id: 5 } o_iri { prefix_id: 2 } } } rows { prefix { value: "http://www.w3.org/1999/02/22-rdf-syntax-ns#" } } rows { name { value: "type" } } rows { name { value: "Nanopublication" } } rows { quad { p_iri { prefix_id: 13 } o_iri { prefix_id: 5 } } } rows { prefix { value: "https://w3id.org/spaces/semantics/2026-eu/" } } rows { name { value: "kg-stack" } } rows { name { value: "description" } } rows { quad { s_iri { prefix_id: 14 } p_iri { prefix_id: 6 } o_literal { lex: "Knowledge Graphs help break down data silos by connecting heterogeneous sources into a shared, machine interpretable data layer. Too often, the stack driving this technology remains a mystery. This hands-on tutorial introduces the underlying technologies for building RDF-based knowledge graphs. In two sessions, participants will learn to understand and create graphs, apply ontologies, build constraints and ingest data. The first half of the tutorial, we will start with an introduction into triples, how they can be built with a simple text editor and how they already form a graph. Some of the terms carry a fixed semantics for building ontologies (RDFS, OWL) or are from already established vocabularies, and we will explore how to use them in a practical setting. Later that session, we explore SPARQL for extracting our newly created data. In the second half of the tutorial, we jump into ingestion and constraints. First, we create a data ingestion pipeline using YARRRML, a simpler subset of R2RML and RML, the standardized language for creating declarative pipelines. Later, we applied data quality checks with SHACL, ensuring that our graph data is structurally consistent, ensuring a high degree of data quality." } g_iri { prefix_id: 2 name_id: 4 } } } rows { name { value: "endDate" } } rows { datatype { value: "http://www.w3.org/2001/XMLSchema#dateTime" } } rows { quad { p_iri { prefix_id: 3 name_id: 14 } o_literal { lex: "2026-09-16T15:00:00+02:00" datatype: 1 } } } rows { name { value: "location" } } rows { quad { p_iri { } o_literal { lex: "Meeting Room" } } } rows { name { value: "startDate" } } rows { quad { p_iri { } o_literal { lex: "2026-09-16T11:00:00+02:00" datatype: 1 } } } rows { name { value: "Event" } } rows { quad { p_iri { prefix_id: 13 name_id: 10 } o_iri { prefix_id: 4 name_id: 17 } } } rows { name { value: "Space" } } rows { quad { o_iri { } } } rows { prefix { value: "https://w3id.org/scholarlydata/ontology/conference-ontology.owl#" } } rows { name { value: "Tutorial" } } rows { quad { o_iri { prefix_id: 15 } } } rows { name { value: "label" } } rows { quad { p_iri { prefix_id: 10 } o_literal { lex: "(En-)Coding The Knowledge Graph Stack: RDF, RDFS, SPARQL, SHACL, (YARR)RML" } } } rows { name { value: "hasAdmin" } } rows { prefix { value: "https://orcid.org/" } } rows { name { value: "0000-0001-9488-1870" } } rows { quad { p_iri { prefix_id: 4 } o_iri { prefix_id: 16 } } } rows { name { value: "0000-0002-1267-0234" } } rows { quad { o_iri { } } } rows { prefix { id: 7 value: "https://w3id.org/np/RA0z3VTaQLNRhIoFyW7C8fJ04tho6xUivHyFqeY-RUv30/" } } rows { name { value: "event-bot" } } rows { quad { o_iri { prefix_id: 7 } } } rows { name { value: "hasRootDefinition" } } rows { quad { p_iri { prefix_id: 4 } o_iri { prefix_id: 1 name_id: 1 } } } rows { name { value: "isSubSpaceOf" } } rows { prefix { value: "https://w3id.org/spaces/semantics/" } } rows { name { value: "2026-eu" } } rows { quad { p_iri { prefix_id: 4 name_id: 26 } o_iri { prefix_id: 8 } } } rows { name { value: "wasAttributedTo" } } rows { quad { s_iri { prefix_id: 2 name_id: 4 } p_iri { prefix_id: 11 name_id: 28 } o_iri { prefix_id: 7 name_id: 24 } g_iri { prefix_id: 2 name_id: 7 } } } rows { name { value: "wasDerivedFrom" } } rows { prefix { value: "https://2026-eu.semantics.cc/page/" } } rows { name { value: "accepted_workshops_tutorials.html" } } rows { quad { p_iri { prefix_id: 11 name_id: 29 } o_iri { prefix_id: 9 } } } rows { name { value: "name" } } rows { quad { s_iri { prefix_id: 16 name_id: 22 } p_iri { prefix_id: 12 name_id: 31 } o_literal { lex: "Daniel Mietchen" } g_iri { prefix_id: 2 name_id: 9 } } } rows { quad { s_iri { prefix_id: 16 name_id: 23 } o_literal { lex: "Tobias Kuhn" } } } rows { name { value: "created" } } rows { quad { s_iri { prefix_id: 1 name_id: 1 } p_iri { prefix_id: 6 name_id: 32 } o_literal { lex: "2026-08-31T09:54:59Z" datatype: 1 } } } rows { name { value: "creator" } } rows { quad { p_iri { } o_iri { prefix_id: 7 name_id: 24 } } } rows { name { value: "license" } } rows { prefix { id: 5 value: "https://creativecommons.org/licenses/by/4.0/" } } rows { quad { p_iri { prefix_id: 6 name_id: 34 } o_iri { prefix_id: 5 name_id: 2 } } } rows { prefix { id: 14 value: "http://purl.org/nanopub/x/" } } rows { name { value: "introduces" } } rows { prefix { id: 3 value: "https://w3id.org/spaces/semantics/2026-eu/" } } rows { quad { p_iri { prefix_id: 14 name_id: 35 } o_iri { prefix_id: 3 name_id: 12 } } } rows { quad { p_iri { prefix_id: 10 name_id: 20 } o_literal { lex: "(En-)Coding The Knowledge Graph Stack: RDF, RDFS, SPARQL, SHACL, (YARR)RML" } } } rows { prefix { id: 13 value: "https://w3id.org/np/o/ntemplate/" } } rows { name { value: "wasCreatedFromProvenanceTemplate" } } rows { name { value: "RAefFjYMSnydcZtTqdT8TG8rJeJa76ryG7h10VHQiWKgY" } } rows { quad { p_iri { prefix_id: 13 name_id: 36 } o_iri { prefix_id: 1 } } } rows { name { value: "wasCreatedFromPubinfoTemplate" } } rows { name { value: "RA-N4_kFxcruvBTlo1yJv29E4SLOXsx5KO_th69PprMrA" } } rows { quad { p_iri { prefix_id: 13 } o_iri { prefix_id: 1 } } } rows { name { value: "RACJ58Gvyn91LqCKIO9zu1eijDQIeEff28iyDrJgjSJF8" } } rows { quad { o_iri { } } } rows { name { value: "RAYrlN4s93vVe9LGI-gmPLTb-QZGHKd0mxx8VxJ3XVhuw" } } rows { quad { o_iri { } } } rows { name { value: "wasCreatedFromTemplate" } } rows { prefix { id: 15 value: "https://w3id.org/np/RASsPAMYxaXaxotZfa0OiNnO5Rcl2cxHlXnIk4wvzeiV8/" } } rows { name { value: "workshop-template" } } rows { quad { p_iri { prefix_id: 13 } o_iri { prefix_id: 15 } } } rows { name { value: "sig" } } rows { name { value: "hasAlgorithm" } } rows { quad { s_iri { prefix_id: 2 } p_iri { prefix_id: 14 } o_literal { lex: "RSA" } } } rows { name { value: "hasPublicKey" } } rows { quad { p_iri { } o_literal { lex: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp6vyESGMFAOA0EUnUMHGWho/p443sMTrKm+Y1lqZt76Jc9dJggk4NT0dtRt5fZFOEpgDxl6/jyUSRey6d3/LL11iENT1HNgMDRkfRQvojuN8FyYogUf1wBcWk+HeSLCVBAkOnap3ejUPhgIBgUI0w+ElBMagFiORtyDYg9RFElhybOLLQA0Pkj0txN5MMhVnVhp/dzn/4671ogwzVZwejyFRUt0Beh86QS9YD/+ZfOGgYueHOMfUXMulhp13JU3YY0UJ8lLAhnkZEDl0JTeRW3XdsqY42mt8vl4sR2ocR+fUKLSFcdN5qOFt76Pj4cKp/zzjDOUfsVWRLGmpev8qAwIDAQAB" } } } rows { name { value: "hasSignature" } } rows { quad { p_iri { } o_literal { lex: "L46+B9W8exQfLdwUn94ij5IxwrD1ggeFMB1BFnqI5vMywqfhPr1tYSz2bvq5LQZt0xW1bcMAsV63dsrEMxvqkVhSlLFDRoA1lAZxcfePazEdFtaGn5fGrTwAiVjNoP7WZaKoWaDq5wtKkqyUExwGeI0QKSNgHBKVrlMkGZCz+CP+XbalZAgtIPRB4KbvUd6bw9T25wWBCZ0+qgVw15k9boB++Qt5TF8p3gZ7tRohL/14pug4T5hBCIGwNccoMt1/gByH8qCXLl9C7zitnSO/71+njsLJUlVSOdJVrfwyacpEFUrGlOO1x15g4F/NddzFpsKp+rsH4nIzSU1yzMSyLg==" } } } rows { name { value: "hasSignatureTarget" } } rows { quad { p_iri { } o_iri { prefix_id: 1 name_id: 1 } } } rows { name { value: "signedBy" } } rows { quad { p_iri { prefix_id: 14 name_id: 49 } o_iri { prefix_id: 16 name_id: 23 } } }