Web,ruby, Ajax ou qualquer outra coisa que me venha a cabeça (com prioridade para esta última)

19 julho, 2007

3 sítios conformes as WCAG 1.0 A

A nomensa foi contratada pelas Nações Unidas para efectuar uma auditoria de acessibilidade Web a nível mundial. Nessa auditoria foram, passe o pleonasmo, auditados 100 sítios em 20 países e todos apresentavam inconformidades em relação às WCAG 1.0 embora 3 (governos) passassem o nível básico de verificação.

Os sítios analizados incluiam as seguintes áreas:

  • Companhias aéreas,
  • bancos,
  • imprensa,
  • política e
  • lojas

A Internet Crachou

Neste vídeo a *NN "informa" que a Internet Crachou.

18 julho, 2007

A Obra do Frei Gil

Este mês o Planeta Geek apoia a Obra do Frei Gil instituição que acolhe crianças e jovens em risco. Quem desejar ajudar poderá efectuá-lo divulgando esta acção ou fazendo um donativo conforme informação que podem encontrar na página acima assinalada.

12 julho, 2007

Open XML - Aberto para a asneira

A vantagem de escrever uma norma com participação de várias entidades é evitar fazer asneiras como a abaixo descrita: Nas funções trignométrica da Open XML SIN (Part 4, Section 3.17.7.287), COS (Part 4, Section 3.17.7.50) e TAN (Part 4, Section 3.17.7.313) esqueceram-se de indicar se os seus argumentos são ângulos expressos em radianos ou graus. (ligação para a fonte original de Rob Weir. Nessa peça pode encontrar outras limitações à interoperabilidade do OOXML por omissão de definição de vários aspectos de determinadas fórmulas e funções ou por uma especificação algo fora do vulgar. O outro aspecto estranho desta especificação é o seu volume.

02 julho, 2007

A reboque

Que raio de Geeks somos quando para vermos isto tenho que ver na internActu.

P.s. ó MG desculpa lá ir a reboque do tema do dia. E parece que estava a dormir quando dei o nome à entrada anterior.

Que futuro para as democracias

Introdução

Que uma pessoa seja ignorante sobre determinado assunto é razoável. Que uma pessoa ignorante sobre determinado assunto elabore uma resposta apressada quando exerce um carga público significa que além de ignorante sobre o tal assunto é também inapta para a vida pública.

Este entróito serve para dizer que quando um dos pilares de uma democracia, o pilar judicial, tem um inapto digital que se atira de cabeça e responde como fez o actual Procurador da Republica sobre conteúdos existentes em blogues temos um dos pilares da democracia em má forma. Então porque não eu também atirar-me ao assunto, o futuro da democracia, e paciência se me espalhar ao comprido. A minha audiência é muito menor e a minha capacidade de influenciar também.

O mundo encontra-se numa encruzilhada algo complexa e perigosa e julgo que a Internet pode ser uma ferramenta importante para reduzir esse risco e essa complexidade. Acredito no poder de pessoas comuns comunicarem umas com as outras poder ajudar na resolução de alguns dos problemas

Democracia e Liderança

Se democracia é uma forma de poder então alguém o exerce. Quem serão os líderes do futuro? Serão pessoas medianas como nas democracias estabilizadas no mundo dito ocidental ou serão os líderes locais dos novos aglomerados do tipo de bairro da lata que são os locais com maior aumento populacional no planeta como diz Steward Brand. Pessoas com preparação académica reduzida ou nula, mas que mesmo com esses baixos conhecimentos académicos mostram capacidade de organização para gerirem o sistema de cobrança de água em fontanários público em Luanda num projecto acompanhado pela Águas de Portugal para a EPAL - EP )ou que criam autarquias na Turquia com casas construídas de noite, que não podem ser deitadas abaixo a não ser com o devido processo judicial e que quando o aglomerado atinge as 2000 pessoas podem pedir para formar uma autarquia. (Robert Neuwirth: "shadow cities"). Ou ainda o caso da biblioteca de Backul que foi formada graças a um grupo de 1000 pessoas que doaram livros.

Liberdade ou autoritarismo

