us army corps of engineers building strong ® integration of procedural and semantic knowledge with...
TRANSCRIPT
US Army Corps of Engineers
BUILDING STRONG®
Integration of Procedural and Semantic Knowledge with an Application to Hydrology
Aaron Byrd
David Tarboton
BUILDING STRONG®23 June 2011 / Aaron Byrd
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
2
BUILDING STRONG®23 June 2011 / Aaron Byrd
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>
3
BUILDING STRONG®23 June 2011 / Aaron Byrd
How Do We Use Semantics?
Describing relationships between concepts► “The water depth in the river at gage 1 is 3.7 meters”
4
<River> <has Measuring Location> <Gage 1><River> <has Property> <Water Depth><Water Depth> <has Measurement> <3.7><Water Depth> <has Units> <meters>
BUILDING STRONG®
Hydrologic Semantics
5
BUILDING STRONG®
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
6
BUILDING STRONG®
Reasoning and Deduction
7
Subject Predicate Object Subject Predicate ObjectHydrologicFlux rdf:type rdfs:Class OverlandFlow MovesFrom OverlandSurfaceHydrologicStorage rdf:type rdfs:Class Exfiltration MovesFrom GroundWaterMovesFrom rdfs:domain HydrologicFlux Exfiltration MovesTo OverlandSurfaceMovesFrom rdfs:range HydrologicStorageSubsurfaceDischarge MovesFrom GroundWaterMovesTo rdfs:domain HydrologicFlux SubsurfaceDischarge MovesTo StreamsMovesTo rdfs:range HydrologicStorageSubsurfaceDischarge MovesTo OceanPrecipitation MovesFrom Atmosphere StreamFlow MovesFrom StreamsPrecipitation MovesTo OverlandSurface StreamFlow MovesTo OceanInfiltration MovesFrom OverlandSurface Evaporation MovesFrom OceanInfiltration MovesTo VadoseZone Evaporation MovesFrom StreamsPercolation MovesFrom VadoseZone Evaporation MovesFrom OverlandSurfacePercolation MovesTo GroundWater Evaporation MovesFrom Vadose ZoneInterflow MovesTo Streams Evaporation MovesTo AtmosphereInterflow MovesFrom VadoseZone hasSource owl:InverseOf MovesToOverlandFlow MovesTo Streams hasLoss owl:InverseOf MovesFrom
What are the Hydrologic Storages?What sources does overland flow have?
BUILDING STRONG®23 June 2011 / Aaron Byrd
What about other kinds of knowledge?
Knowledge with an inherent sequence► Steps to solve a problem
► What we make the computer do every day!!!
8
// 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); } …
BUILDING STRONG®23 June 2011 / Aaron Byrd
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
9
BUILDING STRONG®23 June 2011 / Aaron Byrd
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)
10
BUILDING STRONG®23 June 2011 / Aaron Byrd
Example: Encapsulating Knowledge about TauDEM Functions
11
BUILDING STRONG®23 June 2011 / Aaron Byrd
Adding Computational Semantics
12
BUILDING STRONG®23 June 2011 / Aaron Byrd
Running the Functional Ontology
13
BUILDING STRONG®
Running the Functional Ontology
14
BUILDING STRONG®
Running the Functional Ontology: Queries
15
BUILDING STRONG®
Running the Functional Ontology: User Functions
16
BUILDING STRONG®
Running the Functional Ontology: Functional Queries
17
BUILDING STRONG®
Running the Functional Ontology: Functional Queries
18
BUILDING STRONG®23 June 2011 / Aaron Byrd
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
BUILDING STRONG®23 June 2011 / Aaron Byrd
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.