This is an archive of an inactive wiki and cannot be modified.

What might an extension declaration (eg for NAF) look like?

This is based on RIF BLD Conditions.

Informally:

Change:

  CONDITION   ::= 'And' ' ( ' CONDITION* ' ) ' |
                  'Or' ' ( ' CONDITION* ' ) ' |
                  'Exists ' Var+ ' ( ' CONDITION ' ) ' |
                  ATOMIC

adding a branch, so it's

  CONDITION   ::= 'And' ' ( ' CONDITION* ' ) ' |
                  'Or' ' ( ' CONDITION* ' ) ' |
                  'Naf' ' ( ' CONDITION ' ) ' |
                  'Exists ' Var+ ' ( ' CONDITION ' ) ' |
                  ATOMIC

with a fallback of [trim-to-fit, major-soundess]

or, in XML:

<Extension>
   <comment>Negation as failure...</comment>
   <semantics>Informally, the "NAF" of a condition is true
   when the condition cannot be proven by this rule engine
   to be true.     The formal semantics are only defined for using
   this extension with BLD (and no other extensions).  They are
   as follows....
    
   </semantics>
   <changeList>
      <addBranch>
         <to>CONDITION</to>               #really URI
         <addedSequence>
            <element>Or</element>         #really URI
            <contentType>CONDITION</conditionType>   # really URI
         </addedSequence>
      </addBranch>
   </changeList>
   <fallback>
      <TrimToFit>      
         <comment>just drop the subtree</comment>
         <impact>
             <type>soundness</type>      # really URI
             <degree>major</degree>      # really URI
         </impact>
      </TrimToFit>
   </fallback>          
</Extension>

Question: where does this go inside a rif:Document?

Question: what does this look like when it's on the web? (is the container a rif:Document, or something else?)

Question: use RDF/XML or custom XML (as above)?

Question: lots of detailed modeling questions, of course. eg what kind of terminology to use (RDFS/OO terms: class/property, grammar terms: production/branch, xml schema terms)

Question: Is this format extensible? How? (Same mechanism, recursively?!?!)