Nos últimos tempos temos vivido em Portugal com expressões por parte de alguns dos nossos governantes no mínimo inusitadas. O ministro da saúde deu uma entrevista a um jornal. Nessa entrevista disse (parece algo displicente) que nunca tinha ido nem tencionava ir a um SAP. A mim parece-me que se o ministro da saúde acha que o serviço prestado por esses organismos públicos sob a sua alçada não é adequado ao fim a que foram destinados tem algumas opções entre elas fechá-los e assumir as consequências ou alterar o seu funcionamento de forma a ser mais adequado (e até ele senhor ministro ficar seguro de valer a pena usá-lo ou ainda dimitir-se se for incompetente. Tentar tapar com a peneiro o sol é que parece ser algo estranho. Uma pessoa deve ser livre de emitir as suas opiniões (mesmo políticas) (salvo os casos em que a lei tenha um preceito expresso como no caso das forças armadas e dos juizes). Outro caso de falta de senso é quando um primeiro ministro processa alguém sem que se perceba claramente onde é que esse alguém tenha eventualmente mentido. Esta deriva contra a liberdade de expressão parece mais acentuada no PS que já tinha tido no passado a questão terravista. Parece que andamos com falta de liderança e excesso de arrogância.

Nos EUA existem grupos que advogam na defesa dos nossos direitos numa cultura digital emergente, será que não poderão nascer grupos destes em Portugal.

Alguns destes grupos acham mesmo que com a continuação de legislação restritiva qualquer dia será impossível a muita gente efectuar vídeos (os militares americanos no Iraque praticamente estão proibidos de o fazer usando as redes militares (e já acham um ataque à sua liberdade de expressão)) visto estar-se a pensar exigir por exemplo em Nova Iorque um seguro de um valor exorbitante que ainda por cima poderá ser usada (a exigência) de forma discriminatória.

A importância da imprensa como

O software livre é uma questão de liberdade: as pessoas devem poder ser livres de usar software da maneira que considerem mais apropriada desde que socialmente útil). O software livre é software desenvolvido e mantido em conjunto e qualquer pessoa pode usá-lo, copiá-lo, estudá-lo, modificá-lo ou melhorá-lo.

Mudança de atitude

Os problemas que são enfrentados no mundo e em Portugal exigem uma mudança de atitudes. Deixamos de poder entregar o poder (passe a expressão) aos nossos representantes esperando que eles tratem dos nossos assuntos. Quando em 1992 Severn Cullis-Suzuki discursou na Cimeira da terra, foi uma menina de 12 anos a dizer isso mesmo.

O vídeo acima tem legendas em português do Brasil.

Uma das entidades que tem procurado esta mudança de atitude é a WorldChanging que partiu da ideia de que já existem verdadeiras soluções para construirmos o futuro que desejamos, basta tratarmos das coisas por nós.

Responsabilização

O governador de uma província nigeriana foi preso em Londres por ter desviado alguns milhões de dolares. Após ter fugido vestido de mulher foi obrigado a resignar e foi preso na Nigéria. Disse-o a ex-ministra das finanças Ngozi Okonjo-Iweala.

Cada vez mais temos que ser exigentes conosco e com os nossos representantes. Será que entre 230 não há mais do que 5 blogueiros. Será que temos que fazer algo como o They Work For You.

Será que podemos (e eu diria deveremos) ler regularmente o que se passou na nossa assembleia municipal e ver onde foi gasto e onde se preve gastar dinheiro e outros recursos. Será assim tão exotérico este exercício.

Será que podemos criar/participar e grupo ou grupos (mesmo que informais) que queiram melhorar o meio onde vivemos. Por exemplo criar um site para colocar-mos as nossas promessas/visões para melhoria da nossa rua, do nosso bairro, da nossa cidade e do nosso país.

Será que não deveremos reclamar mais (por escrito e ficando com a respectiva cópia) para que mudem quer atitudes quer processos de trabalho. Há cerca de 1 mês estava a acompanhar o meu pai à área de Imagiologia do Santa Maria, uma senhora estava literalmente possessa por terem feito esperar o marido numa cadeira de rodas várias horas, tendo este que lhe ligar e ele ter que sair do seu local de trabalho para o fazer circular no hospital para a secção onde o estavam à espera pois não apareciam auxiliares para essa tarefa - desconheço os termos usados pela senhora na respectiva reclamação mas ela estava francamente nervosa. Ou então reclamar-mos quando representantes legais de um banco (de capitais maioritariamente espanhóis) faz esperar no notário uns desgraçados que tiveram o azar de lhes pedir um empréstimo para aquisição de casa e que esses mesmos representantes não se tenham certificado de que todos os documentos estavam conformes (tendo o banco cobrado um valor por esses serviço).

Algumas destas coisas poderão parecer não ter nada a haver com democracia mas para que uma democracia o seja é necessário que cada um participe, na medida das suas possibilidades e desejos puxando cada um para o seu lado e chegando a compromissos para toda a comunidade e não sendo amorfo ou atirando as "culpas" para "os outros".

Há ainda algo mais insidioso para o futuro das democracias se continuarmos a deixar a corrupção encapotada seguir o seu caminho. Lawrence Lessig acaba de lançar um wiki para recolha de ideias sobre este assunto. Nele fala-se não da corrupção descarada de algum funcionário ou político pedir ou aceitar dinheiro ou outro meio de troca para uma finalidade não legal ou para acelerar um processo, mas sim de algo mais escondido como por são os casos em que uma decisão é impropriamente influenciada antecipando-se alguma forma indirecta de ganho ou perca financeira. Assim dinheiro, ou uso de bens (alguém se lembra de uma moradia no cruzamento da Marquês da Fronteira com a António Augusto de Aguiar num campanha eleitoral), que seja aplicado numa campanha, financiamento de investigação, etc.

