Извините, ребята, я задавал вопросы о том, как интегрировать данные Википедии в свое приложение, и, честно говоря, я не думаю, что добился какого-либо успеха с моей стороны, поскольку я пробовал все идеи и вроде как отказался когда я читаю тупик или препятствие. Я попытаюсь объяснить, что именно я пытаюсь сделать здесь.
У меня есть простой каталог местоположений, таких как города и страны. Мое приложение представляет собой простое приложение на основе ajax на основе php с возможностью поиска и просмотра. Люди регистрируются и связывают себя с городом, и когда пользователь просматривает города, он/она может видеть людей и компании в этом городе, т. е. тех, кто является частью нашей системы.
Эта часть легко настраивается сама по себе и работает нормально. Дело в том, что мои результаты поиска будут в формате, т. е. кто-то ищет, скажем, Пекин. Он вернется в интерфейсном окне с тремя вкладками:
- Первая вкладка будет иметь информационное окно, содержащее информацию о городе для Пекина.
- Во-вторых, это вкладка страны, содержащая информационный блок с информацией о стране из Китая.
- На третьей вкладке будут списки всех контактов в Пекине.
Контент для первых двух вкладок должен быть взят из Википедии. Теперь я совершенно не понимаю, как лучше всего это сделать, и, кроме того, как только я выберу методологию, то - как мне это сделать и сделать так, чтобы это было вполне крепкий.
Несколько идей, хороших и плохих, которые я смог переварить до сих пор:
Запускайте curl-запрос непосредственно в Википедию и анализируйте возвращаемые данные каждый раз, когда выполняется поиск. В этом случае нет необходимости поддерживать локальную копию данных в Википедии. Другая проблема заключается в том, что он полностью зависит от данных из удаленного третьего места, и я сомневаюсь, что можно каждый раз делать запрос в Википедию для получения базовой информации. Кроме того, учитывая, что данные в Википедии необходимо анализировать при каждом запросе - это преодолеет большие нагрузки на сервер ... или я здесь размышляю.
Возьмите загрузку дампа википедии и запросите его. Ну, я загрузил всю базу данных, но импорт всех таблиц из XML-дампа займет целую вечность. Плюс учтите тот факт, что я просто хочу извлечь список стран и городов и их информационные поля - большая часть информации в дампе мне бесполезна.
Создайте свои собственные локальные таблицы и создайте скрипт cron [здесь я объясню, почему работа cron], который каким-то образом проанализирует все страницы стран и городов в Википедии и преобразует их в формат, который я могу использовать в своих таблицах. Однако, честно говоря, мне не нужна вся информация в инфобоксах как есть, если бы я мог просто получить базовую разметку инфобоксов как есть - мне этого было бы более чем достаточно. Нравится:
Название страны | Информационное поле Необработанный текст
Я могу лично извлечь такие вещи, как координаты и другие детали, если захочу.
Я даже пытался загрузить сторонние наборы данных из infochiumps и dbpedia, но набор данных из infochimps неполный и не содержит всей информации, которую я хотел отобразить, плюс с dbpedia я совершенно не знаю, что делать с CSV-файлом, который я скачал из информационных ящиков. и боюсь, что она тоже может быть неполной.
Но это только часть проблемы здесь. Мне нужен способ показать информацию из Википедии - у меня будут все ссылки, указывающие на Википедию, а также полезная информация из Википедии, правильно отображаемая повсюду, НО проблема в том, что мне нужен способ, который периодически я могу обновлять информацию, которая у меня есть из Википедии, так что, по крайней мере, у меня нет полностью устаревших данных. Например, скажем, система, которая может проверять, и если у нас есть новая страна или новое местоположение, она может анализировать информацию и каким-то образом извлекать ее. Здесь я полагаюсь на категории стран и городов в Википедии, но, честно говоря, все эти идеи на бумаге, частично закодированы, и это огромный беспорядок.
Я программирую на PHP и MySQL, и мой крайний срок быстро приближается - учитывая вышеприведенную ситуацию и требования, какой лучший и наиболее практичный метод для подражания и реализации. Я полностью открыт для идей - практических примеров, если кто-то сделал что-то подобное - я хотел бы услышать: D