The Earthquake Model

Structure and Operation

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:

GIS

Geographic zones, with local conditions, such as subsoil values. Geographic locations – towns, cities – together with estimates of economic value.

Attenuation & Intensity

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).

Damage Ratio & Damage Estimation

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).

Natural Frequency Amplification

 

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

Control

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.

Components

Analytic Knowledge

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

Probabilistic knowledge is stored in distributions and relations. For example, when the analytic relation between the earthquake’s 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-

About Stochastic Operators

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).

Local Site Conditions Data

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.

Earthquakes and Greece Sources Used

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 – Lloyd’s List provided by Dr. Smolka

Additional information from the Internet – USGS, EERI, FEMA, etc.

Model Text

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
CurrentEndEvent% = GROUP('NAME ' + @.CurrentEventName$ + '?EndEvent@' , tr@)
EQV@( {true} +CurrentEndEvent%)

FixedLinks@ begin

! 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
Vars% = {RecordedDamage, CalculatedDamage,ASK(MeanDamageRatio),ASK(EconomicValue), DamageDifference, DamageRatioDiff}

! 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)
DamageDifference = CalculatedDamage / RecordedDamage

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
EQUAL( SetStructure$, ASK(Type$), ASK(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 building’s 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

This 3D relation provides an experiential estimate of the earthquake’s frequency based on its magnitude and duration. It is also used in Amplification calculations.