É claro que há países em que primeiro se terá que apontar a dedo os corruptores e corrompidos de tal forma é descarada a corrupção. Quando alguém diz que os corruptores passivos devem ser os únicos a sofrer as consequências dos seus actos, parece-me ter vistas curtas. Primeiro julgo mais útil tornar os actos mais transparentes (todos os actos administrativos). Porque é que há que fazer um remendo na rede pública de distribuição de água num sítio e noutro se adopta a solução de substituição integral e noutro ainda se cria uma verdadeira malha de distribuição de forma a reduzir ao mínimo os transtornos provocados pelo corte de água. Julgo que a divulgação pública dos estudos que levem a cada uma das decisões seria pelo menos mais transparente. Será razoável pagar na Madeira todos aqueles túneis e não fazer nas zonas do interior algum esforço de investimento de modo a tornar mais atractivo viver lá.

Há ainda algumas obras que antes de começarem parecem já ter meia dúzia de destinatários possíveis, felizmente que com a nossa adesão à UE hoje aparecem por vezes algumas empresas de fora e julgo que nas obras grandes o problema do cambão tenha se não desaparecido sido reduzido.

Democracia vs. Ditadura

Este parágrafo surge após conversa com outro membro do PG. Há algumas pessoas que por serem mais inteligentes (na sua opinião e provavelmente algumas delas têm razão quanto ao aspecto de serem mais inteligentes) do que a média acharem que os regimes democráticos se tornam uma ditadura das massas ignaras sobre eles. O argumento andaria algo perto disto: como sou mais inteligente sei mais do que os outros para me dirigir e para os dirigir (podem substituir este verbo se for demasiado forte.) Parece que não se percebe que é este o fundamento das ditaduras. Quem quer dirigir num ambiente democrático tem que convencer os seus concidadãos sobre os seus pensamentos e as suas acções. Não colhe aqui só os seus pensamentos as acções (pelo menos as apercebidas) é realmente o factor chave. Não serve o discurso aparentemente fluído de um Santana Lopes é necessário uma acção consequente de um Sócrates.

Conclusões

A democracia corre riscos, como aliás sempre correu. Ainda não apareceu um regime político que preserve melhor a liberdade individual e colectiva embora claro como qualquer construção humana não seja um regime perfeito, como Winston Churchil dizia é o melhor dos piores regimes (não há regimes bons). A tecnologia de que dispomos pode ser posta ao serviço da vigilância a favor da democracia ou pode ser aplicada ao serviço da vigilância em ditadura (ou a caminho).

Podemos usar meios existentes ou, devido à grande facilidade de criação de meios mais adequados às nossas necessidades específicas, podemos criar (digitais) meios à nossa medida. Por exemplo talvez fosse interessante criar um agregador de decisões de assembleias municipais onde as pessoas além de verem as decisões pudessem dar os seus contributos. O aumento da transparência das decisões parece-me importante. Podia ainda verificar-se que promessas os políticos fazem em campanha e quais são cumpridas e quais não são cumpridas e quanto tempo demoram a colocá-las em prática.

Quando um ministro dá uma entrevista deve evitar mandar boutades cá para fora pois como é evidente podem ser contestadas nos organismos públicos que supostamente superintendem. Acho estranho que se possam calar pessoas (não responderem sem autorização das hierárquias) (lei da rolha) a pessoas que não pertençam a corpos militarizados ou a orgãos de soberania em que eu compreendo que se aplique tal regra.

Existe tecnologia suficiente para cada um de nós participar e fazer saber qual a nossa opinião, não necessitamos de a delegar (elegendo de x em x anos os nossos representantes) e depois ficar calados durante algum tempo. Podemos tentar dialogar, mesmo que de forma indirecta usando blogues, e vlogues e podcast mostrando o que está mal e o que pode e deve ser mudado e mesmo o como.

PG blogues com entradas sobre este tema

Nota 1: Nesta entrada serão eliminados quaisquer comentários que sejam ataques pessoais explícitos. Serão claro aceites opiniões contrárias às aqui expressas. Tratem pois de me convencer

Nota 2: Este texto irá ser actualizado no futuro incluindo aqui uma lista de sítios e de conteúdos que versam este tema.

Nota 2: Peço desculpa do texto não estar lá muito coerente e algo desconexo mas realmente não tenho tempo para o refazer meia dúzia de vezes (sou muito lento a escrever), mas realmente estou mais preocupado com a minha irmã mais velha que já está em Santa Maria há 1 semana e ainda não acordou. Últimas: já esteve acordada 2 horas seguidas e depois de tempos a tempos.

Certificados-Firefox e Prémio de 1000 euros

No sítio do Mário Valente vem um pedido de ajuda com um pagamento prometido para quem conseguir o que lhe é pedido.

27 junho, 2007

Discussão sobre normas de documentos

O primeiro argumento que vejo que faz algum sentido a favor da puralidade de normas sobre troca de documentos abertos (ODF vs OOXML):

