@base <http://eunis.eea.europa.eu/rdf/species-schema.rdf> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<>
    a owl:Ontology ;
    rdfs:label "EUNIS Species schema"@en ;
    owl:versionInfo "$Id$"@en .

<#Species>
    a rdfs:Class ;
    rdfs:label "Species"@en .

<#SpeciesSynonym>
    a rdfs:Class ;
    rdfs:label "Species synonym"@en .

<#annex>
    a rdf:Property ;
    rdfs:label "Annex"@en .

<#binomialName>
    a rdf:Property ;
    rdfs:comment """The binomial name, binomial nomenclature or \"binomen\"
		is the currently accepted scientific name for a species. It consists
		of the name of the genus followed by a \"specific epithet\". \"Currently accepted\"
		is only within EUNIS' own database"""@en ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Binomial name"@en ;
    rdfs:range rdfs:Literal .

<#comment>
    a rdf:Property ;
    rdfs:label "Exception"@en .

<#hasBBCPage>
    a rdf:Property ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "BBC Page"@en ;
    rdfs:range rdfs:Resource .

<#hasBugGuide>
    a rdf:Property ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Bug Guide URL"@en ;
    rdfs:range rdfs:Resource .

<#hasBugGuidePage>
    a rdf:Property ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Bug Guide Page"@en ;
    rdfs:range rdfs:Resource .

<#hasSynonym>
    a owl:InverseFunctionalProperty ;
    rdfs:comment """Senior synonyms point to the junior synonyms
			if A hasSynonym X and B hasSynonym X then A owl:sameAs B
			if A hasSynonym X then A rdf:type Species and X rdf:type SpeciesSynonym
		"""@en ;
    rdfs:domain <#Species> ;
    rdfs:label "Has synonym"@en ;
    rdfs:range <#SpeciesSynonym> ;
    owl:inverseOf <#synonymFor> .

<#hasWikipediaArticle>
    a rdf:Property ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Wikipedia article"@en ;
    rdfs:range rdfs:Resource .

<#hasWikispeciesArticle>
    a rdf:Property ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Wikispecies article"@en ;
    rdfs:range rdfs:Resource .

<#haslegalReference>
    a rdf:Property ;
    rdfs:label "Legal reference"@en ;
    rdfs:range <http://purl.org/ontology/bibo/Legislation> .

<#isExpectedIn>
    a rdf:Property ;
    rdfs:comment "The property points to protected sites that have this species as one of those living in the site"@en ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Is expected to live in"@en ;
    rdfs:range <sites-schema.rdf#Site> .

<#maybeSameSpecies>
    a owl:SymmetricProperty ;
    rdfs:comment "Used when two resources are suspected of being the same concept"@en ;
    rdfs:domain <#Species> ;
    rdfs:label "Maybe same species as"@en ;
    rdfs:range rdfs:Resource .

<#maybeSameSynonym>
    a owl:SymmetricProperty ;
    rdfs:comment "Used when two resources are suspected of being the same concept"@en ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Maybe same species synonym as"@en ;
    rdfs:range <#SpeciesSynonym> .

<#notSameSpecies>
    a owl:SymmetricProperty ;
    rdfs:comment "Used when two resources are verified to not being the same concept, but very similar"@en ;
    rdfs:domain <#Species> ;
    rdfs:label "Not same species as"@en ;
    rdfs:range rdfs:Resource ;
    rdfs:subPropertyOf owl:differentFrom .

<#notSameSynonym>
    a owl:SymmetricProperty ;
    rdfs:comment "Used when two resources are verified to not being the same concept, but very similar"@en ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Not same species synonym as"@en ;
    rdfs:range <#SpeciesSynonym> .

<#notSameSynonymWorMS>
    a owl:DatatypeProperty ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Not same species synonym as"@en ;
    rdfs:range rdfs:Literal .

<#priority>
    a rdf:Property ;
    rdfs:comment "Is the species listed as a priority species in the legal document?"@en ;
    rdfs:label "Priority species"@en .

<#sameSpecies>
    a owl:SymmetricProperty, owl:TransitiveProperty ;
    rdfs:comment "Used when two resources are the same species"@en ;
    rdfs:domain <#Species> ;
    rdfs:label "Same species as"@en ;
    rdfs:range <#Species> .

<#sameSpeciesGBIF>
    a owl:DatatypeProperty ;
    rdfs:domain <#Species> ;
    rdfs:label "Same species at GBIF"@en ;
    rdfs:range rdfs:Literal .

<#sameSpeciesITIS>
    a owl:DatatypeProperty ;
    rdfs:domain <#Species> ;
    rdfs:label "Same species at ITIS"@en ;
    rdfs:range rdfs:Literal .

<#sameSpeciesNCBI>
    a owl:DatatypeProperty ;
    rdfs:domain <#Species> ;
    rdfs:label "Same species at NCBI"@en ;
    rdfs:range rdfs:Literal .

<#sameSpeciesRedlist>
    a owl:DatatypeProperty ;
    rdfs:domain <#Species> ;
    rdfs:label "Same species at IUCN"@en ;
    rdfs:range rdfs:Literal .

<#sameSynonym>
    a owl:SymmetricProperty, owl:TransitiveProperty ;
    rdfs:comment """Used when two resources have the same binomial name and author
		      (taking into account different spellings and abbreviations)
		"""@en ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Same species synonym as"@en ;
    rdfs:range <#SpeciesSynonym> .

<#sameSynonymFaEu>
    a owl:InverseFunctionalProperty ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Same synonym at Fauna Europeana"@en ;
    rdfs:range rdfs:Literal .

<#sameSynonymGBIF>
    a owl:InverseFunctionalProperty ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Same synonym at GBIF"@en ;
    rdfs:range rdfs:Literal .

<#sameSynonymITIS>
    a owl:InverseFunctionalProperty ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Same synonym at ITIS"@en ;
    rdfs:range rdfs:Literal .

<#sameSynonymNCBI>
    a owl:InverseFunctionalProperty ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Same synonym at NCBI"@en ;
    rdfs:range rdfs:Literal .

<#sameSynonymWorMS>
    a owl:InverseFunctionalProperty ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Same synonym at World register of Marine Species"@en ;
    rdfs:range rdfs:Literal .

<#synonymFor>
    a owl:FunctionalProperty ;
    rdfs:comment """Junior synonyms point to the canonical URL of the species.
			if X synonymFor A and X synonymFor B then A owl:sameAs B
			if X synonymFor A then A rdf:type Species and X rdf:type SpeciesSynonym
		"""@en ;
    rdfs:domain <#SpeciesSynonym> ;
    rdfs:label "Synonym for"@en ;
    rdfs:range <#Species> ;
    owl:inverseOf <#hasSynonym> .

<http://rs.tdwg.org/dwc/terms/scientificName>
    a rdf:Property ;
    rdfs:subPropertyOf rdfs:label .

