@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .

@prefix qudt: <http://qudt.org/1.1/schema/qudt#> .

@prefix usgs: <http://gnis-ld.org/lod/usgs/ontology/> .
@prefix gnis: <http://gnis-ld.org/lod/gnis/ontology/> .
@prefix geosparql: <http://www.opengis.net/ont/geosparql#> .

# ------------------------------
# Ontology Metadata
# ------------------------------

gnis: a owl:Ontology ;
	owl:versionIRI gnis:Version.1.0.0 ;
	dcterms:title "Geographic Names Information Systems (GNIS)"@en ;
	dcterms:description "This ontology supports GNIS features."@en ;
	dcterms:license <http://www.opendatacommons.org/licenses/pddl/> ;
	dcterms:created "2018-03-01"^^xsd:date .


# ------------------------------
# GNIS Predicates
# ------------------------------

gnis:alternativeName a owl:ObjectProperty ;
	rdfs:label "Alternative Name"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:string ;
	rdfs:subClassOf skos:altLabel .

gnis:citation a owl:ObjectProperty ;
	rdfs:label "Citation"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:string .

gnis:country a owl:ObjectProperty ;
	rdfs:label "Country"@en .

gnis:county a owl:ObjectProperty ;
	rdfs:label "County"@en ;
	rdfs:domain gnis:County ;
	rdfs:range xsd:string .

gnis:countyCode a owl:ObjectProperty ;
	rdfs:label "County Code"@en ;
	rdfs:domain gnis:County ;
	rdfs:range xsd:string .

gnis:countyName a owl:ObjectProperty ;
	rdfs:label "County Name"@en ;
	rdfs:domain gnis:County ;
	rdfs:range xsd:string .

gnis:dateFeatureCreated a owl:ObjectProperty ;
	rdfs:label "Date Feature Created"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:date .

gnis:dateFeatureEdited a owl:ObjectProperty ;
	rdfs:label "Date Feature Edited"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:date .

gnis:dateNameCreated a owl:ObjectProperty ;
	rdfs:label "Date Name Created"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:date .

gnis:description a owl:ObjectProperty ;
	rdfs:label "Description"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:string .

gnis:elevation a owl:ObjectProperty ;
	rdfs:label "Elevation"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range qudt:Quantity .

gnis:featureId a owl:ObjectProperty ;
	rdfs:label "Feature Id"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:string .

gnis:history a owl:ObjectProperty ;
	rdfs:label "History"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:string .

gnis:mapName a owl:ObjectProperty ;
	rdfs:label "Map Name"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:string .

gnis:officialName a owl:ObjectProperty ;
	rdfs:label "Official Name"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range xsd:string .

gnis:state a owl:ObjectProperty ;
	rdfs:label "State"@en ;
	rdfs:domain usgs:Feature ;
	rdfs:range gnis:State .

gnis:stateCode a owl:ObjectProperty ;
	rdfs:label "State Code"@en ;
	rdfs:domain usgs:State ;
	rdfs:range xsd:string .

gnis:stateId a owl:ObjectProperty ;
	rdfs:label "State Id"@en ;
	rdfs:domain usgs:State ;
	rdfs:range xsd:string .

gnis:stateName a owl:ObjectProperty ;
	rdfs:label "State Name"@en ;
	rdfs:domain usgs:State ;
	rdfs:range xsd:string .


# ------------------------------
# GNIS Instantiable Feature Types
# ------------------------------

gnis:County a owl:Class ;
	rdfs:label "County"@en ;
	rdfs:comment "Second-order division of a nation such as parish, borough, county, municipio, or judicial division, and independent cities in Maryland, Missouri, Nevada, and Virginia."@en ;
	rdfs:subClassOf usgs:Division .

gnis:State a owl:Class ;
	rdfs:label "State"@en ;
	rdfs:comment "First-order division of a nation."@en ;
	rdfs:subClassOf usgs:Division .