O requisito, para uma conformidade, com uma única norma monolítica não encaixa contudo, com a natureza descentralizada da produção da WWW e com a Web Semântica. Embora organizações como a UNESCO tenham analisado cuidadosamente a problemática do multilinguismo e multiculturalismo humano (UNESCO 2005), considerando-o como valor a preservar que a comunicação com e entre todos pode e deve ocurrer com a preservação dos idiomas locais e valores culturais - a liberdade de escolha de linguagens de computadores, isto é, a codificação de dados e programas foi largamento ignorada. Flávio Soares Corrêa da Silva

Só tem um detalhe que não aprecio aquelas normas destinam-se a máquinas em primeiro lugar e a humanos num segundo lugar muito distante.

Conferência SemGrail

A Microsoft Research teve há alguns dias uma conferência sobre web semântica onde foram apresentadas algumas teses interessantes entre estas há uma, Evolving the Web Through Open Data, de Harry Halpin, investigador posgraduado da Universidade de Edinburgh, em que conclui dizendo:

O cerne da questão é que em vez de dependermos de motores de busca centralizados não estruturados, como o motor da Google, uma série de aplicações poderosas da Web podem tirar vantagem da natureza inerentemente social e natureza estruturada da web de um modo descentralizado. Qualquer Web centralizada está essencialmente danificada, e os dados abertos através de RDF são actualmente a única equipa em jogo para a descentralização à escala da Web de dados abertos. A combinação de GRDDL, RDF e microformatos proporciona um primeiro passo prático para a implementação de dados abertos como camada por cima da Web actual.

Roots

Roots (raízes) é uma fundação livre para a web, com a finalidade de retirar o trabalho repetitivo em CSS, HTML e JavaScript que quem desenvolve sítios web incorre na maior parte dos sítios. É muito detalhada e inclui vários ficheiros separados. Actualmente a documentação é escassa. Para ser usada o utilizador desta fundação deverá ter pelos menos 2 anos de experiência em HTML e pelo menos 1 ano de experiência em CSS e JavaScipt. O utilizador deverá saber mesmo criar documentos com HTML semântico sem utilização de tabelas para o arranjo do sítio e escrever notação literal de objectos em JavaScript e ainda como criar classes e protótipos.

Roots tem as seguintes características:

  • Ficheiros HTML para serem incluídos de forma a ajudar a manter e organizar o seu sítio
  • Ficheiros CSS flexíveis incluindo:
    • CSS para arranjos mais habituais
    • CSS para vários estilos tipográficos
    • CSS para diferentes paletas de cor
    • Suporte para dispositivos com ecrã, impressão, portáteis e auditivos
  • Infraestruturas de Javascript incluindo: Prototype, Dojo, MochiKit, Mootools, Rico, Scriptaculous e Yahoo! UI Library.
  • Funções utilitáriazs em JavaScript, incluindo um auxiliar Ajax, o Encapsulated Load Object, suporte para PNGs em IE 5.5 & 6, um editor Ajax em linha, um auxiliar de criação de formulários e uma correcção para o problema Eolas "clicar para activar".

25 junho, 2007

Conhecimento - Não encontrado

Como eu sou um chato (quase troll ou tendências trollianas) quando me aparecem tais seres por aqui tenho a tendência para me colocar do lado deles e tolerar o facto, por vezes isso conduz a coisas interessantes como por exemplo a do lado.

22 junho, 2007

HTML - Futuro

Parece que a comunidade que desenvolve sítios para a web está finalmente a acordar e a ver o que é que o futuro virá a ser. Começam a aparecer as primeiras críticas estruturadas quer genéricas quer específicas sobre o (X)HTML5 e o XHTML 2.0.

As discussões quanto a mim mais importantes têm a haver com o que se está a esquecer ter aprendido sobre acessibilidade e a utilização (ou praticamente a sua ausência) de elementos e sobretudo atributos necessários a uma web semântica.

Embora Lee Bryant possa ter razão quanto à necessidade de alimentarmos a nossa mente e não propriamente a máquina, isso não significa que não se possa tirar partido de uma máquina bem alimentada de informação e não só de meros dados.

15 junho, 2007

As 15 regras de desenvolvimento de sítios na Web da BBC

No blog do Tom Loosemore encontra-se uma entrada chamada de "Os 15 princípios da BBC [para desenvolvimento] Web" [en].

