From f14cf62a118c9324e7e83749df1e50ab2f3ad265 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 19 May 2024 23:50:49 +0200 Subject: add example knowledge graph windsurfing --- .gitignore | 2 ++ Makefile | 22 ++++++++++++++++++++-- rdf/learning.sdm | 9 ++++++++- rdf/prefixes.ttl | 31 +++++++++++++++++++++++++++++++ rdf/windsurfing.ttl | 27 +++++++++++++++++++++++++++ 5 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 rdf/prefixes.ttl create mode 100644 rdf/windsurfing.ttl diff --git a/.gitignore b/.gitignore index 50fe115..df48ffd 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ svg-inkscape/ rdf/*.ttl rdf/*.svg index.tex +!rdf/prefixes.ttl +!rdf/windsurfing.ttl diff --git a/Makefile b/Makefile index 04e3426..226e9bf 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,8 @@ ARTICLES = waste worlding ONTOLOGIES = learning waste +GRAPHS = windsurfing + PERL_FILES = bin/biblatex-tidy bin/hedgedoc2quarto bin/xmp2rdfxml TIDY_MARKDOWN = worlding @@ -147,7 +149,7 @@ $(ARTICLES:%=%/b.tex): %/b.tex: mv --force $*/index.tex $@ rm --force _site/b.pdf -rdf/%.svg: rdf/%.sdm +rdf/%-concepts.svg: rdf/%.sdm sdml draw --diagram concepts -i $< -f svg -o $@ rdf/%-er.svg: rdf/%.sdm @@ -159,11 +161,20 @@ rdf/%-uml.svg: rdf/%.sdm rdf/%.ttl: rdf/%.sdm sdml convert -i $< -f rdf -o $@ --no-color +rdf/%.puml: rdf/%.ttl rdf/prefixes.ttl + rdfpuml $< + +rdf/%.png: rdf/%.puml + plantuml -tpng $< + +rdf/%.svg: rdf/%.puml + plantuml -tsvg $< + rdf/%/index.html: rdf/%.ttl mkdir --parents rdf/$* ontospy gendocs --type 2 -x -o $(CURDIR)/rdf/$* $< -$(ONTOLOGIES:%=view-%-concept-diagram): view-%-concept-diagram: rdf/%.svg +$(ONTOLOGIES:%=view-%-concept-diagram): view-%-concept-diagram: rdf/%-concepts.svg inkview $< $(ONTOLOGIES:%=view-%-er-diagram): view-%-er-diagram: rdf/%-er.svg @@ -175,4 +186,11 @@ $(ONTOLOGIES:%=view-%-uml-diagram): view-%-uml-diagram: rdf/%-uml.svg $(ONTOLOGIES:%=view-%-rdfs-graf): view-%-rdfs-graf: rdf/%.ttl rdfs2dot -f turtle $< | xdot - +#$(ONTOLOGIES:%=view-%-puml-diagram): view-%-puml-diagram: rdf/%.svg +# inkview $< +#$(ONTOLOGIES:%=view-%-puml-diagram): view-%-puml-diagram: rdf/%.png +# imv-wayland $< +$(GRAPHS:%=view-%-puml-diagram): view-%-puml-diagram: rdf/%.png + imv-wayland $< + $(ONTOLOGIES:%=render-%-ontology): render-%-ontology: rdf/%/index.html diff --git a/rdf/learning.sdm b/rdf/learning.sdm index b466ed3..e3b7026 100644 --- a/rdf/learning.sdm +++ b/rdf/learning.sdm @@ -1,6 +1,11 @@ module learning learning is - import [ dc skos xsd ] + import [ + dc +; foaf + skos + xsd + ] @skos:prefLabel = "Learning Ontology"@en @dc:description = "General domain ontology on learning"@en @@ -25,6 +30,7 @@ module learning learning unknown @@ -46,6 +52,7 @@ module learning learning . +@prefix : <#> . +@prefix ex: . +@prefix learning: . +@prefix foaf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix sdml: . +@prefix dc: . +@prefix skos: . +@prefix xsd: . + +#[] puml:options """ +# hide empty members +# hide circle +# left to right direction +#""". + +# TODO: use FoaF ontology +foaf:Person puml:stereotype "(A,orange)". +:Learner puml:stereotype "(A,orange)". +:Educator puml:stereotype "(A,orange)". +:Objective puml:stereotype "(O,green)". + +#<> a puml:Inline. +#sdml:Member a puml:Inline. +sdml:hasMember a puml:InlineProperty. +dc:creator a puml:InlineProperty. +dc:license a puml:InlineProperty. +owl:imports a puml:InlineProperty. diff --git a/rdf/windsurfing.ttl b/rdf/windsurfing.ttl new file mode 100644 index 0000000..b4bfdba --- /dev/null +++ b/rdf/windsurfing.ttl @@ -0,0 +1,27 @@ +ex:windsurfing a :Objective; + rdfs:label "Windsurfing". + +ex:ernst a :Learner; + rdfs:label "Ernst Schraube"; + :seeksObjective ex:windsurfing; + :learnsCausedBy ex:boredom, ex:sealove; + :learnsThrough ex:stand. + +ex:stand a :Practice; + rdfs:label "standing up"; + rdfs:desc "trying to just stand on a board in the water"; + :contributesTo ex:windsurfing, ex:feel_balance. + +ex:feel_balance a :Objective; + rdfs:label "feel for balance"; + rdfs:desc "get a feel for the balance". + +ex:boredom a :DefensiveReason; + rdfs:label "boredom"; + rdfs:desc "I am bored at the beach and there is nothing else to do."; + :causeAction ex:stand. + +ex:sealove a :ExpansiveReason; + rdfs:label "love for the sea"; + rdfs:desc "I love the sea and dream about planning across the water."; + :causeAction ex:stand. -- cgit v1.2.3