Development of the general-purpose POI server using the XML database

Keywords: goSVG, g-contents, POI, XMLDatabase, GIS, PDA, Karearea

Ryo Kokai, Mr.
System Engineer
SEC (Systems Engineering Consultants) Co.,Ltd.
Internet Department
Shibuya-ku
Tokyo
Japan
kokai@sec.co.jp
http://www.sec.co.jp/

Biography

Ryo Kokai is working as chief engineer of the development team for SVG applications and He is also the adviser of various solutions using SVG whose order "SEC"(Systems Engineering Consultants Co.Ltd.) has received.

Daijiro Koshino, Mr.
System Engineer
SEC (Systems Engineering Consultants) Co.,Ltd.
Internet Department
Osaka-shi
Osaka
Japan
koshino@sec.co.jp
http://www.sec.co.jp/

Biography

Daijiro Koshino is working as project leader for SVG application development project.


Abstract


We developed the general-purpose POI server (WWW server) and verified how far we can use the goSVG browser as GIS client.

In order to consider the possibility of a goSVG browser as a GIS client, the simple GIS environment using the XML database was constructed. It turned out that the content provider was able to realize the service (collect/supply POI ) without a map by basing on the concept of goSVG. However, the issue in order to meet the request for the GIS system was also found.


Table of Contents


1. Introduction
2. System configuration
3. Function of goSVG client
4. Function of general-purpose POI server
5. Conclusion
Footnotes
Bibliography

1. Introduction

The contents of this session are:

  1. The function of the "goSVG client" application
  2. The feasibility of ActiveX version goSVG browser -the flagship of browser lineup-
  3. The function required for a server side and affinity with an XML database
  4. The issue of this system

Our system deals with "g contents" (collection, processing, providing) rather than general "GIS application" (3D expression, numerical analysis according to area proportional division).

2. System configuration

The free distribution ActiveX version goSVG browser was used for the client and the "Digital Map" of the Geographical Survey Institute was used as a base map. The ActiveX version has chosen because it can cooperate with a web browser easily, its development efficiency is high, and the cellular-phone version and the PDA version made of the same engine can also be used. And the contents server which provides POI was developed. This will call it the server which provides "GIS functions". This time it is verified by one server. But a client can be provided with still more rich service by combining servers, even if their function are restricted to collecting and providing POI. For example, it becomes possible to analyze the information and numerical value which were collected from the staff on the spot, and display and share graph on a map.

What controlls superposition of a base map and contents servers calls it a "portal server". By using a portal server ,more various systems and a business model can be constructed with "portal page" or outputting "dynamically SVG" which layered a base map and POIs. This time one machine serves as both contents server and a portal server.

fig1.png

Figure 1: System configuration

For client, some PDAs -PocketPC, Zaurus(SHARP) and PocketCosmo(Kyocera)- are prepared for the client besides BREW(cellular phone) and ActiveX(Windows).

fig2.png

Figure 2: goSVG clients

3. Function of goSVG client

The function which an goSVG client should have:

  1. Mapping POI to Map.
  2. Displaying attributes of POI.
  3. Visualization of attributes(graph,text,..).
  4. Registration and deletion of POI.
  5. Inputting and updating the attribute of POI.
  6. Changing display by time.
  7. Creation of 2-dimensional object.
  8. Analysis between 2 positions.
  9. Cooperation with the GPS

*No1-No7 can see been in demonstration.

We introduce how these functions are realized by the client (goSVG browser). In order to use the SVG client this time, various functions are implemented in a server side.

First, layering the map(svg contents) and POI (svg contents) is discussed. Contents server side embeds the coordinate information based on goSVG. Therefore the unific coordinate which is not influenced by contents is available. {fig.3 (left)}

<?xml version="1.0"?>
<svg ...>
 :
  <metadata xmlns:svg="http://www.w3.org/2000/svg">
    <rdf:RDF
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:crs="http://www.ogc.org/crs">
      <rdf:description>
        <crs:CoordinateReferenceSystem
         rdf:resource="http://www.svg.ne.jp/wgs84"
         svg:transform="matrix(24553.578733,0,0,-30218.242082,-3429691.676688,107767.391344)"
        />
      </rdf:description>
    </rdf:RDF>
     :
  </metadata>
 :
</svg>
      

Next is the attribute information accompanying a point. It can be embedded by having a GXML elements as a child elements of the elements in SVG. The function which indicates the attribute information on the dialog by clicking a GXML element is implemented in the browser of each platform which are as mentioned above. {fig.3 (right)}

<?xml version="1.0"?>
<svg xmlns:gxml="http://gisclh.dpc.or.jp/"...>
 :
  <use xlink:href="#sym-poi" x="10" y="20">
    <gxml:prop name="poikind">
      event
    </gxml:prop>
    <gxml:prop name="name">
      SVGOpen 2004
    </gxml:prop>
    <gxml:prop name="uri">
      http://www.svgopen.org/2004/
    </gxml:prop>
      :
    <gxml:ballon>
      Now presentation ++SEC++ !
    </gxml:prop>
       :
  </use>
 :
</svg>
      