Como os acho interessantes e como estão sobre a licença Atribuição-Uso Não-Comercial-Partilha nos termos da mesma licença 2.0 Reino Unido resolvi colocar aqui uma tradução algo livre.

  1. Contruir produtos web que vão ao encontro das necessidades das audiências: antecipar as necessidades ainda não totalmente articuladas pelas audiências e então ir ao encontro dessas necessidades com produtos que estabeleção novos padrões. (Roubado da Google)
  2. Os melhores sítios fazem uma coisa bem, realmente bem: faça menos, mas execute de forma perfeita. (Novamente retirado da Google, com uma pista do Jason Fried da 37signals)
  3. Não tente fazer tudo sozinho: ligue a outros sítios de elevada qualidade. Os seus utilizadores vão agradecer-lhe. Use os conteúdos e ferramentas das outras pessoas para melhorar o seu sítio e vice-versa.
  4. Se tiver que falhar falhe rapidamente: faça apostas pequenas, faça muitas iterações, guarde os sucessos, mate as falhas, rapidamente.
  5. Trate a totalidade da web como a sua paleta criativa: não restrinja a sua criatividade ao seu próprio sítio.
  6. A web é uma conversação. Participe: adopte um tom relaxado e em conversa. Admita os seus erros.
  7. Qualquer sítio é tão bom quanto a sua pior página: Assegure-se que os processos editoriais seguem sempre as melhores práticas adoptadas.
  8. Assegure-se que todo o seu conteúdo pode ser página de chegada, para sempre (isto é a que se pode sempre ligar).
  9. Lembre-se que a sua avó nunca irá usar o "Second Life": ela poderá ligar-se à rede, mas com diferentes necessidades do que aquelas que os pioneiros têm.
  10. Maximise as rotas para o conteúdo: Desenvolva tantas agregações de conteúdos sobre pessoas, locais, temas, canais, redes e tempo que lhe sejam possíveis. Optimize o seu sítio de modo a aparecer bem colocado no Google.
  11. Design e navegação consistentes não quer dizer que um tamanho serve para todos: Os utilizadores devem sempre saber que se encontram num dos seus sítios, mesmo que estes tenham uma aparência diferente. Mais importante que isso sabem que nunca se irão perder.
  12. A acessibilidade não é um extra opcional: os sítios concebidos dessa forma funcionam melhor para todos os utilizadores.
  13. Deixe que as pessoas copiem o seu conteúdo para as paredes das suas casas virtuais: encorage os utilizadores a tirarem as gemas do seu conteúdo com elas, com ligações de volta para o seu sítio.
  14. Ligue-se a discussões na web, não as hospede: só hospedar discussões baseadas na web onde tal faça claramente sentido.
  15. A personalização não deve criar obstáculos, deve ser elegante e transparente: Não se esqueça que os dados são dos seus utilizadores. É melhor respeitar isso.

14 junho, 2007

A List Apart 239

O A List Apart nº 239 saiu dia 12 de Junho. Neste número o primeiro artigo trata de infraestruturas para web designers (em compara as suas vantagens com as infraestruturas de programação em javascript). O segundo artigo é um artigo mais filosófico e que trata da importância e indispensabilidade dos seres humanos na produção de sítios web.

08 junho, 2007

SIOC - Guia do programador

SIOC ou Comunidades On-line Semanticamente Interligadas é uma infraestrutura cuja finalidade é interligar sítios on-line de comunidades e discussões baseadas na Internet.

Produzir dados SIOC

  • Há uma lista de correio "SIOC-Dev" para programadores nos Grupos do Google;
  • O vocabulário SIOC para termos de descrição semântica de discussão está disponível e pode ser combinado com outros vocabulários como FOAF, SKOS e Dublin Core;
  • Foi disponibilizada a API de PHP para SIOC de modo a poder produzir-se dados SIOC a partir de aplicações baseadas em PHP;
  • Pode escrever um exportador SIOC e ligar o seu sistema de discussão à Web com capacidades de metadados.

Usar Dados SIOC

  • Pode encontrar-se uma série de origens de dados SIOC na página de wiki SIOC "Enabled Sites", ou descarregando a lista de exportação a partir de PingtheSemanticWeb.com.
  • A SIOC e a linguagem de inquérito SPARQL desacoplam os consumidores de dados de discussão de detalhes particulares de um motor de blogue ou CMS;
  • Foram desenvolvidos um crawler e um navegador e está disponível código em open source a partir do repositório SIOC.
  • ;
  • Outras aplicações que usam dados SIOC são SemRadar, OpenLink Data Spaces e TalkDigger;
  • Pode criar os seus próprios navegadores SIOC ou outras aplicações a partir dos recursos acima mencionados.

Nota: ver originais em

SIOC - Guia de Utilizador final

Original em:http://sioc-project.org/

SIOC ou Comunidades On-line Semanticamente Interligadas é uma infraestrutura cuja finalidade é interligar sítios on-line de comunidades e discussões baseadas na Internet.

O que é que posso fazer?

  • Carregar um plugin exportador para o seu sítios de blogues - há plugins para WordPress, Drupal, DotClear, b2evolution e outros...
  • Adiconar um botão SIOC ao seu sítio!
  • Instalar o extra Semantic Radar ao Mozilla Firefox de modo a que voçê (e um serviço de ping) seja notificado se estiver em presença de dados SIOC;
  • Junte-se à comunidade e diga-nos como deseja usar a SIOC.

