# baseURI: http://biohackathon.org/resource/vg

@prefix : <http://biohackathon.org/resource/vg#> .
@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 spin: <http://spinrdf.org/spin#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix edam: <http://edamontology.org/> .

<http://biohackathon.org/resource/vg>
  rdf:type owl:Ontology ;
  <http://purl.org/dc/terms/license> <http://creativecommons.org/publicdomain/zero/1.0/> ;
  spin:imports <http://topbraid.org/spin/owlrl-all> ;
  spin:imports <http://topbraid.org/spin/rdfsplus> ;
  spin:imports <http://topbraid.org/spin/spinowl> ;
  owl:versionInfo "Created at the DBCLS RDF Summit 2, Sendai Japan 20"^^xsd:string ;
.
:Node
  rdf:type owl:Class ;
  rdfs:comment "A node in the variant graph, representing a sequence section."^^xsd:string ;
  rdfs:label "Node"^^xsd:string ;
  rdfs:subClassOf owl:Thing ;
.
:Path
  rdf:type owl:Class ;
  rdfs:comment "A Path is a collection of steps from path to path that represent an asserdfs:labelmbled sequence integrated into the variant grap."^^xsd:string ;
  rdfs:label "Path"^^xsd:string ;
  rdfs:subClassOf owl:Thing ;
.
:Step
  rdf:type owl:Class ;
  rdfs:comment "A step along a path in the variant graph. A series of steps along a path represent an assembled sequence that was originally inserted into the the variant graph. A step points to a :Node or the reverse complement of a node and has a rank (step number)."^^xsd:string ;
  rdfs:label "Step"^^xsd:string ;
  rdfs:subClassOf owl:Thing ;
.
:links
  rdf:type owl:ObjectProperty ;
  rdfs:comment "The super property that says two nodes are linked and does not allow one to infer wwhich side to side it goes"^^xsd:string ;
  rdfs:domain :Node ;
  rdfs:label "links"^^xsd:string ;
  rdfs:range :Node ;
.
:linksForwardToForward
  rdf:type owl:ObjectProperty ;
  rdfs:subPropertyOf :links ;
  rdfs:comment "This links a node from the forward (5' to 3') strand on the subject node to the forward (5' to 3') strand on the predicate node."^^xsd:string ;
  rdfs:domain :Node ;
  rdfs:label "++"^^xsd:string ;
  rdfs:label "linksForwardToForward"^^xsd:string ;
  rdfs:range :Node ;
.
:linksForwardToReverse
  rdf:type owl:ObjectProperty ;
  rdfs:subPropertyOf :links ;
  rdfs:comment "This links a node from the forward (5' to 3') strand on the subject node to the reverse (3' to 5') strand on the predicate node."^^xsd:string ;
  rdfs:domain :Node ;
  rdfs:label "+-"^^xsd:string ;
  rdfs:label "linksForwardToReverse"^^xsd:string ;
  rdfs:range :Node ;
.
:linksReverseToForward
  rdf:type owl:ObjectProperty ;
  rdfs:subPropertyOf :links ;
  rdfs:comment "This links a node from the reverse (3' to 5') strand on the subject node to the forward (5' to 3') strand on the predicate node."^^xsd:string ;
  rdfs:domain :Node ;
  rdfs:label "-+"^^xsd:string ;
  rdfs:label "linksReverseToForward"^^xsd:string ;
  rdfs:range :Node ;
.
:linksReverseToReverse
  rdf:type owl:ObjectProperty ;
  rdfs:subPropertyOf :links ;
  rdfs:comment "This links a node from the reverse (3' to 5') strand on the subject node to the reverse (3' to 5') strand on the predicate node."^^xsd:string ;
  rdfs:domain :Node ;
  rdfs:label "--"^^xsd:string ;
  rdfs:label "linksReverseToReverse"^^xsd:string ;
  rdfs:range :Node ;
.
:node
  rdf:type owl:ObjectProperty ;
  rdfs:comment "This means that this step occurs on the forward strand of the sequence attaced to the node (i.e. it is on the explicit encoded forward (5' to 3') strand) of the predicate node."^^xsd:string ;
  rdfs:domain :Step ;
  rdfs:label "node"^^xsd:string ;
  rdfs:range :Node ;
