Syntax.txt revision 3a611630351f30bdd5b0ec4d812269b37545e5d3
CONCEPT ::= CLASS-ID
| CONCEPT 'and' CONCEPT
| CONCEPT 'or' CONCEPT
| 'not' CONCEPT
| '{' INDIV-ID+ '}
| RELATION 'some' CONCEPT
| RELATION 'has' CONCEPT
| RELATION 'only' CONCEPT
| RELATION 'min' NUMBER
| RELATION 'max' NUMBER
| RELATION 'exactly' NUMBER
| RELATION 'value' INDIV-ID
| RELATION 'onlysome' CONCEPT+
| CONCEPT 'xor' CONCEPT
RELATION ::= CONCEPT
| CONCEPT 'that' CONCEPT
CLASS-ID ::= ID
INDIV-ID ::= ID
OBJECT-PROP-ID ::= ID
DATA-PROP-OD ::= ID
NUMBER ::= DIGIT+
DIGIT ::= 0 | ... | 9
STRING ::= ANYCHAR*
CLASS-PROPERTY ::= 'SubClassOf:' CONCEPT
| 'EquivalentTo:' CONCEPT
| 'DisjointWith:' CONCEPT
TYPE ::= 'Types:' CLASS-ID[,CLASS-ID]*
FATCS ::= 'Facts:' (OBJECT_PROP-ID INDIV-ID | 'not' OBJECT_PROP_ID INDIV-ID)(,
(OBJECT_PROP-ID INDIV-ID | 'not' OBJECT_PROP_ID INDIV-ID))*
IND-REL ::= ('SameAs:' INDIV-ID,[INDIV-ID]*,
'DifferentFrom:' INDIV-ID,[INDIV-ID]*)*
BASIC-ITEM ::= 'Class:' CLASS-ID CLASS-PROPERTY*
| 'ValuePartition:' CLASS-ID '[' CLASS-ID ID+ ']'
| 'Individual:' INDIV-ID TYPE? FACTS? IND-REL
| 'ObjectProperty:' OBJECT-PROP-ID DOMAIN? RANGE?
[PROPS-REL] CHARACTERISTICS*
| 'DataProperty:' DATA-PROP-ID DOMAIN? RANGE?
[PROPS-RELD] 'Characteristics: Functional'?
CHARACTERISTICS ::= 'Functional' | 'InverseFuntional'
PARAPRHASE ::= 'Paraphrase:' ("String" [lang: String])(,"String" [lang: String])* | "String"
DOMAIN ::= 'Domain:' CLASS-ID
RANGE ::= 'Range:' CLASS-ID
PROPS-REL ::= 'SubPropertyOf:' OBJECT-PROP-ID[,OBJECT-PROP-ID]* |
'Inverses:' OBJECT-PROP-ID,[OBJECT-PROP-ID]* |
'Equivalent:' OBJECT-PROP-ID,[OBJECT-PROP-ID]* |
'Disjoint:' OBJECT-PROP-ID,[OBJECT-PROP-ID]*
PROPS-RELD ::= 'SubPropertyOf:' OBJECT-PROP-ID[,OBJECT-PROP-ID]* |
'Inverses:' OBJECT-PROP-ID,[OBJECT-PROP-ID]* |
'Equivalent:' OBJECT-PROP-ID,[OBJECT-PROP-ID]* |
'Disjoint:' OBJECT-PROP-ID,[OBJECT-PROP-ID]*
BASIC-SPEC ::= {}
| BASIC-ITEM+
Comment ::= '%%' String
BlockComment ::= '%{'String'}%'
Offene Frage: wie soll die Signatur aussehen?