O que é que obtemos?

  • Mais visibilidade dos nossos sítios através de serviços que fazem uso de dados SIOC (crawlers, navegadores, aplicações de visualização);
  • Métodos melhorados para utilização de tagging e metadados semânticos;
  • Mais conhecimento sobre a estrutura de um sítio assim como dos seus conteúdos;
  • Mais ligações entre sítios que discutam tópicos complementares via esta "SIOC-o-esfera";
  • Respostas relevantes a perguntas em vez de resultados potencialmente correctos a partir de palavras chave, isto é "encontrar todas em entradas feitas por John e entradas feitas por alguém que as tenha comentado ou tenha ligado ao blogue do John (find me all blog posts by John and posts by anybody else who has commented on or linked to John's blog)"

SIOC - Sumário para Executivos

Comunidades on-line interligadas semanticamente (do inglês SIOC) é uma infraestrutura que tem por finalidade interligar sítios comunitários on-line e discussões baseadas na Internet. Actualmente as comunidades on-line são maioritariamente como ilhas, possuindo informção valiosa mas não muito bem ligada. A SIOC permite-nos interligar estes sítios, e permite-nos a extração de informação mais rica a partir de vários serviços de discussão.

http://sioc-project.org

Breviário SIOC

  • O cerne da SIOC é a ontologia. É um vocabulário que contem os conceitos necessários à expressão de informação contida em sítios comunitários on-line.
  • Então os sítios on-line comunitários fornecem informação sobre a sua estrutura e conteúdos ao mundo exterior. Esta informação é legível por máquina e estruturada usando a ontologia SIOC.
  • Visto a informação já estar presente nestes sítios, tudo o que é necessário é instalar um extra exportador SIOC como plug-in ou extensão.
  • Esta informação pode ser usada por ferramentas que compreendam dados SIOC para sugestão de informação relacionada a partir de outros sítios comunitários.

Usos actuais e futuros da SIOC

  • Criação de conversações distribuídas usando blogues, forúns e listas de correio;
  • Usar como formato melhorado de exportação/importação, com acesso seja ao conteúdo completo seja a sumários;
  • Permitir a publicação e subscrição de canais descentralizados de discussão e de comunidades descentralizadas.

05 junho, 2007

Método para determinação de OS em Ruby

Quando se quer saber em que plataforma estamos a correr uma aplicação ruby então podemos fazer algo do género:

def platforma
  $RUBY_PLATFORM ||=
    case RUBY_PLATFORM.downcase
      when /linux|bsd|solaris|hpux|darwin/
        :unix
      when /mswin32|mingw32|bccwin32/
        :windows
      when /cygwin/
        :cygwin
      when /java/
        :java
      else
        :outra
    end
end

p platforma

04 junho, 2007

Introdução à RDF

Isto é uma tradução do trabalho do Joshua

Introdução à RDF

Introdução breve à Resource Description Framework (RDF)

RDF é um método de expressão de conhecimento num mundo descentralizado e é uma das fundações da Web Semântica, na qual aplicações de computador utilizam informação distribuida e estruturada espalhada na Web. Só para informação prévia RDF não é estritamente um formato XML, e não é só metadados, tem pouco a haver com RSS e é menos complicado do que imagina.

Panorâmica

RDF é um método geral de decompor qualquer tipo de conhecimento em partes, com algumas regras sobre semântica ou significado dessas partes. O importante é ter um método tão simples que pode exprimir qualquer facto e contudo tão estruturado que uma aplicação de computador pode fazer coisas úteis com ele. Eis um pouco de RDF:

@prefix : <http://www.exemplo.org/> .
:joao    uma           :Pessoa .
:joao    :temMae     :susana .
:joao    :temPai       :ricardo .
:ricardo :temIrmao   :luis .

Se sabe XML, eis uma breve comparação. Tal como a RDF, XML também foi desenhada para ser simples e com utilização universal. A XML pode ser abstraída para além da notação de sinais de menor e maior que em algo mais abstracto, uma estrutura em árvore designada por DOM. De modo análogo RDF não é só o como se escreve. Trata-se de representação de informação em rede e em grafos. Pode escrever RDF em XML e muitas pessoas fazem-no. Nesse caso é similar a isto:

&tl;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:ns="http://www.exemplo.org/#">
  &tl;ns:Pessoa rdf:about="http://www.exemplo.org/#joao">
    &tl;ns:temMae rdf:resource="http://www.exemplo.org/#susana" />
    &tl;ns:temPai>
      &tl;rdf:Description rdf:about="http://www.exemplo.org/#ricardo">
        &tl;ns:temIrmao rdf:resource="http://www.exemplo.org/#luis" />
      &tl;/rdf:Description>
    &tl;/ns:temPai>
  &tl;/ns:Pessoa>
&tl;/rdf:RDF>

Mas no caso de não usar XML, eu não o uso, o primeiro formato designado por N3 é tão bom como a representação em XML.

O que distingue a RDF da XML é que a RDF foi concebida para representar conhecimento num mundo distribuido. Isto significa que a RDF está particularmente preocupada com significado. Tudo o que é mencionado em RDF significa algo, seja uma referência para algo de concreto no mundo, seja um conceito abstracto ou seja um facto. Normas concebidas sobre a RDF descrevem inferências lógicas entre factos e como pesquisar por factos em grandes bases de dados de conhecimentos em RDF.

