200 likes | 362 Views
Integration of Procedural and Semantic Knowledge with an Application to Hydrology. Aaron Byrd David Tarboton. Semantic and Procedural Knowledge Modeling. Goal: Enable hydrologists to describe knowledge about the concepts, relationships between the concepts, and the procedures
E N D
Integration of Procedural and Semantic Knowledge with an Application to Hydrology Aaron Byrd David Tarboton
Semantic and Procedural Knowledge Modeling Goal: Enable hydrologists to describe knowledge about the • concepts, • relationships between the concepts, and • the procedures we use in our work in a form that allows the computer to • reason over the knowledge, • deduce consequent knowledge, and • successfully complete tasks common to the field of hydrology, e.g. • Configure models • Process, assemble data • Analyze data to deduce watershed properties
What is Semantic Knowledge Modeling? • Modeling the meaning of information • Meaning is expressed by relationships between concepts • Expressed as a simple sentence: • <Concept 1> <Relationship> <Concept 2> • <Thing> <Attribute> <Property> • <Subject> <Predicate> <Object>
How Do We Use Semantics? • Describing relationships between concepts • “The water depth in the river at gage 1 is 3.7 meters” • <River> <has Measuring Location> <Gage 1> • <River> <has Property> <Water Depth> • <Water Depth> <has Measurement> <3.7> • <Water Depth> <has Units> <meters>
The Logic Behind Semantics • All about defining membership in sets • Set Theory • membership defined by attributes and properties • Class Membership • Type, Subclass, domain, range • First Order Logic • Symmetric • Transitive • Equivalence • Restrictions • Cardinality • Existentiality
Reasoning and Deduction What are the Hydrologic Storages? What sources does overland flow have?
What about other kinds of knowledge? • Knowledge with an inherent sequence • Steps to solve a problem • What we make the computer do every day!!! // first do the old cells for (i = 0; i < nRows; i++) { for (j = 0; j < nCols; j++) { newCells[(addNorth + i) * newCols + addWest + j] = cells[i * nCols + j]; } } // new north section cells for (i = 0; i < addNorth; i++) { for (j = 0; j < newCols; j++) { newCells[i * newCols + j] = theSource.GetValue(newWest + ((double)j + 0.5) * cellsize, newNorth - ((double)i + 0.5) * cellsize); } } // new west,east section cells for (i = 0; i < nRows; i++) { for (j = 0; j < addWest; j++) //west { newCells[(i + addNorth) * newCols + j] = theSource.GetValue(newWest + ((double)j + 0.5) * cellsize, newNorth - ((double)(i + addNorth) + 0.5) * cellsize); } …
Pulling it together: Functional Ontology API • Integrates semantic models and procedural code • “How do you compute the property value of the attribute?” • Currently includes the following semantic logic • Class/Subclass/Domain/Range • Equivalence • Inverse • Currently includes the following code types • Predicate functions • Common functions • User functions • Secondary code • Context Assessment
Interaction Between Procedural Knowledge and Semantic Knowledge • Semantic -> Procedural • Call functions to compute value when query returns the empty set • <myTerrainGroup> <td:hasComputableData> <?canCompute> • Procedural -> Semantic • Query against semantic knowledge base • theOntology.FindMatchingSet(“myTerrainGroup”,”td:hasComputableData”,”?canCompute”,results); • Results stored in sets • Can be used in semantic queries, accessible to code • Can use set logic (Union, Intersection, Subtraction)
Running the Functional Ontology ;alsid co98390239-wef p o w e r p o i n t awesome 0 1 0 1 0 1 1 awesome a 2 5 g b g a r yt a j s kdiielkn ad asd you are the bonb p o w e 3 p o i n t diemmxco do do 7 o w e 3 p 9 i n t p o w e r p o i n t p o w e r p o i n t kldolkaciemd p o w e r p o i n t awesome p o w e r p o i n t ¦ awesome awesome p o w e r p o i n t awesome p o w e r 8 o i n t awesome p o w e r p o i n t p o w 4 r 2 o i n t p o w e r p o i n t . . :
Semantic and Procedural Knowledge Modeling Goal: Enable hydrologists to describe knowledge about the • concepts, • relationships between the concepts, and • the procedures we use in our work in a form that allows the computer to • reason over the knowledge, • deduce consequent knowledge, and • successfully complete tasks common to the field of hydrology
Conclusions • Semantic modeling can capture knowledge in a form that enables reasoning engines to deduce consequent knowledge • Adding procedural knowledge and execution to a semantic engine enables the capture and use of a large body of knowledge that is difficult or impossible to capture solely in a semantic model • Using a coupled semantic-procedural reasoning engine enables us to capture many kinds of hydrologic knowledge in a fashion the places our business logic in a knowledge base rather than hard-coded in a program.