Category ArchiveSpatial
MapViewer &Spatial Андрей Пивоваров on 04 Oct 2007
Oracle Spatial и MapViewer живьем
Обнаружил на странице Oracle Spatial ссылку на Test Drive по Spatial и Mapviewer. Раньше я ее там не видел.
По этой ссылке можно посмотреть, как живьем работает связка Spatial и MapViewer. А точнее, технология Oracle Maps.
Можно увидеть, что интерфейс и возможности напоминают то, к чему все привыкли в Google Maps (можно перетаскивать карту мышкой, зуммироваться, выделять объекты на карте и смотреть всплывающюю информацию по ним), но, если в случае Google Maps, база данных и все остальное находятся на сверверах Google, то в данном случае, преимущество в том, что со связкой Oracle Spatial-Mapviewer, вы можете сделать тоже самое \”у себя дома\”. То есть, имея, скажем, данные в MapInfo или другом ГИСе – можно сделать на основе этих данных систему с похожим интерфейсом для пользователей, но при этом все данные остаются на ваших серверах.
В поиске сбоку на странице можно поискать, например, \’94065\’ – индекс Redwood City, где находится штаб квартира Oracle, или можно набрать \’698 ORACLE PKY,REDWOOD CITY CA, 94065,US\’ и увидите то место, где находятся знаменитые \”банки\” Oracle.
По идее, можно поискать еще други объекты, но видимо база там учебная и данных по объектам не много. Но кое что можно найти.
В общем, даже не важно сколько там объектов, интересно именно посмотреть, что называется Look&Feel. И понять подходит это вам или нет.
Замечу, что MapViewer – это не готовое приложение, а сервер, на основе которого можно строить свои приложения или встраивать картографическую информацию в порталы и проч. Поэтому, весь интерфейс, естественно, можно изменить. Это просто пример.
MapViewer &Spatial Андрей Пивоваров on 24 Jul 2007
Про интеграцию Oracle Spatial c Google Earth и Google Maps
Когда рассказываешь людям про пространственные технологии в Oracle (что это такое смотрим тут и тут), часто, у людей не погруженных плотно в тему ГИС, возникает вопрос \”Это все хорошо, нам очень хотелось бы визуализировать свои объекты на географической карте, но где взять саму карту?\”
На самом деле поставщиков карт есть достаточно много, можно посмотреть, например, http://www.gisa.ru/mapdigital.html и http://www.gisa.ru/maphard.html.
Но все равно остаются вопросы что же именно нужно купить и сколько это стоит.
Существует другой вариант решения этой проблемы, хоть и со своими недостатками.
Существуют известные сервисы Google Maps и Google Earth.
Вы можете удобно рассматривать различные участки поверхности Земли и даже включать и выключать различные слои, визуализирующие разные объекты.
Оказывается, эти сервисы поддерживают API, с помощью которого можно получить картинку, на которой карта будет браться от Google, а визуализированные объекты будут ваши, лежащие в Oracle Database. Это то, что сейчас называется Mashup, смешение нескольких приложений в одно.
Некоторое время назад на OTN появилась статья с подробным описанием как сделать такую интеграцию для Google Maps, то есть в чистом веб интерфейсе.
А сегодня появилась статья о том, как сделать интеграцию с Google Earth, толстым клиентом.
Плюс тут в том, что вам не нужно заботиться о том, где брать карту.
А минус в том, что во первых вы все время должны быть подключены к интернету, и в случае ошибок на картах Google с этим, наверное, турдно что-то поделать.
Spatial Андрей Пивоваров on 07 Feb 2007
На OTN появилась база данных NAVTEQ
Несколько месяцев назад Oracle заключил соглашение с компанией NAVTEQ, одним из крупнейших поставщиков картографической информации.
Согласно этому соглашению NAVTEQ предоставляет свои данные в формате Oracle Spatial, что решает проблему \”Где взять геоданные для своих приложений?\” Не всегда конечно, зависит от вашей задачи. Но для визуализации каких то аналитических данных на карте – то что надо.
Вот выложили на OTN первый релиз этой базы.
http://www.oracle.com/technology/software/products/mapviewer/index.html
России там в списке нет, но, возможно, появится.
Нужна версия базы 10.2. Или придется конвертить с 10ки в 9ку. Так как дамп там для 10.2.
Spatial &Ликбез &Общее Андрей Пивоваров on 22 Jan 2007
Еще про Resource Description Framework
Как оказалось, RDF и все о чем говорилось в прошлом посте имеет уже практические применения.
Во первых, RSS, оказывается, первоначально расшифровывалось не как \”Really Simple Syndication\”, а \”RDF Site Summary\”
Во-вторых, в исходных текстах многих страниц интернета, например в тех же блогах можно встретить RDF вставки. Даже в коде этой страницы.
Нашелся перевод на русский оригинальной статьи Тима Бернерса-Ли сотоварищи про семантические сети. Тут.
Теперь что касается Oracle Spatial.
Поддержка RDF появилась в Spatial только в версии базы 10g Release 2. Раньше не было.
Поэтому поводу, в документации по 10.2 появилась новая книжка \”Oracle® Spatial Resource Description Framework (RDF)\”
Там есть два примера, которые можно прогнать на своей базе и посмотреть как это все работает.
Один пример про каталог публикаций. (Статья, Автор, На какую статью ссылается) И затем можно делать запросы о ссылках.
Например. Запрос, ссылается ли статься Article2 на статью Article3:
SELECT SDO_RDF.IS_TRIPLE(
\'articles\',
\'http://www.nature.com/nature/Article2\',
\'http://purl.org/dc/terms/references\',
\'http://www.nature.com/nature/Article3\') AS is_triple FROM DUAL;
Ответ – TRUE (EXACT)
Второй пример более интересен. Он о том, как построить иерархию семьи (John – отец Matt, Sammy – отец Cathy, Cathy – сестра Jack и т.д.)
А вот как вставляется запись, о том, что John – отец Matt:
INSERT INTO family_rdf_data VALUES (2,
SDO_RDF_TRIPLE_S(\'family\',
\'http://www.example.org/family/John\',
\'http://www.example.org/family/fatherOf\',
\'http://www.example.org/family/Matt\'));
А вот как описывается отношение \”Если x – родитель y, а y – родитель z, то x – дедушка y\” В оригинале, конечно не \”дедушка\”, а GrandParent, а GrandParent это может быть и \”бабушка\”, но я не знаю какое слово в русском этому соответствует :-)
INSERT INTO mdsys.rdfr_family_rb VALUES(
\'grandparent_rule\',
\'(?x :parentOf ?y) (?y :parentOf ?z)\',
NULL,
\'(?x :grandParentOf ?z)\',
SDO_RDF_Aliases(SDO_RDF_Alias(\'\',\'http://www.example.org/family/\')));
То есть, можно создавать новые отношения между существующими отношениями, а потом делать запросы используя уже новое отношение.
Вот например запрос: \”Выбрать всех дедов и их внуков\”. При этом, изначально, в базе были определено только кто является чьим родителем.
SELECT x grandfather, y grandchild
FROM TABLE(SDO_RDF_MATCH(
\'(?x :grandParentOf ?y) (?x rdf:type :Male)\',
SDO_RDF_Models(\'family\'),
SDO_RDF_Rulebases(\'RDFS\',\'family_rb\'),
SDO_RDF_Aliases(SDO_RDF_Alias(\'\',\'http://www.example.org/family/\')),
null));
Интересно, что \”дедушка\” от \”бабушки\” тут отличается по \”типу\” Male.
Результат запроса:
GRANDFATHER GRANDCHILD
-----------------------------------------------------------------------
http://www.example.org/family/John http://www.example.org/family/Cindy
http://www.example.org/family/John http://www.example.org/family/Jack
Может быть, синтаксис немного непривычный, но зато это SQL, а значит эти запросы можно поместить во View или вставить в любое приложение, которое понятия не имеет про всю эту кухню с RDF.
Spatial &Ликбез &Общее Андрей Пивоваров on 18 Jan 2007
Oracle Spatial и семантические сети
Коллега Марк Ривкин рассказал, что прочитал о том, что Oracle Spatial может служить платформой для приложений, основанных на Resource Description Framework, который(ая) является, в свою очередь основой для построения семантических сетей и семантического веба.
Проверил – и действительно, оказывается существует даже целый сайт http://www.oracle.com/technology/tech/semantic_technologies/index.html, посвященный этой теме. Там есть документы и презентации на эту тему.
Тим Бернерс-Ли, изобретатель всемирной паутины считает, что эта технология должна изменить интернет будущего.
Идея семантических сетей и семантического веба примерно вот в чем. В настоящее время интернет представляет из себя свалку документов, которые легко могут читаться людьми, так как люди понимают смысл, семантику текстов. Но для машин этот смысл недоступен и поэтому вы чаще всего не можете, скажем, сделать выборку по всем аптекам, работающим в вашем районе после 12 ночи, где можно купить нужное вам лекарство. Хотя у этих аптек могут быть свои сайты на которых эта информация есть, но хранится она там в виде, по которому поисковая машина не может \”понять\” что вот это именно график работы, а вот это именно район.
Идея с одной стороны снабдить специальными тегами сайты, или даже страницы на сайтах, по которым поисковики смогут однозначно \”понимать\” какая именно информация там лежит и соответственно доставать ее быстро и точно.
Если пойти дальше, то на уровне метаданных можно описывать не только принадлежность факта к какому-то понятию, но можно описывать сложные отношения. Например, если у нас есть факт, \”Иван является отцом Петра\”, то можно описать это соотношение как триаду (Иван,\’является отцом\’,Петр). Имея базу данных таких соотношений можно затем вывести соотношения типа \”Петр является сыном Ивана\” или если мы знаем, что \”Вася является сыном Петра\”, то, следовательно, \”Вася является внуком Ивана\”. И т.д. Запросы могут быть сложными, выводы тоже. Но так как объем данных огромен, возникает вопрос, как с этим работать?
RDF – это модель метаданных, основанная на XML, которая как раз и позволяет описывать эти смысловые соотношения, предикаты, между объектами. А имея описания отношений и базу данных объектов, связанных отношениями можно делать (в случае Spatial) SQL запросы, которые будут возвращать результаты гораздо более осмысленных запросов.
В общем, очень интересная тема, которая пока находится все-таки, в основном, в рамках научных разработок, но тем не менее я за последний год видел несколько коммерческих систем, которые занимаются например поиском в интернете статей с описанием каких-то событий, типа \”Петров посетил Индию и встретился там с Ивановым, заместителем Сидорова и его другом Кузнецовым\”, раскладывают эти события на части, а потом возможно делать запросы типа \”Найти всех людей, знающих Сидорова, с которыми встретился Петров в Индии\”
При этом Иванов скорее всего попадет в результат запроса, а Кузнецов – не известно, для этого нужно поднять другие факты.
Семантический веб даже упоминается в контексте \”Слабого Искусственного Интеллекта\” и позволяет представить интернет как одну огромную экспертную систему.
Приятно, что если вы захотите сделать подобную систему, вы можете не изобретать свой движок хранения и обработки такого рода данных, а можете взять Oracle Spatial
Здесь лежит техническая презентация о поддержке RDF в Spatial
А здесь интересная презентация о применении RDF и Spatial в биотехнологиях.
MapViewer &OWB &Spatial Андрей Пивоваров on 21 Nov 2006
Три презентации
В разделе Презентации выложил три презентации.
- Презентация \”Новые возможности Oracle Warehouse Builder\”, которая читалась на TechForum 2006
- Презентация \”Обзор продуктов Oracle Spatial\”, которая читалась на семинаре по Oracle Spatial
- Презентация \”Использование Oracle Spatial и Oracle MapViewer для построения аналитических приложений\”, читалась на том же семинаре