(define (domain geonames_map_merging) (:extends (uri "http://www.daml.org/2002/04/geonames/geonames-ont" :prefix geonames) (uri "http://www.daml.org/2001/06/map/map-ont" :prefix map) (uri "http://www.w3.org/2000/10/XMLSchema" :prefix xsd) (uri "http://www.daml.org/2001/09/countries/fips-10-4-ont" :prefix countries) (uri "http://www.w3.org/2000/01/rdf-schema" :prefix rdfs) ) (:types Feature - Object Name - Object Layer - Object Color - Object MapObject - Object Polygon - MapObject PredefinedLayer - Layer Point - MapObject Icon - MapObject Map - Object Location - Object DrawingLayer - Layer Line - MapObject String - Object ) (:constants red - Color green - Color blue - Color @map:Layer1 - @map:DrawingLayer ) (:predicates (name ob1 - Object ob2 - Object) (latitude ob1 - Object ob2 - Object) (longitude ob1 - Object ob2 - Object) (shortName ob1 - Object ob2 - Object) (dimension ob1 - Object ob2 - Object) (secondaryCountry ob1 - Object ob2 - Object) (feature ob1 - Object ob2 - Object) (modifyDate ob1 - Object ob2 - Object) (sortName ob1 - Object ob2 - Object) (locatedIn ob1 - Object ob2 - Object) (primaryCountry ob1 - Object ob2 - Object) (uniqueIdentifier ob1 - Object ob2 - Object) (uniqueLabel ob1 - Object ob2 - Object) (fullName ob1 - Object ob2 - Object) (location ob1 - Object ob2 - Object) (label ob1 - Object ob2 - Object) (layer ob1 - Object ob2 - Object) (color ob1 - Object ob2 - Object) (object ob1 - Object ob2 - Object) (underlyingObject ob1 - Object ob2 - Object) (is-Feature ob1 - Object) (is-Name ob1 - Object) (is-Map ob1 - Object) (is-Location ob1 - Object) (is-Line ob1 - Object) (is-Point ob1 - Object) (is-Layer ob1 - Object) (is-Color ob1 - Object) (is-Polygon ob1 - Object) (is-PredefinedLayer ob1 - Object) (is-Icon ob1 - Object) (is-DrawingLayer ob1 - Object) (is-MapObject ob1 - Object) ) (:axioms (T-> @geonames:Feature Feature) (forall (x - Object) (iff (@geonames:is-Feature x) (is-Feature x))) (T-> @geonames:Name Name) (forall (x - Object) (iff (@geonames:is-Name x) (is-Name x))) (T-> @map:Map Map) (forall (x - Object) (iff (@map:is-Map x) (is-Map x))) (T-> @xsd:string String) (forall (x y - Object) (if (and (is-Feature x) (name x y)) (is-Name y))) (forall (x y - Object) (if (and (is-Name y) (name x y)) (is-Feature x))) (forall (x y - Object) (if (@geonames:name x y) (name x y))) (forall (x y - Object) (if (@map:name x y) (name x y))) (forall (x - Feature y - Object) (if (name x y) (@geonames:name x y))) (forall (x y - Object) (if (and (name x y) (is-Feature x)) (@geonames:name x y))) (forall (x - Map y - Object) (if (name x y) (@map:name x y))) (forall (x y - Object) (if (and (name x y) (is-Map x)) (@map:name x y))) (T-> @map:Location Location) (forall (x - Object) (iff (@map:is-Location x) (is-Location x))) (forall (x y - Object) (iff (@map:latitude x y) (latitude x y))) (forall (x y - Object) (if (and (is-Feature x) (@geonames:latitude x y)) (is @xsd:double y))) (forall (x y - Object) (if (and (is-Feature x) (@geonames:longtitude x y)) (is @xsd:double y))) (forall (x y z w - Object) (if (and (uniqueIdentifier x z) (@geonames:latitude x y) (@geonames:longitude x w)) (and (latitude (@skolem:fLocation x) - Location y) (longitude (@skolem:fLocation x) - Location w) (underlyingObject (@skolem:fPoint x) - Point (@built_in:expandPrefixtoURI x)) (uniqueLabel (@skolem:fPoint x) - Point (@built_in:NumbertoString z)) (location (@skolem:fPoint x) - Point (@skolem:fLocation x) - Location) (object @map:Layer1 (@skolem:fPoint x) - Point)))) (forall (x y z w t - Object) (if (and (uniqueIdentifier x z) (@rdfs:label x t) (@geonames:latitude x y) (@geonames:longitude x w)) (and (latitude (@skolem:fLocation x) - Location y) (longitude (@skolem:fLocation x) - Location w) (label (@skolem:fPoint x) - Point t) (underlyingObject (@skolem:fPoint x) - Point (@built_in:expandPrefixtoURI x)) (uniqueLabel (@skolem:fPoint x) - Point (@built_in:NumbertoString z)) (location (@skolem:fPoint x) - Point (@skolem:fLocation x) - Location) (object @map:Layer1 (@skolem:fPoint x) - Point)))) (forall (x y - Object) (iff (@map:underlyingObject x y) (underlyingObject x y))) (forall (x y - Object) (iff (@map:longitude x y) (longitude x y))) (forall (x y - Object) (iff (@geonames:feature x y) (feature x y))) (forall (x - Feature y - Object) (if (uniqueIdentifier x y) (is @xsd:long y))) (forall (x - Name y - Object) (if (uniqueIdentifier x y) (is @xsd:long y))) (forall (x y - Object) (iff (@geonames:uniqueIdentifier x y) (uniqueIdentifier x y))) (forall (x y - Object) (if (and (uniqueIdentifier x y) (is-Feature x)) (and (uniqueLabel (@skolem:fPoint x) - Point (@built_in:NumbertoString y)) (location (@skolem:fPoint x) - Point (@skolem:fLocation x) - Location)))) (forall (x - Feature y - Object) (if (uniqueIdentifier x y) (and (uniqueLabel (@skolem:fPoint x) - Point (@built_in:NumbertoString y)) (location (@skolem:fPoint x) - Point (@skolem:fLocation x) - Location)))) (forall (x y - Object) (iff (@geonames:primaryCountry x y) (primaryCountry x y))) (forall (x y - Object) (iff (@geonames:dimension x y) (dimension x y))) (forall (x y - Object) (iff (@geonames:secondaryCountry x y) (secondaryCountry x y))) (forall (x y - Object) (iff (@geonames:modifyDate x y) (modifyDate x y))) (forall (x y - Object) (iff (@geonames:shortName x y) (shortName x y))) (forall (x y - Object) (iff (@geonames:fullName x y) (fullName x y))) (forall (x y - Object) (iff (@geonames:locatedIn x y) (locatedIn x y))) (T-> @map:Point Point) (T-> @map:Line Line) (forall (x y - Object) (iff (@map:location x y) (location x y))) (forall (x - Object) (iff (@map:is-Line x) (is-Line x))) (forall (x - Object) (if (is Line x) (and (location x (@skolem:Line1 x)) (location x (@skolem:Line2 x)) (not (= (@skolem:Line1 x) (@skolem:Line2 x)))))) (forall (x - Object) (if (is-Line x) (and (location x (@skolem:Line1 x)) (location x (@skolem:Line2 x)) (not (= (@skolem:Line1 x) (@skolem:Line2 x)))))) (forall (x y - Object) (iff (@map:label x y) (label x y))) (T-> @map:Layer Layer) (forall (x y - Object) (iff (@map:layer x y) (layer x y))) (T-> @map:DrawingLayer DrawingLayer) (T-> @map:MapObject MapObject) (forall (x y - Object) (iff (@map:object x y) (object x y))) (T-> @map:Color Color) (forall (x y - Object) (iff (@map:color x y) (color x y))) (T-> @map:Polygon Polygon) (T-> @map:PredefinedLayer PredefinedLayer) (T-> @map:Icon Icon) ) )