fig3.png

Figure 3: Hyper layering map and poi, example PDA

It is also possible to add the SVG visual effect to the attribute information of a point. The server developed this time outputs a text and a bar graph by specifying its output type as attribute information. {fig.4}

fig4.png

Figure 4: Visualization of a numerical value and text information

Next is the registration function of the POI from a client. When registering POI, a goSVG browser transmits only coordinate information to a server. The kind of icon and the value of various attributes are inputted from an HTML browser.

Moreover, inputting of attribute values are also easily realizable by including ID of POI(etc.) in a request parameter. It makes possible that a business person updates data wherever he is, or the information bulletin board which many and unspecified users use.

Each service is embedded into the GXML elements in the contents by contents server as a link for each action. There are not so many kinds of action; taking a few instances, "transfer to an html browser", "replacement of a SVG layer", etc.. If the browser which already had these functions is used, it will become a high-extendable system.

 :
  <use xlink:href="#sym-poi" x="10" y="20">
     :
    <gxml:prop action="hidden" name="modify attributes">
      http://www.sec.co.jp/poi/ModifyAttributeService?id=aaa...
    </gxml:prop>
    <gxml:prop action="replace" name="delete">
      http://www.sec.co.jp/poi/DeleteService?id=aaa...
    </gxml:prop>
    <gxml:prop action="replace_cursor" name="append point">
      http://www.sec.co.jp/poi/AppendPointService?id=aaa...
    </gxml:prop>
     :
  </use>
 :
      

It seems there is a demand for arranging and analyzing not only an icon but also a 2-dimensional object on a map. A goSVG browser can also create the polygon data relevant to POI using the function which introduced until now. Of course, polygon itself is able to have an attribute. However, it is hard to realize all functions under the present circumstances since many scenes must be considered. For example, area proportional division analysis of the overlap portion of a polygon with a certain statistics data and the created polygon cannot be processed only within a client. Therefore, things, such as displaying sphere-of-business area and a display of the route from the point to a certain point, are assumed use this time.

fig5.png

Figure 5: Creation of 2-dimensional information

In case that a server provides contents, it is also possible to change the display state of POI according to certain conditions.

For example, POI display time is controled by animation when POI has "display start time" or "display end time". This function can be used as the POI which will appear if event start time comes and schedule management (following visiting place image will appear on a screen if the set-up time comes).

fig6.png

Figure 6: Changing display by time

The analysis between 2 points transmits only latitude and longitude of the destination. In some case not only the distance computation but also the special numerical computation may be needed depending on business. The shortest route search etc. is an orthodox function, but the content provider without a map does not have a road network, either. Therefore, some content providers without map may share one analysis.

 :
  <use xlink:href="#sym-analysis" x="10" y="20">
     :
    <gxml:prop action="cursor" name="append point">
      http://www.sec.co.jp/poi/AppendPointService?id=aaa...
    </gxml:prop>
     :
  </use>
 :
      

The last is cooperation with GPS. With this goSVG engine, it is possible to specify cooperation with GPS by commands in contents.

That is, it is possible to cover many of functions of goSVG Browser, which a GIS client should have, by these three functions, the multi layering function of a goSVG browser, the request to the service from the dialog of attribute information, and the replacement function of the layer by the hyper-layer ring. The hurdle to get over to equip PDA with it is cooperation with an html browser required for the input of attribute information. There is none of this function now but implementation is possible.

4. Function of general-purpose POI server

The function of a contents server to process and output the point data contained in the requested area seems to be well understood by the explanation until now. From now, I introduce the function for the management side of storing and analysis of point data.

As point information, there are the indispensable attribute of a point, data management information of POI such as a kind of data, a creation day, a coordinate value, etc., form of the polygon and the attribute information that users can input arbitrarily.

POI's attributes are enumerated in the XML schema of the POI. Moreover, the information about an attribute (the necessity of input, the way of displaying etc.) that a user inputted was managed in the form of the attribute definition XML. For example, when there is a new attribute a contents administrator wants a user to input, it becomes realizable by adding to the attribute definition XML. User can select icon by using the display icon definition XML. By adding or changing the icon definition XML, an administrator can increase the kinds of icon or change designs. Of course, SVG defines the icon definition XML.

"POI data"
<?xml version="1.0"?>
<poidata_CV id="A20040227_001">
  <kind>Convenience strore</kind>
  <name>SEC Shibuya</name>
   :
  <attr>
    <attrdata name="polulation(daytime)">9,000</attrdata>
    <attrdata name="polulation(nighttime)">2,000</attrdata>
    <attrdata name="appraisal">80</>
  </attr>
 :
</poidata_CV>

"POI attribute definition XML data"
<?xml version="1.0"?>
<poidef id="poidata_CV">
  <baseattr>
    <attr name="polulation(daytime)" required="false" unit="person/m2" />
    <attr name="appraisal" required="true" unit="" style="graph"/>
  </baseattr>
 :
</poidef>
      

