This blog post is for anyone interested in mathematics and knowledge representation as associated with career progression in today’s changing information eco-system. Mathematics and knowledge representation have a strong common thread; they both require finding good abstractions and simple, elegant solutions, and they both have a foundation in set theory. It could be used as the starting point for an accessible academic research project that deals with the foundation of mathematics and will also develop commercially marketable knowledge representation skills.
Hypothesis: Could the vast body of mathematical knowledge be put into a knowledge graph? Let’s explore, because doing so could provide a searchable data base of mathematical concepts and help identify previously unrecognized connections between concepts.
Every piece of data in a knowledge graph is a semantic triple of the form:
subject – predicate – object.
A brief look through mathematical documentation reveals the frequent appearance of semantic triples of the form:
A implies B, where A and B are statements.
“A implies B” is itself a statement, equivalent to “If A then B”. Definitions, axioms, and theorems can be stated using these if/then statements. The if/then statements build on each other, starting with a foundation of definitions and axioms (statements so fundamental they are made without proof). Furthermore, the predicate “implies” is transitive, meaning an “implies” relationship can be inferred from a chain of other “implies” relationships.
…. hence the possibility of programmatically discovering relationships between statements.
Before speculating further, let’s examine two examples from the field of point set topology, which deals abstractly with concepts like continuity, connectedness, and compactness.
Definition: a collection of sets T is a topology if and only if the following are true:
• the union of sets in any subcollection of T is a member of T
• the intersection of sets in any finite subcollection of T is a member of T.
Problem: Suppose there is a topology T and a set X that satisfies the following condition:
• for every member x of X there is a set Tx in T with x in Tx and Tx a subset of X.
Show that X is a member of T.
Here’s a diagram showing the condition stated in the problem, which holds for every x in X:
Perhaps you can already see what happens if we take the union of all of the Tx’s, one for each x in X.
In English, the solution to the problem is:
The union of all sets Tx is a subset of X because every Tx is a subset of X.
The union of all sets Tx contains X because there is a Tx containing x, for every x in X.
Based on the two statements above, the union of all sets Tx equals X because it is both a subset and a superset of X.
Finally, since every Tx belongs to T, the union of all sets Tx (which is X) is a member of T.
Let’s see how some of this might look in a knowledge graph. According to the definition of topology:
Applying this pattern to the problem above, we find:
While it may seem simple to recognize the sameness of the patterns on the left side of the two diagrams above, what precisely is it that makes the pattern in the problem match the pattern in the definition of topology? The definition applies because both left-hand statements conform to the same graph pattern:
This graph pattern consists of two triple patterns, each of which has the form:
[class of the subject] – predicate – [class or datatype of the object].
We now have the beginnings of a formal ontology based on triple patterns that we have encountered so far. Statements, including complex ones, can be represented using triples.
Note: in the Web Ontology Language, the properties hasSubject, hasPredicate, and hasObject will need to be annotation properties (they can be used in queries but will not be part of automated inference).
Major concepts can be represented as classes:
It’s generally good practice to use classes for major concepts, while using other methods such as categories to model other distinctions needed.
Other triple patterns we have seen describe a variety of relationships between sets and collections of sets, summarized as:
Could the vast body of mathematical knowledge be put into a knowledge graph? Certainly, a substantial amount of it, that which can be expressed as “A implies B”.
However, much remains to be done. For example, we have not looked at how to distinguish between a statement that is asserted to be true versus, for example, a statement that is part of an “if” clause.
Or imagine a math teacher on Monday saying “x + 3 = 7” and on Tuesday saying “x – 8 = 4”. In a knowledge graph, every thing has a unique permanent ID, so if x is 4 on Monday, it is still 4 on Tuesday. Perhaps there is a simple way to bridge the typical mathematical re-use of non-specific names like “x” and the knowledge graph requirement of unique IDs; finding it is left to the reader.
For a good challenge, try stating the Urysohn Lemma using triples, and see how much of its proof can be represented as triples and triple patterns.
To understand modeling options within the Web Ontology Language (OWL), I refer the reader to the book Demystifying OWL for the Enterprise by Michael Uschold. The serious investigator might also want to explore the semantics of rdf* since it explicitly deals with the semantics of statements.
Special thanks to Irina Filitovich for her insights and comments.