The earthquake model is intended to be able to predict damage from earthquake location and magnitude and to update its experiential knowledge on receipt of new information. The model breaks into five main parts:
Geographic zones, with local conditions, such as subsoil values. Geographic locations towns, cities together with estimates of economic value.
Calculation of attenuation of ground acceleration based on distance and local geological conditions, including amplification from subsoil conditions. Conversion of attenuation into Intensity (an empirical measure of ground shaking).
Conversion from intensity to damage ratio for different types of buildings. Estimation of damage using damage ratio and economic value at location (includes proportions for different types of buildings).
The model estimates the increased building damage due to amplification resulting from a match between the building natural frequency and the dominant shaking frequency emanating from earthquakes of different magnitudes.
The model includes
Analytic structure - attenuation | |
Probabilistic structure - distributions of magnitude, frequency | |
Experience - intensity to damage curves | |
Local structure - magnitude, value, units, probability | |
Mapping points - synonyms, hypernyms |
The earthquake model moves through various states on reading each report elaboration of events created by the text, contributing to ambiguity and anaphora resolution, and updating of its internal knowledge structures after the text has been read successfully. These state transitions are triggered by events occurring in the overall model.
The model is designed to handle multiple earthquake events within the one earthquake report, and it is structured to simplify mapping between it and the free text report domain specific synonyms and hypernyms that may not be present in the linguistic resources are included in the model, so connections between text and model can be established.
The model is intended to be active as the free text is read that is, finding a location and an epicenter will trigger a distance calculation, finding a magnitude will trigger frequency and duration estimates, magnitude and distance will cause an attenuation calculation and then a damage estimate. This continuous calculation in parallel is used to disambiguate statements in the text, and to ensure the model is in the state intended by the writer of the report at that point in the text.
Analytic relations were taken from professional documents. For example, Attenuation Relations with an original form of
After declaring these relations almost in their original form -
ln(Ah) = -3.512 + 0.904 * M - 1.328 * ln(abs((Rseis^2 + (0.149 * exp(0.647 * M))^2)^0.5)) + (1.125 - 0.112 * ln(Rseis) - 0.0957 * M) *F + (0.440 - 0.171 * ln(Rseis))*Ssr + (0.405 - 0.222 * ln(Rseis))*Shr + epsilon1
A piece of knowledge network structure is created, some of it shown below
Probabilistic knowledge is stored in distributions and relations. For example, when the analytic relation between the earthquakes Magnitude and Frequency is unknown, an ad hoc relation (multi dimensional distribution) can be used
Sauter curves, linking Intensity, Building Type and Damage Ratio, have been also loaded into distributions and relations-
Distributions and relations are modeled in DISTRIB and RELATION operators.
Operators like PLUS and EQUALs are used to propagate information between variables based on clear analytic relations, like A + B = C :
Just like PLUS and EQUALS - DISTRIB and RELATION are used to propagate information based on stochastic relations, typically mined from data :
While analytic operators are used to propagate values, ranges and alternatives, stochastic operators are used to propagate value distributions (which also affect ranges and values).
Nested list structures contain digitised site info Lat/Long, local conditions. The structures are created automatically from DB tables and are directly accessible by other parts of the model.
Attenuation relations K.W. Campbell, Seismological Research Letters, Vol68N1, 2/97
Greece info (zones, locations, sites, local conditions) Papaioannou & Papazachos, Bulletin of the Seismological Society of America, 90, 1, 2/00
Intensity/Building Damage relations Sauter curves provided by MunichRe Events information Lloyds List provided by Dr. Smolka Additional information from the Internet USGS, EERI, FEMA, etc.
Following is the full model text. Please note that the order of lines is meaningless as the statements are transformed into Knowledge Network structures that have no order nor direction.
For example, the following statements
Z = X + Y
W = Z ^ X
and
Z ^ X = W
Y + X = Z
will both be transformed into a similar structure -
The model text (comment lines appear in green) :
EQPrototype@ Begin
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Control submodel
! Includes linking of submodels for different purposes - monitor the difference between
calculated and
! recorded damage, monitor damage risk for buildings, etc.
Control@ begin
! Activate the self connection of the new event
to the other submodels
! Attenuation and GIS
ASK(Shr) = ASK(Shr)
ASK(Ssr) = ASK(Ssr)
ASK(D) = ASK(D)
ASK(F) = ASK(F)
! Experiential relations and Attenuation -
! SAh to Intensity
ASK(SAh) := ASK(SAh)
! Intensity to DamageRatio
ASK(Intensity) := UNIQUE(ASK(Intensity))
End !FixedLinks@
UpdateDamageRation@
begin
! Compare Calculated
to Recorded damage, record the difference if significant
! (IntensityDamageRatio@) (EconomicValue@)
IF Logstate(ASK(Intensity)) THEN CalculatedDamage = ASK(MeanDamageRatio) * UNIQUE(ASK(EconomicValue)) / 100
! (from the current event)
IF CalculatedDamage > 0 THEN DamageRatioDiff = ASK(MeanDamageRatio) * (RecordedDamage - CalculatedDamage) / CalculatedDamage
End !UpdateDamageRation@
BuildingDamage@ begin
Vars% = { SetStructure$, SetFloors, ASK(M), EQFreq, DFreq, Ratio, ASK(Intensity), Amplification, AdjustedIntensity }
! Set number of floors
ASK(Floors) = SetFloors
! Set structure type
! Feed event magnitude to Magnitude/Frequency relation
ASK(M) = ASK(Magnitude)
! Find how close the
building's dominant frequency is to the quake's frequency
! Dominant freq
DFreq = UNIQUE(ASK(Frequency))
! EQ freq
EQFreq = EXTRACT(ASK(Frequency), 'MEAN',1)
! Check how close they are
EQFreq MOD DFreq = Diff
IF DFreq <> 0 then Ratio = ABS( ( Diff - DFreq) / DFreq)
! Same frequency - infinite amplification ( X100)
( Ratio = 0 ) EQV (Amplification = 100)
! Within 1% - X50
(Ratio in {0.001<->0.01}) EQV (Amplification = 50)
! 1% - 3% - X20
(Ratio in {0.0101<->0.03}) EQV (Amplification = 20)
! 3% - 5% - X10
(Ratio in {0.0301<->0.05}) EQV (Amplification = 10)
! 5% - 10% - X2
(Ratio in {0.0501<->0.1}) EQV (Amplification = 2)
! 10% - 20% - add 50%
(Ratio in {0.101<->0.2}) EQV (Amplification = 1.5)
! 20% - 30% - add 20%
(Ratio in {0.201<->0.3}) EQV (Amplification = 1.2)
! more than 30% - ignore
(Ratio > 0.3) EQV (Amplification = 1)
AdjustedIntensity = ASK(Intensity) * Amplification
End !BuildingDamage@
! Recording boxes. MinerState is on Learn.
Recorders@ begin
RecordedDamage = ASK(RecordedDamage)
CalculatedDamage = ASK(CalculatedDamage)
DamageRatioFix = ASK(DamageRatioDiff)
End !Recorders@
End !Control@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Attenuation Submodel
! Analytics taken from Campbell's paper
Attenuation@ begin
! Peak Ground Acceleration (PGA)
ln(Ah) = -3.512 + 0.904 * M - 1.328 * ln(abs((Rseis^2 + (0.149 * exp(0.647 * M))^2)^0.5)) + (1.125 - 0.112 * ln(Rseis) - 0.0957 * M) *F + (0.440 - 0.171 * ln(Rseis))*Ssr + (0.405 - 0.222 * ln(Rseis))*Shr + epsilon1
! Spectral Acceleration
ln(SAh) = ln(Ah) + c1 + c2 * tanh(c3*(M - 4.7)) + (c4 + c5 * M)*Rseis + 0.5*c6*Ssr + c6*Shr + c7 * tanh(c8 * D) * (1 - Shr) + fSA(D,c6,Shr,Ssr) + epsilon
! Spectral Acceleration parameters based on the shaking duration
GetCoeff = getSAhCoeff(Duration, SAhCoeff%, {c1,c2,c3,c4,c5,c6,c7,c8})
End !Attenuation@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Greece GIS submodel
! This submodel plays a GIS role for Greece - local site conditions for Greek sites
! Data taken from Papaioannou&Papazachos paper
GreeceGIS@ begin
! Local site conditions
GetSvals = GetSiteSvals(site$,SitesInfo%,{Shr,Ssr,D,F})
End !GreeceGIS@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Event template subnet
! This is the template for an event read from text. The event importer replicates this
structure for
! an event and tries to fill in entities values (Magnitude, date etc.). The logic is
replicated as well
! so that if a value is found for Location.Ref and Epicenter.Location, Rseis gets a value
as well.
EventTemplate@ Subnet
Vars% = { Magnitude, Direction$,ReferenceDate$,Rseis}
! If the event importer
tries to assign Magnitude outside it's range, an Inconsistency occurs
! telling it to backtrack and try another alternative.
Magnitude in {2<->10}
! If the event type is
different than those, skip@ becomes true, telling the event importer
! to skip this event.
if NOT EVAL(Type$) in {'EARTHQUAKE', 'QUAKE', 'TREMOR', 'TEMBLOR'} then Skip@
! The distance between the EQ location and its Epicenter. Also a GIS functionality
Rseis = GetDistance(Location@.Ref$, Epicenter@.Location$,ASK(SitesInfo%))
Location@ begin
vars% = {Country$, Ref$, Lat$, Long$,LocationModifier$,Region$,Location$}
End !Location@
Damage@ begin
Vars% = {Casualties, Estimates, Estimates.Money, ASK(Value),ASK(Units$)}
End !Damage@
Time@ begin
Vars% = {Duration, Duration.Value, Duration.Units$}
Start@ begin
Vars% = {Date$,DateModifier$,Time$,TimeModifier$}
End !Start@
End !Time@
Epicenter@ begin
Vars% ={Location$, Distance$, Direction$, Reference$}
End !Epicenter@
! This is activated after all the event info is read in
EndEvent@ begin
! Connect event info to Attenuation submodel
ASK(M) := ASK(Magnitude)
ASK(Rseis) := ASK(Rseis)
ASK(Duration) := ASK(Value)
! Connect event info to GIS
ASK(Site$) := ASK(Ref$)
! Connect event to Damage Update submodel
ASK(RecordedDamage) := ASK(Value)
! Connect event to Economic Value reference
ASK(Site$) := ASK(Ref$)
End !EndEvent@
End !EventTemplate@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
User defined functions subnet
! Free is a subnet used to defined UDFs (User Defined Functions).
Free@ Subnet
! fSA() is used in the attenuation analytics.
fSA(a,b,c,d) = X and (if a < 1 then X = b*(1 - c)*(1-a) + 0.5*b*(1-a)*d else X = 0)
End !Free@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Experiential submodel
! Greece Experiential Information, relations, etc.
greece@ Begin
! Extended Sauter - DamageRatio distribution per structure type per intensity level
DamageRatioTable@
Begin
End !DamageRatioTable@
InFreqDur@ Begin
End !InFreqDur@
! Dominant frequency per structure type for different building hights
TypeFloorsFreq@
Begin
End !TypeFloorsFreq@
! Experiential relation between Magnitude, Duration and Frequency
MagFreqDur@
Begin
End !MagFreqDur@
! SAh vs Intensity
SAhIntensity@
begin
End !SAhIntensity@
! Intensity vs DamageRatio - greece average
IntensityDamageRatio@ Begin
MeanDamageRatio = EXTRACT(damageRatio,'MEAN',1)
End
!IntensityDamageRatio@
EconomicValue@ Begin
End !EconomicValue@
End !greece@
End !EQPrototype@
In addition to the explicit logic in the model text, diversified experiential knowledge was modeled in Distributions and Relations and was captured from database tables:
Sauter Curves
These curves describe the relation between earthquake intensity (V XII), building structural type (Unreinforced Masonry, Reinforced Concrete, etc., total of 10 types) and damage ratio (0% - 100%). Although the original relation is 3D- an average damage ratio is associated with specific building type and intensity, the model uses a 4D relation, providing a value distribution of the expected damage ratio.
And this is how it is used in the Knowledge Network
Amplification building Natural Frequency Vs BuildingType Vs number of floors
This 3D relation provides the building natural frequency based on its structural type and the number of floors. It is used in Amplification calculation the closer the buildings natural frequency is to the earthquake frequency, the greater the amplification is. The above illustration displays 2 of the 3 dimensions.
Amplification Earthquake magnitude Vs Earthquake duration Vs tremor frequency