Next, there are some data analysis of an administrator side such as searching, sorting, and adding. General-purpose structure induces diversification of searching. Without expensive GIS application, it is hard to develop a general-purpose searching function. This difficulty may be get rid of to some extent by the database itself being equipped with GUI which makes various searching easy. XML (XSLT is included) as a searching query and an expression form was used, and the plain searching result screen was created to the administrator this time. It is an ideal that analysis is possible without knowledge of XPATH or XQUERY when the composition is general-purpose. The same is said to the total function.

fig7.png

Figure 7: Summary on XML database -Karearea-

"Summary of POI attribute information"
<?xml version="1.0"?>
<summary>
  <pattern>
    <name>Average value for every store kind</name>
    <comment>Average value for every store kind</comment>
    <xpath>/area1/attr/attrdata</xpath>
    <operation type="AVE" format="#,##0"/>
    <measure>attrdata</measure>
    <dimension1 hide_non-categorized="true"/>
        <dimension_path>attrdata/@name</dimension_path>
        <category>
            <name>Population</name>
            <belongs type="EQUAL">
                <value1>Population</value1><value2></value2>
            </belongs>
        </category>
        <category>
            <name>Evaluation</name>
            <belongs type="EQUAL">
                <value1>Evaluation</value1><value2></value2>
            </belongs>
        </category>
            :
    </dimension1>
    <dimension2 hide_non-categorized="true"/>
        <dimension_path>attrdata../../name</dimension_path>
        <category>
            <name>Greengrocery</name>
            <belongs type="STR_MID">
                <value1>Greengrocery</value1><value2></value2>
            </belongs>
        </category>
        <category>
            <name>Alcohol store</name>
            <belongs type="STR_MID">
                <value1>Alcohol store</value1><value2></value2>
            </belongs>
        </category>
            :
    </dimension2>
    <color>
        <default type="RED"></default>
        <paint type="BETWEEN">
            <value1>70</value1><value2>100</value2>
        </paint>
    </color>
  </pattern>
</summary>
      
fig8.png

Figure 8: Search on XML database -Karearea-

"Search POI attribute information"
<?xml version="1.0"?>
<template>
  <pattern>
    <name>An evaluating point is over 60 points.</name>
    <xpath>/area1[attr/attrdata[@name="Evaluation" and . >60]]</xpath>
    <sort>
        <key direction="dest">/area1/name</key>
    </sort>
    <xslt>area1.xsl</xslt>
  </pattern>
</summary>
      

At last I give consideration to getting and changing a schema from a viewpoint of flexibility. It is necessary to be able to perform acquisition and change of the schema from a program to use common service of adding schema or inputting additional data even after new schema is add or schema is changed. This depends on the design of an XML schema. This demonstration system has flexibility by communalization of an attribute element and the existence of attribute definition table. Since change of a schema has much influence (the omission of an element occurs to the existing data) on a system, the re-design of a system is desirable. However, the function to change a data structure may be attached to the general GIS system, it is the function which cannot be ignored.

Explanation of the XML database of the latter half is partly the introduction of the XML database product "Karearea" of SEC Co.,LTD. Karearea implements not only the analysis function or the change function of a schema but the function (useage of the original function to XPATH) which can apply a formula peculiar to a system at the time of searching. It is our pleasure if you will choose SEC Co.,LTD. and "Karearea" as your partner when you will construct a system which was introduced this time.

5. Conclusion

By developing a POI server, the result in the WWW based "GIS"whose client is ActiveX version goSVG browser is produced. Since SVG has rich power of expression, there are various variations in the way to present attribute information. Therefore, the g contents business based this system seems promising very much. We also find it important to develop further the PDA using the same engine.

On the other hand, there are some problems to be solved. In the first instance, there is an issue about cooperation with the service which costs. There is no merit for base map providers when base map service is owned jointly by two or more content providers, so it may become the problem which has bad influence on the special quality of this model ,that is ,to lighten the burden of content providers.

Next, it is necessary to consider security policy and rule attachment. The user-limited model is easy to make sure of security, but the services opened to the general public are necessary to cope with malicious users.

Next, there is a limit of the searching function on a client map. The method of realizing this function by the goSVG browser was not able to be found out. It is possible to implement the function by web browser. but there seems no other way than building into the server to realize those functions such as attributing value reference, inclusion selection by the geometric object, etc. which are equipped for general GIS application.

As for the realization in PDA,. there is no jump function to service by the browser cooperation,. Now, it is the situation that only reference of contents is possible. But the function will be implemented soon because general PDAs have a web browser now.

Footnotes

  1. "GXML over SVG" or "g-contents over SVG"

  2. Point of Interest

  3. Spatial data exchange protocol, created and maintained by DPC(Database Promotion Center, Japan)

  4. XML Database Engine producted by SEC

Bibliography

[GXML (DPC)]
http://gisclh.dpc.or.jp/gxml/contents-e/
[g-contents Exchange Promotion Association]
http://www.g-contents.jp/
[goSVG (WG)]
http://www.g-contents.jp/general/4_3_0.shtml
[Karearea]
http://www.sec.co.jp/products/karearea/

XHTML rendition created by gcapaper Web Publisher v2.0, © 2001-3 Schema Software Inc.