Reading the Description Logic symbols in the OE book whilst having a visual impairment using a screen reader

Click here for the main page of the book


One can, of course, use a regular screen reader for the main text. The main issue we will address on this page is how to handle logic notations so that one can understand what's going on in, at least Chapter 3, rather than "just skipping over it" and winging it on that aspect. Considering ontology engineering from a computer science perspective, that is not really an option. No screen reader could handle Description Logics (DL) symbols when my visually impaired PhD student, Joan Byamugisha, commenced her PhD studies in 2015, so we figured out a way of doing it, which is described on the remainder of the page.

First, we made a mapping table between the DL symbols--treated as a figure each--and their shorthand descriptive meaning, OWL syntax, and LaTeX keyword. The latter was included, as it assists in writing the symbols in scientific papers and the thesis, not just reading them. This table is included here.
LaTeX Symbol Meaning OWL style syntax
\forall ∀ (for all) For All / Each (universal quantification) ObjectAllValuesFrom(OPE CE)
\exists ∃ (there exists/at least one) There exists / at least one (existential quantification) ObjectSomeValuesFrom(OPE CE)
\sqsubseteq ⊑ (subsumption) Is a / is subsumed by SubClassOf(CE1 CE2) or SubObjectPropertyOf(OPE1 OPE2)
\equiv ≡ (equivalence) Is defined by EquivalentClasses(CE1 CE2) or EquivalentObjectProperties( OPE1 OPE2)
\sqcap Π (and) and (conjunction; DL notation) ObjectIntersectionOf(CE1 ...CEn)
\sqcup ⊔ (or) or (disjunction; DL notation) ObjectUnionOf(CE1...CEn)
\neg ¬ (not) Not (logical negation) ObjectComplementOf(CE)
\bot ⊥ (bottom) Empty set owl:Nothing
\top ⊤ (top) The domain owl:Thing
\in ∈ (is member of) Is member of ClassAssertion(CE a)
\geq ≥ (greater than or equal to) Minimum cardinality ObjectMinCardinality( n OPE )
\leq ≤ (less than or equal to) Maximum cardinality ObjectMaxCardinality( n OPE )
\notin ∉ (is not member of) Is not a member of
\models ⊨ (entailment) Entails / models
\cup ∪ (union) Set union
\cap ∩ (intersection) Set intersection
\rightarrow → (implies) Implies

These are not all the DL symbols, but were those that we needed, and some are not DL symbols, but also turned out to be useful. If you want other math symbols, have a look at the UTF-8 Mathematical Operators table that has a longer list of symbols and their names, as does the OWL 2 Direct Semantics page. The same set-up applies: fill the table with what you need, for each relevant column.

Second, a screen reader needed to be trained. That is, to tell it that 'symbol x means y and pronounce it like z'. While there's MS Windows, it turned out that JAWS was preferred. The following lists are Joan's instructions to get it to work in the software.
To add symbols in the JAWS dictionary manager, do the following:
  1. Copy symbol from PDF to a word processor.
  2. Select the pasted symbol in the word processor.
  3. Open the JAWS dictionary manager by pressing Insert + D.
  4. Press the Add button, which should have the focus by default.
  5. You will hear "actual word", referring to the textfield where to type the original word; this should already contain the DL symbol, because it was selected before starting the dictionary manager.
  6. Press the Tab key, listening for "replacement word", a textfield where you type the name of the symbol, what you want to hear with JAWS.
  7. Press the Enter key or tab to the Ok button to close this dialog box, returning to the Add button.
  8. Close this dialog box and select "yes" to save the changes.
VoiceOver reads the following symbols as below:
  1. Subsumption, "square image of or equal to";
  2. Conjunction, "square cap";
  3. Negation, "not sign";
  4. Existential quantification, "there exists";
  5. Universal quantification, "for all";
  6. Maximum cardinality, "less than or equal to";
  7. Minimum cardinality, "greater than or equal to";
  8. Exact cardinality, "equals",
  9. Implication and bi-implication, "right arrow" and "left right arrow" respectively;
  10. Unfortunately, the inverse role and role chain are "white bullet";
  11. Interpretation function is just "I"
It is also possible to change the pronunciation in VoiceOver, using the following:
  1. Open VoiceOver utilities through the Apple menu, System Preferences, Accessibility, VoiceOver, and click the Open VoiceOver Utility button.
  2. Select the Speech utility category, and the Pronunciation tab.
  3. Tab to and click the Add button.
  4. Paste the symbol in the Text text field, and type its pronunciation in the Substitution textfield.
  5. Press the Enter key. To confirm the changes.