Skip to content

Commit 047a90e

Browse files
Excellent progress at composition
1 parent 9d165b8 commit 047a90e

File tree

9 files changed

+138
-0
lines changed

9 files changed

+138
-0
lines changed

GraphDL.png

889 KB
Loading

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,3 +257,4 @@ Role:
257257
258258
```
259259

260+
![GraphDL](./GraphDL.png)

_data/graphdl/core.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
∵ GraphDL: GraphDL is a graph-based data language for describing data models and data relationships.
2+
3+
🜉 Graph:
4+
nouns: [Noun.graph]
5+
6+
■ Noun:
7+
_id: string = slugify(_name)
8+
_icon: string | url = ■
9+
_name: string = titleCase(_id)
10+
_type: string = Noun
11+
_description: markdown | html
12+
_source: url | Items
13+
_seed: url | Items
14+
_visibility: anonymous | public | tenant | user | admin = tenant
15+
_graph: Graph.nouns

_data/graphdl/database.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
∵ GraphDL: A concrete implementation of GraphDL can function as a Database with Resources as instances of Nouns
2+
3+
■ Noun:
4+
_resources: [Resource]
5+
6+
□ Resource:
7+
_type: Noun
8+
_description: A Resource is a specific instance of a Noun
9+
instance: Noun.resources
10+
data: json
11+
subjectOf: [Action.subject]
12+
objectOf: [Action.object]
13+
requests: [Request.resource]
14+
created: Request.create
15+
createdAt: created->timestamp
16+
createdBy: created->user
17+
updated: Request.update
18+
updatedAt: updated->timestamp
19+
updatedBy: updated->user
20+
deleted: Request.delete
21+
deletedAt: deleted->timestamp
22+
deletedBy: deleted->user
23+
tenant: created->tenant

_data/graphdl/graph.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
∵ GraphDL: The language is composable and extensible, and can be used to describe Nodes & Edges through Nouns & Verbs
2+
3+
🜉 Graph:
4+
nouns: [Noun.graph]
5+
verbs: [Verb]
6+
roles: [Role]
7+
8+
■ Noun:
9+
_description: A [Noun] is a person, place, thing, or idea.
10+
_subjectOf: [Verb._subject]
11+
_objectOf: [Verb._object]
12+
13+
□ Resource:
14+
_description: A [Resource] is a specific instance of a [Noun]
15+
subjectOf: [Action.subject]
16+
objectOf: [Action.object]
17+
18+
● Verb:
19+
_description: A [Verb] connects a [Noun] to a different [Noun], and is expressed as "[Subject] [Verb] [Object]".
20+
_subject: Noun._subjectOf
21+
_verb: string = _name
22+
_verbPast: string = _name + 'ed'
23+
_verbActive: string = _name + 's'
24+
_verbGerund: string = _name + 'ing'
25+
_object: Noun._objectOf
26+
27+
○ Action:
28+
_description: An [Action] happens when an instance of a [Noun] (i.e. [Resource]) does a [Verb] to a different [Resource].
29+
subject: Resource.subjectOf
30+
verb: Verb.active
31+
object: Resource.objectOf

_data/graphdl/graphdl.yaml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
_icon: 🜉
2+
_name: GraphDL
3+
_description: GraphDL is a graph-based data language for describing data models and data relationships.
4+
5+
🜉 Graph:
6+
nouns: [Noun.graph]
7+
verbs: [Verb.graph]
8+
9+
■ Noun:
10+
_id: string = slugify(_name)
11+
_icon: string | url = ■
12+
_name: string = titleCase(_id)
13+
_type: string = Noun
14+
_description: markdown | html
15+
_source: url | Items
16+
_seed: url | Items
17+
_visibility: anonymous | public | tenant | user | admin = tenant
18+
_access: [read | write]
19+
_onCreate: Function
20+
_onUpdate: Function
21+
_onDelete: Function
22+
_graph: Graph.nouns
23+
_resources: [Resource]
24+
_subjectOf: [Verb._subject]
25+
26+
□ Resource:
27+
_description: A Resource is a specific instance of a Noun
28+
instance: Noun.resources
29+
data: json
30+
subjectOf: [Action.subject]
31+
objectOf: [Action.object]
32+
requests: [Request.resource]
33+
created: Request.create
34+
createdAt: created->timestamp
35+
createdBy: created->user
36+
updated: Request.update
37+
updatedAt: updated->timestamp
38+
updatedBy: updated->user
39+
deleted: Request.delete
40+
deletedAt: deleted->timestamp
41+
deletedBy: deleted->user
42+
tenant: created->tenant
43+
44+
● Verb:
45+
_description: A Verb connects a Noun to a different Noun, and is expressed as "[Subject] [Verb] [Object]".
46+
_subject: Noun._subjectOf
47+
_verb: string = _name
48+
_verbPast: string = _name + 'ed'
49+
_verbActive: string = _name + 's'
50+
_verbGerund: string = _name + 'ing'
51+
_object: Noun._objectOf
52+
53+
○ Action:
54+
_description: An Action happens when an instance of a Noun (i.e. Resource) does a Verb to a different Resource.
55+
subject: Resource.actions
56+
verb: Verb.active
57+
object: Resource.objectOf
58+
59+
▼ Role:
60+
_seed: anonymous | public | tenant | user | admin | owner
61+
graph: Graph.roles
62+
resources: [Resource]
63+
64+
● Verb:

_data/graphdl/ui.yaml

Whitespace-only changes.

_data/graphdl/validation.yaml

Whitespace-only changes.

data.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
layout: null
3+
---
4+
{{ site.data | jsonify }}

0 commit comments

Comments
 (0)