change predicate URI for OD2 field license
Descriptive summary
OD field w/ ID :license has predicate URI configuration in OD2/.../generic_metadata.rb predicate: RDF::Vocab::CC.License, RDF exports have corresponding predicate URI cc:License. cc:License is an instance of rdfs:Class and is not suitable for use as a predicate in RDF triples, this configuration should be changed. A Solr query indicates :license field is used in 190,955 works in OD.
Expected behavior
A suitable predicate* URI is configured for OD2 field :license and substituted in place of cc:License in existing OD2 metadata. Configured predicate is reflected accurately in OD2 MAP documentation such as public MAP spreadsheet.
*Metadeities needs to select a predicate, some further discussion below
Related work
none known
Accessibility Concerns
None known
summary
- current predicate URI: http://creativecommons.org/ns#License
- what's the problem with this predicate URI? It is an instance of rdfs:Class. This means that it isn't suitable for use as the predicate in an RDF triple. We want something that is, at minimum, an instance of rdf:Property (or owl:ObjectProperty, owl:DatatypeProperty, etc.) -- something that can be used as a predicate in an RDF subject-predicate-object triple
- what would be good to use instead? I propose that we use http://purl.org/dc/terms/license
(dcterms:license). I propose this because:
- it is an instance of rdf:Property (has
rdf:type rdf:Property) - it has dcterms:description "Recommended practice is to identify the license document with a URI. If this is not possible or feasible, a literal value that identifies the license may be provided." which seems to align with use of the OD2 field
:license - it has no rdfs:domain. this is good because there is no requirement that OD2 resources have any particular rdf:type value themselves
- it is an instance of rdf:Property (has
- example metadata snippet showing proposed alternative in use
# OD2 RDF export
@prefix fedrep: <http://fedora.info/definitions/v4/repository#> .
@prefix pcdm: <http://pcdm.org/models#> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
<http://od2/df735x09c> a fedrep:Container, # subject uri shortened for readability
fedrep:Resource,
pcdm:Object,
<http://projecthydra.org/works/models#Work>,
ldp:Container,
ldp:RDFSource ;
dct:license <http://creativecommons.org/publicdomain/mark/1.0/>
# usage ^^^ here. no domain conflicts. no range conflicts. usage meets definition.
# more triples would be here
.
details, other properties considered, etc.
OD2_MAP > MAP_complete has predicate URI dct:rights as the property configured for field, but I'm not sure that's actually the best choice. DC terms distinguishes between this term, for "information about rights held in and over the resource," and dct:license, for "a legal document giving official permission to do something with the resource."
dct:rights
- dcam:rangeIncludes dcterms:RightsStatement - I think dcam:rangeIncludes is more permissive than rdfs:range so not necessarily a conflict
- dcterms:description "Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights (...)" -- this sounds more like field
:rights_statement, where we use predicate URI edm:rights and values from rightsstatements.org, etc. ❓
dct:license
- dcam:rangeIncludes dcterms:LicenseDocument - not necessarily a conflict
- dcterms:description "Recommended practice is to identify the license document with a URI. If this is not possible or feasible, a literal value that identifies the license may be provided." -- this sounds more like what we use the field for, where values are CC license URIs 👍🏻
The Creative Commons vocabulary includes a predicate, cc:license (capitalization matters for some portions of URI strings).
cc:license
- rdfs:subProperty of dct:license
- rdfs:domain is cc:Work, which minimally defined and probably could be asserted for OD2/Hyrax works but which we do not type them as at present 👎🏻
- rdfs:range for this property is cc:License (the class which we have configured as a predicate), 👍🏻 if our CV for the field
:licenseconsists exclusively of options from Creative Commons (which I think may be the case?)
Metadeities will revisit after Valkyrization.