Súborový systém programu LEM
Špecifikácia modelu je uložená v súbore s príponou ".md". Špecifikácia obsahuje smerníky na iné súbory, ktoré obsahuje model. Kompletná špecifikácia modelu potrebuje jeden ".md" súbor, v ktorom je špecifikovaný model, jeden ".lw" súbor, v ktorom sú špecifikované pravidlá pre aktuálny model. Môže ešte vkladať jeden alebo viac ".esp" súborov, ktorými definujeme rozdielne špecifikácie etho-agentov, jeden ".prs" súbor špecifikujúci všetkých producentov, ktorí majú byť vložený do modelu a jeden ".ens" súbor, ktorý špecifikuje všetky typy okolitých agentov v modeli.
".md" súbor má nasledujúci formát:
compulsory 1 ecosystem(integer Width, integer High, integer SiteSize)
compulsory 1 model_type(MODELTYPE1, MODELTYPE2)
compulsory 1 thelaw(string Filename)
nondeterm ethospecie(string Filename)
determ producerspecies(string Filename)
determ envospecies(string Filename)
determ agents(string Filename)
determ dayandyear(long PerLgth, symbollist DayTimeList, long SeasLgth, symbollist SeasonList)
determ patterns(string FileName)
Povinný term, ktorý sa musí v špecifikácii vyskytovať práve raz, ecosystem(integer Width, integer High, integer SiteSize) poskytuje špecifikáciu pre šírku, výšku a veľkosť ekosystému. SiteSize je dimenzia jedného miesta v mriežke. Jedna jednotka SiteSize je jeden pixel na obrazovke. Width a High sú šírka a výška ekosystému počítaná v počtoch miest. To znamená, že ak SiteSize = 20, Width = 50 a High = 25, tak šírka ekosystému je 1000 a výška 500 jednotiek.
Povinný term, ktorý sa musí v špecifikácii vyskytovať práve raz, model_type(MODELTYPE1, MODELTYPE2) poskytuje špecifikáciu pre typ modelu. Formát argumentov je nasledovný:
MODELTYPE1 = simple; evolution
MODELTYPE2 = linear; cyclic
Povinný term, ktorý sa musí v špecifikácii vyskytovať práve raz, thelaw(string Filename) špecifikuje meno a umiestnenie súboru, v ktorom sú špecifikované pravidlá. Meno súboru musí mať príponu ".lw". Meno súboru môže byť udané absolútnou alebo relatívnou cestou. Relatívna špecifikácia cesty je preferovaná, pretože prenos modelu na iný počítač je jednoduchší.
Povinný term, ktorý sa môže vyskytovať viackrát, ethospecie(string Filename) špecifikuje meno a umiestnenie súboru, ktorý udáva špecifikáciu etho-agenta. Súbor musí mať príponu ".esp". Každý etho-agent je definovaný vo vlastnom súbore.
Nepovinný term producerspecies(string Filename) špecifikuje meno a umiestnenie súboru so špecifikáciou producentov ekosystému. Súbor musí mať príponu ".prs".
Nepovinný term envospecies(string Filename) špecifikuje meno a umiestnenie súboru so špecifikáciou envo-agentov. Súbor musí mať príponu ".ens".
Nepovinný term agents(string Filename) špecifikuje meno a umiestnenie súboru, ktorý špecifikuje agentov a musí mať príponu ".ag".
Nepovinný term dayandyear(long PerLgth, symbollist DayTimeList, long SeasLgth, symbollist SeasonList) ukladá argumenty, ktoré špecifikujú dni a roky.
symbollist = symbol *
Nepovinný term patterns(string FileName) obsahuje meno a umiestnenie súboru, v ktorom sú špecifikované vzorky. Súbor musí mať príponu ".pt".
Príklady špecifikácie modelov v programe LEM:
A. Lineárny model
model_type(simple, linear)
thelaw("C:\\VIP\\Lem\\first\\EXE\\PrayPred\\PrPrLaw.lw")
ethospecie("C:\\VIP\\Lem\\first\\EXE\\PrayPred\\predator.esp")
ethospecie("C:\\VIP\\Lem\\first\\EXE\\PrayPred\\pray.esp")
producerspecies("C:\\VIP\\Lem\\first\\EXE\\PrayPred\\producer.prs")
ecosystem(25, 13, 20)
B. Cyklický model
helaw("ROUTE\\LAW.LW")
ethospecie("ROUTE\\PFOWL.ESP")
ethospecie("ROUTE\\WILDCAT.ESP")
producerspecies("ROUTE\\FOOD.PRS")
envospecies("ROUTE\\ENV-AGENTS.ENS")
agents("ROUTE\\PRODLMKS.AG")
ecosystem(25, 13, 20)
model_type(simple, cyclic)
dayandyear(20, ["night", "sunrise", "morning", "early_noon", "late_noon", "sunset"], 600, ["winter", "spring", "summer", "rainy"])
Distribúcia špecifikácie modelu do viacerých súborov má svoje výhody ale aj nedostatky. Najdôležitejšia výhoda je, že šablóny agentov sú znova použiteľné. Jeden súbor môže byť simultánne používaný viacerými rôznymi modelmi.