« Understanding and Expressing Logical Systems | Main | Accounting Matrix-based Model Prototype in XBRL »

Brainstorming How to Describe Semantics of a Flexible Yet Finite Logical System

What I am trying to do is explain how a flexible yet finite logical system is represented in machine-readable form such that the rules-based (i.e. not patterns-based) finite logical system is sound, complete, and effective in terms of achieving some specific objective.  I am trying to describe a rules-based system (i.e. expert system) as contrast to a patterns-based system (i.e. machine learning). The system must be consistent, valid, complete, sound, and fully expressed.  The system must have the appropriate precision and coverage.

This description must be understandable by business professionals and by information technology professionals but reconcilable to the work of knowledge engineering professionals.

Here are the inputs:

Input #1: Definition of Ontology and Ontology-like Thing

The following is restated from my enhanced description of an ontology-like thing.

An ontology or ontology-like thing is a model that specifies a rich and flexible description of the important

  • terms: (terminology, concepts, nomenclature; primitive terms, functional terms);
  • relations: (relationships among and between concepts and individuals; is-a relations, has-a relations; other properties);
  • assertions: (sentences distinguishing concepts, refining definitions and relationships; axioms, theorems, restrictions); and
  • world view: (reasoning assumptions, identity assumptions)

relevant to a particular domain or area of interest, which generally allows for some certain specific variability, and as consciously unambiguously and completely as is necessary and practical in order to achieve a specific goal or objective or a range of goals/objectives.  An ontology-like thing enables a community to agree on important common terms for capturing meaning or representing a shared understanding of and knowledge in some domain where flexibility/variability is necessary.

Note that ontologies to not support mathematical computations.

Input #2: Formal Language or Proof Based System

From this blog post and In their book, Algebraic Models for Accounting Systems; Jose Garcia Perez, Savador Cruz Rambad, Robert Nehmer, and Derek J. S. Robinson point out the following (section 1.8 Proof-based Systems, page 23):

"In order to formalize a language, there must be a specification of the signs and symbols of the formal language, as well as a specification of the permissible manipulations of the symbols."

I added to BOLD for emphasis. The authors go on to point out that the first thing you need to do in order to create a formal language, you need to create an "alphabet". An alphabet has six parts (the six parts are in bold): 

  • Constant 
  • Variable 
  • Operations or Functions
  • Predicates
  • Logical Symbols
    • Connectors
      • Implication
      • Disjunction (or)
      • Conjunction (and)
      • Negation (not)
      • Logical equivalence (if and only if)
    • Qualifiers
      • There exists (existential)
      • For all (universal)
  • Punctuation marks (left and right parentheses; comma)

Input #3: First Order Logic and Automated Reasoning in a Nutshell

C. Maria Keet's describes the semantics of a system on page 30 of her book (page 43 in the PDF) An Introduction to Ontology Engineering but she describes those semantics using rather technical terms that are not understandable to a typical business professional, the terms are not consistent with my Input #1 or Input #2; but it does seem to provide all the moving pieces of the puzzle.

Input # 4: Practical Logic for Business Professionals

First in Computer Empathy (on page 64) and then in Artificial Intelligence and Knowledge Engineering in a Nutshell (page 39) I tried to create a succinct summary of logic or what I called a "practical logic for business professionals".  But, I could not tell if I had all the moving pieces of the puzzle.  Anyway, this is a good start but I can now do better.

Input #5: Z-Notation

As I understand it, Z-Notation, which is an ISO standard, is one of the more power languages for representing a logical system.  However, Z-Notation is not machine readable; it is only readable by humans.  Z-Notation uses terms such as:

  • States
  • Dynamics
  • Sets
  • Subjects and predicates
  • Logical negation
  • Logical connectors
  • Quantifiers
The static aspects include:
  • the states it can occupy;
  • the invariant relationships that are maintained as the system moves from state to state.
The dynamic aspects include:
  • the operations that are possible;
  • the relationship between their inputs and outputs;
  • the changes of state that happen.

This reference manual and this video are very helpful in understanding Z-Notation.

Input #6: Book of Proof

The Book of Proof, Chapter 2 - Logic, describes logical systems. Other chapters describes other detailed aspects of logical systems.

Input #7: UML Association/Aggregation/Composition/Generalization

In UML there are three primary types of relations:

  • owners feed their pets; pets please their owners (association, "is-a")
  • a "tail" is part of a dog and also a part of a cat (aggregation, compisition, "part-of")
  • a "cat" is a kind of pet (generlization)

Input #8: Conceptual Graphs

Conceptual Graphs are said to have been introduced by John Sowa in 1984.  Conceptual graphs use the following terminology:

  • Concept: Any distinguisable idea (see slide 15 in the presentation)
  • Relation: A relationship between two or more concepts (see slide 16)
  • Context: A context encloses an entire proposition (see slide 17)
  • Logical operations: Logical operations including AND, NOT, FORALL (see slide 18)

These ideas are the basis for common logic as I understand it.

Input #9: ISO Common Logic and Simple Common Logic

