You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/01/19 15:23:52 UTC

svn commit: r1435555 - /jena/site/trunk/content/tutorials/

Author: andy
Date: Sat Jan 19 14:23:52 2013
New Revision: 1435555

URL: http://svn.apache.org/viewvc?rev=1435555&view=rev
Log:
Portuguese translation of the SPARQL tutorial.

Added:
    jena/site/trunk/content/tutorials/sparql_basic_patterns_pt.mdtext   (with props)
    jena/site/trunk/content/tutorials/sparql_data_pt.mdtext   (with props)
    jena/site/trunk/content/tutorials/sparql_datasets_pt.mdtext   (with props)
    jena/site/trunk/content/tutorials/sparql_filters_pt.mdtext   (with props)
    jena/site/trunk/content/tutorials/sparql_optionals_pt.mdtext   (with props)
    jena/site/trunk/content/tutorials/sparql_pt.mdtext   (with props)
    jena/site/trunk/content/tutorials/sparql_query1_pt.mdtext   (with props)
    jena/site/trunk/content/tutorials/sparql_results_pt.mdtext   (with props)
    jena/site/trunk/content/tutorials/sparql_union_pt.mdtext   (with props)
Modified:
    jena/site/trunk/content/tutorials/index.mdtext

Modified: jena/site/trunk/content/tutorials/index.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/index.mdtext?rev=1435555&r1=1435554&r2=1435555&view=diff
==============================================================================
--- jena/site/trunk/content/tutorials/index.mdtext (original)
+++ jena/site/trunk/content/tutorials/index.mdtext Sat Jan 19 14:23:52 2013
@@ -23,3 +23,4 @@ Os tutoriais a seguir explicam aspectos 
 [getting started](/getting_started/) - em inglês.
 
 - [Uma introdução à API RDF](rdf_api_pt.html)
+- [Tutorial SPARQL](sparql_pt.html)
\ No newline at end of file

