Geonames ontology in OWL
Geonames released an ontology of its geospatial information schema in the Web Ontology Language OWL. This ontology directly maps to the DB schema that is used by Geonames data export.
In the rest of this post, I’ll describe key concepts in the Geonames ontology. It may be of interest to readers who want to learn and play with the Semantic Web Geonames.
In this ontology, among others, there are three key ontology classes: Feature, Class and Code. Feature class is a set of all geospatial instances in Geonames (a city, a country etc.). The ontology class Class is a set of all feature schemes defined in Geonames. Not to confuse this ontology concept with OWL Class, which is used to defined classes of ontological things, let’s call Geonames’s Class gn:Class. The class Code is a set of abbreviation feature codes in different feature schemes.
To define gn:Class as an ontology class intended for describing concept schemes, it’s explicitly defined as a subclass of SKOS’s ConceptScheme. SKOS is an ontology for expressing concept schemes such as thesauri, taxonomies and folksonomies. The Geonames ontology defines several instances of gn:Class, and each of which represents a feature scheme used in the Geonames database. For example, the gn:Class instance “H” represents a concept scheme for lake, stream and other types of water bodies, and the instance “T” represents a concept scheme for mountain, hill, rocks etc.
The unit of a concept scheme is the notion “concept”. In SKOS, this is defined by the class skos:Concept. In Geonames ontology, since gn:Class is a concept scheme, it also has a set of “concept” units. These units are instances of Code (a subclass of skos:Concept).
Let’s take a look at an example of Code in the Geonames ontology. Remember the gn:Class instance “H”, which represents a concept scheme for various types of water bodies. Its “concept” units are specific types of water bodies. For example, the code “H.AIRS” represents a place on water body where floatplanes land and take off, the code “H.CHN” represents the deepest part of a stream, bay, lagoon or strait, through which the main current flows.
While both gn:Class and Code are for representing meta-information about features, the class Feature is defined for describing concrete geospatial entities (USA, London, Eiffel Tower etc.). All feature instances are uniquely identified by URI in Geonames (see example). Their geospatial properties (i.e., latitude, longitude and altitude) are defined using the vocabulary from the W3C geo ontology. Feature instances may also have other properties, such as alternateNames, inCountry, name, parentFeature, population, postalCode, featureClass and featureCode. Tips: try browsing the Geonames ontology using SWOOP.
The property featureClass defines the specific feature scheme of a Feature instance (i.e., the concept scheme that a feature belongs to). The range value of this property must be an instance of gn:Class. The property featureCode defines the feature code of a feature instance (i.e., the “concept” unit in a scheme that a feature is a type of). The range value of this property must be from the class Code. At present, the Geonames ontology defines about 600+ Code instances.
I’m very happy to see Geonames’s support for OWL and RDF. Given its large DB of geospatial features, it opens the door for Semantic Web applications to harvest geospatial information and perhaps reason about them.
Resources:
Credit: This story was sent by Dan Brickley to the public-xg-geo@w3.org mailing list.





















I’m always a bit wary when domain ontologies introduce their own Class class. Is there a good reason for not using
owl:Classorrdfs:Classand turning thegn:Codesinto classes of features?I like that the vocabulary relates its terms to SKOS.
Comment by Richard Cyganiak — October 14, 2006 @ 8:07 am
[…] Thanks to the Geonames Ontology, contributed by Bernard Vatant, all geonames features now have a RDF description for the Semantic Web. The Semantic Web aims to bring structure to the Web and make its content easily readable by machines. The semantic web is sometimes referred to as Web3.0. The balloon on the geonames map display has received two new menus for ‘perma link’ and ’semantic web rdf’. Harry Chen has a good introduction to the Geonames Ontology on the Geospatial Semantic Web Blog. Richard Cyganiak writes in his blog “This is an excellent example of a Semantic Web site done right. Well, almost right …” and in an other posting he describes how to use the Semantic Web URI of a geonames feature with a FOAF file. Posted by marc Filed in Uncategorized […]
Pingback by Semantic Web « Geonames — October 14, 2006 @ 8:56 am
Richard:
“I’m always a bit wary when domain ontologies introduce their own Class class.”
Actually, so am I … And in first cut of the ontology, the “feture classes” were indeed subclasses of “Feature”. But what geonames calls “feature class” looked to me, at second thought, more like the top categories of a thesaurus than proper classes. That’s why they are represented as instances of a subclass of skos:ConceptScheme. I simply used in the ontology the name “Class” used by geonames, but it has nothing to do with redefining owl:Class or rdfs:Class.
That way, the whole of geonames types (feature classes and feature codes) can be extracted as a standalone SKOS vocabulary. If feature classes were owl Classes, it would be more difficult to do so.
Comment by Bernard Vatant — October 14, 2006 @ 4:29 pm
… and thanks Harry for the review (I should have started by this). Just a remark : you did not mention that the geonames taxonomy uses SKOS. It’s an important point for extensibility of the vocabulary.
Also : the link on my blog is broken in the previous message. Hope this one works better :))
Comment by Bernard Vatant — October 14, 2006 @ 4:34 pm
Bernard — Thank you for reminding me that the use of SKOS is an important feature of the Geonames ontology. I’ve updated by my post with additional comments on SKOS. - HC
Comment by harrychen — October 15, 2006 @ 11:50 am
[…] Geospatial Semantic Web Blog - GIS Data Integration, Geo Ontology, Geo Tagging & Geo Web 2.0 News » Blog Archive » Geonames ontology in OWL (tags: OWL geoSpatial semanticweb) […]
Pingback by links for 2006-10-16 « Laurent in Taipei — October 16, 2006 @ 10:31 am
[…] With feedback and help from the blogosphere we have updated the geonames ontology and fixed some flaws in the corresponding web service. The ontology now includes linked data such as contains (administrative divisions), neighbours (for features with a boundary) or nearby features. The web service is using two URIs to clearly distinguish between Concept (the thing as is) and Document (the document about it). […]
Pingback by Semantic Web : Concept vs Document « Geonames — October 21, 2006 @ 2:28 am
I’m not familiar with SKOS, however, it seems that the :Code and :Class “classes” could become OWL classes, for example, Austin is a Capital and a populated place. It is classified as a “Capital”, that just so happens to extend “PopulatedPlace”.
There’s an fun opportunity in some future revision to map the flat code/class structure into a more classification based ontology.
Comment by Taylor Cowan — January 3, 2007 @ 2:53 pm