예제 #1
0
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