How to pull out the underlying query syntax being used by dataset?Normal // Association // Dataset workaround for some user query operatorsAssociationMap to query Dataset across levels?How to insert zero counts uniformly with Dataset Counts queryPossible bug involving Dataset/Query and RightCompositionUpdated: Correct Formatting of Dataset (labeled columns and rows) for Predict v NetTrain?Dataset Processing: efficient ways to clean and merge sets for Life SciencesQuery and Dataset Syntax PeculiaritiesHow to get parent key in Query on Association/Dataset?Truncation of Labels and Data when visualized as DatasetNested Dataset and the Query operator

Defining the standard model of PA so that a space alien could understand

In general, would I need to season a meat when making a sauce?

What will be the real voltage along the line with a voltage source and a capacitor?

Text at the right of icon

Is it true that cut time means "play twice as fast as written"?

Looking for a soft substance that doesn't dissolve underwater

Why doesn't the Earth accelerate towards the Moon?

Is it possible to play as a necromancer skeleton?

Pirate democracy at its finest

Why do airplanes use an axial flow jet engine instead of a more compact centrifugal jet engine?

At what point in European history could a government build a printing press given a basic description?

Were pens caps holes designed to prevent death by suffocation if swallowed?

Adding spaces to string based on list

Is CD audio quality good enough?

Popcorn is the only acceptable snack to consume while watching a movie

Who will lead the country until there is a new Tory leader?

keyval - function for keyB should act dependent on value of keyA - how to do this?

Count Even Digits In Number

Binary Search in C++17

What does the view outside my ship traveling at light speed look like?

Boss wants me to falsify a report. How should I document this unethical demand?

How to respond to an upset student?

Is it rude to call a professor by their last name with no prefix in a non-academic setting?

Line of lights moving in a straight line , with a few following



How to pull out the underlying query syntax being used by dataset?


Normal // Association // Dataset workaround for some user query operatorsAssociationMap to query Dataset across levels?How to insert zero counts uniformly with Dataset Counts queryPossible bug involving Dataset/Query and RightCompositionUpdated: Correct Formatting of Dataset (labeled columns and rows) for Predict v NetTrain?Dataset Processing: efficient ways to clean and merge sets for Life SciencesQuery and Dataset Syntax PeculiaritiesHow to get parent key in Query on Association/Dataset?Truncation of Labels and Data when visualized as DatasetNested Dataset and the Query operator













2












$begingroup$


Consider the following dataset.



titanic = ExampleData["Dataset", "Titanic"]


If I use the lookup syntax of the dataset like following it creates an equivalent Query syntax which is compiled and then applied to the dataset.



