@prefix : . @prefix dc: . @prefix bag: . @prefix owl: . @prefix rdf: . @prefix set: . @prefix xml: . @prefix xsd: . @prefix csvw: . @prefix list: . @prefix rdfs: . @prefix skos: . @prefix swrl: . @base . rdf:type owl:Ontology ; dc:creator "Dominik Tomaszuk" ; rdfs:comment "Property Graph Ontology described using W3C RDF Schema and the Web Ontology Language." ; rdfs:label "Property Graph Ontology" ; owl:versionInfo 1.0 . ################################################################# # Annotation properties ################################################################# ### http://purl.org/dc/elements/1.1/creator dc:creator rdf:type owl:AnnotationProperty . ### http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled rdf:type owl:AnnotationProperty . ### http://www.w3.org/2004/02/skos/core# skos: rdf:type owl:AnnotationProperty . ### http://www.w3.org/2004/02/skos/core#altLabel skos:altLabel rdf:type owl:AnnotationProperty . ################################################################# # Datatypes ################################################################# ### http://ii.uwb.edu.pl/pgo#graphml :graphml rdf:type rdfs:Datatype . ### http://ii.uwb.edu.pl/pgo#graphson :graphson rdf:type rdfs:Datatype . ### http://ii.uwb.edu.pl/pgo#yars :yars rdf:type rdfs:Datatype . ################################################################# # Object Properties ################################################################# ### http://ii.uwb.edu.pl/pgo#endNode :endNode rdf:type owl:ObjectProperty ; rdfs:domain :Edge ; rdfs:range :Node ; rdfs:comment "A head of a node" ; rdfs:label "end node" . ### http://ii.uwb.edu.pl/pgo#hasEdge :hasEdge rdf:type owl:ObjectProperty ; rdfs:domain :PropertyGraph ; rdfs:range :Edge ; rdfs:comment "An edge of a property graph" ; rdfs:label "has edge" . ### http://ii.uwb.edu.pl/pgo#hasEdgeProperty :hasEdgeProperty rdf:type owl:ObjectProperty ; rdfs:subPropertyOf :hasProperty ; rdfs:label "has edge property" . ### http://ii.uwb.edu.pl/pgo#hasNode :hasNode rdf:type owl:ObjectProperty ; rdfs:domain :PropertyGraph ; rdfs:range :Node ; rdfs:comment "An isolated node of a property graph" ; rdfs:label "has node" . ### http://ii.uwb.edu.pl/pgo#hasNodeProperty :hasNodeProperty rdf:type owl:ObjectProperty ; rdfs:subPropertyOf :hasProperty ; rdfs:label "has node property" . ### http://ii.uwb.edu.pl/pgo#hasProperty :hasProperty rdf:type owl:ObjectProperty ; rdfs:domain [ rdf:type owl:Class ; owl:unionOf ( :Edge :Node ) ] ; rdfs:range :Property ; rdfs:comment "A property of a label" ; rdfs:label "has property" . ### http://ii.uwb.edu.pl/pgo#startNode :startNode rdf:type owl:ObjectProperty ; rdfs:domain :Edge ; rdfs:range :Node ; rdfs:comment "A tail of a node" ; rdfs:label "start node" . ### http://ii.uwb.edu.pl/pgo#value :value rdf:type owl:ObjectProperty ; rdfs:domain :Property ; rdfs:range [ rdf:type owl:Class ; owl:unionOf ( bag:Bag list:List set:Set xsd:string ) ] . ################################################################# # Data properties ################################################################# ### http://ii.uwb.edu.pl/pgo#key :key rdf:type owl:DatatypeProperty ; rdfs:domain :Property ; rdfs:range xsd:string ; rdfs:comment "A key of a property" ; rdfs:label "key" . ### http://ii.uwb.edu.pl/pgo#label :label rdf:type owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:comment "A name of a label" ; rdfs:label "label" . ### http://ii.uwb.edu.pl/pgo#value :value rdf:type owl:DatatypeProperty . ################################################################# # Classes ################################################################# ### http://ii.uwb.edu.pl/pgo#Edge :Edge rdf:type owl:Class ; rdfs:comment "A pair of vertices that are adjacent in a graph" ; rdfs:label "Edge" . ### http://ii.uwb.edu.pl/pgo#Graph :Graph rdf:type owl:Class ; rdfs:comment "A graph is a structure amounting to a set of objects in which some pairs of the objects are in some sense \"related\"" ; rdfs:label "Graph" . ### http://ii.uwb.edu.pl/pgo#Node :Node rdf:type owl:Class ; rdfs:comment "A directed graph consists of a set of vertices and a set of edges (ordered pairs of vertices)" ; rdfs:label "Node" ; skos:altLabel "Vertex" . ### http://ii.uwb.edu.pl/pgo#Property :Property rdf:type owl:Class ; rdfs:comment "Key-value for Edges and Nodes" ; rdfs:label "Property" ; skos: "key-value pair" , "name-value pair" . ### http://ii.uwb.edu.pl/pgo#PropertyGraph :PropertyGraph rdf:type owl:Class ; rdfs:subClassOf :Graph ; rdfs:label "Property Graph" ; skos:altLabel "Attributed Graph" . ### http://ii.uwb.edu.pl/pgo#graphml :graphml rdf:type owl:Class ; rdfs:subClassOf rdf:XMLLiteral . ### http://ii.uwb.edu.pl/pgo#graphson :graphson rdf:type owl:Class ; rdfs:subClassOf csvw:JSON . ### http://ii.uwb.edu.pl/pgo#yars :yars rdf:type owl:Class ; rdfs:subClassOf xsd:string . ### http://www.ontologydesignpatterns.org/cp/owl/bag.owlBag bag:Bag rdf:type owl:Class . ### http://www.ontologydesignpatterns.org/cp/owl/list.owlList list:List rdf:type owl:Class . ### http://www.ontologydesignpatterns.org/cp/owl/set.owlSet set:Set rdf:type owl:Class . ### http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral rdf:XMLLiteral rdf:type owl:Class . ### http://www.w3.org/ns/csvw#JSON csvw:JSON rdf:type owl:Class . ################################################################# # Annotations ################################################################# :graphml rdfs:label "GraphML" ; rdfs:comment "GraphML format" . :graphson rdfs:comment "GraphSON format" ; rdfs:label "GraphSON" . :value rdfs:comment "A value of a property" ; rdfs:label "value" . :yars rdfs:comment "YARS format" ; rdfs:label "YARS" . ################################################################# # Rules ################################################################# :g rdf:type swrl:Variable . :e rdf:type swrl:Variable . :n rdf:type swrl:Variable . [ rdfs:label "Rule"^^xsd:string ; rdf:type swrl:Imp ; swrl:body [ rdf:type swrl:AtomList ; rdf:first [ rdf:type swrl:IndividualPropertyAtom ; swrl:propertyPredicate :hasEdge ; swrl:argument1 :g ; swrl:argument2 :e ] ; rdf:rest [ rdf:type swrl:AtomList ; rdf:first [ rdf:type swrl:IndividualPropertyAtom ; swrl:propertyPredicate :startNode ; swrl:argument1 :e ; swrl:argument2 :n ] ; rdf:rest rdf:nil ] ] ; swrl:head [ rdf:type swrl:AtomList ; rdf:first [ rdf:type swrl:IndividualPropertyAtom ; swrl:propertyPredicate :hasNode ; swrl:argument1 :g ; swrl:argument2 :n ] ; rdf:rest rdf:nil ] ] .