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

                    Club Baloncesto Breogán Índice Historia | Pavillón | Nome | O Breogán na cultura popular | Xogadores | Adestradores | Presidentes | Palmarés | Historial | Líderes | Notas | Véxase tamén | Menú de navegacióncbbreogan.galCadroGuía oficial da ACB 2009-10, páxina 201Guía oficial ACB 1992, páxina 183. Editorial DB.É de 6.500 espectadores sentados axeitándose á última normativa"Estudiantes Junior, entre as mellores canteiras"o orixinalHemeroteca El Mundo Deportivo, 16 setembro de 1970, páxina 12Historia do BreogánAlfredo Pérez, o último canoneiroHistoria C.B. BreogánHemeroteca de El Mundo DeportivoJimmy Wright, norteamericano do Breogán deixará Lugo por ameazas de morteResultados de Breogán en 1986-87Resultados de Breogán en 1990-91Ficha de Velimir Perasović en acb.comResultados de Breogán en 1994-95Breogán arrasa al Barça. "El Mundo Deportivo", 27 de setembro de 1999, páxina 58CB Breogán - FC BarcelonaA FEB invita a participar nunha nova Liga EuropeaCharlie Bell na prensa estatalMáximos anotadores 2005Tempada 2005-06 : Tódolos Xogadores da Xornada""Non quero pensar nunha man negra, mais pregúntome que está a pasar""o orixinalRaúl López, orgulloso dos xogadores, presume da boa saúde económica do BreogánJulio González confirma que cesa como presidente del BreogánHomenaxe a Lisardo GómezA tempada do rexurdimento celesteEntrevista a Lisardo GómezEl COB dinamita el Pazo para forzar el quinto (69-73)Cafés Candelas, patrocinador del CB Breogán"Suso Lázare, novo presidente do Breogán"o orixinalCafés Candelas Breogán firma el mayor triunfo de la historiaEl Breogán realizará 17 homenajes por su cincuenta aniversario"O Breogán honra ao seu fundador e primeiro presidente"o orixinalMiguel Giao recibiu a homenaxe do PazoHomenaxe aos primeiros gladiadores celestesO home que nos amosa como ver o Breo co corazónTita Franco será homenaxeada polos #50anosdeBreoJulio Vila recibirá unha homenaxe in memoriam polos #50anosdeBreo"O Breogán homenaxeará aos seus aboados máis veteráns"Pechada ovación a «Capi» Sanmartín e Ricardo «Corazón de González»Homenaxe por décadas de informaciónPaco García volve ao Pazo con motivo do 50 aniversario"Resultados y clasificaciones""O Cafés Candelas Breogán, campión da Copa Princesa""O Cafés Candelas Breogán, equipo ACB"C.B. Breogán"Proxecto social"o orixinal"Centros asociados"o orixinalFicha en imdb.comMario Camus trata la recuperación del amor en 'La vieja música', su última película"Páxina web oficial""Club Baloncesto Breogán""C. B. Breogán S.A.D."eehttp://www.fegaba.com

                    Vilaño, A Laracha Índice Patrimonio | Lugares e parroquias | Véxase tamén | Menú de navegación43°14′52″N 8°36′03″O / 43.24775, -8.60070

                    Cegueira Índice Epidemioloxía | Deficiencia visual | Tipos de cegueira | Principais causas de cegueira | Tratamento | Técnicas de adaptación e axudas | Vida dos cegos | Primeiros auxilios | Crenzas respecto das persoas cegas | Crenzas das persoas cegas | O neno deficiente visual | Aspectos psicolóxicos da cegueira | Notas | Véxase tamén | Menú de navegación54.054.154.436928256blindnessDicionario da Real Academia GalegaPortal das Palabras"International Standards: Visual Standards — Aspects and Ranges of Vision Loss with Emphasis on Population Surveys.""Visual impairment and blindness""Presentan un plan para previr a cegueira"o orixinalACCDV Associació Catalana de Cecs i Disminuïts Visuals - PMFTrachoma"Effect of gene therapy on visual function in Leber's congenital amaurosis"1844137110.1056/NEJMoa0802268Cans guía - os mellores amigos dos cegosArquivadoEscola de cans guía para cegos en Mortágua, PortugalArquivado"Tecnología para ciegos y deficientes visuales. Recopilación de recursos gratuitos en la Red""Colorino""‘COL.diesis’, escuchar los sonidos del color""COL.diesis: Transforming Colour into Melody and Implementing the Result in a Colour Sensor Device"o orixinal"Sistema de desarrollo de sinestesia color-sonido para invidentes utilizando un protocolo de audio""Enseñanza táctil - geometría y color. Juegos didácticos para niños ciegos y videntes""Sistema Constanz"L'ocupació laboral dels cecs a l'Estat espanyol està pràcticament equiparada a la de les persones amb visió, entrevista amb Pedro ZuritaONCE (Organización Nacional de Cegos de España)Prevención da cegueiraDescrición de deficiencias visuais (Disc@pnet)Braillín, un boneco atractivo para calquera neno, con ou sen discapacidade, que permite familiarizarse co sistema de escritura e lectura brailleAxudas Técnicas36838ID00897494007150-90057129528256DOID:1432HP:0000618D001766C10.597.751.941.162C97109C0155020