.
:path
  rdf:type owl:ObjectProperty ;
  rdfs:comment "This means that this step occurs on the path that is the object of this statment"^^xsd:string ;
  rdfs:domain :Step ;
  rdfs:label "path"^^xsd:string ;
  rdfs:range :Path ;
.

:position
  rdf:type owl:ObjectProperty ;
  rdfs:comment "This is the position on the reference path at which this step starts."^^xsd:string ;
  rdfs:domain :Step ;
  rdfs:label "position"^^xsd:string ;
  rdfs:range xsd:positiveInteger .

:rank
  rdf:type owl:DatatypeProperty ;
  rdfs:comment "The rank records the step place along its path."^^xsd:string ;
  rdfs:domain :Step ;
  rdfs:label "rank"^^xsd:string ;
  rdfs:range xsd:positiveInteger ;
.
:reverseOfNode
  rdf:type owl:ObjectProperty ;
  rdfs:comment "This means this step occurs on the revese complement of the sequence attaced to the node (i.e. it is on the implicit reverse (3' to 5') strand) of the predicate node."^^xsd:string ;
  rdfs:domain :Step ;
  rdfs:label "reverseOfNode"^^xsd:string ;
  rdfs:range :Node ;
.
:VG_Format
  a owl:Class ;
  rdfs:subClassOf edam:format_2921, edam:format_2055 ;
  rdfs:label "Graph" ;
  rdfs:comment "Consists of nodes, edges, and paths. Nodes each have a unique ID and a DNA sequence, edges consist of two node sides (so the graph is bidirected), and paths are a sequence of nodes and orientations. Paths also have names." ;
  rdfs:isDefinedBy <https://raw.githubusercontent.com/vgteam/vg/master/src/vg.proto> ;
.
:GAM_Format
  a owl:Class ;
  rdfs:label "Alignment" ;
  rdfs:subClassOf edam:format_2055 ;
  rdfs:comment "Contains an alignment to a graph" ;
  rdfs:isDefinedBy <https://raw.githubusercontent.com/vgteam/vg/master/src/vg.proto> ;
.
:GAMP_Format
  a owl:Class ;
  rdfs:label "MultipathAlignment" ;
  rdfs:comment "Contains a DAG of subalignments to different paths through the reference graph" ;
  rdfs:isDefinedBy <https://raw.githubusercontent.com/vgteam/vg/master/src/vg.proto> ;
.
:Snarl_Format
  a owl:Class ;
  rdfs:label "Snarl" ;
  rdfs:comment " A series of Snarl objects, each of which contain: The boundaries of a snarl (a bubble-like motif in a graph), the snarl (if any) that contains this one, classifications of the snarl based on the reachability of the two boundary nodes from each other and the cyclic-ness of the subcomponent." ;
  rdfs:isDefinedBy <https://raw.githubusercontent.com/vgteam/vg/master/src/vg.proto> ;
.
:Snarl_Traversal_Format
  a owl:Class ;
  rdfs:label "SnarlTraversal" ;
  rdfs:comment " A series of SnarlTraversal objects, each of which contain: A walk in the graph through a Snarl, and optionally a name." ;
  rdfs:isDefinedBy <https://raw.githubusercontent.com/vgteam/vg/master/src/vg.proto> ;
.
:XG_Format
  a owl:Class ;
  rdfs:label "XG" ;
  rdfs:comment "An immutable, succinct representation of a graph. Contains the same info as the .vg." ;
  rdfs:seeAlso :VG_Format ;
  rdfs:isDefinedBy <https://raw.githubusercontent.com/vgteam/vg/master/src/vg.proto> ;
.
:GCSA2_Format
  a owl:Class ;
  rdfs:label "GCSA2" ;
  rdfs:comment "Generalized compressed suffix array 2, an exact match index published by Jouni Siren" ;
  rdfs:isDefinedBy <https://raw.githubusercontent.com/vgteam/vg/master/src/vg.proto> ;
.
:GBWT_Format 
  a owl:Class ;
  rdfs:label "GBWT" ;
  rdfs:comment "Graph Burrows-Wheeler Transform, a succinct collection of paths through a genome graph, published by Jouni Siren. Usually represents haplotypes." ;
  rdfs:isDefinedBy <https://raw.githubusercontent.com/vgteam/vg/master/src/vg.proto> ;
.
