You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: specification/01introduction.md
+21-15Lines changed: 21 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,9 +2,9 @@
2
2
3
3
This document is a functional draft specification for the Linked Data Modeling Language (LinkML).
4
4
5
-
LinkML is a data modeling language for describing the structure of a collection of *instances*, where instances are tree-like object-oriented structures. Instances are pieces of information that represent things of interest in a particular domain, such as individual people, biological samples, places, events, or abstract entities.
5
+
LinkML is a data modeling language for describing the structure of a collection of *instances*, where instances are tree-like object-oriented structures. Instances represent things of interest in a particular domain, such as individual people, biological samples, places, events, or abstract entities.
6
6
7
-
Instances are either primitive *types* such as numbers or strings, or objects that are typed using *classes* from a LinkML *schema*. Classes are categories or groupings of things in the domain of interest; for example, "Person", "Medical History", "Data file", or "Country". Instances can be inter-related by assigning *slot values*; for example, an instance of a Person may have values for slots "name" or "country of birth".
7
+
Instances are either primitive *types* such as numbers or strings, or *objects* that are typed using *classes* from a LinkML *schema*. Classes are categories or groupings of things in the domain of interest; for example, `Person`, `Medical History`, `Data file`, or `Country`. Instances can be inter-related by assigning *values* to particular *slots*; for example, an instance of a Person may have values for slots `name` or `country of birth`.
8
8
9
9
LinkML schemas also specify *rules* for determining if instances conform to the schema, and for *inference* adding additional implicit slot values.
10
10
@@ -14,7 +14,7 @@ LinkML is self-describing, and any LinkML schema is itself a collection instance
14
14
15
15
## Audience
16
16
17
-
This document is intended for LinkML tool and framework implementors, and is intended to provide formal clarity about the structure and semantics of LinkML.
17
+
This document is intended for LinkML tool and framework implementors, and is intended to formally specify the structure and semantics of LinkML.
18
18
19
19
For a more lightweight introduction, consult the material on the main [LinkML site](https://linkml.io),
20
20
including the LinkML tutorial.
@@ -25,7 +25,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
25
25
26
26
## BNF
27
27
28
-
Grammars in this document are written using the BNF notation, summarized below:
28
+
Grammars in this specification are written using the BNF notation, summarized below:
29
29
30
30
Construct | Syntax |
31
31
|---|---|
@@ -44,36 +44,42 @@ We also include a meta-production rule for expressing comma-delimited lists
44
44
45
45
## Outline
46
46
47
-
The specification is organized in 6 parts. The parts cannot be read independently, as each part builds on
48
-
concepts introduced in previous parts.
47
+
The specification is organized in 6 parts. The parts are not independent, as each part builds on concepts introduced in previous parts.
49
48
50
49
### Part 1: Introduction
51
50
52
-
This section. Provides background information and preliminary definitions
51
+
This section. Background information and preliminary definitions.
53
52
54
53
### Part 2: Structure and Syntax of Instances
55
54
56
-
Specification of the data model for instances in LinkML.
55
+
Part 2 provides a *structural specification* of LinkML **instances**. The structural specification is provided as a normative abstract functional-style syntax. UML diagrams are provided for informative purposes.
57
56
58
-
The data model shown as UML for informative purposes. A normative functional-style syntax is provided for instances, and this syntax is used throughout the specification.
57
+
This syntax is not intended as an actual exchange syntax for LinkML data. For that, existing syntaxes such as JSON, YAML, or RDF syntaxes should be used (see Part 6). The abstract syntax allows for a seperation of the essential features of the language from issues related to any particular syntax.
59
58
60
-
This section also introduces a **path accessor** syntax for specifying how to traverse LinkML instances.
59
+
Part 2 also introduces a **path accessor** syntax for specifying how to traverse LinkML instances.
60
+
61
+
The abstract syntax and path accessor syntax are used in the remainder of the specification.
61
62
62
63
### Part 3: Structure of Schemas
63
64
64
-
Specification of the core elements of a LinkML schema: ClassDefinitions, TypeDefinitions, SlotDefinitions, EnumDefinitions, as well as ancillary structures.
65
+
Introduces the concept of a LinkML schema, which specifies how conforming LinkML instances are intended to be structured.
66
+
67
+
This part specifies the core elements of a LinkML schema: [ClassDefinitions](https://w3id.org/linkml/ClassDefinition), [TypeDefinitions](https://w3id.org/linkml/TypeDefinition), [SlotDefinitions](https://w3id.org/linkml/SlotDefinition), [EnumDefinitions](https://w3id.org/linkml/EnumDefinition), as well as ancillary structures.
68
+
69
+
This part also introduces the concept of the LinkML metamodel. A LinkML schema is both a specification of conformance conditions for an instance, and at the same time an instance that conforms to the metamodel schema.
65
70
66
71
### Part 4: Derived Schemas and Schema Semantics
67
72
68
-
Specification of inference procedures for **derived schemas**, which can be used for purposes such as validation.
73
+
Specification of inference functions and procedures for **derived schemas** to populate missing values in schemas.
69
74
70
75
### Part 5: Validation of Instance Data
71
76
72
-
Specification of the procedure for **validating** LinkML instances using a derived schema
77
+
Specification of the procedure for **validating** LinkML instances using a derived schema.
73
78
74
79
### Part 6: Mapping of Instance Data
75
80
76
-
Specification of how LinkML instances are mapped to other data models and syntaxes:
81
+
Specification of how LinkML instances are mapped to other data models and concrete syntaxes:
0 commit comments