@prefix pn:     <http://pastnetworks.org/terms/> .
@prefix schema: <https://schema.org/> .
@prefix dct:    <http://purl.org/dc/terms/> .
@prefix owl:    <http://www.w3.org/2002/07/owl#> .
@prefix xsd:    <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .

<http://pastnetworks.org/terms/> a owl:Ontology ;
    rdfs:label "PastNetworks vocabulary" ;
    rdfs:comment "Vocabulary for the public PastNetworks network metadata model." ;
    dct:issued "2026-08-25"^^xsd:date ;
    dct:modified "2026-08-25"^^xsd:date ;
    owl:versionInfo "1.0.0" ;
    owl:versionIRI <https://pastnetworks.org/terms/1.0.0/pastnetworks.ttl> .

#################################################################
# PastNetworks domain classes (the complete custom class set)
#################################################################

pn:NetworkDataset a rdfs:Class ;
    rdfs:label "Network dataset" ;
    rdfs:comment "A dataset describing a historical, reconstructed, or curated network." ;
    rdfs:subClassOf schema:Dataset .

pn:TopicDescription a rdfs:Class ;
    rdfs:label "Topic description" .

pn:NetworkStructure a rdfs:Class ;
    rdfs:label "Network structure" .

pn:NetworkSize a rdfs:Class ;
    rdfs:label "Network size" .

pn:ConstructionDescription a rdfs:Class ;
    rdfs:label "Construction description" .

pn:SourceDescription a rdfs:Class ;
    rdfs:label "Source description" .

#################################################################
# Dataset properties
#################################################################

pn:icon a rdf:Property ; rdfs:label "icon" ; rdfs:domain pn:NetworkDataset ; rdfs:range xsd:string .
pn:dataUrl a rdf:Property ; rdfs:label "data URL" ; rdfs:domain pn:NetworkDataset ; rdfs:range rdfs:Resource .
pn:collectionTags a rdf:Property ; rdfs:label "collection tags" ; rdfs:domain pn:NetworkDataset ; rdfs:range xsd:string .
pn:funding a rdf:Property ; rdfs:label "funding" ; rdfs:domain pn:NetworkDataset ; rdfs:range xsd:string .
pn:dataPublisher a rdf:Property ; rdfs:label "data publisher" ; rdfs:domain pn:NetworkDataset ; rdfs:range xsd:string .
pn:topic a rdf:Property ; rdfs:label "topic" ; rdfs:domain pn:NetworkDataset ; rdfs:range pn:TopicDescription .
pn:structure a rdf:Property ; rdfs:label "structure" ; rdfs:domain pn:NetworkDataset ; rdfs:range pn:NetworkStructure .
pn:size a rdf:Property ; rdfs:label "size" ; rdfs:domain pn:NetworkDataset ; rdfs:range pn:NetworkSize .
pn:statistics a rdf:Property ; rdfs:label "network statistics" ; rdfs:domain pn:NetworkDataset .
pn:construction a rdf:Property ; rdfs:label "construction" ; rdfs:domain pn:NetworkDataset ; rdfs:range pn:ConstructionDescription .
pn:_meta a rdf:Property ; rdfs:label "publication metadata" ; rdfs:domain pn:NetworkDataset .

#################################################################
# Generic person, licence, image, and publication properties
#################################################################

pn:affiliation a rdf:Property ; rdfs:label "affiliation" ; rdfs:range xsd:string .
pn:orcidId a rdf:Property ; rdfs:label "ORCID iD" ; rdfs:range xsd:string .
pn:reference a rdf:Property ; rdfs:label "reference" ; rdfs:range rdfs:Resource .
pn:detailsUrl a rdf:Property ; rdfs:label "details URL" ; rdfs:range rdfs:Resource .

#################################################################
# Topic, place, and coordinate properties
#################################################################

