Message Boards Message Boards

GROUPS:

Free-form input does not survive saving process in .wls files

Posted 16 days ago
181 Views
|
2 Replies
|
0 Total Likes
|

Hi there,

I am trying to work with Wolfram scripts (.wls) instead of notebook files (.nb), to increase Git compatibility.

I am able to enter free-form inputs normally with "CTRL" + "=". The cell does not have the same display as in notebooks, but it works as expected. However, if I save the file and close it, on the next time I open it I have the following problems:

  • the free-form input is substituted by a long expression:

    NamespaceBox["LinguisticAssistant",DynamicModuleBox[{Typeset`query$$="number of turkeys in Turkey",Typeset`boxes$$=RowBox[{TemplateBox[{"\"Turkey\"",RowBox[{"Entity","[",RowBox[{"\"Country\"",",","\"Turkey\""}],"]"}],"\"Entity[\\\"Country\\\", \\\"Turkey\\\"]\"","\"country\""},"Entity"],"[",InterpretationBox[DynamicModuleBox[{EntityFramework`Formatting`Private`open=False},TemplateBox[{TemplateBox[{"\"livestock population\""},"ImplicitEntityPropertyBase"],TagBox[GridBox[{{TemplateBox[{RowBox[{" ","\"FAOLivestockType\""}],"\":\"","\"turkeys\""},"ImplicitEntityInfoRow"]}},GridBoxAlignment->{"Columns"->{{Left}}},DefaultBaseStyle->"GeneralizedEntityInfoGrid",GridBoxItemSize->{"Columns"->{{Automatic}},"Rows"->{{Automatic}}},GridBoxSpacings->{"Columns"->{{Automatic}},"Rows"->{{Automatic}}}],"Column"],Dynamic[EntityFramework`Formatting`Private`open],"\"EntityProperty[\\\"Country\\\", \\\"LivestockPopulation\\\", {\\\"FAOLivestockType\\\" -> \\\"Turkeys\\\"}]\"",TemplateBox[{"\"turkeys\""},"ImplicitEntityPropertySequence"]},"ImplicitEntityPropertyToggle"]],EntityProperty["Country","LivestockPopulation",{"FAOLivestockType"->"Turkeys"}],SelectWithContents->True],"]"}],Typeset`allassumptions$$={},Typeset`assumptions$$={},Typeset`open$$={1},Typeset`querystate$$={"Online"->True,"Allowed"->True,"mparse.jsp"->2.285885`6.810599371295524,"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->{184.,{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]
    
  • the substituted code does not work anymore, instead just outputting the full input:

    NamespaceBox["LinguisticAssistant", 
     DynamicModuleBox[{Typeset`query$$ = "number of turkeys in Turkey", 
       Typeset`boxes$$ = 
        RowBox[{TemplateBox[{"\"Turkey\"", 
            RowBox[{"Entity", "[", 
              RowBox[{"\"Country\"", ",", "\"Turkey\""}], "]"}], 
            "\"Entity[\\\"Country\\\", \\\"Turkey\\\"]\"", "\"country\""},
            "Entity"], "[", 
          InterpretationBox[
           DynamicModuleBox[{EntityFramework`Formatting`Private`open = 
              False}, TemplateBox[{TemplateBox[{"\"livestock \
    population\""}, "ImplicitEntityPropertyBase"], 
              TagBox[GridBox[{{TemplateBox[{RowBox[{" ", 
                      "\"FAOLivestockType\""}], "\":\"", "\"turkeys\""}, 
                   "ImplicitEntityInfoRow"]}}, 
                GridBoxAlignment -> {"Columns" -> {{Left}}}, 
                DefaultBaseStyle -> "GeneralizedEntityInfoGrid", 
                GridBoxItemSize -> {"Columns" -> {{Automatic}}, 
                  "Rows" -> {{Automatic}}}, 
                GridBoxSpacings -> {"Columns" -> {{Automatic}}, 
                  "Rows" -> {{Automatic}}}], "Column"], 
              Dynamic[EntityFramework`Formatting`Private`open], 
    
              "\"EntityProperty[\\\"Country\\\", \
    \\\"LivestockPopulation\\\", {\\\"FAOLivestockType\\\" -> \\\"Turkeys\
    \\\"}]\"", 
              TemplateBox[{"\"turkeys\""}, 
               "ImplicitEntityPropertySequence"]}, 
             "ImplicitEntityPropertyToggle"]], EntityProperty[
           "Country", "LivestockPopulation", {
            "FAOLivestockType" -> "Turkeys"}], 
           SelectWithContents -> True], "]"}], 
       Typeset`allassumptions$$ = {}, Typeset`assumptions$$ = {}, 
       Typeset`open$$ = {1}, 
       Typeset`querystate$$ = {"Online" -> True, "Allowed" -> True, 
         "mparse.jsp" -> 2.285885, "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 -> {184., {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]
    

(Example from the Hands-on Start to Mathematica course.)

I know that using the SemanticInterpretation function would be a solution to write free-form text in .wls files that survive saving/closing/re-opening. However, I would like a way that allows me to use the "CTRL" + "=" shortcut.

Thank you,

EDIT: I have recently found out that the "CTRL" + "=" shortcut works fine if the whole expression is directly given to a variable, as in the example below ("orange-equal" is the free-form input equal sign).

turkeysInTurkey = "orange-equal" + "number of turkeys in Turkey"

It is strange that if the free-form input sign is the first character in the line instead, then that line cannot be saved in a script file.

2 Replies
Posted 16 days ago

While it is convenient to use "CTRL" + "=" in the front end, if you plan to use .wls files then it would be better to use WolframAlpha

turkeyCode = WolframAlpha["number of turkeys in Turkey", "WolframParse"]
ReleaseHold@turkeyCode

You can wrap that in a function to reduce typing.

Thanks for the suggestion, Rohit. I am new to the language and this type of guideline is not easy to find.

Nevertheless, I still would like to find a solution to using the shortcut itself, since using a (wrapped) function with a string expression is a bit cumbersome.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract