-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
126 lines (110 loc) · 8.43 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<!DOCTYPE html>
<html lang="en">
<head prefix="foaf: http://xmlns.com/foaf/0.1/">
<title>Schimatos Tooling Overview</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="node_modules/shower-material/styles/styles.css">
<link rel="stylesheet" href="styles/rt-custom.css" />
<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css' />
<link href='https://fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css' />
<style>
.shower {
--slide-ratio: calc(16 / 9);
}
</style>
</head>
<body class="shower list" prefix="rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# foaf: http://xmlns.com/foaf/0.1/ owl: http://www.w3.org/2002/07/owl# xsd: http://www.w3.org/2001/XMLSchema# org: http://www.w3.org/ns/org# schema: http://schema.org/ cite: http://purl.org/spar/cito/" typeof="schema:PresentationDigitalDocument">
<header class="caption">
<div class="title">
<h1 property="schema:name">Schimatos Tooling Overview</h1>
</div>
<div class="captiondata">
<p class="author" rel="schema:author"><a href="https://github.com/jeswr">Jesse Wright</a></p>
<p class="venue">
<a href="">2021</a>, <span rel="schema:datePublished">21 June 2021</span></a>
</p>
</div>
</header>
<section id="title" class="slide title" inlist="" rel="schema:hasPart" resource="#title">
<h2 property="schema:name">Schimatos Tooling Overview</h2>
<ul class="author inline">
<li class="current"><a href="https://github.com/jeswr">Jesse Wright</a></li>
</ul>
<p class="affiliation"><a href="https://www.anu.edu.au/">The Australian National University</a></p>
<img src="img/front-page.png" height='50%'>
</section>
<section id="start" class="slide" style="background-image: url('img/TODO.jpg')" inlist="" rel="schema:hasPart" resource="#start">
<h2 property="schema:name" class="big" style="margin-top: 20px; color: white; text-shadow: 2px 2px black">Motivation</h2>
<ul style="color: white; text-shadow: 2px 2px black; font-size: 1.3em">
<li>Improve accessibility for viewing and editing data on the Semantic Web.</li>
</ul>
</section>
<section id="start" class="slide" style="background-image: url('img/TODO.jpg')" inlist="" rel="schema:hasPart" resource="#start">
<h2 property="schema:name" class="big" style="margin-top: 20px; color: white; text-shadow: 2px 2px black">Architecture</h2>
<ul style="color: white; text-shadow: 2px 2px black; font-size: 1.3em">
<li>NodeShape => Form</li>
<li>PropertyShape => Field</li>
</ul>
</section>
<section id="start" class="slide" style="background-image: url('img/TODO.jpg')" inlist="" rel="schema:hasPart" resource="#start">
<!-- <h2 property="schema:name" class="big" style="margin-top: 20px; color: white; text-shadow: 2px 2px black">Architecture</h2> -->
<img src="img/schimatos-package-structure.svg" alt="Package Structure" height="160%">
</section>
<section id="start" class="slide" style="background-image: url('img/TODO.jpg')" inlist="" rel="schema:hasPart" resource="#start">
<h2 property="schema:name" class="big" style="margin-top: 20px; color: white; text-shadow: 2px 2px black">Implementation</h2>
<ul >
<li>(1) Load data for relevant shape(s) using <a href="https://github.com/jeswr/shacl-query">SHACL Query</a></li>
<h5>SHACL Query package converts a SHACL constraint into a SPARQL construct query to extract all data relevant to a particular shape. To extract a SHACL shape we use the NodeShape Shape. <a href="https://github.com/comunica">Comunica</a> is used to issue and federate the query over given sources (SPARQL endpoints, local files, linked data fragments etc.). By providing the <a href="https://github.com/jeswr/shaclcjs">shaclcjs</a> parser as an actor to a custom comunica configuration we can load files written in (extended) shaclc syntax.</h5>
<li>(2) Merge Relevant constraints using the <a href="https://github.com/jeswr/merge-shacl">Merge SHACL package</a></li>
</ul>
</section>
<section id="start" class="slide" style="background-image: url('img/TODO.jpg')" inlist="" rel="schema:hasPart" resource="#start">
<h2 property="schema:name" class="big" style="margin-top: 20px; color: white; text-shadow: 2px 2px black">Implementation</h2>
<ul>
<li>(3) Provide inference over the new constraints using the <a href="https://github.com/jeswr/sparql-inferenced">SPARQL Inferenced package</a> which extends on the <a href="https://github.com/jeswr/hylar-core">Hylar Engine</a> (lightweight version) to allow for inferences based on construct queries (using the comunica engine).</li>
<li>(4) Load the merged & inferenced shape as an object using <a href="https://github.com/jeswr/rdf-object-proxy">RDF Object Proxy</a> with <a href="https://github.com/on2ts">on2ts</a> used to provide type restrictions & assumptions.</li>
<h6>Since the inferencing applies all default values to the shapes, and adds all class relationships etc. this makes it much easier to program against the shape. For instance `sh:closed` will always have a boolean object `true` or `false`.</h6>
<h6>Note: As a personal opensource project (when time allows) I intend to integrate steps (1) - (4) in an extension to on2ts. I also have several other projects which I intend to use such tooling for.</h6>
</ul>
</section>
<section id="start" class="slide" style="background-image: url('img/TODO.jpg')" inlist="" rel="schema:hasPart" resource="#start">
<h2 property="schema:name" class="big" style="margin-top: 20px; color: white; text-shadow: 2px 2px black">Implementation</h2>
<ul>
<li>(5) The <a href="https://github.com/schimatos/shacl-form-react">SHACL Form React</a> packages then generates the form structure given the resource for the SHAPE from RDF Object Proxy, and an LDflex object for the entity which we wish to modify</li>
<li>(6) <a href="https://github.com/schimatos/shacl-form-react">SHACL Form React</a> also takes custom field generator (<a href="https://github.com/schimatos/ldfields">LDfields</a>) and SHACL validator as input </li>
<li>(7) When a submit event is triggered, <a href="https://github.com/schimatos/shacl-form-react">SHACL Form React</a> can be used to emit two sets of triples, (a set of triples to be added to the graph, and a set of triples to be removed from the graph). Comunica is then used to issue the relevant DELETEINSERT query over the given sources (internally to comunica, the deletion is applied to all source, the addition is applied to a designated primary source).</li>
</ul>
</section>
<!--
<section id="some-slide" class="slide" inlist="" rel="schema:hasPart" resource="#some-slide">
<h2 property="schema:name">Associated Packages & Development</h2>
<ul>
<li>
<h3>on2ts</h3>
<span class="indent">Generated Typescript interfaces and classes based on OWL ontologies and SHACL constraints</span>
</li>
<li>
<h3>SHACLC</h3>
<span class="indent">Javascript SHACLC parser/writer extended to be conformant to entire SHACL specification</span>
</li>
<li>B</li>
<li>C</li>
</ul>
</section>
<section id="conclusion" class="slide" inlist="" rel="schema:hasPart" resource="#conclusion">
<h2 property="schema:name" class="big">TODO: Conclusion</h2>
</section> -->
<section id="start" class="slide" style="background-image: url('img/TODO.jpg')" inlist="" rel="schema:hasPart" resource="#start">
<!-- <h2 property="schema:name" class="big" style="margin-top: 20px; color: white; text-shadow: 2px 2px black">Architecture</h2> -->
<img src="img/schimatos-package-structure.svg" alt="Package Structure" height="160%">
</section>
<footer>
<p class="license">
© <span property="schema:copyrightYear">2021</span> <a href="https://www.rubensworks.net" rel="schema:copyrightHolder"><span resource="https://www.github.com/jeswr">Jesse Wright</span></a>
— <a rel="license" href="https://opensource.org/licenses/MIT" property="schema:license">MIT</a>, unless otherwise indicated.
</p>
</footer>
<script src="node_modules/shower-core/shower.min.js"></script>
</body>
</html>