pn:yearFrom a rdf:Property ; rdfs:label "year from" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:integer .
pn:yearTo a rdf:Property ; rdfs:label "year to" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:integer .
pn:modernCountriesAndContinents a rdf:Property ; rdfs:label "modern countries and continents" ; rdfs:domain pn:TopicDescription ; rdfs:range schema:Place .
pn:networkTopics a rdf:Property ; rdfs:label "network topics" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:nodeTopics a rdf:Property ; rdfs:label "node topics" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:edgeTopics a rdf:Property ; rdfs:label "edge topics" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:nodeAttributes a rdf:Property ; rdfs:label "node attributes" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:edgeAttributes a rdf:Property ; rdfs:label "edge attributes" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:uncertainNodes a rdf:Property ; rdfs:label "uncertain nodes" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:uncertainEdges a rdf:Property ; rdfs:label "uncertain edges" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:uncertainNodeAttributes a rdf:Property ; rdfs:label "uncertain node attributes" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:uncertainEdgeAttributes a rdf:Property ; rdfs:label "uncertain edge attributes" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:uncertaintyDescription a rdf:Property ; rdfs:label "uncertainty description" ; rdfs:domain pn:TopicDescription ; rdfs:range xsd:string .
pn:capital a rdf:Property ; rdfs:label "capital" ; rdfs:range xsd:string .
pn:iso2 a rdf:Property ; rdfs:label "ISO 3166-1 alpha-2 code" ; rdfs:range xsd:string .

#################################################################
# Structure, size, and statistics properties
#################################################################

pn:directionality a rdf:Property ; rdfs:label "directionality" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:weighted a rdf:Property ; rdfs:label "weighted" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:multigraph a rdf:Property ; rdfs:label "multigraph" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:selfLoops a rdf:Property ; rdfs:label "self loops" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:spatial a rdf:Property ; rdfs:label "spatial" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:longitudinal a rdf:Property ; rdfs:label "longitudinal" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:multipartile a rdf:Property ; rdfs:label "multipartile" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:multilayer a rdf:Property ; rdfs:label "multilayer" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:hypergraph a rdf:Property ; rdfs:label "hypergraph" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:signed a rdf:Property ; rdfs:label "signed" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:probabilistic a rdf:Property ; rdfs:label "probabilistic" ; rdfs:domain pn:NetworkStructure ; rdfs:range xsd:string .
pn:numberOfNodes a rdf:Property ; rdfs:label "number of nodes" ; rdfs:domain pn:NetworkSize ; rdfs:range xsd:integer .
pn:numberOfEdges a rdf:Property ; rdfs:label "number of edges" ; rdfs:domain pn:NetworkSize ; rdfs:range xsd:integer .
pn:numberOfIsolates a rdf:Property ; rdfs:label "number of isolates" ; rdfs:domain pn:NetworkSize ; rdfs:range xsd:integer .
pn:averageClusteringCoefficient a rdf:Property ; rdfs:label "average clustering coefficient" ; rdfs:range xsd:double .
pn:averageDegree a rdf:Property ; rdfs:label "average degree" .
pn:in a rdf:Property ; rdfs:label "in degree" ; rdfs:range xsd:double .
pn:out a rdf:Property ; rdfs:label "out degree" ; rdfs:range xsd:double .

#################################################################
# Construction and publication metadata properties
#################################################################

pn:sources a rdf:Property ; rdfs:label "sources" ; rdfs:domain pn:ConstructionDescription ; rdfs:range pn:SourceDescription .
pn:sourceTypes a rdf:Property ; rdfs:label "source types" ; rdfs:domain pn:SourceDescription ; rdfs:range xsd:string .
pn:dataCurationCodeUrl a rdf:Property ; rdfs:label "data curation code URL" ; rdfs:domain pn:ConstructionDescription ; rdfs:range rdfs:Resource .
pn:additionalComments a rdf:Property ; rdfs:label "additional comments" ; rdfs:domain pn:ConstructionDescription ; rdfs:range xsd:string .
pn:created a rdf:Property ; rdfs:label "created" ; rdfs:range xsd:integer .
pn:lastEdited a rdf:Property ; rdfs:label "last edited" ; rdfs:range xsd:integer .
