Post -- Tavi Truman InKnowWorks 2017

A Better Way to Design, Write, Maintain and Use Software for Complex Systems

More than ever before software applications are more complex and more sophisticated; we need for our applications to run on multiple platforms and on many devices. We need access to data and information, in what now seems to be, on a 24x7 hour bases. We need the ability to take action based on knowledge we have of the world and we depend on software to help us to get things done.

In the past 5 to 7 years we have seen amazing advancements in the area of hardware design, automation and processing speeds; now, we have the Semantic Web, Web 3.0, Machine Learning, Big Data/Linked Data and various forms of Artificial Intelligence - these types of software architectures, solutions and data processing models are now mainstreams. Given such context consumers, researchers, developers and computer scientist have greater access to massive compute power given the advent of Cloud Computing and the affordability of personal computers and mobile computing devices.

In addition to powerful Cloud computing environments the continued importance of Open Source Software powers the growth of APIs making even more software components and technology accessible to client developers; this ecosystem of component and application developers makes it possible push more software at consumers, small, medium and enterprise business entities.

With the Mobile Compute age upon us we see the incredible proliferation of mobile apps making data and information more accessible so that the matriculation of our compute environments is no longer a deterrent to being connected, connecting people, things and organizations.

Are well building better software?

Here at InKnowWorks we have taken the time to ask ourselves, “are we building better software using the current methods and techniques of present day?”; are we smarter, more skilled as software professionals, are we building better software businesses chartered to create and manage software infrastructure and systems; are we designing and coding software solutions that have great value for our customers and is the software a value to own over a long term?

Does it mean that arrival and addition of Linked Data, Machine Learning and AI automatically equates to better software for customers – have we slain the quality and proficiency demons that plague modern day software projects? From the inside looking inward we still experience cost overruns and schedule delays and from the customers point-of-view we are terrified to even ponder and consider what they most think of the software industry as a whole.

Here at InKnowWorks we believe that there is a lot of work left to do and can be done to create better software that’s not late to market and not operating in the red. We think, we are certain and sure that we can create more intuitive, more useful machine-man interactions and software system that learn and adapt to what we need them to be. At InKnowWorks we have been working to re-imagine, re-think and re-define how we build software so that the solutions we create have a very high value multiplier in the areas of ownership, customizations/enhancements and capability and function evolution, sustainability and reliability.

As with anything in life when you set out to improve often times you have develop new habits, new and adjusted behavior, methods and techniques in order to achieve one’s goals. If we want to build better software, we had to re-examine what we are about and how we go about building software systems - we had to make changes and we needed to find a catalyst to power group and personal change and so we chose the happiness and joy of the customers' voice when software we create just works!

Such an achievement is much easier said than done and so here at InKnowWorks are dedicated to building software that is more capable and software with more function in the areas of learning, reasoning, adaptability and sustainability. We know we have to build interaction models that really work for computers and for human-beings; we demand of ourselves to design and engineer software systems that meet the customer where they are then take them on a guided tour to stars and the open universe of discovery and productivity. -- Tavi Truman InKnowWorks 2017


The goal of ontology for the realist is not to describe the concepts in people’s heads. Rather, ontology is an instrument of science, and the ontologist, like the scientist, is interested in terms or labels or codes— all of which are seen as linguistic entities— only insofar as they represent entities in reality. The goal of ontology is to describe and adequately represent those structures of reality that correspond to the general terms used by scientists.

Arp, Robert; Smith, Barry; Spear, Andrew D.. : Building Ontologies with Basic Formal Ontology (MIT Press) (Kindle Locations 530-533). The MIT Press. Kindle Edition.


"We shall envision the mind (or brain) as composed of many partially autonomous "agents"—as a "Society" of smaller minds. ...It is easiest to think about partial states that constrain only agents within a single Division. ...(we suggest) the local mechanisms for resolving conflicts could be the precursors of what we know later as reasoning — useful ways to combine different fragments of knowledge."

-- Marvin Minsky
K-Linesː A Theory of Memory" in Cognitive Science 4 (1980), pp.117-133


For generations, scientists and philosophers have tried to explain ordinary reasoning in terms of logical principles — with virtually no success. I suspect this enterprise failed because it was looking in the wrong direction: common sense works so well not because it is an approximation of logic; logic is only a small part of our great accumulation of different, useful ways to chain things together.

-- Marvin Minsky The Society of Mind (1987) p. 187