Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
366 lines (323 sloc) 9.36 KB
@prefix aat: <http://vocab.getty.edu/aat/> .
@prefix activity: <https://w3id.org/arm/activity/ontology/0.1/> .
@prefix arm: <https://w3id.org/arm/core/ontology/0.1/> .
@prefix bf: <http://id.loc.gov/ontologies/bibframe/> .
@prefix crm: <http://www.cidoc-crm.org/Property/P2-has-type/Version-6.2/> .
@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 schema: <http://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix : <https://w3id.org/arm/core/validation/shacl/arm_core_property_shapes/> .
#
# ///// ARM CORE PROPERTY SHAPES - MAY BE EXTENDED BY UI SHAPES ///// #
#
#
# If this file grows too large, break up in some way - e.g., by ontology
# namespace.
#
#
# These are preliminary validation shapes. Add more constraints later.
#
# Links a resource to its location.
:arm_atLocation
a sh:PropertyShape ;
sh:path arm:atLocation ;
sh:nodeKind sh:IRI ;
.
# Links a resource to its geographical or temporal coverage.
:arm_covers
a sh:PropertyShape ;
sh:path arm:covers ;
sh:nodeKind sh:IRI ;
.
# End date of an event or condition.
:arm_endDate
a sh:PropertyShape ;
sh:path arm:endDate ;
sh:nodeKind sh:Literal ;
# sh:datatype edtf:EDTF ;
sh:maxCount 1 ;
.
# Defines possible types of Exhibition Activities
:arm_Exhibition_activity_Activity_rdf_type
a sh:PropertyShape ;
sh:node :rdf_type ;
sh:in (
# What else?
activity:CuratorActivity
activity:Activity
) ;
.
# Links an Exhibition context node to the ExhibitionEvent.
:arm_Exhibition_bf_partOf_schema_ExhibitionEvent
a sh:PropertyShape ;
sh:node :bf_partOf ;
sh:targetClass arm:Exhibition ;
sh:nodeKind sh:IRI ;
sh:class schema:ExhibitionEvent ;
sh:maxCount 1 ;
.
# Links a resource to its Arrangement (e.g., rolled, folded, open to page 10),
# or a group of resources to their organization.
:arm_hasArrangement
a sh:PropertyShape ;
sh:path arm:hasArrangement ;
sh:nodeKind sh:IRI ;
sh:class arm:Arrangement ;
.
# Links a resource to the Exhibition context node.
:arm_hasExhibition
a sh:PropertyShape ;
sh:path arm:hasExhibition ;
sh:nodeKind sh:IRI ;
sh:class arm:Exhibition ;
.
# Links a resource exhibited to the ExhibitionEvent via the Exhibition node.
:arm_hasExhibition_bf_partOf
a sh:PropertyShape ;
sh:path ( arm:hasExhibition bf:partOf ) ;
sh:nodeKind sh:IRI ;
sh:class schema:ExhibitionEvent ;
.
# Links a resource to its material.
:arm_hasMaterial
a sh:PropertyShape ;
sh:path arm:hasMaterial ;
sh:nodeKind sh:IRI ;
sh:class crm:E57_Material ;
.
# Links a resource to its preferred title.
:arm_hasPreferredTitle
a sh:PropertyShape ;
sh:path arm:hasPreferredTitle ;
sh:nodeKind sh:IRI ;
sh:class bf:Title ;
sh:maxCount 1 ;
.
# Links an agent to a resource (generally an Activity or Contribution, but
# open to others).
:arm_isAgentOf
a sh:PropertyShape ;
sh:path arm:isAgentOf ;
sh:targetClass bf:Agent ;
sh:nodeKind sh:IRI ;
.
# Links an Arrangement resource to a resource or collection of resources
# with that Arrangement.
:arm_isArrangementOf
a sh:PropertyShape ;
sh:path arm:isArrangementOf ;
sh:targetClass arm:Arrangement ;
sh:nodeKind sh:IRI ;
.
# Links an Exhibition context node to the resource exhibited.
:arm_isExhibitionOf
a sh:PropertyShape ;
sh:path arm:isExhibitionOf ;
sh:targetClass arm:Exhibition ;
sh:nodeKind sh:IRI ;
sh:minCount 1 ;
sh:maxCount 1 ;
.
# Links a location to the resource located there.
:arm_isLocationOf
a sh:PropertyShape ;
sh:path arm:isLocationOf ;
sh:nodeKind sh:IRI ;
.
# Links a material to resource made of it in whole or in part.
:arm_isMaterialOf
a sh:PropertyShape ;
sh:path arm:isMaterialOf ;
sh:targetClass crm:E57_Material ;
sh:nodeKind sh:IRI ;
.
# Links a resource to a Marking that marks it.
:arm_markedBy
a sh:PropertyShape ;
sh:path arm:markedBy ;
sh:nodeKind sh:IRI ;
sh:class arm:Marking ;
.
# Links a Marking to the resource it is in or on.
:arm_marks
a sh:PropertyShape ;
sh:path arm:marks ;
sh:targetClass arm:Marking ;
sh:nodeKind sh:IRI ;
# Can't have a Marking without being in or on something.
sh:minCount 1 ;
sh:maxCount 1 ;
.
# Links a resource to its preferred title.
:arm_hasPreferredTitle
a sh:PropertyShape ;
sh:path arm:isPreferredTitleOf ;
sh:nodeKind sh:IRI ;
sh:class bf:Title ;
sh:maxCount 1 ;
.
# Start date of an event, condition, or other resource.
:arm_startDate
a sh:PropertyShape ;
sh:path arm:startDate ;
sh:nodeKind sh:Literal ;
# sh:datatype edtf:EDTF ;
sh:maxCount 1 ;
.
# Links a title to the resource it entitles.
:arm_titleOf
a sh:PropertyShape ;
sh:path arm:titleOf ;
sh:targetClass bf:Title ;
sh:nodeKind sh:IRI ;
sh:minCount 1 ;
# Titles are unique to a specific resource.
sh:maxCount 1 ;
.
# Links a resource to its agent. Generally an Activity, but open to others.
:bf_agent
a sh:PropertyShape ;
sh:path bf:agent ;
sh:class bf:Agent ;
sh:nodeKind sh:IRI ;
# An Activity always has a unique agent. But might we use bf:agent with
# other subject types, where it wouldn't be unique?
# sh:maxCount 1 ;
.
# Date of an event, condition, or other resource.
:bf_date
a sh:PropertyShape ;
sh:path bf:date ;
sh:nodeKind sh:Literal ;
# Recommended but not required
# sh:datatype edtf:EDTF ;
.
# Generic shape linking a resource to one of its parts.
:bf_hasPart
a sh:PropertyShape ;
sh:path bf:hasPart;
sh:nodeKind sh:IRI ;
.
# Links an ExhibitionEvent to an Exhibition context node.
:bf_hasPart_arm_Exhibition
a sh:PropertyShape ;
sh:node :bf_hasPart ;
sh:targetClass arm:ExhibitionEvent ;
sh:class arm:Exhibition ;
.
# Links an ExhibitionEvent to a resource exhibited, via the Exhibition node.
:bf_hasPart_arm_isExhibitionOf
a sh:PropertyShape ;
sh:path ( bf:hasPart arm:isExhibitionOf ) ;
sh:targetClass arm:ExhibitionEvent ;
sh:nodeKind sh:IRI ;
.
# Links a multi-part or traveling ExhibitionEvent to one of its sub-events.
:bf_hasPart_schema_ExhibitionEvent
a sh:PropertyShape ;
sh:node :bf_hasPart ;
sh:targetClass schema:ExhibitionEvent ;
sh:class schema:ExhibitionEvent ;
.
# Links a resource to an Identifier.
:bf_identifiedBy
a sh:PropertyShape ;
sh:path bf:identifiedBy ;
sh:nodeKind sh:IRI ;
sh:class bf:Identifier ;
.
# Links an Identifier to the resource it identifies.
:bf_identifies
a sh:PropertyShape ;
sh:path bf:identifies ;
sh:targetClass bf:Identifier ;
sh:nodeKind sh:IRI ;
.
# Links a resource to a Note about the resource.
:bf_note
a sh:PropertyShape ;
sh:path bf:note ;
sh:nodeKind sh:IRI ;
sh:class bf:Note ;
.
# Generic shape linking a resource to a resource it is a part of.
:bf_partOf
a sh:PropertyShape ;
sh:path bf:partOf ;
sh:nodeKind sh:IRI ;
.
# Links a resource to its status.
:bf_status
a sh:PropertyShape ;
sh:path bf:status ;
sh:nodeKind sh:IRI ;
# Range is specified in the ontology; a validator implementation
# *should* factor in ontology axioms, but add here for implementations
# that don't.
sh:class bf:Status ;
.
# Links a resource to its subject/topic.
:bf_subject
a sh:PropertyShape ;
sh:path bf:subject ;
sh:nodeKind sh:IRI ;
.
# Links a resource to its title.
:bf_title
a sh:PropertyShape ;
sh:path bf:title ;
sh:nodeKind sh:IRI ;
sh:class bf:Title ;
.
# Links a resource to a taxonomy term that types it.
:crm_P2_has_type
a sh:PropertyShape ;
sh:path crm:P2_has_type ;
sh:nodeKind sh:IRI ;
sh:class skos:Concept ;
.
# Links a resource to its rdf:type.
:rdf_type
a sh:PropertyShape ;
sh:path rdf:type ;
sh:nodeKind sh:IRI ;
.
# Links a resource to its rdf:value, either a Literal or non-Literal.
:rdf_value
a sh:PropertyShape ;
sh:path rdf:value ;
# Do not specify sh:nodeKind; leave for implementations to define
# according to context.
.
# Links a resource to its rdfs:label.
:rdfs_label
a sh:PropertyShape ;
sh:path rdfs:label ;
sh:nodeKind sh:Literal ;
.
# Links an ExhibitionEvent to a multi-part or traveling ExhibitionEvent of
# which it is a part.
:schema_ExhibitionEvent_bf_partOf_schema_ExhibitionEvent
a sh:PropertyShape ;
sh:node :bf_partOf ;
sh:targetClass schema:ExhibitionEvent ;
sh:class schema:ExhibitionEvent ;
sh:maxCount 1 ;
.
# Defines possible ExhibitionEvent Activities.
:schema_ExhibitionEvent_activity_Activity_rdf_type
a sh:PropertyShape ;
sh:node :rdf_type ;
sh:in (
activity:ContributorActivity
activity:CuratorActivity
activity:DirectorActivity
activity:OrganizerActivity
activity:SponsorActivity
activity:Activity
) ;
.
You can’t perform that action at this time.