O que torna a RDF adequada ao conhecimento distribuido é que as aplicações RDF podem unir ficheiros colocados por pessoas diferentes na Internet e aprenderem facilmente a partir deles coisas novas que nenhum documento por si só afirme. Fá-lo de duas maneiras, primeiro associando os documentos através do vocabulário comum usado e em segundo lugar permitindo a qualquer documento usar qualquer vocabulário. Esta flexibilidade é única para a RDF.

Tenha em conta este segundo documento de RDF:

@prefix : <http://www.exemplo.org/> .
:ricardo :temIrma :rebeca
{ ?a :temPai ?b . ?b :temIrma ?c . } => { ?a :temTia ?c } .

Este documento RDF define o que significa ser tia, em termos de duas outras relações. Pode imaginar uma aplicação que coloque este documento em conjunto com o primeiro documento RDF para determinar que :rebeca é tia de :joao. O que faz isto funcionar é os nomes das entidades serem globais. Assim quando :joao e :temPai são usados num documento, as aplicações podem presumir que têm o mesmo significado noutro documento RDF com o mesmo @prefix.

Então porque usar RDF? Eis casos de utilização como descritos por Richard Cyganiak na lista de correio da Web Semântica do W3C:

  • Deseja integrar dados de origens diferentes sem programação à medida;
  • Deseja providenciar dados para reutilização por outras entidades;
  • Deseja descentralizar os dados de modo a que nenhuma parte seja "dona" de todos os dados;
  • Deseja fazer algo interessante com grandes quantidades de dados (navegar, inquirir, fazer corresponder, inserir e extrair...), e assim desenvolve (ou reutiliza) uma ferramenta genérica que permite que se instale sobre um modelo de dados RDF (com a vantagem de não ficar preso a uma tecnologia de armazenamento/representação de dados tal como um dialecto de base de dados).

Definição de RDF

RDF pode ser definido com três regras simples:

  1. Um facto é expresso como um tripleto na forma de (Assunto, Predicado, Objecto). Como numa frase em linguagem natural.
  2. Assunto, predicado e objectos são nomes de entidades quer concretas quer abstractas no mundo real. Nomes são 1) globais e referem-se à mesma entidade em qualquer documento RDF em que apareçam ou 2) locais e a entidade a que se referem não pode ser referida directamente fora do documento RDF.
  3. Os objectos podem ser valores textuais, designados por valores literais.

Já viu factos. Cada linha abaixo era um facto:

:joao    a           :Pessoa .
:joao    :temMae  :susana .
  ...

Os nomes podem ter dois tipos, nomes glonais, os quais têm o mesmo significado em qualquer lado, são sempre Uniform Resource Identifiers (URI). As URI podem ter a mesma sintaxe ou formato dos endereços de um sítio na web, assim irá ver ficheiros RDF que contém URI semelhantes a http://www.w3.org/1999/02/22-rdf-syntax-ns#tipo, onde a URI é um nome global de alguma entidade. O facto de parecer um endereço web é incidental. Pode ou não haver um sítio web nesse endereço e tal não é importante. Há outros tipos de uri para além do tipo http. As URN são um subtipo de URI usadas para coisas como a identificação de livros pelo seu ISBN, isto é urn:isbn:0143934650. As TAG são um tipo de URI de utilização genérica. Elas são semelhantes a tag:govtrack.us,2005:congress/senators/first. As URI são usadas como nomes globais porque dão um modo de repartir o espaço de todos os nomes possíveis em unidades que têm proprietários óbvios. Uma URI começada por http://www.rdfabout.net/ é implicitamente controlada por Joshua Tauberer.

É importante e é necessário repetir: independentemente da forma as URI que vê em documentos RDF são meramente nomes algo verbosos para entidades nada mais. Esqueça que tenham algo a haver com a web.

Visto as URI poderem ser extensas, em várias notações RDF é normalmente possível abreviar as mesmas usando o conceito de espaços de nomeação da XML. É aí que entram os dois pontos em: :joao, :temMae, e outras entidades no exemplo. Os dois ponto indicam o nome na sua forma abreviada. No casos os nomes seriam http://www.exemplo.org/#joao, http://www.exemplo.org/#temMae.

Quando escritas as URI são normalmente envolvidas em sinais de menor e maior que para as distinguir das formas abreviadas usando espaços de nomeação.

Os valores literais permitem que texto possa ser incluido em RDF. Isto é particularmente usado quando a RDF é usada para metadados:

&tl;http://www.rdfabout.net/> a :Website .
&tl;http://www.rdfabout.net/> dc:title "rdf:about" .
&tl;http://www.rdfabout.net/> dc:description "A website about
 Resource Description Framework." .

E isto é basicamente RDF.

RDF como Grafo

Há dois modos complementares de vermos a informação RDF. O primeiro é um conjunto de afirmações como acima. Cada afirmação representa um facto. O segundo modo é como grafo.

