{"id":2200,"date":"2021-07-16T18:43:07","date_gmt":"2021-07-16T18:43:07","guid":{"rendered":"https:\/\/wdqs-tutorial.toolforge.org\/?p=2200"},"modified":"2021-07-20T18:00:23","modified_gmt":"2021-07-20T18:00:23","slug":"optional-clause","status":"publish","type":"post","link":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/simple-queries-pt-br\/adding-variables-pt-br\/optional-clause\/?lang=pt-br","title":{"rendered":"A cl\u00e1usula OPTIONAL"},"content":{"rendered":"\n<h2>Valores ausentes e a cl\u00e1usula OPTIONAL<\/h2>\n\n\n\n<p>Como vimos <a href=\"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/simple-queries-pt-br\/adding-match-patterns-pt-br\/two-or-more-match-patterns\/?lang=pt-br\">anteriormente<\/a>, quando h\u00e1 mais de um padr\u00e3o a ser reconhecido na cl\u00e1usula WHERE, h\u00e1 uma rela\u00e7\u00e3o <strong>E<\/strong> impl\u00edcita entre as declara\u00e7\u00f5es, de tal modo que a consulta s\u00f3 devolver\u00e1 padr\u00f5es que correspondam a <strong>todas<\/strong> as declara\u00e7\u00f5es. Por exemplo, <a href=\"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/simple-queries-pt-br\/adding-variables-pt-br\/another-exercise\/?lang=pt-br\">no \u00faltimo exerc\u00edcio<\/a>, n\u00f3s tivemos tr\u00eas padr\u00f5es a serem correspondidos:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror cm-s-eclipse\" data-setting=\"{&quot;mode&quot;:&quot;sparql&quot;,&quot;mime&quot;:&quot;application\/sparql-query&quot;,&quot;theme&quot;:&quot;eclipse&quot;,&quot;lineNumbers&quot;:true,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true}\">#Filmes Star Wars\n\nSELECT ?item  ?itemLabel ?diretor ?diretorLabel ?custo\nWHERE\n{\n  ?item wdt:P179 wd:Q22092344. # item faz parte da saga de filmes Star Wars\n  ?item wdt:P57 ?diretor.      # o valor da propriedade &quot;diretor&quot; de ?item ser\u00e1 armazenado na vari\u00e1vel ?diretor\n  ?item wdt:P2130 ?custo.      # o valor da propriedade &quot;custo&quot; de ?item ser\u00e1 armazenado na vari\u00e1vel ?custo\n  SERVICE wikibase:label { bd:serviceParam wikibase:language &quot;[AUTO_LANGUAGE]&quot;. }\n}<\/pre><\/div>\n\n\n\n<p>As declara\u00e7\u00f5es nas linhas 6, 7 e 8 tem uma rela\u00e7\u00e3o <strong>E<\/strong> entre elas. Logo, um item s\u00f3 ser\u00e1 considerado um resultado v\u00e1lido se ele tiver todas as tr\u00eas propriedades: P179 (s\u00e9rie) com o valor Q22092344 (saga de filmes Star Wars), <strong>E<\/strong> P57 (diretor), <strong>E<\/strong> P2130 (custo). Se um item n\u00e3o corresponder a um desses requisitos (por exemplo, se o item n\u00e3o tiver uma propriedade sobre seu custo), ele ser\u00e1 ignorado pela consulta.<\/p>\n\n\n\n<p>O SPARQL \u00e9 uma linguagem de consulta de reconhecimento de padr\u00f5es (\u201c<em>pattern-matching\u201d, <\/em>em ingl\u00eas). Consultas SPARQL s\u00f3 retornar\u00e3o dados quando o padr\u00e3o definido na se\u00e7\u00e3o WHERE for completamente reconhecido nos itens que voc\u00ea est\u00e1 consultando. Muitos conjuntos de dados t\u00eam informa\u00e7\u00f5es faltantes, por isso \u00e9 importante ter em mente que um item s\u00f3 ser\u00e1 um resultado de uma consulta se ele tiver dados v\u00e1lidos em cada trecho da declara\u00e7\u00e3o feita no WHERE. Ou seja, o SPARQL n\u00e3o vai retornar um item que n\u00e3o tenha alguma propriedade ou valor declarado na cl\u00e1usula WHERE.<\/p>\n\n\n\n<p>A palavra-chave OPTIONAL (\u201copcional\u201d, em portugu\u00eas) dentro da se\u00e7\u00e3o WHERE determina padr\u00f5es opcionais que voc\u00ea quer de encontrar nos dados. OPTIONAL permite procurar por dados que talvez n\u00e3o estejam l\u00e1.<\/p>\n\n\n\n<iframe class=\"\" src=\"https:\/\/query.wikidata.org\/#%23Filmes%20Star%20Wars%0A%0ASELECT%20%3Fitem%20%20%3FitemLabel%20%3Fdiretor%20%3FdiretorLabel%20%3Fcusto%0AWHERE%0A%7B%0A%20%20%3Fitem%20wdt%3AP179%20wd%3AQ22092344.%20%23%20item%20faz%20parte%20da%20saga%20de%20filmes%20Star%20Wars%0A%20%20%3Fitem%20wdt%3AP57%20%3Fdiretor.%20%20%20%20%20%20%23%20o%20valor%20da%20propriedade%20%22diretor%22%20de%20%3Fitem%20ser%C3%A1%20armazenado%20na%20vari%C3%A1vel%20%3Fdiretor%0A%20%20OPTIONAL%20%7B%3Fitem%20wdt%3AP2130%20%3Fcusto.%7D%20%20%20%20%20%20%23%20o%20valor%20da%20propriedade%20%22custo%22%20de%20%3Fitem%20ser%C3%A1%20armazenado%20na%20vari%C3%A1vel%20%3Fcusto%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%22.%20%7D%0A%7D\" style=\"width:100%;max-width:100%;height:450px\" frameborder=\"0\"><\/iframe>\n\n\n\n<p>Rode a consulta novamente, desta vez usando um padr\u00e3o opcional.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Valores ausentes e a cl\u00e1usula OPTIONAL Como vimos anteriormente, quando h\u00e1 mais de um padr\u00e3o a ser reconhecido na cl\u00e1usula WHERE, h\u00e1 uma rela\u00e7\u00e3o E impl\u00edcita entre as declara\u00e7\u00f5es, de tal modo que a consulta s\u00f3 devolver\u00e1 padr\u00f5es que correspondam a todas as declara\u00e7\u00f5es. Por exemplo, no \u00faltimo exerc\u00edcio, n\u00f3s tivemos tr\u00eas padr\u00f5es a serem [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":""},"categories":[11],"tags":[],"_links":{"self":[{"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/posts\/2200"}],"collection":[{"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/comments?post=2200"}],"version-history":[{"count":4,"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/posts\/2200\/revisions"}],"predecessor-version":[{"id":2388,"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/posts\/2200\/revisions\/2388"}],"wp:attachment":[{"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/media?parent=2200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/categories?post=2200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wdqs-tutorial.toolforge.org\/index.php\/wp-json\/wp\/v2\/tags?post=2200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}