@base <http://ontologi.es/doap-deps> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix deps: <#> .

<#>
    dc:created "2013-07-30"^^xsd:date ;
    dc:creator <http://tobyinkster.co.uk/#i>, [
        a foaf:Person ;
        foaf:isPrimaryTopicOf <http://toxi.co.uk/foaf.rdf> ;
        foaf:mbox_sha1sum "e66da09c6f6f75f0d512266706ece1647279a52e" ;
        foaf:name "Karsten Schmidt" ;
        foaf:page <https://twitter.com/toxi>
    ] ;
    dc:issued "2013-07-31"^^xsd:date ;
    dc:modified "2013-07-30"^^xsd:date, "2013-07-31"^^xsd:date ;
    a owl:Ontology ;
    rdfs:comment "an extension to DOAP for describing a project's requirements" ;
    rdfs:label "DOAP Dependencies" .

deps:BuildPhase
    a deps:Phase .

deps:ConfigurePhase
    a deps:Phase .

deps:CpanId
    a deps:IdentifierScheme ;
    rdfs:comment "A module name, optionally followed by a space character and a version.", "Examples: `Moose::Role` or `Moose::Role 2.0600`" ;
    rdfs:label "CPAN Identifier" .

deps:DebianId
    a deps:IdentifierScheme ;
    rdfs:comment "Examples: `libmoose-perl` or `libmoose-perl (>= 2.0600-1)`", "Note that architecture-specific modifiers (in square brackets) are not supported yet." ;
    rdfs:label "Debian Package Identifier" ;
    rdfs:seeAlso <http://www.debian.org/doc/debian-policy/ch-relationships.html> .

deps:Dependency
    a owl:Class ;
    rdfs:comment "A condition to be met" ;
    rdfs:label "Dependency" .

deps:DevelopmentPhase
    a deps:Phase .

deps:GemId
    a deps:IdentifierScheme ;
    rdfs:comment "A module name, optionally followed by one or more operator, version number pairs.", "Examples: `log4r` or `log4r >= 1.0.5` or `log4r >= 1.0.5, < 2.0.0`" ;
    rdfs:label "Gem Identifier" .

deps:HistoricDependency
    a owl:Class ;
    rdfs:label "Historic Dependency" ;
    rdfs:subClassOf deps:Dependency .

deps:IdentifierScheme
    a rdfs:Class ;
    rdfs:subClassOf rdfs:Datatype .

deps:Level
    a owl:Class .

deps:MvnId
    a deps:IdentifierScheme ;
    rdfs:comment "A fully qualified Maven artefact name: 'groupID/artefactID version[-classifier]'", "Example 'org.clojure/clojure 1.5.1-SNAPSHOT'" ;
    rdfs:label "Maven Identifier" .

deps:Phase
    a owl:Class .

deps:PipId
    a deps:IdentifierScheme ;
    rdfs:comment "A single line from a requirements.txt file, minus the line break.", "Example: `html5lib==0.95`" ;
    rdfs:label "Pip Identifier" .

deps:Recommended
    a deps:Level .

deps:Required
    a deps:Level .

deps:RpmId
    a deps:IdentifierScheme ;
    rdfs:comment "Examples: `perl-Moose` or `perl-Moose >= 2.0600-1`" ;
    rdfs:label "RPM Package Identifier" .

deps:RuntimePhase
    a deps:Phase .

deps:Suggested
    a deps:Level .

deps:TestPhase
    a deps:Phase .

deps:build-recommendation
    deps:level deps:Recommended ;
    deps:phase deps:BuildPhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "build recommendation" ;
    rdfs:range deps:Dependency .

deps:build-requirement
    deps:level deps:Required ;
    deps:phase deps:BuildPhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "build requirement" ;
    rdfs:range deps:Dependency .

deps:build-suggestion
    deps:level deps:Suggested ;
    deps:phase deps:BuildPhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "build suggestion" ;
    rdfs:range deps:Dependency .

deps:configure-recommendation
    deps:level deps:Recommended ;
    deps:phase deps:ConfigurePhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "configure recommendation" ;
    rdfs:range deps:Dependency .

deps:configure-requirement
    deps:level deps:Required ;
    deps:phase deps:ConfigurePhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "configure requirement" ;
    rdfs:range deps:Dependency .

deps:configure-suggestion
    deps:level deps:Suggested ;
    deps:phase deps:ConfigurePhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "configure suggestion" ;
    rdfs:range deps:Dependency .

deps:develop-recommendation
    deps:level deps:Recommended ;
    deps:phase deps:DevelopmentPhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "development recommendation" ;
    rdfs:range deps:Dependency .

deps:develop-requirement
    deps:level deps:Required ;
    deps:phase deps:DevelopmentPhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "development requirement" ;
    rdfs:range deps:Dependency .

deps:develop-suggestion
    deps:level deps:Suggested ;
    deps:phase deps:DevelopmentPhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "development suggestion" ;
    rdfs:range deps:Dependency .

deps:level
    a owl:AnnotationProperty ;
    rdfs:domain owl:ObjectProperty ;
    rdfs:range deps:Level .

deps:on
    a rdf:Property ;
    rdfs:comment "the range of this property is a little woolly; a doap:Project is certainly fine, as is a literal which acts as an identifier, provided it's qualified with a datatype indicating what scheme it's an identifier in" ;
    rdfs:domain deps:Dependency ;
    rdfs:label "on" .

deps:phase
    a owl:AnnotationProperty ;
    rdfs:domain owl:ObjectProperty ;
    rdfs:range deps:Phase .

deps:runtime-recommendation
    deps:level deps:Recommended ;
    deps:phase deps:RuntimePhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "runtime recommendation" ;
    rdfs:range deps:Dependency .

deps:runtime-requirement
    deps:level deps:Required ;
    deps:phase deps:RuntimePhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "runtime requirement" ;
    rdfs:range deps:Dependency .

deps:runtime-suggestion
    deps:level deps:Suggested ;
    deps:phase deps:RuntimePhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "runtime suggestion" ;
    rdfs:range deps:Dependency .

deps:since
    a owl:ObjectProperty ;
    rdfs:domain deps:Dependency ;
    rdfs:label "since" ;
    rdfs:range doap:Version .

deps:test-recommendation
    deps:level deps:Recommended ;
    deps:phase deps:TestPhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "test recommendation" ;
    rdfs:range deps:Dependency .

deps:test-requirement
    deps:level deps:Required ;
    deps:phase deps:TestPhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "test requirement" ;
    rdfs:range deps:Dependency .

deps:test-suggestion
    deps:level deps:Suggested ;
    deps:phase deps:TestPhase ;
    a owl:ObjectProperty ;
    rdfs:domain doap:Project ;
    rdfs:label "test suggestion" ;
    rdfs:range deps:Dependency .

deps:until
    a owl:ObjectProperty ;
    rdfs:domain deps:HistoricDependency ;
    rdfs:label "until" ;
    rdfs:range doap:Version .

<http://tobyinkster.co.uk/#i>
    a foaf:Person ;
    foaf:isPrimaryTopicOf <http://tobyinkster.co.uk/> ;
    foaf:name "Toby Inkster" .

