Observatório de dados/Convenções adotadas

A seguir as notações e demais convenções utilizadas nos relatórios e projetos do Observatório de dados.

Uma introdução mais didática é apresentada nos seguintes tutoriais: Conjuntos, Multiconjuntos e Núcleo semântico.

Notação lógica

editar

Utilizada principalmente na definição intensional de conjuntos (abaixo), mas precede os mesmos por ser também uma "ponte" entre a linguagem formal e a natural nos relatórios do Observatório de Dados.

Adotam-se as mesmas convenções gráficas e sintáticas que a Wikipedia da lingua inglesa para Lógica de primeira ordem.
Algumas restrições ou extensões podem ser adotadas para melhor acomodar o uso de expressões RDF da Web Semântica, onde nos restringimos aos padrões http://Schema.org e http://Wikidata.org.

Existem vários símbolos lógicos, que podem variar um pouco conforme o contexto, mas geralmente incluem:

  • Os símbolos quantificadores e .
  • (Parênteses), [colchetes] e outros símbolos de pontuação. A escolha de tais símbolos varia de acordo com o contexto.
  • Um conjunto infinito de variáveis, geralmente denotado por letras minúsculas do final do alfabeto x, y, z, ... . Os índices são frequentemente usados para distinguir variáveis: x0, x1, x2, ... .
  • Um símbolo de igualdade, =.

Por conveniência, as convenções foram desenvolvidas em termos da precedência dos operadores lógicos, para evitar a necessidade de escrever parênteses em demasia. Essas regras são semelhantes à ordem das operações em aritmética. A ordem de precedência é:

  é avaliado primeiro
  e   são avaliados a seguir
quantificadores são avaliados a seguir
  é avaliado em último lugar.

Além disso, a pontuação extra não exigida pela definição pode ser inserida para tornar as fórmulas mais fáceis de ler. Assim, a fórmula

     pode ser reescrita (e será igualmente aceita) como     .

Quanto ao contexto da expressão, as variáveis podem estar livres ou ligadas: na expressão matemática usual de somatório, supondo inteiros k e n,

        n é uma variável livre e k é uma variável ligada; consequentemente o valor desta expressão depende do valor de n, mas não de k.

Na expressão lógica de um predicado P, que depende das variáveis lógicas x, y e z, a avaliação de livres e ligadas é análoga:

        z é uma variável livre, enquanto que x e y são variáveis ligadas.

Logo, o valor lógico do predicado P depende do valor de z, mas não depende de x e nem de y.

Notação de conjuntos

editar
 
O conjunto é o "cercadinho", as coisas dentro são os elementos. A ilustração em si é a definição extensional de um conjunto de polígonos coloridos, se a interpretarmos como diagrama de Euler.
A cor (ou o número de lados) é um atributo do elemento que não diz respeito à definição deste conjunto, mas pode vir a ser utilizada como critério para formar subconjuntos, portanto, numa definição intensional, o atributo pode fazer papel de cercadinho.

Conjuntos podem representar zero, uma ou mais coisas, pessoas, lugares, animais, empresas, eventos... Qualquer tipo de entidade pode ser caracterizada por um conjunto, assim como seus elementos. Para não ter confusão deve-se ter sempre em mente o que é "o cercadinho" (conjunto) e o que "está dentro dele" (elemento), como ilustrado ao lado. Um cercadinho dentro do outro estabelece a noção de subconjunto.

Aqui no Observatório de Dados adotamos a convenção mais popular para o conceito matemático de conjunto, conhecida como "teoria ZFC".

Tradicionalmente um conjunto pode ser definido de maneira extensional ou intensional, conforme o que for mais conveniente. O conjunto I, por exemplo, dos números inteiros ímpares entre 0 e 14:

  • definição extensional:  
  • definição intensional:   ou mais preciso,
 

Tipicamente conjuntos muito grandes apresentam apenas a opção intensional, ou seja, ela se torna naturalmente obrigatória. Como o Observatório de Dados lida com o público e com conceitos pragmáticos, obriga-se que um subconjunto extensional de amostras seja também apresentado, para que seja minimamente didático e que se possa testar a definição intensional.

No exemplo acima a definição intensional seria então complementada por um subconjunto A de amostras como  , de onde é fácil testar que   e  , ou seja, que existem valores para k (2 e 6) na definição intensional que produzem os elementos da amostra. A amostra, quando pequena, pode ser expressa também sem um rótulo específico, usando reticências:

 

A definição de conjuntos também lança mão do uso do "conjunto universo" ou domínio de discurso, que no exemplo foi o conjunto   dos números naturais. O domínio de discurso estabelece um contexto de referência para podermos expressar os elementos. Os elementos de A acima não foram confundidos com o número decimal 5,13 porque o domínio é de inteiros.

Até aqui podemos expressar algumas convenções:

  • Letras maiúsculas (A, B,...) ou PalavrasComIniciaisMaiúsculas designam conjuntos.
  • Letras minúsculas (a, b,...) ou palavrasComIniciaisMinúsculas designam elementos.
  • Entre chaves expressamos a definição do conjunto (intencional ou extensional), {definição}.

Na falta de preferências, adotar C para conjunto, c para elemento e U para domínio de discurso.

