SWiM/services/auto-completion

Auto-completion in the SWiM OMDoc/XML source editor.

Setting
source editing mode

Ontology-based
… for link attribute values.

Note: this could be one of the first services to be actually implemented. It is truly ontology-based, fairly easy to implement (except for the GUI), and it's easy to test its productivity in an isolated way.


 * Test case:
 * Task: create links to some already-existing pages
 * Measure the time saving.

Input

 * the current XML element (context is not needed here), e.g. <proof for="a_ — more exactly:
 * element name e
 * attribute name a
 * attribute value v (possibly incomplete)

Output

 * a list of all matching link targets w.r.t. the ontology. Here: all assertions starting with "a".

Reasoning needed

 * on ontology level: ask for range of link type predicate
 * on instance level: simple RDF triple queries
 * But: need a mapping from XML to RDF (or from XML schema to OWL, resp.) to make it scalable!

Syntactical
… for element/attribute names.

(Do that later, as it is not so interesting w.r.t. the semantic web. It will also be hard to implement because we need to parse the XML schema of OMDoc, if it shall not just be a hack.)

Input

 * the current XML context (elements around the cursor position)
 * optional: the start of the current element/attribute up to the cursor position (e.g. <p_ or <proof f_)

Output

 * a list of allowed element or attribute names (to be displayed as popup)