Wikifunções:FAQ
Esta é uma página dedicada às perguntas frequentes sobre a Wikifunções. Por favor, sinta-se à vontade para fazer sua própria pergunta na página de discussão, se ela não estiver listada aqui!
Além disso, considere nosso FAQ no Meta sobre questões mais gerais sobre a Wikifunções e a Wikipédia Abstrata.
Introdução
Do que se trata esse projeto?
A Wikifunções é um novo projeto da Wikimedia que fornece um catálogo de todos os tipos de funções que qualquer um pode chamar, escrever, manter e usar. Ele também fornece a tecnologia subjacente que eventualmente permitirá a tradução de artigos independentes de idioma da Wikipédia Abstrata para o idioma de qualquer Wikipédia. Isso permitirá que todos contribuam e leiam artigos em seus idiomas preferidos.
O que é uma função?
As funções são uma forma de conhecimento que pode responder perguntas, como quantos dias se passaram entre duas datas ou a distância entre duas cidades. Funções mais complicadas podem responder perguntas mais complicadas, como o volume de uma forma tridimensional, a distância entre Marte e Vênus em uma determinada data, ou se duas espécies estavam vivas ao mesmo tempo.
Já usamos funções em muitos tipos de consultas de conhecimento, como fazer uma pergunta a um mecanismo de busca. As predefinições, como Template:Convert e Template:Age na Wikipédia em inglês, também são exemplos de funcionalidades que já são usadas em muitas Wikipédias, escritas em wikitexto e Lua e copiadas manualmente para cada wiki onde são desejadas.
O que é uma implementação?
Uma implementação é uma maneira particular de executar uma função. Uma implementação é uma receita que lista as etapas necessárias para executar a função. Pode ser um pedaço de código em uma linguagem de programação ou uma combinação de chamadas para outras funções. Uma função pode ter muitas implementações, que devem ser todas equivalentes.
O que é um teste?
Um teste é uma maneira de determinar se uma dada função está fazendo a coisa certa. Uma função normalmente terá vários testadores, cada um especificando alguma entrada para a função e as condições que a saída para a entrada dada deve cumprir.
Por exemplo, os testadores para uma função “capitalização de título” podem incluir: “abc” deve se tornar “Abc”; “war and peace” deve se tornar “War and Peace”; “война и мир” deve se tornar “Война и мир”; e “123” deve permanecer “123”.
Quais recursos estão disponíveis agora, quais estarão disponíveis em breve e quais estão mais distantes?
- No lançamento:
- Temos a capacidade de ter funções que funcionam com Cadeias e Booleanos.
- A Wikifunções será totalmente internacionalizada desde o início. Ela pode ser usada em qualquer idioma.
- Desenvolvimento em andamento:
- Tipos genéricos e funções genéricas não são totalmente suportados.
- Adicionar tipos será, por enquanto, algo limitado à equipe de desenvolvimento. No futuro, a comunidade poderá adicionar mais tipos. Há muito trabalho a ser feito no futuro para fazer com que os tipos se comportem de forma muito mais suave.
- Um tipo particularmente interessante serão os dados binários, particularmente os arquivos.
- Atualmente, oferecemos suporte a duas linguagens de programação para implementações: JavaScript e Python. No futuro, queremos oferecer suporte a muitas outras.
- Atualmente, não é possível chamar outras funções de implementações escritas em qualquer linguagem de programação. Atualmente, isso só é possível por meio de composição.
- No futuro:
- Será possível chamar funções da Wikifunções de outros projetos da Wikimedia e integrar seus resultados na saída da página.
- Será possível usar dados do Wikidata em funções.
- Será possível chamar conjuntos de dados do namespace Commons Data.
Como a Wikifunções é multilíngue?
A Wikifunções e a Wikipédia Abstrata são multilíngues de diversas maneiras diferentes que não afetam uma à outra:
- A Wikifunções é multilíngue em termos de conteúdo e interface de usuário. Os usuários podem ler e chamar funções na Wikifunções em qualquer idioma natural. Aqui está a função “juntar cadeias” em inglês, polonês e hebraico, e está disponível em muitos outros idiomas.
- Colaboradores podem editar e melhorar a Wikifunções usando sua linguagem. Até mesmo implementações podem ser editadas na linguagem natural do colaborador. Por exemplo, a composição da função “e” pode ser editada em alemão, inglês, ou qualquer outro dos cerca de 300 idiomas.
- As funções da Wikifunções podem ser usadas para criar resultados para qualquer idioma natural. A comunidade está criando um número crescente de funções para dar suporte à geração de texto em muitos idiomas naturais. Temos funções para bretão, ruainga, inglês, e muitos outros idiomas.
- As funções na Wikifunções podem ser implementadas em várias linguagens de programação diferentes. Por exemplo, a função juntar é implementada em JavaScript e em Python.
Quais linguagens de programação a Wikifunções suporta atualmente? Quais linguagens de programação serão suportadas no futuro?
Atualmente, a Wikifunções suporta implementações escritas em JavaScript e Python. Planejamos adicionar suporte para mais linguagens de programação no futuro. Esperamos adicionar pelo menos mais uma linguagem de programação em 2025 (mas ainda não decidimos qual).
Como a Wikifunções será integrada a outros projetos?
A Wikifunções é o primeiro passo para construir a Wikipédia Abstrata. Nosso foco a curto prazo será dar suporte à comunidade e fazer melhorias com base no feedback. Ao mesmo tempo, começaremos o processo de integração com a Wikipédia e o Wikidata, o que permitirá aplicações mais amplas na vida real e nos deixará mais próximos da visão da Wikipédia Abstrata.
Os contribuidores poderão chamar funções armazenadas no site da Wikifunções de dentro de suas wikis. O resultado da chamada de função será exibido aos leitores da wiki. Isso pode ser usado, por exemplo, para calcular a idade de uma pessoa, a densidade populacional com base em dados de população e área do Wikidata, ou para desenhar um gráfico e integrá-lo a um determinado artigo.
Outra opção para integrar a Wikifunções será integrar uma interface de chamada de função interativa dentro de sua wiki. Isso poderia ser usado, por exemplo, em um artigo da Wikipédia para calcular dinamicamente o resultado de uma equação física com base em parâmetros fornecidos pelo leitor, desenhar e interagir com funções matemáticas, etc.
O que a Wikifunções não é?
Por favor, veja Wikifunções:O que a Wikifunções não é para mais informações sobre isso.
Sob qual licença as funções e o conteúdo derivado estarão?
Conforme a discussão aconteceu no Meta entre novembro e dezembro de 2021, todas as contribuições para a Wikifunções e os projetos mais amplos da Wikipédia Abstrata serão publicadas sob licenças livres. Em particular:
- Conteúdo textual na Wikifunções será publicado sob CC BY-SA 4.0.
- Assinaturas de função e outros conteúdos estruturados na Wikifunções serão publicados sob CC 0.
- Implementações de código na Wikifunções serão publicadas sob a Licença Apache 2.
- Conteúdo Abstrato para a Wikipédia Abstrata será publicado sob CC BY-SA 4.0.
Ainda há alguns pontos que precisarão ser abordados no futuro, como a licença do conteúdo gerado a partir do conteúdo abstrato. Planejamos redigir um documento mais abrangente com o departamento Jurídico sobre como as pessoas podem reutilizar o código da Wikifunções da forma mais indolor possível, ao mesmo tempo em que respeitam a licença.
Contribuindo
Sou novo aqui. O que posso fazer e como posso ajudar?
Bem-vindo(a)! Estamos muito felizes em ter você aqui! Há muitas oportunidades para contribuir com a Wikifunções, desde criar novas funções até melhorar e traduzir a documentação. Se você está procurando maneiras de se envolver, recomendamos que, dependendo do seu nível de conforto, você sugira uma nova função sobre um tópico do seu interesse. Ou até mesmo crie uma função desse tipo. Forneça alguns testes. Tente sua mão em uma implementação. Ajude com as traduções. Leia e melhore nossa documentação. Ajude a organizar a comunidade.
Como faço para criar uma nova função, implementação ou teste?
Para ver como criar uma nova função, implementação ou teste, consulte Wikifunções:Introdução.
Para ver mais detalhes sobre como criar uma implementação, consulte Wikifunções:Como criar implementações.
O que devo editar primeiro?
Se você consegue escrever em várias linguagens, encontre funções que ainda não tenham rótulos e descrições em suas linguagens e ajude a adicioná-las.
Se você tiver algum interesse em um domínio que poderia apresentar funções na Wikifunções, mas ainda não o faz, ou se tiver mais ideias para funções, vá para a página de sugestão de novas funções e apresente suas ideias.
Se você é um programador em JavaScript ou Python, talvez queira verificar funções que ainda não tenham implementações em JavaScript ou Python e tentar escrevê-las.
Onde posso obter ajuda?
Sua primeira parada deve ser o portal de ajuda onde você encontrará toda a documentação relacionada ao uso e edição da Wikifunções. Se você ainda estiver travado, poste uma mensagem no chat do projeto, e alguém responderá sua pergunta.
Como classificamos ou categorizamos funções?
Por enquanto, a melhor maneira de classificar ou categorizar funções é fazê-lo manualmente por meio de páginas no namespace Wikifunctions. Outra opção seria por meio da página de discussão da função dada. Monitoraremos esses esforços e discutiremos com a comunidade quais mudanças no sistema seriam úteis para essa tarefa.