titanic[Select[#survived == True && #age > 60 &], "class", "sex"] // InputForm


If you look at the input syntax above you can see the TypeSystem being used for storage and also the Query used to arrive at the current dataset from the previous one.



I want to extract the Query being used. I tried the following with no success.



query=First@Cases[%, x_Query :> x, [Infinity], Heads -> True]


Once the Query is extracted I can just use Normal[query] to get the optimized version.



Can someone help me get out the Query from the Dataset. I know it is trivial in this case but I want to use this as a base to work with more complex queries and have a way to track previous datasets using their "ID"s and connecting Query like a Graph with ID as Vertices and Query as Edges in a workflow diagram.










share|improve this question











$endgroup$
















    2












    $begingroup$


    Consider the following dataset.



    titanic = ExampleData["Dataset", "Titanic"]


    If I use the lookup syntax of the dataset like following it creates an equivalent Query syntax which is compiled and then applied to the dataset.



    titanic[Select[#survived == True && #age > 60 &], "class", "sex"] // InputForm


    If you look at the input syntax above you can see the TypeSystem being used for storage and also the Query used to arrive at the current dataset from the previous one.



    I want to extract the Query being used. I tried the following with no success.



    query=First@Cases[%, x_Query :> x, [Infinity], Heads -> True]


    Once the Query is extracted I can just use Normal[query] to get the optimized version.



    Can someone help me get out the Query from the Dataset. I know it is trivial in this case but I want to use this as a base to work with more complex queries and have a way to track previous datasets using their "ID"s and connecting Query like a Graph with ID as Vertices and Query as Edges in a workflow diagram.










    share|improve this question











    $endgroup$














      2












      2








      2





      $begingroup$


      Consider the following dataset.



      titanic = ExampleData["Dataset", "Titanic"]


      If I use the lookup syntax of the dataset like following it creates an equivalent Query syntax which is compiled and then applied to the dataset.



      titanic[Select[#survived == True && #age > 60 &], "class", "sex"] // InputForm


      If you look at the input syntax above you can see the TypeSystem being used for storage and also the Query used to arrive at the current dataset from the previous one.



      I want to extract the Query being used. I tried the following with no success.



      query=First@Cases[%, x_Query :> x, [Infinity], Heads -> True]


      Once the Query is extracted I can just use Normal[query] to get the optimized version.



      Can someone help me get out the Query from the Dataset. I know it is trivial in this case but I want to use this as a base to work with more complex queries and have a way to track previous datasets using their "ID"s and connecting Query like a Graph with ID as Vertices and Query as Edges in a workflow diagram.










      share|improve this question











      $endgroup$




      Consider the following dataset.



      titanic = ExampleData["Dataset", "Titanic"]


      If I use the lookup syntax of the dataset like following it creates an equivalent Query syntax which is compiled and then applied to the dataset.



      titanic[Select[#survived == True && #age > 60 &], "class", "sex"] // InputForm


      If you look at the input syntax above you can see the TypeSystem being used for storage and also the Query used to arrive at the current dataset from the previous one.



      I want to extract the Query being used. I tried the following with no success.



      query=First@Cases[%, x_Query :> x, [Infinity], Heads -> True]


      Once the Query is extracted I can just use Normal[query] to get the optimized version.



      Can someone help me get out the Query from the Dataset. I know it is trivial in this case but I want to use this as a base to work with more complex queries and have a way to track previous datasets using their "ID"s and connecting Query like a Graph with ID as Vertices and Query as Edges in a workflow diagram.







      dataset query






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 6 hours ago









      Carl Woll

      80.7k3104208




      80.7k3104208










      asked 8 hours ago









      user13892user13892

      1,483719




      1,483719




















          2 Answers
          2






          active

          oldest

          votes


















          2












          $begingroup$

          There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:



          extractDatasetInformation[ds_Dataset] := Block[Dataset = Inactive[Dataset],
          Uncompress[Compress[ds]][[3]]
          ]


          Your example:



          q = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

          extractDatasetInformation[q]
          %["Origin"]



          <|"Origin" ->
          HoldComplete[
          Query[Select[#survived == True && #age > 60 &], "class", "sex"][
          Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>



          HoldComplete[
          Query[Select[#survived == True && #age > 60 &], "class", "sex"][
          Dataset`DatasetHandle[263616672941144]]]







          share|improve this answer









          $endgroup$












          • $begingroup$
            Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
            $endgroup$
            – user13892
            6 hours ago


















          3












          $begingroup$

          We can extract the query from the dataset object through pattern-matching:



          datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query


          Then:



          titanic = ExampleData["Dataset", "Titanic"];

          ds = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

          datasetQuery[ds]

          (* Query[Select[#survived == True && #age > 60 &], "class", "sex"] *)


          Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.






          share|improve this answer









          $endgroup$













            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "387"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f199097%2fhow-to-pull-out-the-underlying-query-syntax-being-used-by-dataset%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2












            $begingroup$

            There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:



            extractDatasetInformation[ds_Dataset] := Block[Dataset = Inactive[Dataset],
            Uncompress[Compress[ds]][[3]]
            ]


            Your example:



            q = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

            extractDatasetInformation[q]
            %["Origin"]



            <|"Origin" ->
            HoldComplete[
            Query[Select[#survived == True && #age > 60 &], "class", "sex"][
            Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>



            HoldComplete[
            Query[Select[#survived == True && #age > 60 &], "class", "sex"][
            Dataset`DatasetHandle[263616672941144]]]







            share|improve this answer









            $endgroup$












            • $begingroup$
              Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
              $endgroup$
              – user13892
              6 hours ago















            2












            $begingroup$

            There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:



            extractDatasetInformation[ds_Dataset] := Block[Dataset = Inactive[Dataset],
            Uncompress[Compress[ds]][[3]]
            ]


            Your example:



            q = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

            extractDatasetInformation[q]
            %["Origin"]



            <|"Origin" ->
            HoldComplete[
            Query[Select[#survived == True && #age > 60 &], "class", "sex"][
            Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>



            HoldComplete[
            Query[Select[#survived == True && #age > 60 &], "class", "sex"][
            Dataset`DatasetHandle[263616672941144]]]







            share|improve this answer









            $endgroup$












            • $begingroup$
              Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
              $endgroup$
              – user13892
              6 hours ago













            2












            2








            2





            $begingroup$

            There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:



            extractDatasetInformation[ds_Dataset] := Block[Dataset = Inactive[Dataset],
            Uncompress[Compress[ds]][[3]]
            ]


            Your example:



            q = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

            extractDatasetInformation[q]
            %["Origin"]



            <|"Origin" ->
            HoldComplete[
            Query[Select[#survived == True && #age > 60 &], "class", "sex"][
            Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>



            HoldComplete[
            Query[Select[#survived == True && #age > 60 &], "class", "sex"][
            Dataset`DatasetHandle[263616672941144]]]







            share|improve this answer









            $endgroup$



            There is a probably an internal function that can extract this information, but if not, you could use the following function to do so:



            extractDatasetInformation[ds_Dataset] := Block[Dataset = Inactive[Dataset],
            Uncompress[Compress[ds]][[3]]
            ]


            Your example:



            q = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

            extractDatasetInformation[q]
            %["Origin"]



            <|"Origin" ->
            HoldComplete[
            Query[Select[#survived == True && #age > 60 &], "class", "sex"][
            Dataset`DatasetHandle[263616672941144]]], "ID" -> 278717777953890|>



            HoldComplete[
            Query[Select[#survived == True && #age > 60 &], "class", "sex"][
            Dataset`DatasetHandle[263616672941144]]]








            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 6 hours ago









            Carl WollCarl Woll

            80.7k3104208




            80.7k3104208











            • $begingroup$
              Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
              $endgroup$
              – user13892
              6 hours ago
















            • $begingroup$
              Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
              $endgroup$
              – user13892
              6 hours ago















            $begingroup$
            Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
            $endgroup$
            – user13892
            6 hours ago




            $begingroup$
            Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
            $endgroup$
            – user13892
            6 hours ago











            3












            $begingroup$

            We can extract the query from the dataset object through pattern-matching:



            datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query


            Then:



            titanic = ExampleData["Dataset", "Titanic"];

            ds = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

            datasetQuery[ds]

            (* Query[Select[#survived == True && #age > 60 &], "class", "sex"] *)


            Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.






            share|improve this answer









            $endgroup$

















              3












              $begingroup$

              We can extract the query from the dataset object through pattern-matching:



              datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query


              Then:



              titanic = ExampleData["Dataset", "Titanic"];

              ds = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

              datasetQuery[ds]

              (* Query[Select[#survived == True && #age > 60 &], "class", "sex"] *)


              Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.






              share|improve this answer









              $endgroup$















                3












                3








                3





                $begingroup$

                We can extract the query from the dataset object through pattern-matching:



                datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query


                Then:



                titanic = ExampleData["Dataset", "Titanic"];

                ds = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

                datasetQuery[ds]

                (* Query[Select[#survived == True && #age > 60 &], "class", "sex"] *)


                Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.






                share|improve this answer









                $endgroup$



                We can extract the query from the dataset object through pattern-matching:



                datasetQuery[HoldPattern[Dataset[_,_,KeyValuePattern["Origin"->HoldComplete[query_[___]]]]]] := query


                Then:



                titanic = ExampleData["Dataset", "Titanic"];

                ds = titanic[Select[#survived == True && #age > 60 &], "class", "sex"];

                datasetQuery[ds]

                (* Query[Select[#survived == True && #age > 60 &], "class", "sex"] *)


                Beware that this relies upon undocumented internal structure for Dataset objects which may change between releases. The exhibited pattern is current for Version 12.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 6 hours ago









                WReachWReach

                54.1k2117217




                54.1k2117217



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Mathematica Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    Use MathJax to format equations. MathJax reference.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f199097%2fhow-to-pull-out-the-underlying-query-syntax-being-used-by-dataset%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                    Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                    Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її