Lanches, refeições e quantidades de alimentos
A Wolfram Knowledgebase inclui propriedades detalhadas e informação nutricional para mais de 37.000 entidades de "Food" e 1.000 de "FoodType". Usando input de forma livre, EntityInstance, EntityGroup, e Quantity, é fácil representar e calcular propriedades nutricionais de grupos de alimentos, em particular os conteúdos calóricos, de fibra, e açúcar do almoço e jantar.
Table[EntityValue[foodtype,
"EntityCount"], {foodtype, {"Food", "FoodType"}}]
Use Ctrl+= (input de forma livre) para obter facilmente uma dada quantidade de alimento, expressada como uma EntityInstance de uma entidade de alimento implicitamente definidade uma quantidade determinada.
\!\(
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "2 tbsp peanut butter",
Typeset`boxes$$ = RowBox[{"EntityInstance", "[",
RowBox[{
InterpretationBox[
DynamicModuleBox[{EntityFramework`Formatting`Private`open = False},
TemplateBox[{
TemplateBox[{"\"foods\""}, "GeneralizedEntityBase"],
TagBox[
GridBox[{{
TemplateBox[{
TemplateBox[{"\"food type\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"FoodType\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \\\"FoodType\\\"]\
\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{",
TemplateBox[{"\"peanut butter\"",
RowBox[{"Entity", "[",
RowBox[{"\"FoodType\"", ",", "\"PeanutButter\""}], "]"}],
"\"Entity[\\\"FoodType\\\", \\\"PeanutButter\\\"]\
\"", "\"food type\""}, "Entity"], "}"}], "]"}]},
"GeneralizedEntityInfoRow"]}, {
TemplateBox[{
TemplateBox[{"\"added food types\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"AddedFoodTypes\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"]\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{", "}"}], "]"}]}, "GeneralizedEntityInfoRow"]}},
GridBoxAlignment -> {"Columns" -> {{Left}}},
DefaultBaseStyle -> "GeneralizedEntityInfoGrid",
GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
"Column"],
Dynamic[EntityFramework`Formatting`Private`open],
"\"Entity[\\\"Food\\\", {EntityProperty[\\\"Food\\\", \
\\\"FoodType\\\"] -> ContainsExactly[{Entity[\\\"FoodType\\\", \
\\\"PeanutButter\\\"]}], EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"] -> ContainsExactly[{}]}]\""},
"GeneralizedEntityToggle"]],
Entity["Food", {EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "PeanutButter"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
SelectWithContents -> True], ",", " ",
TemplateBox[{"2", "\"tbsp\"", "tablespoons", "\"Tablespoons\""},
"Quantity", SyntaxForm -> Mod]}], "]"}],
Typeset`allassumptions$$ = {{
"type" -> "Unit", "word" -> "tbsp",
"template" -> "Assuming ${desc1} for \"${word}\". Use ${desc2} \
instead", "count" -> "4",
"Values" -> {{
"name" -> "Tablespoons", "desc" -> "US tablespoons",
"input" -> "UnitClash_*tbsp.*Tablespoons--"}, {
"name" -> "TablespoonsUK", "desc" -> "UK tablespoons",
"input" -> "UnitClash_*tbsp.*TablespoonsUK--"}, {
"name" -> "MetricTablespoons", "desc" -> "metric tablespoons",
"input" -> "UnitClash_*tbsp.*MetricTablespoons--"}, {
"name" -> "TablespoonsAustralian",
"desc" -> "Australian tablespoons",
"input" -> "UnitClash_*tbsp.*TablespoonsAustralian--"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.574756`6.211028507153325, "Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{138., {7., 16.}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$, Typeset`allassumptions$$,
Typeset`assumptions$$, Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)
Veja a expressão Quantity subjacente (de forma padrão, mostra de forma formatada com formato de saída).
\!\(
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "2 tbsp peanut butter",
Typeset`boxes$$ = RowBox[{"EntityInstance", "[",
RowBox[{
InterpretationBox[
DynamicModuleBox[{EntityFramework`Formatting`Private`open = False},
TemplateBox[{
TemplateBox[{"\"foods\""}, "GeneralizedEntityBase"],
TagBox[
GridBox[{{
TemplateBox[{
TemplateBox[{"\"food type\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"FoodType\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \\\"FoodType\\\"]\
\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{",
TemplateBox[{"\"peanut butter\"",
RowBox[{"Entity", "[",
RowBox[{"\"FoodType\"", ",", "\"PeanutButter\""}], "]"}],
"\"Entity[\\\"FoodType\\\", \\\"PeanutButter\\\"]\
\"", "\"food type\""}, "Entity"], "}"}], "]"}]},
"GeneralizedEntityInfoRow"]}, {
TemplateBox[{
TemplateBox[{"\"added food types\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"AddedFoodTypes\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"]\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{", "}"}], "]"}]}, "GeneralizedEntityInfoRow"]}},
GridBoxAlignment -> {"Columns" -> {{Left}}},
DefaultBaseStyle -> "GeneralizedEntityInfoGrid",
GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
"Column"],
Dynamic[EntityFramework`Formatting`Private`open],
"\"Entity[\\\"Food\\\", {EntityProperty[\\\"Food\\\", \
\\\"FoodType\\\"] -> ContainsExactly[{Entity[\\\"FoodType\\\", \
\\\"PeanutButter\\\"]}], EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"] -> ContainsExactly[{}]}]\""},
"GeneralizedEntityToggle"]],
Entity["Food", {EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "PeanutButter"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
SelectWithContents -> True], ",", " ",
TemplateBox[{"2", "\"tbsp\"", "tablespoons", "\"Tablespoons\""},
"Quantity", SyntaxForm -> Mod]}], "]"}],
Typeset`allassumptions$$ = {{
"type" -> "Unit", "word" -> "tbsp",
"template" -> "Assuming ${desc1} for \"${word}\". Use ${desc2} \
instead", "count" -> "4",
"Values" -> {{
"name" -> "Tablespoons", "desc" -> "US tablespoons",
"input" -> "UnitClash_*tbsp.*Tablespoons--"}, {
"name" -> "TablespoonsUK", "desc" -> "UK tablespoons",
"input" -> "UnitClash_*tbsp.*TablespoonsUK--"}, {
"name" -> "MetricTablespoons", "desc" -> "metric tablespoons",
"input" -> "UnitClash_*tbsp.*MetricTablespoons--"}, {
"name" -> "TablespoonsAustralian",
"desc" -> "Australian tablespoons",
"input" -> "UnitClash_*tbsp.*TablespoonsAustralian--"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.574756`6.211028507153325, "Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{138., {7., 16.}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$, Typeset`allassumptions$$,
Typeset`assumptions$$, Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\);
Cases[%, _Quantity] // InputForm
Expanda a entidade implicitamente definida anterioemente clicando em [+].
EntityInstance[Entity[
"Food", {EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "PeanutButter"]}],
EntityProperty["Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
Quantity[2, "Tablespoons"]]
Input de forma livre também pode ser usado diretamente em declarações programáticas.
peanutButter = \!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "2 tbsp peanut butter",
Typeset`boxes$$ = RowBox[{"EntityInstance", "[",
RowBox[{
InterpretationBox[
DynamicModuleBox[{EntityFramework`Formatting`Private`open = False},
TemplateBox[{
TemplateBox[{"\"foods\""}, "GeneralizedEntityBase"],
TagBox[
GridBox[{{
TemplateBox[{
TemplateBox[{"\"food type\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"FoodType\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \\\"FoodType\\\"]\
\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{",
TemplateBox[{"\"peanut butter\"",
RowBox[{"Entity", "[",
RowBox[{"\"FoodType\"", ",", "\"PeanutButter\""}], "]"}],
"\"Entity[\\\"FoodType\\\", \\\"PeanutButter\\\"]\
\"", "\"food type\""}, "Entity"], "}"}], "]"}]},
"GeneralizedEntityInfoRow"]}, {
TemplateBox[{
TemplateBox[{"\"added food types\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"AddedFoodTypes\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"]\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{", "}"}], "]"}]}, "GeneralizedEntityInfoRow"]}},
GridBoxAlignment -> {"Columns" -> {{Left}}},
DefaultBaseStyle -> "GeneralizedEntityInfoGrid",
GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
"Column"],
Dynamic[EntityFramework`Formatting`Private`open],
"\"Entity[\\\"Food\\\", {EntityProperty[\\\"Food\\\", \\\
\"FoodType\\\"] -> ContainsExactly[{Entity[\\\"FoodType\\\", \
\\\"PeanutButter\\\"]}], EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"] -> ContainsExactly[{}]}]\""},
"GeneralizedEntityToggle"]],
Entity["Food", {EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "PeanutButter"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
SelectWithContents -> True], ",", " ",
TemplateBox[{"2", "\"tbsp\"", "tablespoons", "\"Tablespoons\""},
"Quantity", SyntaxForm -> Mod]}], "]"}],
Typeset`allassumptions$$ = {{
"type" -> "Unit", "word" -> "tbsp",
"template" -> "Assuming ${desc1} for \"${word}\". Use ${desc2} \
instead", "count" -> "4",
"Values" -> {{
"name" -> "Tablespoons", "desc" -> "US tablespoons",
"input" -> "UnitClash_*tbsp.*Tablespoons--"}, {
"name" -> "TablespoonsUK", "desc" -> "UK tablespoons",
"input" -> "UnitClash_*tbsp.*TablespoonsUK--"}, {
"name" -> "MetricTablespoons",
"desc" -> "metric tablespoons",
"input" -> "UnitClash_*tbsp.*MetricTablespoons--"}, {
"name" -> "TablespoonsAustralian",
"desc" -> "Australian tablespoons",
"input" -> "UnitClash_*tbsp.*TablespoonsAustralian--"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.574756`6.211028507153325, "Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{138., {7., 16.}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$, Typeset`allassumptions$$,
Typeset`assumptions$$, Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)
twoSlicesOfBread = \!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "2 slices of bread",
Typeset`boxes$$ = RowBox[{"EntityInstance", "[",
RowBox[{
InterpretationBox[
DynamicModuleBox[{EntityFramework`Formatting`Private`open = False},
TemplateBox[{
TemplateBox[{"\"foods\""}, "GeneralizedEntityBase"],
TagBox[
GridBox[{{
TemplateBox[{
TemplateBox[{"\"food type\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"FoodType\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \\\"FoodType\\\"]\
\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{",
TemplateBox[{"\"bread\"",
RowBox[{"Entity", "[",
RowBox[{"\"FoodType\"", ",", "\"Bread\""}], "]"}],
"\"Entity[\\\"FoodType\\\", \\\"Bread\\\"]\"",
"\"food type\""}, "Entity"], "}"}], "]"}]},
"GeneralizedEntityInfoRow"]}, {
TemplateBox[{
TemplateBox[{"\"added food types\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"AddedFoodTypes\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"]\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{", "}"}], "]"}]}, "GeneralizedEntityInfoRow"]}},
GridBoxAlignment -> {"Columns" -> {{Left}}},
DefaultBaseStyle -> "GeneralizedEntityInfoGrid",
GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
"Column"],
Dynamic[EntityFramework`Formatting`Private`open],
"\"Entity[\\\"Food\\\", {EntityProperty[\\\"Food\\\", \\\
\"FoodType\\\"] -> ContainsExactly[{Entity[\\\"FoodType\\\", \
\\\"Bread\\\"]}], EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"] -> ContainsExactly[{}]}]\""},
"GeneralizedEntityToggle"]],
Entity["Food", {EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "Bread"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
SelectWithContents -> True], ",", " ",
TemplateBox[{"2", "\"slices\"", "slices", "\"Slices\""}, "Quantity",
SyntaxForm -> Mod]}], "]"}],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "bread",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "2",
"Values" -> {{
"name" -> "FoodType", "desc" -> "a food type",
"input" -> "*C.bread-_*FoodType-"}, {
"name" -> "FoodTypeGroup",
"desc" -> " referring to food type group",
"input" -> "*C.bread-_*FoodTypeGroup-"}}}},
Typeset`assumptions$$ = {"*C.bread-_*FoodType-"},
Typeset`open$$ = {1}, Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.662875`6.2729766336225925, "Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{117., {7., 16.}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$, Typeset`allassumptions$$,
Typeset`assumptions$$, Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)
Grupos de alimentos (e.g. refeições, lanches, etc.) podem ser representados com EntityGroup.
pbjSandwich = EntityGroup[{
twoSlicesOfBread,
peanutButter,
EntityInstance[Entity[
"Food", {EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "Jelly"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
Quantity[1, "Servings"]]
}];
Saiba o conteúdo nutricional do grupo de alimentos como um todo.
pbjSandwich[{EntityProperty["Food", "AbsoluteTotalCaloriesContent"],
EntityProperty["Food",
"AbsoluteTotalProteinContent"]}, "PropertyAssociation"]
Use EntityGroup e EntityInstance para analisar uma refeição com spagueti.
dinner = EntityGroup[{
EntityInstance[Entity[
"Food", {EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "Spaghetti"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
Quantity[1, "Servings"]],
EntityInstance[Entity[
"Food", {EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "Meatball"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
Quantity[3, "Items"]],
EntityInstance[Entity[
"Food", {
EntityProperty["Food", "BrandName"] -> Entity[
"FoodBrandName", "Bertolli"],
EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "Sauce"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
Quantity[1.5, "Servings"]],
EntityInstance[Entity[
"Food", {
EntityProperty["Food", "Flavor"] -> Entity[
"FoodFlavor", "Cola"],
EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "CarbonatedBeverage"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
Quantity[1, "USSodaCanVolumes"]]
}];
dinner[{EntityProperty["Food", "AbsoluteTotalCaloriesContent"],
EntityProperty["Food",
"AbsoluteTotalSugarContent"]}, "PropertyAssociation"]