Logic Programming and Theories
People seem to throw around the term "ontology" when discussing artificial intelligence and it is hard to understand precisely what they are referring to. Also, I rarely hear the word "theory" used when discussing artificial intelligence. Not sure why that is.
When trying to understand the capabilities of software to perform reasoning, the first thing to understand is the type of logical reasoning that is being performed.
Logic is a formal system that defines the rules of correct reasoning. Logical reasoning is about arriving at a conclusion in a rigorous way. There two broad categories of logical reasoning: deductive and non-deductive.
Deductive reasoning provides a result that is guaranteed to be certain, therefore the result can be relied upon without doubt and humans need not be involved in a process because of the certainty of deductive reasoning. Non-deductive reasoning, on the other hand, is not certain, meaning it could be correct but it could also be incorrect. Non-deductive reasoning is based on probability. And so non-deductive reasoning approaches must have a human in the loop to deal with that uncertainty. There are three types of non-deductive reasoning: inductive, abductive, and analogy.
Computational logic is a branch of logic and computer science that relates to getting computers to perform correct reasoning. Logic programming languages express facts using machine-readable logical statements, then use software to make sure all the facts are consistent and then draw inferences from these facts. To perform proper logical reasoning, one needs a complete set of logical statements.
That set of logical statements, preferably a complete set of logical statements, is a theory. Theories should be "precise" meaning that they describe an area of knowledge correctly, "consistent" meaning that there are no logical inconsistencies in the theory, and "complete" meaning that they fully represent the area of knowledge given the goals and objectives of the theory.
Modern PROLOG is a tool for representing logical theories using logic programming. DATALOG is a very safe subset of PROLOG.
Theories are better tools than ontologies when you want to maximize reasoning capability because theories have more expressive power than an ontology. A theory can have an ontology included within the theory. But ontologies cannot express everything that a theory can be used to express.
Another graphic shows similar information that is shown above in another way, as a spectrum. Starting on the left you have lightweight knowledge representations and on the right the knowledge representations become more formal and more heavyweight:
Additional Information:
- Datalog vs CLIPS vs Prolog
- One Accountant's Perspective on Knowledge Graphs
- Datalog with knowledge graphs as data products in TerminusDB
- FAIR Principles
- ACID Transactions
- All About Knowledge
- Knowledge Structures
- Professional Knowledge Graphs
- Semantic Graph vs Property Graph
- Using logic programming for theory representation and scientific inference
- Semantic Technologies Value Chain
- Logic and Semantic Networks
- Logic for Problem Solving
- Phylum
- What is a Knowledge Graph? (Mike Dillinger)
- Knowledge Graphs: Key Characteristics
- Ontology Development 101: a Guide to Creating your First Ontology (Stanford University)
Comments
Post a Comment