Skip to content

Instantly share code, notes, and snippets.

@chrpr
Last active December 2, 2021 09:21
Show Gist options
  • Save chrpr/f61e31001dc9ec074c20 to your computer and use it in GitHub Desktop.
Save chrpr/f61e31001dc9ec074c20 to your computer and use it in GitHub Desktop.
PCDM as Turtle
charper:~$ rapper -i rdfxml -o turtle models.rdf -O https://raw.githubusercontent.com/duraspace/pcdm/master/models.rdf
rapper: Parsing URI file:///home/charper/models.rdf with parser rdfxml
rapper: Serializing with serializer turtle and base URI https://raw.githubusercontent.com/duraspace/pcdm/master/models.rdf
@base <https://raw.githubusercontent.com/duraspace/pcdm/master/models.rdf> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix ore: <http://www.openarchives.org/ore/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix pcdm: <http://pcdm.org/models#> .
<http://pcdm.org/models#>
dcterms:modified "2015-10-14"^^xsd:date ;
dcterms:publisher <http://www.duraspace.org/> ;
dcterms:title "Portland Common Data Model"@en ;
rdfs:comment "Ontology for the Portland Common Data Model, intended to underlie a wide array of repository and DAMS applications."@en ;
rdfs:seeAlso <https://github.com/duraspace/pcdm/wiki> ;
owl:priorVersion <http://pcdm.org/2015/09/28/models> ;
owl:versionInfo "2015/10/14" .
pcdm:AdministrativeSet
a rdfs:Class ;
rdfs:comment """
An Administrative Set is a grouping of resources that an administrative unit is ultimately
responsible for managing. The set itself helps to manage the items within it. An Object
or Collection may be contained by only one AdministrativeSet.
"""@en ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "Administrative Set"@en ;
rdfs:subClassOf ldp:Container .
pcdm:AlternateOrder
a rdfs:Class ;
rdfs:comment """
An AlternateOrder is an alternate ordering of its parent's members. It should only order the
parent's members, and otherwise has all of the features of ordering (some members may be
omitted from the order, members may appear more than once in the order, etc.).
"""@en ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "Alternate Order"@en ;
rdfs:subClassOf pcdm:Object .
pcdm:Collection
a rdfs:Class ;
rdfs:comment """
A Collection is a group of resources. Collections have descriptive metadata, access metadata,
and may links to works and/or collections. By default, member works and collections are an
unordered set, but can be ordered using the ORE Proxy class.
"""@en ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "Collection"@en ;
rdfs:subClassOf ore:Aggregation .
pcdm:File
a rdfs:Class ;
rdfs:comment """
A File is a sequence of binary data and is described by some accompanying metadata.
The metadata typically includes at least basic technical metadata (size, content type,
modification date, etc.), but can also include properties related to preservation,
digitization process, provenance, etc. Files MUST be contained by exactly one Object.
"""@en ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "File"@en .
pcdm:Object
a rdfs:Class ;
rdfs:comment """
An Object is an intellectual entity, sometimes called a \"work\", \"digital object\", etc.
Objects have descriptive metadata, access metadata, may contain files and other Objects as
member \"components\". Each level of a work is therefore represented by an Object instance,
and is capable of standing on its own, being linked to from Collections and other Objects.
Member Objects can be ordered using the ORE Proxy class.
"""@en ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "Object"@en ;
rdfs:subClassOf ore:Aggregation .
pcdm:fileOf
a rdf:Property ;
rdfs:comment "Links from a File to its containing Object."@en ;
rdfs:domain pcdm:File ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "is file of"@en ;
rdfs:range pcdm:Object ;
rdfs:subPropertyOf ore:isAggregatedBy ;
owl:inverseOf pcdm:hasFile .
pcdm:hasFile
a rdf:Property ;
rdfs:comment "Links to a File contained by this Object."@en ;
rdfs:domain pcdm:Object ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "has file"@en ;
rdfs:range pcdm:File ;
rdfs:subPropertyOf ore:aggregates .
pcdm:hasMember
a rdf:Property ;
rdfs:comment """Links to a subsidiary Object or Collection. Typically used to link
to component parts, such as a book linking to a page. Note on transitivity: hasMember is
not defined as transitive, but applications may treat it as transitive as local needs
dictate."""@en ;
rdfs:domain ore:Aggregation ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "has member"@en ;
rdfs:range ore:Aggregation ;
rdfs:subPropertyOf ore:aggregates .
pcdm:hasRelatedObject
a rdf:Property ;
rdfs:comment "Links to a related Object that is not a component part, such as an object representing a donor agreement or policies that govern the resource."@en ;
rdfs:domain ore:Aggregation ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "has related object"@en ;
rdfs:range pcdm:Object ;
rdfs:subPropertyOf ore:aggregates .
pcdm:memberOf
a rdf:Property ;
rdfs:comment "Links from an Object or Collection to a containing Object or Collection."@en ;
rdfs:domain ore:Aggregation ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "is member of"@en ;
rdfs:range ore:Aggregation ;
rdfs:subPropertyOf ore:isAggregatedBy ;
owl:inverseOf pcdm:hasMember .
pcdm:relatedObjectOf
a rdf:Property ;
rdfs:comment "Links from an Object to a Object or Collection that it is related to."@en ;
rdfs:domain pcdm:Object ;
rdfs:isDefinedBy <http://pcdm.org/models#> ;
rdfs:label "is related object of"@en ;
rdfs:range ore:Aggregation ;
rdfs:subPropertyOf ore:isAggregatedBy ;
owl:inverseOf pcdm:hasRelatedObject .
rapper: Parsing returned 76 triples
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment