SWiM, Lectora and locutor/knowledge representation

SWiM, Lectora and locutor need ways to represent knowledge from OMDoc or other documents in a more explicit way than XML – in a representation suitable for automated reasoning. The knowledge should be represented in terms of types and predicates/properties defined in the document ontologies of OMDoc or the other supported document formats.

Each of them prefers a different knowledge representation format:
 * SWiM:RDF triples (≙ binary predicates)
 * Lectora:Jess predicates (n-ary)
 * locutor:krHyper predicates (n-ary)

There should be one central library that extracts explicit knowledge from OMDoc, and each application should be able to request explicit knowledge items in its preferred representation.


 * In the final setup of SWiM, Lectora and locutor, locutor would store documents in an MBase. When a new version of a document is checked in, the knowledge would be extracted.
 * SWiM, which currently does that extraction on its own, would request RDF triples from locutor
 * Lectora could either be supplied with extracted knowledge by SWiM, or retrieve it directly from locutor, once SWiM notified Lectora that a certain document has been updated. (locutor could also notify, of course!)