Pergunta

Sorry guys, eu tenho corrido um mock fazer perguntas sobre como integrar dados wikipedia em meu aplicativo e, francamente, eu não penso que eu tive algum sucesso no meu fim como eu tenho tentado todas as idéias e meio que desistir quando eu li um beco sem saída ou obstáculo. Vou tentar explicar o que exatamente eu estou tentando fazer aqui.

Eu tenho um simples diretório de locais como cidades e países. Meu aplicativo é um aplicativo baseado baseado ajax simples php com uma pesquisa e facilidade de navegação. As pessoas se inscrever e associar-se com uma cidade e quando um usuário navega cidades - ele / ela pode ver as pessoas e empresas na cidade ou seja, quem é uma parte do nosso sistema que é.

Essa parte é meio que configurar facilmente por conta própria e está funcionando bem. A coisa é que meus resultados de pesquisa seria no formato ou seja, algumas pesquisas um para digamos Pequim. Ele voltaria em uma caixa de interface em três abas:

  1. Primeiro Tab teria uma informação infobox containig cidade de Beijing
  2. seond seria um guia país que detém uma infobox das informações país da China
  3. Third guia teria resultados de todos os contatos em Pequim.

O conteúdo para os dois primeiros guias devem vir de Wikipedia.Now eu estou totalmente perdido com o que seria a melhor maneira de conseguir este feito e, além disso, uma vez decidir sobre uma metodologia seguida - como faço para fazê-lo e torná-lo tal que a sua bastante robusto.

Um par de idéias boas e más como eu fui capaz de digerir até agora são:

  1. Executar um pedido onda diretamente a wikipedia e analisar os dados que retornam toda vez que uma pesquisa é feita. Não há necessidade de manter uma cópia local, neste caso, dos dados na Wikipedia. A outra questão é que sua subsidiária dependente de dados de um terceiro local remoto e duvido que é viável fazer uma vez de pedido de wikipedia para recuperar informações básicas. Além disso, considerando que os dados sobre wikipedia requer a ser analisado em cada pedido -. Isso é vai surmount para cargas de servidor pesados ??.. ou estou especulando aqui

  2. Faça um Download do despejo wikipedia e consulta que. Bem, eu fiz o download de todo o banco de dados, mas a sua vai demorar uma eternidade para importar todas as tabelas do despejo xml. Além disso, considere o fato de que eu só quero extrair uma lista de países e cidades e suas caixas de informação -. Um monte de informações no despejo é de nenhuma utilidade para me

  3. Faça meus próprios quadros locais e criar um cron [vou explicar porquê trabalho cron aqui] script que iria de alguma forma analisar todos os teh países e cidades páginas na wikipedia e convertê-los para um formato que eu posso usar em minhas tabelas . No entanto, honestamente falando, eu não preciso de todas as informações nos infoboxes como é de facto se eu pudesse mesmo começar a marcação básica dos infoboxes como é - o que seria mais do que suficiente para mim. Como:

Título de País | texto Infobox Raw

Eu posso pessoalmente extrair coisas como coordenadas e outros detalhes, se eu quiser.

Eu até tentei baixar conjuntos de dados de terceiros a partir infochiumps e DBpedia mas o conjunto de dados do infochimps é incompleta e não contém todas as informações que eu queria mostrar - mais com DBpedia Não tenho absolutamente nenhuma idéia do que fazer com o arquivo CSV I descarregado de infoboxes e tenho medo que ele também não pode ser completa.

Mas isso é apenas parte do problema aqui. Eu quero uma maneira de mostrar a informação wikipedia - Eu vou ter todos os links apontam para wikipedia, bem como uma informação agradável da wikipedia exibido corretamente todos ao redor, mas o problema é que eu preciso de uma maneira que, periodicamente, posso atualizar as informações que tenho de Wikipedia assim pelo menos eu não tenho dados totalmente ultrapassada. Como bem permite dizer um sistema que pode verificar e se temos um novo país ou novo local ele pode analisar a informação e de alguma maneira recuperá-lo. Estou confiando em categorias de países e cidades na wikipedia para este aqui, mas francamente todas estas ideias estão no papel, parcialmente codificado e é umgrande confusão.

Estou programando em PHP e MySQL e meu prazo está se aproximando rapidamente - dada a situação acima descrita e os requisitos que é o melhor e mais prático método para seguir e implementar. Estou totalmente aberto a idéias - exemplos práticos se alguém fez algo semelhante - Eu gostaria de ouvir: D

Foi útil?

Solução

Eu sugiro o seguinte

  • Consulta a cidade de wikipedia quando ele (a cidade) é criado na sua DB
  • analisar os dados, armazenar uma cópia local com a data e hora da última atualização
  • no acesso, atualizar os dados se for necessário. Você pode exibir o antigo com uma marca d'água dizendo que é ... dias de idade e agora atualizando. Em seguida, mude para o recém-adquirido um quando a atualização for feita. Você disse que você está usando AJAX, por isso não será um problema

Seria minimizar os queryes a wikipedia e seu serviço não vai mostrar páginas vazias, mesmo quando wikipedia é inacessível.

Outras dicas

algumas coisas Um posso pensar de:

  1. Apenas exibir os dados wikipedia em um iframe em seu site.

  2. Use onda para obter o html do wikipedia, em seguida, usar uma folha de estilo personalizado para o estilo-lo e / ou ocultar as peças que você não deseja exibir.

Tentando realmente analisar o HTML e retirar as peças que você quer vai ser uma dor gigante, e é mais provável vai ter que ser personalizado para cada cidade. Melhor para obter algo simples trabalhando por enquanto, em seguida, voltar e melhorá-la mais tarde, se você decidir que realmente precisa.

Que tal usar um dos Wikipedia geocodificação Webservices

Há vários disponíveis onde você pode passar, por exemplo, postalcode e de país para um breve resumo do artigo e um link para o artigo da Wikipedia.

Se isso seria suficiente.

Tenha um olhar em DBPedia ele contém agradável extração de dados Wikipedia em formato CSV.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top