A sintaxe geral para a definição extensional é

C = {elemento1, elemento2, ..., elementoN} ⊆ U

A sintaxe geral para a definição intensional segue a notação construtora de conjuntos,

C = { ∀cU | PredicadoLógico(c) }

O predicado lógico pode ser uma afirmação qualquer sobre c. O "conjunto das pessoas vivas" por exemplo pode ser expresso simplesmente por

 

onde has apenas conecta a frase livre "está viva" com o elemento p dando o sentido de "tem esse atributo". Opcionalmente pode-se usar is (ambos podem ainda ser interpretados como "é do tipo" ou "é uma instância de"), por exemplo em   .

Para reduzir a ambiguidade do predicado lógico e do domínio de discurso, lançamos mão da referência direta às definições da Wikidata ou ShemaOrg. Por exemplo no lugar do conjunto Pessoas podemos usar "humano" (Q5) da Wikidata, para obter o conjunto InstancesOf(Q5), equivalente ao vago Pessoas; no lugar de "está viva" podemos referenciar o conceito Wikidata Q18093573 de live person. Ver seção sobre "núcleos semânticos" abaixo.

 
Produto cartesiano   dos conjuntos   e  . Resulta num conjunto de 9 pares ordenados.

Se o predicado for complexo, pode ser necessário o acréscimo de mais quantificadores universais, para demais variáveis ligadas:

 

Estruturas complexas devem ser evitadas, e nas definições só são permitidos, além dos elementos simples, pares ordenados, ou seja, conjuntos-universo expressos como produto cartesiano.

Nomes e símbolos reservados

editar

Algumas definições são bem conhecidas da escola, outras serão adotadas conforme o projeto.

Os conjuntos numéricos básicos da matemática,  , correspondem respectivamente aos Naturais, Inteiros, Racionais e Reais. Os Irracionais dispensam símbolo especial por serem facilmente expressos como ℚ-ℝ. Assim podemos dizer que, independente de sere um símbolo reservado ou não, alguns conjuntos requerem símbolos e definição detalhada, outros podem ser definidos diretamente por uma expressão conjuntiva, sendo a própria expressão o seu rótulo.

Conforme veremos a definição formal de um conjunto do Observatório de Dados requer seu link com a Wikidata. Por exemplo os números Naturais seriam definidos da seguinte forma = { ∀xInstancesOf(NúmeroNatural) }.

A seguir estes e outros símbolos "reservados", ou seja, que não podem ser utilizados de forma arbitrária:

InstancesOf(Q)   conjunto das instâncias de uma classe semântica Q da Wikidata.
MultiInstancesOf(Q)   multiconjunto das instâncias de uma classe semântica Q da Wikidata.
is(x,P)   verifica se x tem a propriedade semântica P da Wikidata.
símbolo de "pertence",         igualdade entre conjuntos, =                            
símbolo de conjunto vazio, "igual ou está contido",
= InstancesOf(NúmeroNatural) = InstancesOf(NúmeroInteiro)
= InstancesOf(NúmeroRacional) = InstancesOf(NúmeroReal)
... ...

Definições diretas e operadores conjuntivos

editar

Se, num dado contexto, já foram definidos formalmente diversos conjuntos, a definição de um novo conjunto pode ser facilitada, e diremos que é uma definição exata, se puder ser expressa através de uma expressão conjuntiva. Por exemplo se X são todos os ímpares e A os números naturais entre 0 e 14, então I=XA define exatamente o que queremos.

Sejam A={2,3} e B={♠,♥,3}

união:   A U B = { 2, 3, ♠, ♥ }
interseção:   AB = { 3 }
subtração:   AB = { 2 }
produto:   A × B = { (2,♠), (2,♥), (2,3), (3,♠), (3,♥), (3,3) }

Notação de multiconjuntos

editar

...

Notação de função

editar
 
Notação para a declaração de funções a partir do seu domínio e contra-domínio.

Definição de núcleos semânticos

editar

... ver tutorial Definindo um núcleo semântico... e resumnir aqui

Definição de Datasets

editar

... Padrões http://FrictionlessData.io e repositórios públicos git com os datasets...

Representação gráfica de relacionamentos

editar

Datasets em contexto SQL

editar

Além da vinculação com scripts e Github... recurso para destacar a origem da definição do conjunto na própria expressão SQL.

P = [SELECT prenome FROM InstancesOf(Pessoa) WHERE isBrasileira] ⊆ MultiInstancesOf(Palavra)      (multiconjunto)
Q = {SELECT DISTINCT prenome FROM InstancesOf(Pessoa) WHERE isBrasileira} ⊆ InstancesOf(Palavra)     (conjunto)

Nota: preferir declarações de conjunto (ex. interseção) a usar o WHERE, assim como evitar predicados longos ou complexos. Opção MultiInstancesOf pode ser usada diretamente, no lugar de InstancesOf, desde que não tenha ficado isolada... evitar uso de multiconjuntos para não criar ambiguidades algébricas.

Datasets em contexto SparQL

editar

Agrupamentos, classificações e partições

editar

... w:en:Grouped data

Sumarizações gerais e índices estatísticos

editar

.. Soma, Média, Mediana, Desvios, etc. ... índices de diversidade...