Preface |
|
xv | |
Foreword |
|
xvii | |
|
Foreword |
|
xix | |
|
Foreword |
|
xxi | |
|
|
Acknowledgments |
|
xxiii | |
1 Introduction |
|
1 | (8) |
|
1.1 RDF and the Web of Data |
|
|
1 | (1) |
|
|
1 | (2) |
|
1.3 Challenges for RDF Adoption |
|
|
3 | (2) |
|
1.4 Structure of the Book |
|
|
5 | (1) |
|
1.5 Conventions and Notation |
|
|
6 | (3) |
2 The RDF Ecosystem |
|
9 | (18) |
|
|
9 | (1) |
|
|
10 | (7) |
|
2.3 Shared Entities and Vocabularies |
|
|
17 | (1) |
|
2.4 Technologies Related with RDF |
|
|
18 | (7) |
|
|
18 | (2) |
|
2.4.2 Inference Systems: RDF Schema and OWL |
|
|
20 | (3) |
|
2.4.3 Linked Data, JSON-LD, Microdata, and RDFa |
|
|
23 | (2) |
|
|
25 | (1) |
|
|
25 | (2) |
3 Data Quality |
|
27 | (28) |
|
3.1 Non-RDF Schema Languages |
|
|
28 | (12) |
|
|
28 | (1) |
|
3.1.2 SQL and Relational Databases |
|
|
29 | (2) |
|
|
31 | (6) |
|
|
37 | (2) |
|
|
39 | (1) |
|
3.2 Understanding the RDF Validation Problem |
|
|
40 | (5) |
|
3.3 Previous RDF Validation Approaches |
|
|
45 | (3) |
|
3.3.1 Query-based Validation |
|
|
45 | (2) |
|
3.3.2 Inference-based Approaches |
|
|
47 | (1) |
|
3.3.3 Structural Languages |
|
|
48 | (1) |
|
3.4 Validation Requirements |
|
|
48 | (4) |
|
3.4.1 General Requirements |
|
|
49 | (1) |
|
3.4.2 Graph-based Requirements |
|
|
49 | (1) |
|
3.4.3 RDF Data Model Requirements |
|
|
50 | (1) |
|
3.4.4 Data-modeling-based Requirements |
|
|
50 | (1) |
|
3.4.5 Expressiveness of Schema Language |
|
|
51 | (1) |
|
3.4.6 Validation Invocation Requirements |
|
|
52 | (1) |
|
3.4.7 Usability Requirements |
|
|
52 | (1) |
|
|
52 | (1) |
|
|
53 | (2) |
4 Shape Expressions |
|
55 | (64) |
|
|
55 | (1) |
|
|
56 | (2) |
|
|
58 | (1) |
|
4.4 The Shape Expressions Language |
|
|
59 | (6) |
|
4.4.1 Shape Expressions Compact Syntax |
|
|
59 | (1) |
|
4.4.2 Invoking Validation |
|
|
60 | (3) |
|
4.4.3 Structure of Shape Expressions |
|
|
63 | (1) |
|
4.4.4 Start Shape Expression |
|
|
64 | (1) |
|
|
65 | (13) |
|
|
67 | (1) |
|
|
68 | (2) |
|
|
70 | (3) |
|
|
73 | (5) |
|
|
78 | (12) |
|
|
79 | (1) |
|
|
80 | (1) |
|
|
80 | (2) |
|
|
82 | (2) |
|
|
84 | (1) |
|
4.6.6 Inverse Triple Constraints |
|
|
85 | (1) |
|
4.6.7 Repeated Properties |
|
|
86 | (1) |
|
4.6.8 Permitting other Triples |
|
|
87 | (3) |
|
|
90 | (5) |
|
|
90 | (1) |
|
4.7.2 Recursion and Cyclic References |
|
|
91 | (1) |
|
|
92 | (1) |
|
4.7.4 Labeled Triple Expression |
|
|
93 | (1) |
|
|
94 | (1) |
|
|
95 | (10) |
|
|
95 | (3) |
|
|
98 | (3) |
|
|
101 | (4) |
|
|
105 | (14) |
|
|
105 | (1) |
|
|
106 | (2) |
|
|
108 | (1) |
|
4.9.4 JSON Representation |
|
|
109 | (1) |
|
4.9.5 Chaining Validation Workflows |
|
|
110 | (1) |
|
|
110 | (1) |
|
|
111 | (2) |
|
|
113 | (1) |
|
4.13 RDF and JSON-LD Syntax |
|
|
114 | (2) |
|
|
116 | (1) |
|
|
116 | (3) |
5 SHACL |
|
119 | (76) |
|
|
119 | (3) |
|
5.2 SHACL Implementations |
|
|
122 | (2) |
|
5.3 Basic Definitions: Shapes Graphs, Node, and Property Shapes |
|
|
124 | (1) |
|
5.4 Importing other Shapes Graphs |
|
|
125 | (1) |
|
|
126 | (3) |
|
|
129 | (8) |
|
|
129 | (1) |
|
|
130 | (1) |
|
5.6.3 Constraint Components |
|
|
131 | (2) |
|
5.6.4 Human Friendly Messages |
|
|
133 | (1) |
|
5.6.5 Declaring Shape Seventies |
|
|
134 | (1) |
|
5.6.6 Deactivating Shapes |
|
|
135 | (2) |
|
|
137 | (4) |
|
|
137 | (1) |
|
|
138 | (1) |
|
5.7.3 Implicit Class Target |
|
|
139 | (1) |
|
|
140 | (1) |
|
|
141 | (1) |
|
|
141 | (1) |
|
5.9 Constraints on Values |
|
|
142 | (6) |
|
|
142 | (3) |
|
|
145 | (1) |
|
|
146 | (1) |
|
|
147 | (1) |
|
|
148 | (1) |
|
|
148 | (6) |
|
|
149 | (1) |
|
5.10.2 String-based Constraints |
|
|
149 | (2) |
|
5.10.3 Language-based Constraints |
|
|
151 | (3) |
|
5.11 Logical Constraints: and, or, not, xone |
|
|
154 | (10) |
|
|
154 | (3) |
|
|
157 | (2) |
|
|
159 | (3) |
|
|
162 | (1) |
|
5.11.5 Combining Logical Operators |
|
|
162 | (2) |
|
5.12 Shape-based Constraints |
|
|
164 | (13) |
|
5.12.1 Shape References and Recursion |
|
|
166 | (8) |
|
5.12.2 Qualified Value Shapes |
|
|
174 | (3) |
|
|
177 | (3) |
|
5.14 Property Pair Constraints |
|
|
180 | (2) |
|
5.15 Non-validating SHACL Properties |
|
|
182 | (2) |
|
|
184 | (4) |
|
5.16.1 SPARQL Constraints |
|
|
184 | (1) |
|
5.16.2 SPARQL-based Constraint Components |
|
|
185 | (3) |
|
5.17 SHACL and Inference Systems |
|
|
188 | (2) |
|
5.18 SHACL Compact Syntax |
|
|
190 | (1) |
|
5.19 SHACL Rules and Advanced Features |
|
|
190 | (3) |
|
|
193 | (1) |
|
|
194 | (1) |
|
|
194 | (1) |
6 Applications |
|
195 | (38) |
|
6.1 Describing a Linked Data Portal |
|
|
195 | (9) |
|
|
197 | (3) |
|
|
200 | (4) |
|
6.2 Describing Clinical Records-FHIR |
|
|
204 | (8) |
|
6.2.1 FHIR as Linked Data |
|
|
206 | (1) |
|
6.2.2 Consistency constraints |
|
|
206 | (3) |
|
6.2.3 FHIR/RDF Development |
|
|
209 | (1) |
|
|
210 | (2) |
|
6.3 Springer Nature SciGraph |
|
|
212 | (1) |
|
6.4 DBpedia Validation Use Cases |
|
|
213 | (6) |
|
6.4.1 Ontology-based Validation |
|
|
213 | (1) |
|
6.4.2 RDF Mappings Validation |
|
|
214 | (1) |
|
6.4.3 Validating Link Contributions with SHACL |
|
|
215 | (1) |
|
6.4.4 Ontology Validation with SHACL |
|
|
216 | (3) |
|
|
219 | (6) |
|
|
225 | (5) |
|
|
230 | (1) |
|
|
231 | (2) |
7 Comparing ShEx and SHACL |
|
233 | (34) |
|
|
233 | (4) |
|
7.2 Syntactic Differences |
|
|
237 | (2) |
|
7.3 Foundation: Schema vs. Constraints |
|
|
239 | (1) |
|
|
240 | (2) |
|
7.5 Modularization and Reusability |
|
|
242 | (2) |
|
7.6 Shapes, Classes, and Inference |
|
|
244 | (2) |
|
7.7 Violation Reporting and Seventies |
|
|
246 | (1) |
|
7.8 Default Cardinalities |
|
|
246 | (1) |
|
|
247 | (1) |
|
|
248 | (2) |
|
7.11 Property Pair Constraints and Uniqueness |
|
|
250 | (1) |
|
|
251 | (3) |
|
7.13 Exactly One and Alternatives |
|
|
254 | (3) |
|
7.14 Treatment of Closed Shapes |
|
|
257 | (2) |
|
7.15 Stems and Stem Ranges |
|
|
259 | (1) |
|
|
260 | (1) |
|
7.17 Semantics and Complexity |
|
|
261 | (1) |
|
7.18 Extension Mechanisms |
|
|
262 | (1) |
|
7.19 Conclusions and Outlook |
|
|
263 | (3) |
|
|
266 | (1) |
|
|
266 | (1) |
A WebIndex in ShEx |
|
267 | (2) |
B WebIndex in SHACL |
|
269 | (6) |
C ShEx in ShEx |
|
275 | (4) |
D SHACL in SHACL |
|
279 | (6) |
Bibliography |
|
285 | (10) |
Authors' Biographies |
|
295 | |