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