Release of PSOATransRun 1.5
From RuleML Wiki
The graph-relational language PSOA RuleML employs Object IDentifiers (OIDs) as nodes described by atoms (basic atomic formulas) via slots (for graphs) and tuples (for relations). Its reference implementation PSOATransRun transforms PSOA RuleML presentation syntax for execution in TPTP or Prolog, employing normalization steps including objectification (OID generation for oidless atoms) as an enabler of describution (distribution of an OID over all slot and tuple descriptors of its atom). This release of PSOATransRun 1.5 provides embedded objectification, which generates OIDs for oidless embedded atoms ('subobjects') where required by subsequent unnesting. In earlier PSOATransRun versions, users needed to create OIDs via a "#" infix for all embedded atoms. There now is the option of keeping any embedded atom oidless by indicating its predicate via a "#" prefix. PSOATransRun 1.5 implements syntactic recognition of "#" prefixes for embedded and top-level atoms. Its main contribution is realizing embedded objectification (embobj) for recognized oidless embedded atoms, complementing existing (top-level) objectification. Embedded objectification is ground-fact-differentiated in that differentiated objectification (via fresh constants from _1, _2, ...) is employed for oidless embedded atoms in ground (variableless) facts while undifferentiated objectification (via existential quantifiers) is employed for all other oidless embedded atoms. PSOATransRun 1.5 thus covers the embobj step of PSOA RuleML 1.03. For more information, see simple comparative example (store-predicate), syntactic examples (Presentation_Syntax_Long_and_Short_Forms), simple PSOATransRun-readable examples (embobj_ex_0-KB.psoa), advanced PSOATransRun-readable example (store_franchise-KB.psoa store_franchise-KB.psoa), implementation/README (transrun/1.5/local/).