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)) ]
def country_texts_embedded(factsys, data): factsys.grammar.embed("G") import G fields = factsys.fieldnames.split() facts = [] for tuple in data: countr = factsys.str2exp("Name", tuple[0]) cap = factsys.str2exp('Name', tuple.capital) cont = factsys.str2exp('Name', tuple.continent).unpack()[1][0] #CDNAME curr = factsys.str2exp('Name', tuple.currency) pop = pgf.readExpr(str(tuple.population)) are = pgf.readExpr(str(tuple.area)) doc = G.OneSentenceDoc( G.FactSentence( G.KindFact( G.NameObject(countr), G.ModifierKind( G.PropertyKind(G.cdProperty(cont), G.country_Kind), G.NumericKindModifier(G.IntNumeric(pop), G.inhabitant_Kind))))) doc = G.AddSentenceDoc( doc, G.FactSentence( G.AttributeFact(G.area_Attribute, G.PronObject(countr), G.NumericValue(G.IntNumeric(are))))) doc = G.AddSentenceDoc( doc, G.ConjSentence( G.FactSentence( G.AttributeFact(G.capital_Attribute, G.NameObject(countr), G.NameValue(cap))), G.FactSentence( G.AttributeFact(G.currency_Attribute, G.PronObject(countr), G.NameValue(curr))))) facts.append(doc) return facts