@ttnjal Thanks Josef! If you would like to join a community that is active in applied knowledge representation, please consider joining/attending IntelliFest http://intellifest.org . Our next conference is this Oct 7-11. Our focus is all about the practial use of reasoning technologies and applied AI. Cheers, Jason

This presentation is one of the clearest and most useful introductions that I ever found over the web about why we should use ontologies and how they can resuscitate our interest on knowledge-based systems.

OPENING REMARKS ============= I’d like to thank James Owens for asking me to speak today – it is an honor and a privilege to present to all of you. Many of the topics that you all will be attending over these three days will be very specific, technical talks. Some will paint the future with a broad brush, others will detail the latest new thing. What I’m hoping that you will take away in the VERY short hour that I have with you is a sense of awareness and fundamental understanding of the most basic problem that you will face in building any kind of rule-based system. I am not pitching anything new or original – just a practical way to help alleviate that problem. Along the way, I will try to make the business case for this approach, but the talk will mostly be a high-level technical survey. At the risk of being cliché, it is true that people don’t plan to fail but rather they fail to plan. And we have all heard the statistics that some incredible percentage of software projects either fail outright or are at least challenged . While it is generally accepted that this is bad, I did see an article by Anthony Berglas on TheServerSide.com this month that argued that it was actually good for the economy. http://berglas.org/Articles/ImportantThatSoftwareFails/ImportantThatSoftwareFails.html In any case, for sake of argument, let’s grant that a disproportionately high percentage of software development projects fail outright. Common sense says that the more complex the project, the more opportunities there are for things to go wrong, hence the risk of failure is greater. Expert systems are arguably more complex than your average web app, therefore their risk of failure is commensurately higher. As developers and architects, we are approach this problem from the architectural and design perspectives. We’ll assume in our talk today that we have the authority to effect and enforce change at this level. So the questions is… how can you mitigate the risk of failure of your expert systems projects from an architectural and design perspective? Let’s move on…

Transcript

1.
The Role of Ontology in Modern Expert Systems Development Jason Morris Morris Technical Solutions LLC

Designed with the latest OOP concepts , RAD/XP practices, and HCI factors.

8.
The AI Value Proposition Why care about AI/ expert systems at all? By reasoning about information using applied knowledge, expert systems help stakeholders make timely and reliable decisions. => Modern businesses need to make complex decisions. 1 Complex decisions require lots of information and applied knowledge. 2 Such decisions must be made quickly and reliably. 3

9.
Market Drivers & Enablers What is driving the apparent renaissance in AI? An incubator for new technologies and a source for new markets – a “killer-app”! 3 INTERNET Dramatic increases in CPU speed, RAM capacity, storage, etc. 1 Hardware Power Mass-production has lowered technology costs. 2 Hardware Cost

Typically in ES development, the first design decision is how knowledge will be represented in the system. Ontologies provide:

18.
Parlez-Vous AI? “ Instances are the actual data in your knowledge base … If you have to make changes to your class or slot structure after instances have been entered, you may lose some information .” Anything odd about this? From a popular ontology editor help file…

19.
Noise Defined as the universe of all possible invariants … … an endless sea of qualitative and quantitative values without a cognitive pattern .

20.
Data Noise is filtered and sampled to separate useful measurements (facts) and to form data. Thus, in a sense, data is created via our cognitive attention.

When we observe the outcomes of those decisions, we can uncover new data or information, and generate new knowledge.

Knowledge comes in two main types …

23.
Declarative Knowledge Rules We can represent them by asserting a fact or facts when certain other facts are present. IF fact(s) THEN assert fact(s) These represent the invariants that can be inferred when one or more invariants hold. Context Invariant(s) Invariants(s) =>

24.
Procedural Knowledge Rules These represent the actions to take when certain invariants hold. Context We can represent them by calling functions when certain facts are present. IF fact(s) THEN call function foo Invariant(s) Actions(s) =>

25.
Declarative vs. Procedural An example of declarative knowledge. IF (instance-of ?x THING) (composed-of ?x CLAY) (composed-of ?x SAND) (composed-of ?x SILT) THEN (instance-of ?x SOIL) THEN we can compute the soil property IF we have the soil property values An example of procedural knowledge.

26.
Ontological Commitment “ An agreement to use a vocabulary (i.e., ask queries and make assertions) in a way that is consistent (but not complete) with respect to the theory specified by an ontology … An agent commits to an ontology if its observable actions are consistent with the definitions in the ontology.” – Tom Gruber

45.
Ontology Bifurcation Doing this allows developers to make explicit tradeoffs between reusability and granularity of the required domain knowledge. Separates out control and procedural knowledge. Domain Ontology Defines a domain’s set of terms and relations independent of any problem-solving method. Application Ontology Contains terms and relations unique to a particular problem-solving method. Ontology

57.
SINFERS in Protégé Script Tab Lets you drive the Protégé API via your favorite script engine Jess Tab Lets you write and test Jess rules based on your ontological instances Queries Tab Used to define queries for looking up all instances matching some pattern Instances Tab Used to browse and edit current instances Forms Tab Automatically generates forms for populating the knowledgebase with instances Slots Tab Used to define and edit all slots through out the ontology Class Tab Used to define abstract and concrete ontological classes