Added: jena/site/trunk/content/tutorials/sparql_basic_patterns_pt.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/sparql_basic_patterns_pt.mdtext?rev=1435555&view=auto
==============================================================================
--- jena/site/trunk/content/tutorials/sparql_basic_patterns_pt.mdtext (added)
+++ jena/site/trunk/content/tutorials/sparql_basic_patterns_pt.mdtext Sat Jan 19 14:23:52 2013
@@ -0,0 +1,104 @@
+Title:     Tutorial SPARQL – Padrões Básicos
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+Esta sessão cobre os padrões básicos e as soluções, os principais blocos das consultas SPARQL.
+
+## Soluções
+
+Soluções são um conjunto de pares de variáveis com um valor. Uma consulta `SELECT` expõe diretamente as soluções (depois de ordenar/limitar/deslocar) como o conjunto resultado – outras formas de consulta usam as soluções para fazer um grafo. Solução é a maneira como o padrão é casado – em que os valores das variáveis são utilizados para casar com o padrão.
+
+A primeira consulta de exemplo teve uma solução simples. Mude o padrão para esta segunda consulta: ([q-bp1.rq](sparql_data/q-bp1.rq)):
+
+    SELECT ?x ?fname
+    WHERE {?x  <http://www.w3.org/2001/vcard-rdf/3.0#FN>  ?fname}
+
+Isso tem quatro soluções, uma pra cada propriedade nome de VCARD das triplas na fonte de dados.
+
+    ----------------------------------------------------
+    | x                                | name          |
+    ====================================================
+    | <http://somewhere/RebeccaSmith/> | "Becky Smith" |
+    | <http://somewhere/SarahJones/>   | "Sarah Jones" |
+    | <http://somewhere/JohnSmith/>    | "John Smith"  |
+    | <http://somewhere/MattJones/>    | "Matt Jones"  |
+    ----------------------------------------------------
+
+Até agora, com padrões de triplas e padrões básicos, cada variável será definida em cada solução. As soluções de uma consulta podem ser pensadas como uma tabela, mas no caso geral, é uma tabela onde nem sempre cada linha vai ter um valor para cada coluna. Todas as soluções para uma consulta SPARQL não têm que ter valores para todas as variáveis em todas as soluções como veremos depois.
+
+## Padrões Básicos
+
+Um padrão básico é um conjunto de padrões de triplas. Ele casa quando todo o padrão da tripla casa com o mesmo valor usado cada vez que a variável com o mesmo nome é usada.
+
+    SELECT ?givenName
+    WHERE
+      { ?y  <http://www.w3.org/2001/vcard-rdf/3.0#Family>  "Smith" .
+        ?y  <http://www.w3.org/2001/vcard-rdf/3.0#Given>  ?givenName .
+      }
+
+Essa consulta ([q-bp2.rq](sparql_data/q-bp2.rq))envolve dois padrões de triplas, cada tripla termina com '.' (mas o ponto depois do último pode ser omitido como foi omitido no exemplo de padrão de uma tripla). A variável y tem que ser a mesma para cada casamento de padrão de tripla. As soluções são:
+
+    -------------
+    | givenName |
+    =============
+    | "John"    |
+    | "Rebecca" |
+    -------------
+
+### QNames
+
+Aqui temos um mecanismo prático para escrever longas URIs usando prefixos. A consulta acima poderia ser escrita mais claramente como a consulta:
+([q-bp3.rq](sparql_data/q-bp3.rq)):
+
+    PREFIX vcard:      <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?givenName
+    WHERE
+     { ?y vcard:Family "Smith" .
+       ?y vcard:Given  ?givenName .
+     }
+
+Isso é um mecanismo de prefixagem – as duas partes do URI, da declaração do prefixo e da parte depois de ":" no qname são concatenadas. Isso não é exatamente como um qname XML é, mas usa as regras de RDF para transformar o qname numa URI concatenando as partes.
+
+### Blank Nodes
+
+Mude a consulta só para retornar y da seguinte forma:
+([q-bp4.rq](sparql_data/q-bp4.rq)) :
+
+    PREFIX vcard:      <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?y ?givenName
+    WHERE
+     { ?y vcard:Family "Smith" .
+       ?y vcard:Given  ?givenName .
+     }
+
+e os blank nodes aparecem
+
+    --------------------
+    | y    | givenName |
+    ====================
+    | _:b0 | "John"    |
+    | _:b1 | "Rebecca" |
+    --------------------
+
+como os estranhos qnames iniciados com  \_:. Isso não é o título interno do blank node – isso é o ARQ imprimindo-os, atribuindo \_:b0, \_:b1 para mostrar quando dois blank nodes são o mesmo. Aqui eles são diferentes. Isso não revela o título interno usado para um blank node, mas isso está disponível quando usar a API Java.
+
+[Próximo: Filtros](sparql_filters_pt.html)
+
+
+

Propchange: jena/site/trunk/content/tutorials/sparql_basic_patterns_pt.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jena/site/trunk/content/tutorials/sparql_data_pt.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/sparql_data_pt.mdtext?rev=1435555&view=auto
==============================================================================
--- jena/site/trunk/content/tutorials/sparql_data_pt.mdtext (added)
+++ jena/site/trunk/content/tutorials/sparql_data_pt.mdtext Sat Jan 19 14:23:52 2013
@@ -0,0 +1,102 @@
+Title:     Tutorial SPARQL - Formato de Dados
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+Primeiro, nós precisamos esclarecer quais dados estão sendo consultados. SPARQL consulta grafos RDF. Um grafo RDF é um conjunto de triplas (Jena chama os grafos de modelos e as triplas de sentenças porque assim eram chamadas quando a API foi elaborada inicialmente).
+
+É importante perceber que o que importa são as triplas, e não a serialização. A serialização é apenas uma maneira de escrever as triplas. RDF/XML é uma recomendação da W3C, mas isso pode dificultar a visão das triplas porque há múltiplas formas de codificar o mesmo grafo. Neste tutorial, usamos uma serialização mais parecida com triplas, chamada [Turtle](http://www.ilrt.bris.ac.uk/discovery/2004/01/turtle/) (veja também a linguagem N3 descrita pela [W3C semantic web primer](http://www.w3.org/2000/10/swap/Primer)).
+
+Nós vamos começar os dados em [vc-db-1.rdf](sparql_data/vc-db-1.rdf):
+este arquivo contém RDF para uma quantidade de descrições de vcards de pessoas. Vcards são descritos em 
+[RFC2426](http://www.ietf.org/rfc/rfc2426.txt) e a tradução RDF é descrita na nota da W3C 
+"[Representing vCard Objects in RDF/XML](http://www.w3.org/TR/vcard-rdf.html)". 
+Nosso banco de dados exemplo apenas contém alguma informação sobre nomes.
+
+Graficamente, os dados se assemelham a:
+
+![Graph of the vCard database](/images/vc-db.png "Graph of the vCard database")
+
+Em triplas, devem se parecer com:
+
+    @prefix vCard:   <http://www.w3.org/2001/vcard-rdf/3.0#> .
+    @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+    @prefix :        <#> .
+
+    <http://somewhere/MattJones/>
+        vCard:FN    "Matt Jones" ;
+        vCard:N     [ vCard:Family
+                                  "Jones" ;
+                      vCard:Given
+                                  "Matthew"
+                    ] .
+
+    <http://somewhere/RebeccaSmith/>
+        vCard:FN    "Becky Smith" ;
+        vCard:N     [ vCard:Family
+                                  "Smith" ;
+                      vCard:Given
+                                  "Rebecca"
+                    ] .
+
+    <http://somewhere/JohnSmith/>
+        vCard:FN    "John Smith" ;
+        vCard:N     [ vCard:Family
+                                  "Smith" ;
+                      vCard:Given
+                                  "John"
+                    ] .
+
+    <http://somewhere/SarahJones/>
+        vCard:FN    "Sarah Jones" ;
+        vCard:N     [ vCard:Family
+                                  "Jones" ;
+                      vCard:Given
+                                  "Sarah"
+                    ] .
+
+ou então mais explicitamente como triplas:
+
+    @prefix vCard:   <http://www.w3.org/2001/vcard-rdf/3.0#> .
+    @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+
+    <http://somewhere/MattJones/>  vCard:FN   "Matt Jones" .
+    <http://somewhere/MattJones/>  vCard:N    _:b0 .
+    _:b0  vCard:Family "Jones" .
+    _:b0  vCard:Given  "Matthew" .
+
+
+    <http://somewhere/RebeccaSmith/> vCard:FN    "Becky Smith" .
+    <http://somewhere/RebeccaSmith/> vCard:N     _:b1 .
+    _:b1 vCard:Family "Smith" .
+    _:b1 vCard:Given  "Rebecca" .
+
+    <http://somewhere/JohnSmith/>    vCard:FN    "John Smith" .
+    <http://somewhere/JohnSmith/>    vCard:N     _:b2 .
+    _:b2 vCard:Family "Smith" .
+    _:b2 vCard:Given  "John"  .
+
+    <http://somewhere/SarahJones/>   vCard:FN    "Sarah Jones" .
+    <http://somewhere/SarahJones/>   vCard:N     _:b3 .
+    _:b3 vCard:Family  "Jones" .
+    _:b3 vCard:Given   "Sarah" .
+
+É importante perceber que elas são as mesmas do grafo RDF e que as triplas no grafo não estão em alguma ordem particular. Elas são apenas escritas em grupos relacionados para a leitura humana – a máquina não se importa com isso.
+
+[Próximo: Uma consulta simples](sparql_query1_pt.html)
+
+
+

Propchange: jena/site/trunk/content/tutorials/sparql_data_pt.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jena/site/trunk/content/tutorials/sparql_datasets_pt.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/sparql_datasets_pt.mdtext?rev=1435555&view=auto
==============================================================================
--- jena/site/trunk/content/tutorials/sparql_datasets_pt.mdtext (added)
+++ jena/site/trunk/content/tutorials/sparql_datasets_pt.mdtext Sat Jan 19 14:23:52 2013
@@ -0,0 +1,224 @@
+Title:     SPARQL Tutorial - Datasets
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+Essa sessão cobre datasets RDF – um dataset RDF é a unidade consultada por um consulta SPARQL. 
+Ele consiste de um grafo padrão, e certo número de grafos nomeados.
+
+## Consultando datasets
+
+As operações de casamento de grafos 
+([padrões básicos](sparql_basic_patterns_pt.html),
+[`OPTIONAL`s](sparql_optionals_pt.html), e [`UNION`s](sparql_union_pt.html)) funcionam em um grafo RDF.  Isso começa por ser o grafo padrão do conjunto de dados, 
+mas pode ser alterado pela palavra-chave `GRAPH`.
+    GRAPH uri { ... padrão ... }
+
+    GRAPH var { ... padrão ... }
+
+Se um URI é fornecido, o padrão vai ser casado contra o grafo no dataset com esse nome – se não houver um, 
+então clausula `GRAPH` falhará ao tentar casar.  
+
+Se uma variável é dada, todos os grafos nomeados (não o grafo padrão) 
+são testados. A variavel pode ser usada em outro lugar, então, durante a execução, esse valor 
+já é conhecido para a solução, somente o grafo nomeado é testado.
+
+### Dados de exemplo
+
+Um dataset RDF pode ter várias formas.
+A instalação comum é ter o grafo padrão sendo a união (o merge RDF)
+de todos os grafos nomeados e ter o grafo padrão como um inventário de
+grafos nomeados (de onde eles vieram, quando eles foram lidos, etc.). Não há limitações – um grafo pode ser incluído duas vezes sob diferentes nomes, 
+ou alguns grafos podem compartilhar triplas com outros.
+
+Nos exemplos abaixo, vamos usar o seguinte dataset que pode ocorrer para um 
+RDF agregador de um livro de detalhes:
+
+Grafo padrão ([ds-dft.ttl](sparql_data/ds-dft.ttl)):
+
+    @prefix dc: <http://purl.org/dc/elements/1.1/> .
+    @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+    <ds-ng-1.ttl> dc:date "2005-07-14T03:18:56+0100"^^xsd:dateTime .
+    <ds-ng-2.ttl> dc:date "2005-09-22T05:53:05+0100"^^xsd:dateTime .
+
+Grafo nomeado ([ds-ng-1.ttl](sparql_data/ds-ng-1.ttl)):
+
+    @prefix dc: <http://purl.org/dc/elements/1.1/> .
+
+    [] dc:title "Harry Potter and the Philospher's Stone" .
+    [] dc:title "Harry Potter and the Chamber of Secrets" .
+
+Grafo nomeado ([ds-ng-2.ttl](sparql_data/ds-ng-2.ttl)):
+
+    @prefix dc: <http://purl.org/dc/elements/1.1/> .
+
+    [] dc:title "Harry Potter and the Sorcerer's Stone" .
+    [] dc:title "Harry Potter and the Chamber of Secrets" .
+
+Isto é, nós temos dois pequenos grafos descrevendo alguns livros, 
+e nós temos um grafo padrão que armazena quando esses grafos foram lidos pela última vez. 
+
+As consultas podem ser executadas via linha de comando (tudo numa linha):
+
+    java -cp ... arq.sparql
+        --graph ds-dft.ttl --namedgraph ds-ng-1.ttl --namedgraph ds-ng-2.ttl
+        --query query file
+
+Datasets não têm que ser criados só para o tempo de vida da consulta. 
+Eles podem ser criados e armazenados num banco de dados, o que seria mais usual para uma aplicação agregadora.
+
+### Acessando o Dataset
+
+O primeiro exemplo apenas acessa o grafo padrão:
+([q-ds-1.rq](sparql_data/q-ds-1.rq)):
+
+    PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
+    PREFIX dc: <http://purl.org/dc/elements/1.1/>
+    PREFIX : <.>
+
+    SELECT *
+    { ?s ?p ?o }
+
+(O "`PREFIX : <.>`"  apenas ajuda a formatar a saída)
+
+    ----------------------------------------------------------------------
+    | s            | p       | o                                         |
+    ======================================================================
+    | :ds-ng-2.ttl | dc:date | "2005-09-22T05:53:05+01:00"^^xsd:dateTime |
+    | :ds-ng-1.ttl | dc:date | "2005-07-14T03:18:56+01:00"^^xsd:dateTime |
+    ----------------------------------------------------------------------
+
+Este é somente o grafo padrão – nada dos grafos nomeados porque eles não são consultados a menos que
+seja informado explicitamente via `GRAPH`.
+
+Nós podemos consultar todas as triplas ao consultar o grafo padrão e os grafos nomeados:
+([q-ds-2.rq](sparql_data/q-ds-2.rq)):
+
+    PREFIX  xsd:    <http://www.w3.org/2001/XMLSchema#>
+    PREFIX  dc:     <http://purl.org/dc/elements/1.1/>
+    PREFIX  :       <.>
+
+    SELECT *
+    {
+        { ?s ?p ?o } UNION { GRAPH ?g { ?s ?p ?o } }
+    }
+
+resultando em:
+
+    ---------------------------------------------------------------------------------------
+    | s            | p        | o                                          | g            |
+    =======================================================================================
+    | :ds-ng-2.ttl | dc:date  | "2005-09-22T05:53:05+01:00"^^xsd:dateTime  |              |
+    | :ds-ng-1.ttl | dc:date  | "2005-07-14T03:18:56+01:00"^^xsd:dateTime  |              |
+    | _:b0         | dc:title | "Harry Potter and the Sorcerer's Stone"    | :ds-ng-2.ttl |
+    | _:b1         | dc:title | "Harry Potter and the Chamber of Secrets"  | :ds-ng-2.ttl |
+    | _:b2         | dc:title | "Harry Potter and the Chamber of Secrets"  | :ds-ng-1.ttl |
+    | _:b3         | dc:title | "Harry Potter and the Philospher's Stone"  | :ds-ng-1.ttl |
+    ---------------------------------------------------------------------------------------
+
+### Consultando um grafo especifico
+
+Se a aplicação souber o nome do grafo, ele pode consultar diretamente títulos num grafo dado:
+([q-ds-3.rq](sparql_data/q-ds-3.rq)):
+
+    PREFIX dc: <http://purl.org/dc/elements/1.1/>
+    PREFIX : <.>
+
+    SELECT ?title
+    {
+      GRAPH :ds-ng-2.ttl
+        { ?b dc:title ?title }
+    }
+
+Resultados:
+
+    ---------------------------------------------
+    | title                                     |
+    =============================================
+    | "Harry Potter and the Sorcerer's Stone"   |
+    | "Harry Potter and the Chamber of Secrets" |
+    ---------------------------------------------
+
+### Consulta para encontrar dados de grafos que casam com um padrão
+
+O nome dos grafos a ser consultados podem ser determinados na consulta.  
+O mesmo processo se aplica a variáveis se elas são parte de
+um padrão de grafo ou na forma  `GRAPH` form. A consulta abaixo
+([q-ds-4.rq](sparql_data/q-ds-4.rq)) seta uma condição nas variáveis 
+usadas para selecionar grafos nomeados, baseada na informação do grafo padrão.
+
+    PREFIX  xsd:    <http://www.w3.org/2001/XMLSchema#>
+    PREFIX  dc:     <http://purl.org/dc/elements/1.1/>
+    PREFIX  :       <.>
+
+    SELECT ?date ?title
+    {
+      ?g dc:date ?date . FILTER (?date > "2005-08-01T00:00:00Z"^^xsd:dateTime )
+      GRAPH ?g
+          { ?b dc:title ?title }
+    }
+
+O resultado da consulta no dataset de exemplo são títulos em um dos grafos, o grafo com data anterior a 1 de agosto de 2005.
+
+    -----------------------------------------------------------------------------------------
+    | date                                      | title                                     |
+    =========================================================================================
+    | "2005-09-22T05:53:05+01:00"^^xsd:dateTime | "Harry Potter and the Sorcerer's Stone"   |
+    | "2005-09-22T05:53:05+01:00"^^xsd:dateTime | "Harry Potter and the Chamber of Secrets" |
+    -----------------------------------------------------------------------------------------
+
+## Descrevendo datasets RDF  - `FROM` e `FROM NAMED`
+
+À execução de um consulta pode ser dado o dataset quando o objeto da execução é construído ou ele pode ser 
+descrito na própria consulta. Quando os detalhes estão na linha de comando,
+um dataset temporário é criado, mas uma aplicação pode criar datasets e então usá-los em várias consultas.
+
+Quando descrito na consulta, `FROM <i>url</i>` é usado para identificar o conteúdo a preencher o grafo padrão. 
+Pode haver mais de uma clausula `FROM` e o grafo padrão é resultado da leitura de cada arquivo no grafo padrão. 
+Isto é o merge de RDF de grafos individuais.
+
+Não se confunda com o fato de um grafo padrão ser descrito por uma ou mais URL na clausula `FROM`. 
+Esse é o lugar de onde o dado é lito, não o nome do grafo. 
+Como muitas clausulas FROM podem ser fornecidas, o dado pode ser lido de vários lugares, 
+mas nenhum deles se torna o nome do grafo.
+
+`FROM NAMED <i>url</i>` é usado para identificar o grafo nomeado. Ao grafo é dado a url e o dado é lido daquela localização.
+ Múltiplas clausulas `FROM NAMED` causam em muitos grafos para serem adicionados ao dataset.
+
+Observe que os grafos são carregados com Jena FileManager que inclui a habilidade de prover localizações alternativas 
+para os arquivos. Por exemplo, a consulta pode ter  `FROM NAMED <http://example/data>`,
+e o dado ser lido de `file:local.rdf`. O nome do grafo vai ser <http://example/data\> como na consulta.
+
+Por exemplo, a consulta para buscar todas as triplas em ambos o grafo padrão e os grafos nomeados poderia ser escrita como
+([q-ds-5.rq](sparql_data/q-ds-5.rq)):
+
+    PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
+    PREFIX dc:  <http://purl.org/dc/elements/1.1/>
+    PREFIX :    <.>
+
+    SELECT *
+    FROM       <ds-dft.ttl>
+    FROM NAMED <ds-ng-1.ttl>
+    FROM NAMED <ds-ng-2.ttl>
+    {
+       { ?s ?p ?o } UNION { GRAPH ?g { ?s ?p ?o } }
+    }
+
+[Next: Resultados](sparql_results_pt.html)
+
+
+

Propchange: jena/site/trunk/content/tutorials/sparql_datasets_pt.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jena/site/trunk/content/tutorials/sparql_filters_pt.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/sparql_filters_pt.mdtext?rev=1435555&view=auto
==============================================================================
--- jena/site/trunk/content/tutorials/sparql_filters_pt.mdtext (added)
+++ jena/site/trunk/content/tutorials/sparql_filters_pt.mdtext Sat Jan 19 14:23:52 2013
@@ -0,0 +1,91 @@
+Title:     Tutorial SPARQL – Filtros
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+Casamento em Grafos permite que sejam encontrados padrões no grafo. Essa seção descreve como os valores numa solução podem ser restritas. Há muitas comparações disponíveis – vamos apenas cobrir dois casos destes.
+
+## Casamento de Strings
+
+SPARQL fornece uma operação para testar strings, baseada em expressões regulares. Isso inclui a habilidade de testes como SQL "LIKE", no entanto, a sintaxe de expressões regulares é diferente de SQL.
+
+A sintaxe é:
+
+    FILTER regex(?x, "pattern" [, "flags"])
+
+O argumento flags é opcional. A flag "i" significa casamento de padrão case-insensitivo.
+
+A consulta ([q-f1.rq](sparql_data/q-f1.rq)) procura nomes com um “r” ou “R” neles.
+
+    PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?g
+    WHERE
+    { ?y vcard:Given ?g .
+      FILTER regex(?g, "r", "i") }
+
+resultados:
+
+    -------------
+    | g         |
+    =============
+    | "Rebecca" |
+    | "Sarah"   |
+    -------------
+
+A linguagem de expressão regular 
+[XQuery regular expression language](http://www.w3.org/TR/xpath-functions/#regex-syntax)
+é a versão codificada da mesma encontrada em Perl.
+
+## Testando valores
+
+Muitas vezes, a aplicação necessita filtrar com o valor de uma variável. No arquivo [vc-db-2.rdf](sparql_data/vc-db-2.rdf), nós adicionamos um campo extra para idade. Idade não é definida no esquema de vcard então tivemos que criar uma nova propriedade para usar neste tutorial. RDF permite a mistura de diferentes definições de informação porque URIs são únicas. Note também que a propriedade info:age é tipada.
+
+Nesse pedaço de dado, nós mostramos o valor tipado.
+
+    <http://somewhere/RebeccaSmith/>
+        info:age "23"^^xsd:integer ;
+        vCard:FN "Becky Smith" ;
+        vCard:N [ vCard:Family "Smith" ;
+                  vCard:Given  "Rebecca" ] .
+
+Então a consulta ([q-f2.rq](sparql_data/q-f2.rq)) para procurar as pessoas mais velhas que 24 anos é:
+
+    PREFIX info: <http://somewhere/peopleInfo#>
+
+    SELECT ?resource
+    WHERE
+      {
+        ?resource info:age ?age .
+        FILTER (?age >= 24)
+      }
+
+A expressão aritmética precisa estar em parêntesis. A única solução é:
+
+    ---------------------------------
+    | resource                      |
+    =================================
+    | <http://somewhere/JohnSmith/> |
+    ---------------------------------
+
+Apenas um resultado, resultando na URI para o recurso Jonh Smith. Se consultássemos os mais novos que 24 anos, resultaria em Rebecca Smith. Nada sobre os Jones.
+
+O banco de dados não contém informação sobre a idade dos Jones: não há propriedades info:age nos seus vcards, então a variável `age` não recebe um valor, então não é testada. 
+
+[Próximo: Opcionais](sparql_optionals_pt.html)
+
+
+

Propchange: jena/site/trunk/content/tutorials/sparql_filters_pt.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jena/site/trunk/content/tutorials/sparql_optionals_pt.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/sparql_optionals_pt.mdtext?rev=1435555&view=auto
==============================================================================
--- jena/site/trunk/content/tutorials/sparql_optionals_pt.mdtext (added)
+++ jena/site/trunk/content/tutorials/sparql_optionals_pt.mdtext Sat Jan 19 14:23:52 2013
@@ -0,0 +1,143 @@
+Title:     Tutorial SPARQL - Informações Opcionais
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+RDF é dado semi-estruturado então SPARQL tem a habilidade de consultá-lo, mas não para falhar quando o dado não existe. A consulta usa uma parte opcional para extender a informação encontrada na solução de uma consulta, mas para retornar a informação não opcional de qualquer maneira.
+
+## OPICIONAIS
+
+Essa consulta ([q-opt1.rq](sparql_data/q-opt1.rq)) pega o nome da pessoa e também sua idade se essa informação estiver disponível.
+
+    PREFIX info:    <http://somewhere/peopleInfo#>
+    PREFIX vcard:   <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?name ?age
+    WHERE
+    {
+        ?person vcard:FN  ?name .
+        OPTIONAL { ?person info:age ?age }
+    }
+
+Duas das quatro pessoas nos dados ([vc-db-2.rdf](sparql_data/vc-db-2.rdf)) possui a propriedade idade, então duas das soluções da consulta têm essa informação. No entanto, já que o padrão de tripla para a idade é opcional, há uma solução padrão para a pessoa que não tiver informação sobre a idade.
+
+    ------------------------
+    | name          | age |
+    =======================
+    | "Becky Smith" | 23  |
+    | "Sarah Jones" |     |
+    | "John Smith"  | 25  |
+    | "Matt Jones"  |     |
+    -----------------------
+
+Se a clausula opcional não estivesse ali, nenhuma informação sobre idade seria retornada. Se o padrão da tripla fosse incluída, mas não fosse opcional, nós teríamos a consulta ([q-opt2.rq](sparql_data/q-opt2.rq)):
+
+    PREFIX info:   <http://somewhere/peopleInfo#>
+    PREFIX vcard:  <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?name ?age
+    WHERE
+    {
+        ?person vcard:FN  ?name .
+        ?person info:age ?age .
+    }
+
+com os dois únicos resultados:
+
+    -----------------------
+    | name          | age |
+    =======================
+    | "Becky Smith" | 23  |
+    | "John Smith"  | 25  |
+    -----------------------
+
+porque a propriedade `info:age` deve estar presente na solução agora.	
+
+## OPCIONAIS com FILTROS
+
+`OPTIONAL` é um operador binário que combina dois padrões de grafo. O padrão opcional é qualquer padrão de grupo e deve envolver qualquer tipo de padrão SPARQL. Se o grupo casar, a solução é estendida, senão, a solução original é dada ([q-opt-3.rq](sparql_data/q-opt3.rq)).
+
+    PREFIX info:        <http://somewhere/peopleInfo#>
+    PREFIX vcard:      <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?name ?age
+    WHERE
+    {
+        ?person vcard:FN  ?name .
+        OPTIONAL { ?person info:age ?age . FILTER ( ?age > 24 ) }
+    }
+
+Portanto, se filtrarmos por idades maiores que 24 na parte opcional, nós ainda teremos quatro soluções (do padrão `vcard:FN`) mas somente pegaremos idades se elas passarem no teste.
+	
+    -----------------------
+    | name          | age |
+    =======================
+    | "Becky Smith" |     |
+    | "Sarah Jones" |     |
+    | "John Smith"  | 25  |
+    | "Matt Jones"  |     |
+    -----------------------
+
+Idade não incluída para  "Becky Smith"  porque é menor que 24.
+	
+Se a condição do filtro é movida para a parte opcional, então isso pode influenciar no número de soluções, mas deve ser necessário fazer um filtro mais complicado para permitir que a varíavel `age` seja não limitada ([q-opt4.rq](sparql_data/q-opt4.rq)).
+
+    PREFIX info:        <http://somewhere/peopleInfo#>
+    PREFIX vcard:      <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?name ?age
+    WHERE
+    {
+        ?person vcard:FN  ?name .
+        OPTIONAL { ?person info:age ?age . }
+        FILTER ( !bound(?age) || ?age > 24 )
+    }
+
+Se a solução tiver uma varíavel `age`, então ela deve ser maior que 24. Isso também pode ser não limitado. Agora há 3 soluções:
+
+    -----------------------
+    | name          | age |
+    =======================
+    | "Sarah Jones" |     |
+    | "John Smith"  | 25  |
+    | "Matt Jones"  |     |
+    -----------------------
+
+Avaliar uma expressão que tem variáveis não limitadas onde uma variável limitada é esperada causa uma exceção de avaliação e toda a expressão falha.	
+	
+
+## OPCIONAIS e consultas dependentes de ordem
+
+Uma coisa a se ter cuidado ao usar a mesma varíavel em duas ou mais clausulas opcionais (e não em alguma padrão básico também):
+
+    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
+    PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?name
+    WHERE
+    {
+      ?x a foaf:Person .
+      OPTIONAL { ?x foaf:name ?name }
+      OPTIONAL { ?x vCard:FN  ?name }
+    }
+
+Se a primeira opção liga `?name` e `?x` a algum valor, a segunda opção é uma tentativa de casar as outras triplas (`?x` e `<kbd>?name</kbd>` têm valor). Se a primeira opção não casar com a parte opcional, então a segunda é uma tentativa para casar a tripla com duas variáveis.
+
+ 
+[Próximo: União de Consultas](sparql_union_pt.html)
+
+
+

Propchange: jena/site/trunk/content/tutorials/sparql_optionals_pt.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jena/site/trunk/content/tutorials/sparql_pt.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/sparql_pt.mdtext?rev=1435555&view=auto
==============================================================================
--- jena/site/trunk/content/tutorials/sparql_pt.mdtext (added)
+++ jena/site/trunk/content/tutorials/sparql_pt.mdtext Sat Jan 19 14:23:52 2013
@@ -0,0 +1,54 @@
+Title:  Tutorial SPARQL 
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+O objetivo deste tutorial é dar um curso rápido sobre SPARQL. Esse tutorial cobre os principais aspectos desta linguagem de consulta através de exemplos, mas não tem como objetivo ser completo.
+
+Se você estiver procurando uma pequena introdução a SPARQL e Jena, experimente 
+[Search RDF data with SPARQL](http://www.ibm.com/developerworks/xml/library/j-sparql/).  Se você quer executar consultas SPARQL e já sabe como ele funciona, então você deveria ler a [ARQ Documentation][1].
+
+[1]: http://jena.apache.org/documentation/query/index.html
+
+SPARQL is a
+[query language](http://www.w3.org/TR/sparql11-query/) e um
+[protocol](http://www.w3.org/TR/rdf-sparql-protocol/) para acesso a
+RDF elaborado pelo
+[W3C RDF Data Access Working Group](http://www.w3.org/2001/sw/DataAccess/). 
+
+Como uma linguagem de consulta, SPARQL é orientada a dados de forma que só consulta as informações presentes nos modelos, não há inferência propriamente dita nesta linguagem de consulta.  Por acaso, os modelos de Jena são “inteligentes” quanto a isso, e nos dá a impressão de que certas triplas são criadas sob demanda, incluindo raciocínio OWL. SPARQL nada mais faz do que pegar a descrição do que a aplicação quer, na forma de uma consulta, e retornar a informação, na forma de um conjunto de ligações ou grafo RDF.
+
+## Tutorial SPARQL 
+
+1.  [Preliminares: dados!](sparql_data_pt.html)
+2.  [Executando uma consulta simples](sparql_query1_pt.html)
+3.  [Padrões básicos](sparql_basic_patterns_pt.html)
+4.  [Restrição de valores](sparql_filters_pt.html)
+5.  [Informação opcional](sparql_optionals_pt.html)
+6.  [Alternativas](sparql_union_pt.html)
+7.  [Grafos nomeados](sparql_datasets_pt.html)
+8.  [Resultados](sparql_results_pt.html)
+
+## Outros Materiais
+
+-   [SPARQL query language definition document](http://www.w3.org/TR/sparql11-query/) -
+    contem muitos exemplos.
+-   [Search RDF data with SPARQL](http://www.ibm.com/developerworks/xml/library/j-sparql/)
+    (by Phil McCarthy) - artigo publicado por um desenvolvedor da IBM sobre SPARQL e Jena
+-   [Guia de referência SPARQL ](http://www.ilrt.bris.ac.uk/people/cmdjb/2005/04-sparql/)
+    (por [Dave Beckett](http://www.ilrt.bristol.ac.uk/people/cmdjb/))
+
+Detalhado [ARQ documentation](/documentation/query/)
\ No newline at end of file

Propchange: jena/site/trunk/content/tutorials/sparql_pt.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jena/site/trunk/content/tutorials/sparql_query1_pt.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/sparql_query1_pt.mdtext?rev=1435555&view=auto
==============================================================================
--- jena/site/trunk/content/tutorials/sparql_query1_pt.mdtext (added)
+++ jena/site/trunk/content/tutorials/sparql_query1_pt.mdtext Sat Jan 19 14:23:52 2013
@@ -0,0 +1,102 @@
+Title:     Tutorial SPARQL - A primeira consulta SPARQL
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+Nesta sessão, vamos olhar para a primeira consulta simples e mostrar como executá-la em Jena.
+
+## O "hello world" de consultas
+
+O arquivo "[q1.rq](sparql_data/q1.rq)" contem a seguinte consulta:
+
+    SELECT ?x
+    WHERE { ?x  <http://www.w3.org/2001/vcard-rdf/3.0#FN>  "John Smith" }
+
+executando esta consulta com a aplicação de consultas em linhas de comando:
+
+    ---------------------------------
+    | x                             |
+    =================================
+    | <http://somewhere/JohnSmith/> |
+    ---------------------------------
+
+Isso funciona casando o padrão da tripla na clausula `WHERE` contra as triplas no grafo RDF. O predicado e o objeto da tripla são valores fixos, então o padrão vai casar somente triplas com estes valores. O sujeito é a variável, e não há outras restrições para a variável. O padrão casa qualquer tripla com aquele predicado e aquele objeto, e isso casa com soluções para `x`.
+
+O item entre  <\> é a URI (atualmente, é uma IRI) e o item entre "" é uma literal. Assim como Turtle, N3 ou N-Triplas, literais tipadas são escritas com \^\^e tags de linguagem podem ser adicionadas com @.
+
+?x é uma variável chamada x. A ? não faz parte do nome e por conta disso não aparece nos resultados.
+
+Há um casamento. A consulta retorna o casamento na variável x da consulta. A saída mostrada foi obtida usando uma das aplicações de ARQ em linhas de comando.
+
+## Executando a consulta
+
+Há [scripts de ajuda](/documentation/query/cmds.html) nos diretórios de  ARQ `bat/` e
+`bin/` de sua distribuição. Eles podem não estar na distribuição do Jena. Você deve checar esses scripts antes de usá-los.
+
+### Instalação no Windows
+
+Aponte a variável de ambiente `ARQROOT` para a localização do arquivo na distribuição do ARQ.
+
+    set ARQROOT=c:\MyProjects\ARQ
+
+A distribuição normalmente contém o número da versão no nome do diretório.
+
+No diretório do ARQ, execute:
+
+    bat\sparql.bat --data=doc\Tutorial\vc-db-1.rdf --query=doc\Tutorial\q1.rq
+
+ 
+Você pode simplesmente colocar o diretório `bat/` no seu classpath ou copiar os programas lá. Todos eles dependem de ARQROOT.
+
+### scripts bash para Linux/Cyquin/Unix
+
+Aponte a variável de ambiente `ARQROOT` para a localização do arquivo na distribuição do ARQ.
+
+    export ARQROOT=$HOME/MyProjects/ARQ
+
+A distribuição normalmente contém o número da versão no nome do diretório.
+
+No diretório do ARQ, execute:
+
+    bin/sparql --data=doc/Tutorial/vc-db-1.rdf --query=doc/Tutorial/q1.rq
+
+Você pode simplesmente colocar o diretório `bin/` no seu classpath ou copiar os programas lá. Todos eles dependem de ARQROOT.
+
+[Cygwin](http://www.cygwin.com/) é um ambiente Linux para Windows.
+
+### Usando a aplicação de linhas de comando de Jena diretamente
+
+Você precisará modificar o classpath para incluir *todos* os arquivos jar do diretório `lib/` do ARQ.
+
+Por exemplo, no Windows:
+
+    ARQdir\lib\antlr-2.7.5.jar;ARQdir\lib\arq-extra.jar;ARQdir\lib\arq.jar;
+    ARQdir\lib\commons-logging-1.1.jar;ARQdir\lib\concurrent.jar;ARQdir\lib\icu4j_3_4.jar;
+    ARQdir\lib\iri.jar;ARQdir\lib\jena.jar;ARQdir\lib\jenatest.jar;
+    ARQdir\lib\json.jar;ARQdir\lib\junit.jar;ARQdir\lib\log4j-1.2.12.jar;
+    ARQdir\lib\lucene-core-2.2.0.jar;ARQdir\lib\stax-api-1.0.jar;
+    ARQdir\lib\wstx-asl-3.0.0.jar;ARQdir\lib\xercesImpl.jar;ARQdir\lib\xml-apis.jar
+
+onde `<i>ARQdir</i>` é onde você descompactou o ARQ. Isso tudo precisa estar numa linha.
+
+Os nomes dos arquivos JAR muitas vezes mudam e novos arquivos são adicionados – verifique essa lista com sua versão do ARQ.
+
+Os comandos estão no pacote ARQ.
+
+[Próximo: Padrões Básicos](sparql_basic_patterns_pt.html)
+
+
+

Propchange: jena/site/trunk/content/tutorials/sparql_query1_pt.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jena/site/trunk/content/tutorials/sparql_results_pt.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/sparql_results_pt.mdtext?rev=1435555&view=auto
==============================================================================
--- jena/site/trunk/content/tutorials/sparql_results_pt.mdtext (added)
+++ jena/site/trunk/content/tutorials/sparql_results_pt.mdtext Sat Jan 19 14:23:52 2013
@@ -0,0 +1,79 @@
+Title: Produzindo resultados
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+SPARQL tem quatro formas de se obter resultados:
+
+-   SELECT – Retorna uma tabela de resultados.
+-   CONSTRUCT – Retorna um grafo RDF, baseado num template da consulta.
+-   DESCRIBE – Retorna um grafo RDF, baseado no quê o processador está configurado para retornar.
+-   ASK – Faz uma consulta booleana.
+
+A forma SELECT, diretamente, retorna uma tabela de soluções como conjunto de resultados, enquanto que DESCRIBE e CONSTRUCT o resultado da consulta para montar um grafo RDF.
+
+## Modificadores de Soluções
+
+Casamento de padrões produz um conjunto de soluções. Esse conjunto pode ser modificado de várias maneiras:
+
+-   Projection - mantém apenas variáveis selecionadas
+-   OFFSET/LIMIT - recorta o número de soluções (melhor usado com ORDER BY)
+-   ORDER BY - resultados ordenados
+-   DISTINCT - retorna apenas uma linha para uma combinação de variáveis e valores.
+
+Os modificadores de solução OFFSET/LIMIT e ORDER BY sempre se aplica a todos os resultados.
+
+### OFFSET e LIMIT
+
+Um conjunto de soluções pode ser abreviado especificando o deslocamento (índice inicial) e o limite (número de soluções) a ser retornados. Usando apenas LIMIT é útil para garantir que nem tantas soluções vão ser retornadas, para restringir o efeito de uma situação inesperada. LIMIT e OFFSET pode ser usado em conjunção com ordenamento para pegar um fatia definida dentre as soluções encontradas.
+
+### ORDER BY
+
+Soluções SPARQL são ordenadas por expressões, incluindo funções padrões.
+
+    ORDER BY ?x ?y
+
+    ORDER BY DESC(?x)
+
+    ORDER BY x:func(?x)  # Custom sorting condition
+
+### DISTINCT
+
+O SELECT pode usar o modificador DISTINCT para garantir que duas soluções retornadas sejam diferentes.
+
+ 
+## SELECT
+
+O `SELECT` é uma projeção, com DISTINCT aplicado, do conjunto solução. `SELECT` identifica quais variáveis nomeadas estão no conjunto resultado. Isso pode ser um "*" significando que “todas as variáveis” (blank nodes na consulta atuam como variáveis para casamento, mas nada é retornado).
+
+## CONSTRUCT
+
+CONSTRUCT monta um RDF baseado num grafo template. O grafo template pode ter variáveis que são definidas na clausula WHERE. O efeito é o cálculo de um fragmento de grafo, dado o template, para cada solução da clausula WHERE, depois levando em conta qualquer modificador de solução. Os fragmentos de grafo, um por solução, são juntados num único grafo RDF que é o resultado.
+
+Qualquer blank node explicitamente mencionado no grafo template são criados novamente para cada vez que o template é usado para uma solução.
+
+## DESCRIBE
+
+CONSTRUCT pega um template para o grafo de resultados. O DESCRIBE também cria um grafo mas a forma deste grafo é fornecida pelo processador da consulta, não a aplicação. Pra cada URI encontrada, ou explicitamente mencionada na clausula DESCRIBE, o processor de consultas deve prover um fragmento de RDF útil, como todos os detalhes conhecidos de um livro. ARQ permite a escrita de manipuladores de descrições especificas de domínio.
+
+## ASK
+
+ASK retorna um booleano, true se o padrão for casado, ou false caso contrário.
+
+[Retornar ao índice](index.html)
+
+
+

Propchange: jena/site/trunk/content/tutorials/sparql_results_pt.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jena/site/trunk/content/tutorials/sparql_union_pt.mdtext
URL: http://svn.apache.org/viewvc/jena/site/trunk/content/tutorials/sparql_union_pt.mdtext?rev=1435555&view=auto
==============================================================================
--- jena/site/trunk/content/tutorials/sparql_union_pt.mdtext (added)
+++ jena/site/trunk/content/tutorials/sparql_union_pt.mdtext Sat Jan 19 14:23:52 2013
@@ -0,0 +1,129 @@
+Title:  Alternativas num padrão
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+Outra forma de lidar com dado semiestruturado é consultar uma de um número de possibilidades. Essa sessão cobre O padrão `UNION`, onde uma de um número de possibilidades é testado.
+
+## UNION - duas maneiras para o mesmo dado
+
+Ambos os vocabulários de vcard e de FOAF possuem propriedades para nome de pessoas. Em vcard, é vcard:FN, o nome formatado, e em FOAF, é foaf:name. Nesta sessão, vamos olhar um pequeno conjunto de dados onde o nome das pessoas podem ser dados por ambos os vocabulários de FOAF e vcard.
+
+Suponha que temos um [an RDF graph](sparql_data/vc-db-3.ttl) que contém a informação de nome usando os vocabulários de vcard e FOAF.
+
+    @prefix foaf: <http://xmlns.com/foaf/0.1/> .
+    @prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> .
+
+    _:a foaf:name   "Matt Jones" .
+
+    _:b foaf:name   "Sarah Jones" .
+
+    _:c vcard:FN    "Becky Smith" .
+
+    _:d vcard:FN    "John Smith" .
+
+Uma consulta para acessar a informação do nome, poderia ser ([q-union1.rq](sparql_data/q-union1.rq)):
+
+    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
+    PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?name
+    WHERE
+    {
+       { [] foaf:name ?name } UNION { [] vCard:FN ?name }
+    }
+
+isso retorna:
+
+    -----------------
+    | name          |
+    =================
+    | "Matt Jones"  |
+    | "Sarah Jones" |
+    | "Becky Smith" |
+    | "John Smith"  |
+    -----------------
+
+Não importa que forma de expressão usasse para o nome, a variável ?name é preenchida. Isso pode ser obtido usando um `FILTER` como mostra essa consulta ([q-union-1alt.rq](sparql_data/q-union1alt.rq)):
+
+    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
+    PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?name
+    WHERE
+    {
+      [] ?p ?name
+      FILTER ( ?p = foaf:name || ?p = vCard:FN )
+    }
+
+testando se a propriedade é uma URI ou a outra. As soluções podem não vir na mesma ordem. A primeira forma é conhecida como a mais rápida, dependendo dos dados e do armazenamento utilizado, porque a segunda forma tem que pegar todas as triplas do grafo para casar com o padrão da tripla  com variáveis não ligadas (ou blank nodes) em cada slot, então testa cada ?p para ver se casa com algum dos valores. Isso vai depender da sofisticação do otimizador de consultas para saber se ele vai executar a consulta mais eficientemente e transcender para a camada de armazenamento.
+
+## Union - relembrando onde o dado foi encontrado.
+
+O exemplo acima usou a mesma variável em cada ramo. Se diferentes variáveis forem usadas, a aplicação pode descobrir que sub-padrão causou o casamento ([q-union2.rq](sparql_data/q-union2.rq)):
+
+    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
+    PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?name1 ?name2
+    WHERE
+    {
+       { [] foaf:name ?name1 } UNION { [] vCard:FN ?name2 }
+    }
+
+    ---------------------------------
+    | name1         | name2         |
+    =================================
+    | "Matt Jones"  |               |
+    | "Sarah Jones" |               |
+    |               | "Becky Smith" |
+    |               | "John Smith"  |
+    ---------------------------------
+
+Essa segunda consulta guardou informação sobre onde o name da pessoa se originou atribuindo o nome para diferentes variáveis.
+
+## OPTIONAL e UNION
+
+Na prática, `OPTIONAL` é mais comum que `UNION` mas ambas têm seu uso. `OPTIONAL` é útil para aumentar as soluções encontradas, `UNION` é útil para concatenar soluções de diferentes possibilidades. Eles não retornam necessariamente a informação da mesma maneira.
+
+Consulta([q-union3.rq](sparql_data/q-union3.rq)):
+
+    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
+    PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#>
+
+    SELECT ?name1 ?name2
+    WHERE
+    {
+      ?x a foaf:Person
+      OPTIONAL { ?x  foaf:name  ?name1 }
+      OPTIONAL { ?x  vCard:FN   ?name2 }
+    }
+
+    ---------------------------------
+    | name1         | name2         |
+    =================================
+    | "Matt Jones"  |               |
+    | "Sarah Jones" |               |
+    |               | "Becky Smith" |
+    |               | "John Smith"  |
+    ---------------------------------
+
+Mas cuidado ao usar `?name` em cada `OPTIONAL` porque isso é uma consulta dependente da ordem.
+
+[Próximo: Grafos Nomeados](sparql_datasets_pt.html)
+
+
+

Propchange: jena/site/trunk/content/tutorials/sparql_union_pt.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native