Um grafo é basicamente uma rede. Os grafos consistem nos nodos ligados por arestas. Na internet, por exemplo, os nodos são os computadores e as arestas são os fios que os ligam. Em RDF os nós são os nomes (não as entidades de facto) e as arestas as afirmações. Eis um exemplo:

Cada seta ou aresta é uma afirmação RDF. O nome do início da seta é o assunto da afirmação, o nome no final da seta é o objecto da afirmação e o nome nas legendas da seta é o predicado. RDF como grafo exprime exactamente a mesma informação de RDF escrita como tripletos, mas o grafo torna mais fácil a nós humanos para ver a estrutura nos dados.

Exemplo rápido

Assim como é que a RDF é útil? É a tecnologia para a tarefa em mãos quando quer criar uma rede a partir de informação distribuida.

Eis um cenário onde a informação distribuida faz sentido: uma base de dados de produtos de vários fornecedores e críticas a esses produtos a partir de vários críticos. Nenhum fornecedor irá querer a responsabilidade de manutenção de uma base de dados central para este projecto, em especial podendo conter informação sobre produtos concorrentes e críticas muito negativas. Também nenhum crítico terá recursos para manter tal base de dados actualizada.

RDF é particularmente adequada para este projecto. Cada fornecedor e crítico poderá publicar um ficheiro em RDF no seu próprio sítio web. Os fornecedores irão escolher as URI dos seus produtos, e os críticos irão usar essas URI quando façam as suas críticas. Os fornecedores não necessitam de concordar com um esquema comum de nomeação de produtos e os críticos não estão presos a um formato de dados controlado por um fornecedor. A RDF permite que fornecedores e críticos concordem com aquilo que necessitem de concordam ser forçar ninguém a usar determinado vocabulário.

Eis os ficheiros RDF que publicam:

  
Fornecedor 1:
Fornecedor1:produtoX dc:title "Cool-O-Matic" .
Fornecedor1:produtoX prvp:preco "50.75" .
Fornecedor1:produtoX Fornecedor1:refno "TTK583" .
Fornecedor1:produtoY dc:title "Fluffertron" .
Fornecedor1:produtoY prvp:preco "26.50" .
Fornecedor1:produtoY Fornecedor1:refno "AAL132" .

Fornecedor 2:
Fornecedor2:produto1  dc:title "Fechador de Latas" .
Fornecedor2:produto2  dc:title "Espalhador de pó" .

Critico 1:
Fornecedor1:produtoX dc:description "Este produto é bom!" .

Critico 2:
Fornecedor2:produto2  dc:description  "Quem necessita de algo para espalhar o pó? 
                                  Algo que apanhe o pó seria melhor
                                  e gostaria que indicassem o preço." .
Fornecedor2:produto2  critica:classificacao   critica: Excelente .

É uma questão em aberto como é que uma aplicação irá recuperar estes ficheiros, mas foi deixar isso de lado. Uma vez a aplicação tendo estes ficheiros, tem informação suficiente para relacionar produtos às críticas aos preços e mesmo a informação específica do fornecedor como Fornecedor1:refno. O que deve tomar deste exemplo é a ausência de contrangimentos da RDF, continuando esta a permitir às aplicações a capacidade de relacionamento imediato da informação em conjunto.

Os fornecedores e críticos não têm que concordam com muito para fazer isto funcionar. Têm que concordar em usar RDF, mas não têm que concordam com formato específico de dados ou mesmo URI específicas. Crucialmente não têm que enumerar tudo o que cada fornecedor deseja incluir sobre os seus produtos e não podem bloquear os críticos na colocação de informação relacionada.

Outro modo de ver isto é de um ponto de vista de interoperabilidade. O formato do Fornecedor 1 é inteiramente interoperável com qualquer formato dos restantes intervenientes embora o Fornecedor 1 tenha um formato que não seja comum com mais ninguém. Quando alguém aparece e deseja ser interoperável com a informação do Fornecedor 1 não necessita de um novo formato mas sim de escolher o assunto, predicado e objecto correctos.

Conclusão

Se julgava a RDF complicada espero ter-lhe mostrado que tal não é necessáriamente o caso. A RDF é fácil de escrever, flexível e sem constrangimentos. É fácil modelar conhecimento e misturar origens de conhecimento distribuídas.

03 junho, 2007

Hackety hack

Hackety hack é um projecto de Why the lucky stiff para se poder aprender a programar (já agora em ruby). Na primeira lição vamos descobrindo como programar. Como interagir com o utilizador (para lhe pedir algo e para lhe indicar algo). O sumário da lição é apresentado no seu final.

Na primeira lição aprende-se o seguinte:

  • Comandos fazem coisas tal como os cães fazem coisas;
  • Variáveis guardamcoisas;
  • Cria-se uma variável com um sinal de igual. É assim que a Ruby sabe -- através desse sinal de igual!
  • Os comandos pertencem à coisa do lado esquerdo do ponto;
  • Os comandos comem coisas entre parêntesis como se fossem biscoitos;