mirror of
https://github.com/GrammaticalFramework/comp-syntax-gu-mlt.git
synced 2026-02-09 06:41:07 -07:00
cp old labs to new folders
This commit is contained in:
64
old-labs/lab2/wikipedia-2022/country_facts.py
Normal file
64
old-labs/lab2/wikipedia-2022/country_facts.py
Normal file
@@ -0,0 +1,64 @@
|
||||
from data_facts import *
|
||||
|
||||
pgffile = 'Countries.pgf'
|
||||
datafile = '../data/countries.tsv'
|
||||
|
||||
# 0.238s
|
||||
def country_facts_embedded(factsys,tuple):
|
||||
countr = factsys.str2exp("CName",tuple[0])
|
||||
cap = factsys.str2exp('Name',tuple.capital)
|
||||
cont = factsys.str2exp('CName',tuple.continent)
|
||||
curr = factsys.str2exp('Name',tuple.currency)
|
||||
pop = mkInt(tuple.population)
|
||||
are = mkInt(tuple.area)
|
||||
|
||||
factsys.grammar.embed("G")
|
||||
import G
|
||||
object = G.NameObject(G.cName(countr))
|
||||
|
||||
return [
|
||||
G.AttributeFact(G.capital_Attribute, object, G.NameValue(cap)),
|
||||
G.AttributeFact(G.area_Attribute, object, G.IntValue(are)),
|
||||
G.populationFact(countr, pop),
|
||||
G.continentFact(countr, cont),
|
||||
G.AttributeFact(G.currency_Attribute, object, G.NameValue(curr))
|
||||
]
|
||||
|
||||
# 0.367s
|
||||
def country_facts_parsed(factsys,tuple):
|
||||
countr = factsys.data2lin("CName",tuple[0])
|
||||
cap = factsys.data2lin('Name',tuple.capital)
|
||||
cont = factsys.data2lin('CName',tuple.continent)
|
||||
curr = factsys.data2lin('Name',tuple.currency)
|
||||
pop = mkInt(tuple.population)
|
||||
are = mkInt(tuple.area)
|
||||
|
||||
return [ factsys.str2exp('Fact',s) for s in
|
||||
[
|
||||
"the capital of {} is {}".format(countr,cap),
|
||||
"the area of {} is {}".format(countr,are),
|
||||
"{} has {} inhabitants".format(countr,pop),
|
||||
"{} is in {}".format(countr, cont),
|
||||
"the currency of {} is {}".format(countr,are)
|
||||
]
|
||||
]
|
||||
|
||||
def countries_facts(factsys,cs):
|
||||
return [t for c in cs for t in country_facts_embedded(factsys,c)]
|
||||
|
||||
def mkInt(s):
|
||||
return pgf.readExpr(str(s))
|
||||
|
||||
def main():
|
||||
gr = pgf.readPGF('Countries.pgf')
|
||||
|
||||
factsys = FactSystem(
|
||||
'country capital area population continent currency',
|
||||
gr,
|
||||
'CountriesEng'
|
||||
)
|
||||
factsys.run(datafile, countries_facts)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user