You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
1.6 KiB
Markdown
124 lines
1.6 KiB
Markdown
canonical form
|
|
|
|
```json
|
|
{
|
|
"asserts": [
|
|
[
|
|
"temp_id",
|
|
"Person/name",
|
|
"Alice"
|
|
],
|
|
[
|
|
"temp_id",
|
|
"Person/email",
|
|
"alice@example.com"
|
|
],
|
|
[
|
|
{
|
|
"Person/name": "Phillip"
|
|
},
|
|
"Person/friends",
|
|
[
|
|
{
|
|
"Person/name": "Maxwells"
|
|
},
|
|
123332212
|
|
]
|
|
],
|
|
{
|
|
"_id": "tempxxx",
|
|
"Person/name": "Bloopy",
|
|
"Person/email": "b@example.com"
|
|
}
|
|
],
|
|
"retracts": [
|
|
[
|
|
1234567
|
|
],
|
|
[
|
|
{
|
|
"Person/name": "Jack"
|
|
}
|
|
]
|
|
]
|
|
}
|
|
```
|
|
|
|
```json
|
|
{
|
|
"add_attrs": [],
|
|
"amend_attrs": [],
|
|
"retract_attrs": [],
|
|
"commit_msg": "ZAODDK"
|
|
}
|
|
```
|
|
|
|
```json
|
|
{
|
|
"q": {
|
|
"ancestor": [
|
|
"?a",
|
|
"?c"
|
|
]
|
|
},
|
|
"ancestor": [
|
|
{
|
|
"out": [
|
|
"?a",
|
|
"?b"
|
|
],
|
|
"where": [
|
|
[
|
|
"?a",
|
|
"Person/parent",
|
|
"?b"
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"out": [
|
|
"?a",
|
|
"?b"
|
|
],
|
|
"where": [
|
|
[
|
|
"?a",
|
|
"Person/parent",
|
|
"?c"
|
|
],
|
|
{
|
|
"ancestor": [
|
|
"?c",
|
|
"?b"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
```
|
|
attr {
|
|
keyword: Person/parent,
|
|
cardinality: many,
|
|
}.
|
|
|
|
attr {
|
|
keyword: Person/name,
|
|
type: string,
|
|
index: identity
|
|
}.
|
|
|
|
Person { name: "Alice", parent_of: "Bob" }.
|
|
Person { name: "Bob" }.
|
|
|
|
Person/name("eve", "Eve").
|
|
Person/parent_of("eve", "Bob").
|
|
|
|
Ancestor(?a, ?b) :- Person/parent_of(?a, ?b).
|
|
Ancestor(?a, ?b) :- Person/parent_of(?a, ?c),
|
|
Ancestor(?c, ?b).
|
|
|
|
?- Ancestor(Person/name("bob"), ?ancestor).
|
|
``` |