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

What is the energy payback time of solar panels, in hours?

Fermat's statement about the ancients: How serious was he?

C++ logging library

Can you make an identity from this product?

Why did Intel abandon unified CPU cache?

What should I discuss with my DM prior to my first game?

Why the output signal of my amplifier is heavily distorted

Please figure out this Pan digital Prince

Do people with slow metabolism tend to gain weight (fat) if they stop exercising?

Does the new finding on "reversing a quantum jump mid-flight" rule out any interpretations of QM?

Rail-to-rail op-amp only reaches 90% of VCC, works sometimes, not everytime

A word that means "blending into a community too much"

Why does this query, missing a FROM clause, not error out?

Possible runaway argument using circuitikz

The origin of the Russian proverb about two hares

Math cases align being colored as a table

Getting UPS Power from One Room to Another

Grep Match and extract

Who voices the small round football sized demon in Good Omens?

Analogy between an unknown in an argument, and a contradiction in the principle of explosion

Is it possible to fly backward if you have really strong headwind?

Does a bank have to tell me if a check made out to me was cashed there?

How can one's career as a reviewer be ended?

If there's something that implicates the president why is there then a national security issue? (John Dowd)



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













4












$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$
















    4












    $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$














      4












      4








      4





      $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 May 25 at 17:53









      Carl Woll

      83k3105216




      83k3105216










      asked May 25 at 16:36









      user13892user13892

      1,567719




      1,567719




















          2 Answers
          2






          active

          oldest

          votes


















          4












          $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
            May 25 at 18:18


















          4












          $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









            4












            $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
              May 25 at 18:18















            4












            $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
              May 25 at 18:18













            4












            4








            4





            $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 May 25 at 17:54









            Carl WollCarl Woll

            83k3105216




            83k3105216











            • $begingroup$
              Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
              $endgroup$
              – user13892
              May 25 at 18:18
















            • $begingroup$
              Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
              $endgroup$
              – user13892
              May 25 at 18:18















            $begingroup$
            Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
            $endgroup$
            – user13892
            May 25 at 18:18




            $begingroup$
            Thank you. Can you please explain why did you compress the inactive Dataset expression and uncompress it before extracting the part?
            $endgroup$
            – user13892
            May 25 at 18:18











            4












            $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$

















              4












              $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$















                4












                4








                4





                $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 May 25 at 18:16









                WReachWReach

                54.2k2117217




                54.2k2117217



























                    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

                    Wikipedia:Vital articles Мазмуну Biography - Өмүр баян Philosophy and psychology - Философия жана психология Religion - Дин Social sciences - Коомдук илимдер Language and literature - Тил жана адабият Science - Илим Technology - Технология Arts and recreation - Искусство жана эс алуу History and geography - Тарых жана география Навигация менюсу

                    Bruxelas-Capital Índice Historia | Composición | Situación lingüística | Clima | Cidades irmandadas | Notas | Véxase tamén | Menú de navegacióneO uso das linguas en Bruxelas e a situación do neerlandés"Rexión de Bruxelas Capital"o orixinalSitio da rexiónPáxina de Bruselas no sitio da Oficina de Promoción Turística de Valonia e BruxelasMapa Interactivo da Rexión de Bruxelas-CapitaleeWorldCat332144929079854441105155190212ID28008674080552-90000 0001 0666 3698n94104302ID540940339365017018237

                    What should I write in an apology letter, since I have decided not to join a company after accepting an offer letterShould I keep looking after accepting a job offer?What should I do when I've been verbally told I would get an offer letter, but still haven't gotten one after 4 weeks?Do I accept an offer from a company that I am not likely to join?New job hasn't confirmed starting date and I want to give current employer as much notice as possibleHow should I address my manager in my resignation letter?HR delayed background verification, now jobless as resignedNo email communication after accepting a formal written offer. How should I phrase the call?What should I do if after receiving a verbal offer letter I am informed that my written job offer is put on hold due to some internal issues?Should I inform the current employer that I am about to resign within 1-2 weeks since I have signed the offer letter and waiting for visa?What company will do, if I send their offer letter to another company