Repository navigation
Expand file tree
/
Copy pathLRM-ReAL-schema.nt
More file actions
92 lines (92 loc) · 24.9 KB
/
Copy pathLRM-ReAL-schema.nt
File metadata and controls
92 lines (92 loc) · 24.9 KB
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
<http://xrce.xerox.com/LRM#LRM-ReAL-schema> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
<http://xrce.xerox.com/LRM#LRM-ReAL-schema> <http://www.w3.org/2002/07/owl#versionInfo> "1.0.1" .
<http://xrce.xerox.com/LRM#LRM-ReAL-schema> <http://www.w3.org/2000/01/rdf-schema#label> "LRM-ReAL-schema"@en .
<http://xrce.xerox.com/LRM#LRM-ReAL-schema> <http://www.w3.org/2000/01/rdf-schema#comment> "used to specify the dynamic behavior to maintain the consistency of the LRM representations (thus allowing the interpretion of changes)"@en .
<http://xrce.xerox.com/LRM#LRM-ReAL-schema> <http://www.w3.org/2000/01/rdf-schema#comment> "see most recent information on ReAL in PERICLES deliverable D3.4"@en .
<http://xrce.xerox.com/LRM#LRM-ReAL-schema> <http://www.w3.org/2000/01/rdf-schema#comment> " \n ReAL semantic (informal explaination):\n \n Let us say that T is a triple pattern(eg T = rdf:type(?s, owl:Class) )\n \n T alone is TRUE if one or several matching instances of T can be found directly in the store ; \n \n -T same than T alone, but withdraw from the store all occurences matching T; FALSE if no occurence of T can be found in the store,\n \n +T means add T in the store (the triple pattern must be completely instanciated: all variables must be bound when the operation occurs); is false if T is already in the store \n \n ++T is equivalent to (+T OR TRUE) : like +T, but does not fail if T is already in the store\n \n !T is true if the triple pattern T can be solved by inference in the current context(through the underlying backward chaining mechanism)\n \n brackets [A] denotes an transactional execution of action A: \n if all binding of A (solution), the undertaken triple addition/deletion actions become effective in the current store; transactional actions may be embedded\n \n all instuctions can be articulated through order-sensitive and stream-oriented low-level logical connectors (AND, S-UNION, P-UNION, NO, OR, ONE, REPEAT):\n AND is an ordered product connector: \n (T1 AND T2) returns all bindings for b(T2) for every binding b found when evaluating T1; therefore T2 is (potentially) dependent on T1\n (T1 AND T2) will fail if the evaluation of T1 fails, or if all evaluations of b(T2) fails for all binding b returned by evaluating T1\n S-UNION is an ordered inclusive-or connector: \n (T1 S-UNION T2) returns all bindings for T1 and all bindings for T2; T2 is not dependent on T1 (T2 will not be affected by T1 bindings)\n\t\t\tSolution from T1 are propagated before solutions from T2 (Sequential)\n P-UNION is an unordered (parallel) inclusive-or connector\n (T1 P-UNION T2) returns all bindings for T1 and all bindings for T2; T2 is not dependent on T1 (T2 will not be affected by T1 bindings)\n\t\t\tNo particular order is defined on solutions (Parallel)\n NO is a monadic connector:\n (NO T) return an empty binding if T has no solution; fails otherwise\n OR is an ordered exclusive-or connector: \n (T1 OR T2) returns all bindings for T1, or all bindings for T2 if T1 has no solution (~ T1 evaluation fails)\n FIRST, LAST are monadic connectors:\n (FIRST T) return the first binding found for T ; fails if T fails\n (LAST T) return the last binding found for T ; fails if T fails\n REPEAT is a monadic connector:\n (REPEAT T) returns an empty binding if the evaluation of T return one or more solutions (all solutions for T will be explored) ; fails if T fails \n \n example: \n \n rdf:type(?s, lrm:Resource) AND $TIMESTAMP(?c) AND +time:modified(?s, ?c) \n \n when evaluated in the store { ex:a1 rdf:type lrm:Resource . ex:a2 rdf:type lrm:Resource .}\n \n will succeed and change the store into (time is only indicative): \n { \n ex:a1 rdf:type lrm:Resource; time:modified \"2016-02-26T18:15:03.000Z\" . \n ex:a2 rdf:type lrm:Resource; time:modified \"2016-02-26T18:15:03.001Z\" .\n } \n "@en .
<http://xrce.xerox.com/STX#BTree> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2000/01/rdf-schema#Datatype> .
<http://xrce.xerox.com/STX#btree> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
<http://xrce.xerox.com/STX#btree> <http://www.w3.org/2000/01/rdf-schema#domain> <http://www.w3.org/2000/01/rdf-schema#Datatype> .
<http://xrce.xerox.com/STX#btree> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/STX#Syntax> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2000/01/rdf-schema#Datatype> .
<http://xrce.xerox.com/STX#grammar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
<http://xrce.xerox.com/STX#grammar> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/STX#Syntax> .
<http://xrce.xerox.com/STX#grammar> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/STX#Grammar> .
<http://xrce.xerox.com/STX#axiom> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
<http://xrce.xerox.com/STX#axiom> <http://www.w3.org/2000/01/rdf-schema#subPropertyOf> <http://xrce.xerox.com/STX#provides> .
<http://xrce.xerox.com/STX#axiom> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/STX#Syntax> .
<http://xrce.xerox.com/STX#axiom> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/STX#requires> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
<http://xrce.xerox.com/STX#requires> <http://www.w3.org/2000/01/rdf-schema#comment> "G stx:requires 'A' makes use of syntactic rules with shape 'A(?)\u2192 ... ' or, in binary shape, all rules matching [STX [A ?] ?]"@en .
<http://xrce.xerox.com/STX#requires> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/STX#Syntax> .
<http://xrce.xerox.com/STX#requires> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/STX#provides> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
<http://xrce.xerox.com/STX#provides> <http://www.w3.org/2000/01/rdf-schema#comment> "G stx:provides 'A' makes visible all syntactic rules with shape 'A(?)\u2192 ... ' or, in binary shape, all rules matching [STX [A ?] ?]"@en .
<http://xrce.xerox.com/STX#provides> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/STX#Syntax> .
<http://xrce.xerox.com/STX#provides> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/STX#example> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
<http://xrce.xerox.com/STX#example> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/STX#Syntax> .
<http://xrce.xerox.com/STX#example> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
<http://xrce.xerox.com/STX#Grammar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xrce.xerox.com/STX#Syntax> .
<http://xrce.xerox.com/STX#Grammar> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2000/01/rdf-schema#Datatype> .
<http://xrce.xerox.com/STX#Grammar> <http://xrce.xerox.com/STX#btree> " [STX [G [[STX ?x ] ?y] ] Space [STX ?x] Space \"\n\" [G ?y] NIL]"^^<http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/STX#Grammar> <http://xrce.xerox.com/STX#btree> " [STX [G NIL] Space NIL]"^^<http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/STX#Grammar> <http://xrce.xerox.com/STX#btree> " [STX [RegS ?x] [REGEX [ \"([^/]|(?<=\\/) )+\" ?x] ] NIL]"^^<http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/STX#Grammar> <http://xrce.xerox.com/STX#axiom> "G(?)"^^<http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/STX#Grammar> <http://xrce.xerox.com/STX#grammar> "\n G([[STX ?x ] ?y] ) \u2192 Space STX(?x) Space '\\n' G(?y)\n G(NIL) \u2192 Space\n STX([[LHS ?x ] ?y] ) \u2192 LHS(?x) Space '\u2192' Space RHS(?y)\n LHS(?x) \u2192 GCall(?x) \n LHS(?x) \u2192 Token(?x) \n GCall([APPLY [ ?nm ?x ] ] ) \u2192 Token(?nm) '(' Space Term(?x)Space ')' \n Token(?nm) \u2192 / [A-Za-z][A-Za-z_0-9]*/ : ?nm\n Term([?x ?y] ) \u2192 '[' Space Term(?x) LTerm(?y) Space ']'\n LTerm([?x ?y] ) \u2192 Space Term(?x) LTerm(?y)\n LTerm(?x ) \u2192 Space Term(?x) \n Term(?x ) \u2192 Token(?x)\n Term(?x ) \u2192 /'[^']'/ : ?x\n Term([VAR ?x] ) \u2192 '?' Token(?x)\n RHS([?x ?y] ) \u2192 Item(?x)Space RHS(?y)\n RHS(NIL) \u2192 \n Item([STRING ?x] ) \u2192 /'[^']'/ : ?x\n Item([REGEX [?x ?y]] ) \u2192 '/' RegS(?x)'/' Space Matches(?y)\n RegS(?x) \u2192 / ([^\\/]|(?<=\\\\/))*/ : ?x\n Matches([VAR ?x]) \u2192 ':' Space Term([VAR ?x])\n Matches(NIL) \u2192 \n Space \u2192 /\\s+/\n Space \u2192 \n "^^<http://xrce.xerox.com/STX#Grammar> .
<http://xrce.xerox.com/ReAL#Code> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xrce.xerox.com/STX#Syntax> .
<http://xrce.xerox.com/ReAL#Code> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2000/01/rdf-schema#Datatype> .
<http://xrce.xerox.com/ReAL#Code> <http://www.w3.org/2000/01/rdf-schema#label> "ReAL-code" .
<http://xrce.xerox.com/ReAL#Code> <http://www.w3.org/2000/01/rdf-schema#comment> "Resource oriented Action Language" .
<http://xrce.xerox.com/ReAL#Code> <http://www.w3.org/2000/01/rdf-schema#comment> "defines the syntactic structure of ReAL language"@en .
<http://xrce.xerox.com/ReAL#Code> <http://xrce.xerox.com/STX#axiom> "ReAL(?)"^^<http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/ReAL#Code> <http://xrce.xerox.com/STX#provides> "Symbol(?)"^^<http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/ReAL#Code> <http://xrce.xerox.com/STX#provides> "Pattern(?)"^^<http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/ReAL#Code> <http://xrce.xerox.com/STX#provides> "Iri(?)"^^<http://xrce.xerox.com/STX#BTree> .
<http://xrce.xerox.com/ReAL#Code> <http://www.w3.org/2000/01/rdf-schema#comment> "The following grammar is like Definite Clause Grammars (DCGs) but using a different parsing algorithm; the special token '_' stands for optional spaces and, for instance, /\\d+/ stands for a pattern matching expression whereas /\\d+/:?z allows to get the matching expression into the z variable."@en .
<http://xrce.xerox.com/ReAL#Code> <http://xrce.xerox.com/STX#grammar> "\n ReAL( ?x ) \u2192 _ RUnion(?x) _\n RUnion( $UNION( ?x ?y) ] ) \u2192 ROr(?x) _ 'UNION' _ RUnion(?y)\n RUnion( $P-UNION( ?x ?y) ] ) \u2192 ROr(?x) _ 'P-UNION' _ RUnion(?y)\n RUnion( ?x ) \u2192 ROr(?x) \n ROr( $OR( ?x ?y) ) \u2192 RAnd(?x) _ 'OR' _ ROr(?y)\n ROr( ?x ) \u2192 RAnd(?x) \n RAnd( $AND(?x ?y) ) \u2192 RBase(?x) _ 'AND' _ RAnd(?y)\n RAnd( ?x ) \u2192 RBase(?x) \n RBase( $TRANSACTION(?x) ) \u2192 '[' ReAL(?x) ']' \n RBase( $SANDBOX(?x) ) \u2192 '{' ReAL(?x) '}' \n RBase( On( ?g ?x) ) \u2192 'ON' _ Pattern(?g) _ 'DO' ReAL(?x) \n RBase( In( ?g ?x) ) \u2192 'IN' _ Pattern(?g) _ 'DO' ReAL(?x) \n RBase( $NO( ?x) ) \u2192 'NO' ReAL(?x)\n RBase( $MAX(1, ?x) ) \u2192 'FIRST' ReAL(?x)\n RBase( $LAST( ?x) ) \u2192 'LAST' ReAL(?x)\n\t\t\t\t\t\n RBase( $REPEAT(? ?x) ) \u2192 'REPEAT' ReAL(?x)\n RBase( $REPEAT( ?n ?x) ) \u2192 'REPEAT' _ Integer(?n) eAL(?x)\n RBase( $REPEAT( ?count ?x) ) \u2192 'REPEAT' _ Var(?count) ReAL(?x)\n RBase( $MAX(1, $P-UNION( $REPEAT( ?, ?x) $SELECT(?,?y) )) ) \u2192 'REPEAT' ReAL(?x) 'UNTIL' _ ReAL(?y)\n\n RBase( $AND( ?x $PAUSE( ?duration)) ) \u2192 'WAIT' _ Duration(?x ?duration)\n RBase( $AND( ?x $PAUSE( ?duration)) ) \u2192 'WAIT' ReAL(?A) 'AT' _ 'MOST' _ Duration(?x ?duration)\n RBase( $AND( ?x $PAUSE( ?duration)) ) \u2192 'WAIT' ReAL(?A) 'AT' _ 'LEAST' _ Duration(?x ?duration)\n\t\t\t\t\t\n\t\t Duration( $AND(?x $MUL(60, ?duration, ?d) ) , ?d) \u2192 Expr( ?x, ?duration ) _ 'minutes'\n Duration( $AND( ?x $MUL(3600, ?duration, ?d) ) , ?d) \u2192 Expr( ?x, ?duration ) _ 'hours'\n Duration( $AND( ?x $MUL(86400, ?duration, ?d) ) , ?d ) \u2192 Expr( ?x, ?duration ) _ 'days'\n\t\t\n\t\t Expr( ?x ?r) \u2192 Add(?x ?r)\n\t\t Add( $AND( ?x ?y $ADD(?r ?rr ?rrr) ) , ?rrr ) \u2192 Sub(?x ?r) _ '+' _ Add(?y, ?rr) \n\t\t Add( ?x ?y) \u2192 Sub( ?x ?y) \n\t\t\t\n\t\t Sub( $AND(?x ?y $SUB(?r ?rr ?rrr)) , ?rrr ) \u2192 Sub(?x, ?r) _ '-' _ Mul(?y, ?rr) \n\t\t Sub( ?x ?y) \u2192 Mul(?x ?y ) \n\t\t\t\n\t\t Mul( $AND(?x ?y $MUL(?r ?rr ?rrr) ) , ?rrr ) \u2192 Div(?x, ?r) _ '*' _ Mul(?y, ?rr) \n\t\t Mul( ?x ?y) \u2192 Div(?x ?y) \n\t\t\t\n\t\t Div( $AND(?x ?y $DIV(?r ?rr ?rrr) ) , ?rrr ) \u2192 Par(?x, ?r) _ '/' _ Div(?y, ?rr) \n\t\t Div( ?x ?y) \u2192 Par(?x ?y) \n\t\t\t\n\t\t Par( ?x ?y) \u2192 '(' _ Expr(?x ?y) _ ')'\n\t\t Par( $MATCH(?x ?r) ?r) \u2192 Item(?x) \n\t\t\t\n RBase( $COUNT(?num ?x) ) \u2192 'COUNT' _ Iteration([EQ ?num]) ReAL(?x)\n RBase( $HIDE(?C, $AND( $COUNT(?C ?x) $LT(?C ?num)) ) \u2192 'COUNT' _ Iteration([LT ?num]) 'TIMES' ReAL(?x) { $RANDOM-IRI(\"C\", ?C) }\n RBase( $HIDE(?C, $AND( $COUNT(?C ?x) $LE(?C ?num)) ) \u2192 'COUNT' _ Iteration([LE ?num]) 'TIMES' ReAL(?x) { $RANDOM-IRI(\"C\", ?C) }\n RBase( $HIDE(?C, $AND( $COUNT(?C ?x) $LT( ?num ?C)) ) \u2192 'COUNT' _ Iteration([GT ?num]) 'TIMES' ReAL(?x) { $RANDOM-IRI(\"C\", ?C) }\n RBase( $HIDE(?C, $AND( $COUNT(?C ?x) $LE( ?num ?C)) ) \u2192 'COUNT' _ Iteration([GE ?num]) 'TIMES' ReAL(?x) { $RANDOM-IRI(\"C\", ?C) }\n\t\t\t\t\t\n Iteration([?q ?x] ) \u2192 Qualifier(?q) Integer(?x)\n Iteration([?q ?x] ) \u2192 Qualifier(?q) Var(?x)\n\t\t\t\t\t\n Qualifier(EQ) \u2192 'EXACTLY' _ \n Qualifier(EQ) \u2192 \n Qualifier(LE) \u2192 Comp(LE)\n Qualifier(LT) \u2192 'STRICTLY' Comp(LE)\n Qualifier(GE) \u2192 Comp(GE)\n Qualifier(GT) \u2192 Comp(Strict(GE))\n Qualifier(GE) \u2192 Comp(GE)\n Qualifier(Strict(?x)) \u2192 'STRICTLY' _ Comp(?x)\n\t\t\t\t\t\n Comp(LE) \u2192 'LESS THAN' _ \n Comp(GE) \u2192 'GREATER THAN' _ \n\t\t\t\t\t\n RBase(?x ) \u2192 '(' ReAL(?x) ')' \n RBase( $TRUE ) \u2192 'TRUE' \n RBase( $NO($TRUE) ) \u2192 'FALSE' \n RBase(?x) \u2192 RAction(?x) \n\t\t\t\t\t\n RAction( $READ( ?x) ) \u2192 RTriple(?x) \n RAction( $PUT( ?x)) \u2192 '+' RTriple(?x) \n RAction( $OR( $PUT(?x) $TRUE)) \u2192 '++' RTriple(?x) \n RAction( $GET(?x) ) \u2192 '-' RTriple(?x) \n RAction( Infer( ?x,auto) ) \u2192 '!' RTriple(?x) \n RAction( FUN(?i ?in ?out) ) \u2192 'CALL' _ Iri(?i) '(' _ BList(?in) _ '>>' _ BList(?out) _ ')' \n RAction( FUN(?i ?in {}) ) \u2192 'CALL' _ Iri(?i) _ '(' _ BList(?in) _ ')' \n RAction( $SPAWN(?x) ) \u2192 'SPAWN' ReAL(?x) \n\t\t\t\t\t\n RTriple( ?p(?s, ?o) ) \u2192 Pattern(?p) '(' Pattern(?s) Comma Item(?o) _ ')'\n RTriple( ?p(?s, ?btree) ) \u2192 Pattern(?p) '(' _ Pattern(?s) Comma BTree(?btree) _ ')'\n RTriple( ?p (?s , ?o | ?datatype) ) \u2192 Pattern(?p) '(' _ Pattern(?s) Comma Item(?o) '^^' Pattern(?datatype) ')'\n RTriple( ?p (?s , ?o | ?lang) ) \u2192 Pattern(?p) '(' _ Pattern(?s) Comma Item(?o) '@' Var(?lang) ')'\n RTriple( ?p (?s , ?o | ?lang) ) \u2192 Pattern(?p) '(' _ Pattern(?s) Comma Item(?o) '@' Symbol(?lang) ')'\n\t\t\t\t\t\n Item(?x) \u2192 Pattern(?x)\n Item(?x) \u2192 Atom(?x)\n Pattern(?x) \u2192 Iri(?x)\n Pattern(?x) \u2192 Var(?x)\n Iri(?x) \u2192 Symbol(?prefix) ':' Symbol(?suffix) { $DOWN([IRI ?prefix ?suffix], ?x) }\n Iri(?x) \u2192 '<' /[^\\s><]+/ : ?s '>' { $DOWN([IRI ?s ''], ?x) }\n Symbol(?x) \u2192 /[A-Za-z]\\w+/ :?symb { $DOWN([SYMBOL ?symb], ?x) }\n Atom(?x) \u2192 Symbol(?x)\n Atom(?x) \u2192 String(?x)\n Atom(?x) \u2192 Number(?x) \n String(?x) \u2192 '\"' /[^\"]*/ : ?x '\"'\n String(?x) \u2192 \"'\" /[^']*/ : ?x \"'\"\n Number(?x) \u2192 Integer(?x)\n Number(?x) \u2192 Decimal(?x) \n Integer(?x) \u2192 /\\d+/ : ?s { $DOWN([INTEGER ?s], ?x)}\n Decimal(?x) \u2192 /\\d+/ : ?int '.' /\\d+/ : ?frac { $DOWN([DECIMAL ?int ?frac], ?x)}\n\t\t Comma() \u2192 _ ',' _\n BTree([?x ?y]) \u2192 '[ ' _ BItem(?x) _ BTreeList(?y) _ ']' \n BTree([LIST ?x ]) \u2192 '{ ' _ BList(?x) _ '}' \n BTreeList([?x ?y]) \u2192 BItem(?x) _ BTreeList(?y) \n BTreeList(?x ) \u2192 BItem(?x)\n BList([?x ?y]) \u2192 BItem(?x) Comma BList(?y) \n BList([?x ?y]) \u2192 BItem(?x) _ '|' _ BItem(?y) \n BList([?x NIL] ) \u2192 BItem(?x)\n BItem(?x) \u2192 BTree(?x) \n BItem(?x) \u2192 Item(?x)\n "^^<http://xrce.xerox.com/STX#Grammar> .
<http://xrce.xerox.com/ReAL#Signature> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xrce.xerox.com/STX#Syntax> .
<http://xrce.xerox.com/ReAL#Signature> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2000/01/rdf-schema#Datatype> .
<http://xrce.xerox.com/ReAL#Signature> <http://www.w3.org/2000/01/rdf-schema#label> "ReAL-signature" .
<http://xrce.xerox.com/ReAL#Signature> <http://www.w3.org/2000/01/rdf-schema#comment> "used to specify the signature of lrm:Action objects" .
<http://xrce.xerox.com/ReAL#Signature> <http://xrce.xerox.com/STX#grammar> "\n ReALSignature([LIST ?x]) \u2192 Space SList(?x) Space\n SList ([?x ?y]) \u2192 Symbol(?x) Space ',' Space SList(?y) \n SList ([?x NIL]) \u2192 Symbol(?x)\n Symbol(?x) \u2192 /[A-Za-z]\\w+/ :?symb { DOWN([SYMBOL ?symb], ?x) }\n " .
<http://xrce.xerox.com/ReAL#Signature> <http://xrce.xerox.com/STX#example> "x" .
<http://xrce.xerox.com/ReAL#Signature> <http://xrce.xerox.com/STX#example> "x, y, z" .
<http://xrce.xerox.com/ReAL#Specification> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
<http://xrce.xerox.com/ReAL#Specification> <http://www.w3.org/2000/01/rdf-schema#label> "real:Specification"@en .
<http://xrce.xerox.com/ReAL#Specification> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://xrce.xerox.com/LRM#Specification> .
<http://xrce.xerox.com/ReAL#Specification> <http://www.w3.org/2000/01/rdf-schema#comment> "Used to characterizes the behavior of ReAL code"@en .
<http://xrce.xerox.com/ReAL#invariant> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
<http://xrce.xerox.com/ReAL#invariant> <http://www.w3.org/2000/01/rdf-schema#subPropertyOf> <http://xrce.xerox.com/LRM#invariant> .
<http://xrce.xerox.com/ReAL#invariant> <http://www.w3.org/2000/01/rdf-schema#comment> "should hold before and after the chunk of ReAL code is executed "@en .
<http://xrce.xerox.com/ReAL#invariant> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/ReAL#Template> .
<http://xrce.xerox.com/ReAL#invariant> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/ReAL#Specification> .
<http://xrce.xerox.com/ReAL#before> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
<http://xrce.xerox.com/ReAL#before> <http://www.w3.org/2000/01/rdf-schema#subPropertyOf> <http://xrce.xerox.com/LRM#specifiedBy> .
<http://xrce.xerox.com/ReAL#before> <http://www.w3.org/2000/01/rdf-schema#comment> "required to hold before the chunk of ReAL code is executed (similar to the 'before' assertion of Hoare Logic)"@en .
<http://xrce.xerox.com/ReAL#before> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <https://en.wikipedia.org/wiki/Hoare_logic> .
<http://xrce.xerox.com/ReAL#before> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/ReAL#Template> .
<http://xrce.xerox.com/ReAL#before> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/ReAL#Specification> .
<http://xrce.xerox.com/ReAL#after> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
<http://xrce.xerox.com/ReAL#after> <http://www.w3.org/2000/01/rdf-schema#subPropertyOf> <http://xrce.xerox.com/LRM#specifiedBy> .
<http://xrce.xerox.com/ReAL#after> <http://www.w3.org/2000/01/rdf-schema#comment> "should always hold after the chunk of ReAL code is executed, assuming that real:before (if any) holds, as well as does the invariant (similar to the 'after' assertion of Hoare Logic)"@en .
<http://xrce.xerox.com/ReAL#after> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <https://en.wikipedia.org/wiki/Hoare_logic> .
<http://xrce.xerox.com/ReAL#after> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/ReAL#Template> .
<http://xrce.xerox.com/ReAL#after> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/ReAL#Specification> .
<http://xrce.xerox.com/ReAL#Template> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
<http://xrce.xerox.com/ReAL#Template> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://xrce.xerox.com/LRM#Description> .
<http://xrce.xerox.com/ReAL#Template> <http://www.w3.org/2000/01/rdf-schema#comment> "Used to define a block of ReAL instructions. Open variables, if any may be specified using the open-variables property ."@en .
<http://xrce.xerox.com/ReAL#variables> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
<http://xrce.xerox.com/ReAL#variables> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
<http://xrce.xerox.com/ReAL#variables> <http://www.w3.org/2000/01/rdf-schema#comment> "used to specify explicitly the open variables of the ReAL code template" .
<http://xrce.xerox.com/ReAL#variables> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/ReAL#Template> .
<http://xrce.xerox.com/ReAL#variables> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/ReAL#Signature> .
<http://xrce.xerox.com/ReAL#code> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
<http://xrce.xerox.com/ReAL#code> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#FunctionalProperty> .
<http://xrce.xerox.com/ReAL#code> <http://www.w3.org/2000/01/rdf-schema#comment> "ReAL code to be used as a substitution pattern" .
<http://xrce.xerox.com/ReAL#code> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/ReAL#Template> .
<http://xrce.xerox.com/ReAL#code> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/ReAL#Code> .
<http://xrce.xerox.com/ReAL#verifies> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
<http://xrce.xerox.com/ReAL#verifies> <http://www.w3.org/2000/01/rdf-schema#subPropertyOf> <http://xrce.xerox.com/LRM#specifiedBy> .
<http://xrce.xerox.com/ReAL#verifies> <http://www.w3.org/2000/01/rdf-schema#domain> <http://xrce.xerox.com/ReAL#Template> .
<http://xrce.xerox.com/ReAL#verifies> <http://www.w3.org/2000/01/rdf-schema#range> <http://xrce.xerox.com/ReAL#Specification> .