ISO defines Common Logic.  But I see no high-level explanation of describing a logical system, but they do have a lot of "details".

Simple Common Logic (see here and see here) defines a set of term suscincty and also provides UML diagrams for those terms.  But the terms are hard for the average person to understand.

Input #11: ABox, TBox

ABox, TBox and this person uses RBox to define a knowledge baseThis article uses the term "formal specification for conceptulizations". That article also talks about why a world view is necessary to agree on processing of the stuff in the ABox and TBox. This is an excellent article on ABox and TBox and why you need to separate the two.

Input #12: OMG Ontology Definition Metamodel (ODM)

OMG defines an ontology metamodel and reconcilses UML to that model. ODM states (page 31)

An ontology defines the common terms and concepts (meaning) used to describe and represent an area of knowledge. An ontology can range in expressivity from a Taxonomy (knowledge with minimal hierarchy or a parent/child structure), to a Thesaurus (words and synonyms), to a Conceptual Model (with more complex knowledge), to a Logical Theory (with very rich, complex, consistent, and meaningful knowledge).

On page 93, ODM states:
In general, first order logic provides the basis for most commonly used knowledge representation languages, including relational databases; more application domains have been formalized using first order logic than any other formalism – its meta-mathematical properties are thoroughly understood. CL in particular provides a modern form of first order logic that takes advantage of recent insights in some of these application areas including the semantic web.

 

Input #13: John Sowa

John Sowa has a plethora of extremely useful information.

Input #14: OMG's Semantics of Business Vocabulary Rules (SBVR)

OMG provides a standard called Semantics of Business Vocabulary Rules (SBVR).  As I understand it, SBVR is consistent with Common Logic, just as ODM is.

This presentation provides a good overview of SBVR.  There is a connection between SBVR and business rules, see this business rules mantra.  Also, note this business rules manifesto.  Also, note this classic paper on business rules.

This is a nice high-level statement and an example of the level of informatoin I am trying to convey: "Rules build on facts, and facts build on concepts as expressed by terms."

Input #15: Prolog

Prolog defines this terminology

 

OUTPUT: (Trying to make this understandable to business professionals)

This is my first attempt to synthesize all three of these inputs into a succinct explanation of how a finite logical system can be described in machine-readable for such that the information is machine-understandable and is safe, reliable, and predictable and therefore useful:

  • Theory: A theory is a consistent, set of models.  A theory is a finite logical system.
  • Model: A model is a consistent, set of structures.
  • Structure: A structure is a set of terms, relations, and assertions represented using some vocabulary. There are IS-A structures and HAS-PART structures.  (A V-structure consists of a non-empty underlying set ∆ along with an interpretation of V. An interpretation of V assigns an element of ∆ to each constant in V, a function from ∆n to ∆ to each n-ary function in V, and a subset of ∆n to each n-ary relation in V. We say M is a structure if it is a V-structure of some vocabulary V.)
  • Vocabulary: A vocabulary is a set of terms, structures, functions, relations, and constant symbols.
  • Formula: A formula is a statement that is consistent with a vocabulary.  (Let V be a vocabulary. A V-formula is a formula in which every function, relation, and constant is in V. A V-sentence is a V-formula that is a sentence.)
  • Sentence: A sentence is a grammatical unit of a statement.  (Note that not all sentences are statements.)
  • Statement: A statement is a proposition, claim, or assertion of a fact about the universe of discourse.
  • Term: A term is a primitive or complex (functional) ideas that are used within some domain. Terms include constants and variables.  Defining a term is a type of statement.
  • Assertion: An assertion is a statement which distinguishes on term from another term or otherwise refines the definition of or relations between terms.  An assertion is a specification for a permissible manipulation of a structure, vocabulary, model, or formula.  An assertion can take the form of an axiom, a theorem, or a restriction.
    • Axiom: An axiom is a sentence which describes self-evident logical principles related to a domain that no one would argue with or otherwise dispute.
    • Theorem: A theorem is a statement which makes a logical deduction which can be proven by constructing a chain of reasoning by applying axioms or other theorems in the form of IF…THEN statements.
    • Restriction: A restriction is a statement is a special type of axiom or theorem imposed by some authority which restricts, constrains, limits, or imposes some range.

What is becoming quite evident is that what is needed is a model of how to properly construct such a model. Whether you use the XBRL technical syntax, or RDF/OWL/SHACL, or some other technical syntax to represent such a system; the semantics of the system need to good.

If anyone has any input or is aware of an existing understandable explanation of this information please ping me.

(This is the improved version of the above.)

##########################

Framework for Ontology Evaluation

Ontologies, Taxonomies, and Bears --  Oh my! (very good description of what an ontology does)

A History of Set Theory

Logic Gates

Describing Logic Gates Algebraically

Logical systems

FOL and Prolog

Software Requirements and Specifications (See the introduction)

Science and Sanity

Logic and Reasoning

Posted on Tuesday, September 10, 2019 at 08:13AM by Registered CommenterCharlie in | CommentsPost a Comment

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
All HTML will be escaped. Hyperlinks will be created for URLs automatically.