# This ontology.
@prefix dcs:      <http://ontologi.es/doap-changeset#> .

# Related
@prefix event:    <http://purl.org/NET/c4dm/event.owl#> .
@prefix doap:     <http://usefulinc.com/ns/doap#> .
@prefix dbug:     <http://ontologi.es/doap-bugs#> .

# Stock imports.
@prefix cc:       <http://creativecommons.org/ns#> .
@prefix dc:       <http://purl.org/dc/terms/> .
@prefix dcmitype: <http://purl.org/dc/dcmitype/> .
@prefix foaf:     <http://xmlns.com/foaf/0.1/> .
@prefix link:     <http://www.w3.org/2006/link#> .
@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 skos:     <http://www.w3.org/2004/02/skos/core#> .
@prefix xhv:      <http://www.w3.org/1999/xhtml/vocab#> .
@prefix xsd:      <http://www.w3.org/2001/XMLSchema#> .

## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## 

<http://tobyinkster.co.uk/#i> a foaf:Person .

dcs:
	a owl:Ontology ;
	rdfs:label "DOAP Change Sets"@en ;
	dc:created "2010-01-08"^^xsd:date ;
	dc:issued "2010-01-08"^^xsd:date ;
	dc:modified "2010-01-08"^^xsd:date ,
		"2010-01-27"^^xsd:date ,
		"2011-02-15"^^xsd:date ; # dcs:Documentation, dcs:Packaging, dcs:SecurityFix, dcs:SecurityRegression.
	dc:creator <http://tobyinkster.co.uk/#i> .

<>
	a foaf:Document ;
	foaf:primaryTopic dcs: .

dcs:ChangeSet
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Change Set"@en ;
	rdfs:comment "A collection of changes. Not necessarily disjoint with foaf:Document!"@en ;
	rdfs:subClassOf rdf:Bag .

dcs:ToDoList
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "To-Do List"@en ;
	rdfs:comment "A collection of planned changes."@en ;
	rdfs:subClassOf _:FutureChangeSet .

dcs:WishList
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Wish List"@en ;
	rdfs:comment "A collection of desired changes."@en ;
	rdfs:subClassOf _:FutureChangeSet .

dcs:Change
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Change"@en ;
	rdfs:comment "A change to something. Use rdfs:label to briefly describe the change. Use rdfs:comment for additional information."@en .

dcs:Addition
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Addition"@en ;
	rdfs:comment "A change that added a new feature."@en ;
	rdfs:subClassOf dcs:Change .

dcs:Removal
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Addition"@en ;
	rdfs:comment "A change that removed a feature."@en ;
	rdfs:subClassOf dcs:Change .
	
dcs:Bugfix
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Bugfix"@en ;
	rdfs:comment "A change that fixed a problem with an existing feature."@en ;
	rdfs:subClassOf dcs:Change .

dcs:Update
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Update"@en ;
	rdfs:comment "A change that brought a feature into compliance with policy or other changes in the external world."@en ;
	rdfs:subClassOf dcs:Change .

dcs:Regression
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Regression"@en ;
	rdfs:comment "A change that caused a problem with an existing feature."@en ;
	rdfs:subClassOf dcs:Change .

dcs:Documentation
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Documentation Change"@en ;
	rdfs:subClassOf dcs:Change .

dcs:Packaging
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Packaging Change"@en ;
	rdfs:subClassOf dcs:Change .

dcs:SecurityFix
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Security Fix"@en ;
	rdfs:comment "A change that fixed or improved a security problem."@en ;
	rdfs:subClassOf dcs:Change .

dcs:SecurityRegression
	a owl:Class ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "Security Regression"@en ;
	rdfs:comment "A change that created or worsened a security problem."@en ;
	rdfs:subClassOf dcs:Change , dcs:Regression .

_:FutureChangeSet
	a owl:Class ;
	rdfs:subClassOf rdf:Bag , dcs:ChangeSet .

_:VersionOrEvent
	a owl:Class ;
	owl:unionOf (doap:Version event:Event) .

dcs:changeset
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "change set"@en ;
	rdfs:comment "A change set may be associated with a particular software version in which those changes were released; or with an event which caused those changes."@en ;
	rdfs:domain _:VersionOrEvent ;
	rdfs:range dcs:ChangeSet .

dcs:versus
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "versus"@en ;
	rdfs:comment "The previous version or event which a changeset has changed from."@en ;
	rdfs:domain dcs:ChangeSet ;
	rdfs:range _:VersionOrEvent .

dcs:item
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "item"@en ;
	rdfs:comment "A change within a change set."@en ;
	rdfs:domain dcs:ChangeSet ;
	rdfs:range dcs:Change ;
	rdfs:subPropertyOf rdfs:member .

dcs:file
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "file"@en ;
	rdfs:comment "A file involved in the change."@en ;
	rdfs:domain dcs:Change .

dbug:Issue a rdfs:Class .

dcs:fixes
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "fixes"@en ;
	rdfs:comment "A bug fixed by the change."@en ;
	rdfs:domain dcs:Bugfix ;
	rdfs:range dbug:Issue .

dcs:implements
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "implements"@en ;
	rdfs:domain dcs:Addition ;
	rdfs:range doap:Specification .

dcs:restores
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "restores"@en ;
	rdfs:comment "An association between a regression and a later bugfix that fixes it."@en ;
	rdfs:domain dcs:Bugfix ;
	rdfs:range dcs:Regression .

dcs:blame
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "blame"@en ;
	rdfs:domain dcs:Change ;
	rdfs:range foaf:Agent .

dcs:checkin
	a owl:DatatypeProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "checkin"@en ;
	rdfs:comment "The identifier used by the project's version control system that records when this change was made."@en ;
	rdfs:domain dcs:Change ;
	rdfs:range xsd:string .

dcs:milestone
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "milestone"@en ;
	rdfs:domain _:FutureChangeSet ;
	rdfs:range _:VersionOrEvent .

dcs:tasks
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "tasks"@en ;
	rdfs:domain foaf:Agent ;
	rdfs:range dcs:ToDoList .

dcs:wishes
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "wishes"@en ;
	rdfs:domain foaf:Person ;
	rdfs:range dcs:WishList .

dcs:requires
	a owl:ObjectProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "requires"@en ;
	rdfs:comment "Indicates that the subject Change cannot/could not be completed without the object Change."@en ;
	rdfs:domain dcs:Change ;
	rdfs:range dcs:Change .

dcs:timescale
	a owl:DatatypeProperty ;
	rdfs:isDefinedBy dcs: ;
	rdfs:label "timescale"@en ;
	rdfs:comment "Human-readable description of the approximate time a change/feature should be complete by."@en ;
	rdfs:domain dcs:Change ;
	rdfs:range xsd:string .