HOME
MODS RDF Ontology:PrimerUpdated:
Abstract ContentsSummary of MODS RDF Classes and Properties Basic Ontology Design Categories Ontology Treatment of MODS Elements Summary Tables for Element/Property Relationships Interoperability with Dublin Core IntroductionThis document describes MODS RDF, an OWL/RDF ontology for MODS (Metadata Object Description Schema). NamespacesThe MODS/RDF namespace is: http://www.loc.gov/mods/modsrdf/v1# Other namespaces used by the ontology are:
VocabulariesThis ontology prescribes the use of vocabularies for roles, classification schemes, identifier types, resource types and languages. Any such vocabularies may be used; the following are available:
Primary Design GoalsThe design goals of this project are to:
MODS ModelThe following is intended as a concise description of the MODS model. Summary of MODS RDF Classes and PropertiesClassesThe following table summarizes MODS RDF Classes.
PropertiesThe following table lists MODS RDF properties alphabetically, and for each property the MODS XML element that the property corresponds to, as well as the domain and range of the property. More detailed tables are found in Summary Tables for Element/Property Relationships.
Basic Ontology Design CategoriesThe various top-level MODS XML elements each correspond to one or more RDF properties, and are treated in a variety of ways, as described in this section. Properties with Range in External NamespacesMODS XML elements <name>, <titleInfo>, <genre> and <subject>, as well as <originInfo><place> and <originInfo><publisher> are represented by properties whose ranges are MADS classes, using the MADS ontology. MODS <recordInfo> is represented by a property whose range is the class AdminMetadata in the RecordInfo ontology.
The term “blank node” is used to mean the object of a triple (as for example #BlankNode1 above) which serves as an aggregator and becomes the subject of subsequent triples. AggregatorsMODS XML elements <location> and <part> are structured elements - they have subelements. Therefore in RDF these are represented by properties (locationOfResource and part) whose ranges (classes Location and Part) are what we refer to as “aggregator classes”: their members - the objects of these properties - becomes the subject for triples corresponding to the subelements. This would correspond to the following triples:
RDF Property may be a Vocabulary TermFor certain MODS elements there is a ‘type’ (or similar) attribute, where the value of the attribute belongs to a known vocabulary. In these cases, terms from that vocabulary are defined to be properties. An example is MODS element <identifier>. If the identifier type is known to be “isbn” then the property used is, for example, ‘identifier:isbn’ where “identifier:” is the prefix for a vocabulary of identifier types. This category applies also to <classification>, where the property used corresponds to the classification scheme, if known. RDF Object may be a Vocabulary TermSimilar to the previous category, in some cases the value of the MODS element may be identified to be a term from a controlled vocabulary term. For example, for MODS <language>, if the language term is know to be a code from Iso639-2b, the RDF object may be a URI for the term. Typed ElementsSeveral MODS elements have a ‘type’ attribute. They are treated in three different ways. A property for each Enumerated TypeMODS <titleInfo> and <relatedItem> both have an enumerated list of types, and a property is defined for each type. For example, <titleInfo type=”uniform”> corresponds to rdf property titleUniform. <relatedItem type=”host”> corresponds to RDF property relatedHost. Type and Value Bound TogetherFor MODS <note> the type is optional. When the type is specified, an aggregator is used to bind together the note with its type. For example,
would correspond to triples like these:
Type IgnoredFor some MODS typed elements , this ontology chooses to ignore the type. These are MODS <abstract> and <accessCondition>. They are both treated as simple MODS elements. Simple MODS ElementsThe following:
are all represented in RDF as simple triples where the property corresponds directly to the element and the object is the literal value of the element. For example:
would correspond to the triple:
Extra Level of Structure EliminatedMODS elements physicalDescription and originInfo are each wrappers for several subelements. For this ontology it is assumed that these subelements do not need to be bound together and each may be treated as a top level element. Thus the extra level of structure is eliminated and rather than create classes for these two, for each subelement a property is defined whose domain is ModsResource. Ontology Treatment of MODS ElementsA MODS RDF description includes a triple of the form: {MODS resource} is-a #ModsResourcehere {MODS resource} is the resource described. #ModsResource is a blank node and becomes the subject for subsequent triples corresponding to top-level MODS elements. This section lists the MODS elements alphabetically, describing how the ontology treats the element, and which category the element belongs to. MODS <abstract>MODS abstract is treated as described in Type Ignored and also Simple. {MODS resource} abstract {text of abstract}Where {text of abstract} is a literal, the actual abstract..
MODS <accessCondition>MODS accessCondition is treated in the same manner as MODS abstract. It is described by a MODS RDF triple of the following form: {MODS resource} accessCondition { text of access condition }Where {text of access condition} is a literal, the actual access condition.Example:
MODS <classification>For a MODS classification, RDF representation depends on whether or not the classification scheme is a term in a known vocabulary. Classification scheme from a Known VocabularyIf the classification scheme belongs to a known vocabulary, classification is treated as described by RDF Property a Vocabulary Term:
Where ‘class:’ is the prefix for the class scheme vocabular. |
ModsResource12356 class:lcc ‘HE380.8’ |
Where ‘class:’, in this example, is the prefix for the URI http://id.loc.gov/vocabulary/classSchemes
A classification where the scheme is not part of a known vocabulary is treated as described in Type and Value Bound Together. It is desribed by a triple of the following form:
where {ClassificationGroup} groups together a classification and its scheme.
Example:
ModsResource12356 classificationGroup #BlankNodex |
MODS genre is treated as described in Properties with Range in External Namespaces.
A MODS genre is described by the triple:
Where madsrdf:GenreForm is an RDF description in the MADS RDF namespace.
Example:
ModsResource12356 genre #BlankNode6 |
A MODS identifier is described by a triple of the following form:
The identifier property depends on whether the identifier type belongs to a known vocabulary.
If the identifier type belongs to a known vocabulary, it is treated as described in RDF Property a Vocabulary Term..
Example:
ModsResource12356 identifier:isbn ‘0-937383-18-X’ |
‘identifier:’ in this example is the prefix for a vocabulary of identifier types, e.g. http://id.loc.gov/vocabulary/identifiers
If the vocabulary for the identifier type is not known, it is treated in a manner similar to classification, as described in Type and Value Bound Together.
A MODS language term may be either a language code (e.g. “fre”) or text (e.g. “french”).
When the language term is a code, and the authority is IS0-639-2b, It is is treated as described in RDF Object a Vocabulary Term, by a triple of the following form:
Example:
ModsResource12356 languageOfResource http://id.loc.gov/vocabulary/languages/fre |
Otherwise, the languageTerm is treated as a simple element, described by a triple of the following form:
Example:
ModsResource12356 languageOfResource ‘french’ |
MODS location is treated as described in aggregators. It is structured into physical location, shelfLocator, url, and copy information. So there are multiple levels of description. First the triple:
Where #Location is an aggregator which becomes the subject for triples corresponding to the subelements of location, for example:
Example
ModsResource12356 locationOfResource #BlankNode9 |
MODS location may also include holdings information, via subelement holdingSimple, which has only one subelement, copy (which is itself structured into several subelements), so there is an extraneous level of structure in the XML, which is eliminated in the RDF. So each instance of copy results in a triple of the following form:
Example:
#BlankNode9 locationCopy #BlankNode10 |
A MODS name may have an associated role. For example, if the MODS resource has the name “Matilda Plews”, which has the role “creator”, this means “Matilda Plew is a creator of the resource”.
A MODS name is treated as described in Properties with Range in External Namespaces. It is described by a triple of the form:
where {name property} is one of the following properties:
A MODS name may be determined to be the principal name as follows.
The purpose of distinguishing a principal name is to determine if a (MADS) NameTitle should be generated.
Example:
ModsResource12356 name #BlankNode11 |
A MODS name may have an associated role. However, a MADS name does not include a role. Since MODS relies on the MADS ontology to express a name, it needs to additionally associate the name with its role.
For each MODS name and associated role, the means buy which RDF associates the role with the name depends on whether or not the role is a term in a known vocabulary.
Role is a vocabulary Term
When the role is a vocabulary term it is treated as described in Property a Vocabulary Term. as in the following triple:
Example:
ModsResource12356 relator:cre madsrdf:Name |
In this example, ‘relator:’ is the prefix for a role vocabulary, and ‘cre’ is a term in that vocabulary.
However, since the same name is otherwise described by a separate triple:
duplication of the name can be avoided by assigning an internal identifier to the name for reference, as in the following example:
ModsResource12356 name #idname103263352 |
In this example, the first line assigns a name to the resource (see <name>) and in the process coins an identifier for reference in the second line, which associates the role with the name.
Role Not from a Known Vocabulary
When the role is not term in a known vocabulary the above technique cannot be used, and instead, an explicit “role relationship” is described.
Example:
ModsResource12356 name #idname142958136 |
A note with no type specified is treated as described in Simple. It is described by a triple of the form:
Example:
ModsResource12356 note “Dominus vo-bisque'em et come spear a tu-tu, oh.” |
A note with type=”statement of responsibility” is treated as described in A property for each Enumerated Type and also Simple. It is described by a triple of the form:
This is the only note type that is singled out as such.
Example:
ModsResource12356 statementOfResponsibility |
A note with type other than ”statement of responsibility” Results in the triple:
Where #Note is an aggregator that becomes the subject for triples corresponding to the type of note and the note itself, as described in Type and Value Bound Together.
Example:
ModsResource12356 noteGroup #BlankNode5 |
MODS originInfo is treated as described in Extra Level of Structure Eliminated. In MODS XML originInfo binds together information pertaining to origination of the resource. The binding is considered necessary because originInfo may repeat, for different origination events. However, in this ontology, different instances of originInfo are considered to be different resource. MODS RDF dispenses with the container and instead, each originInfo subelement tranforms to a direct property of the resource.
Example:
ModsResource12356 edition “Morning Edition” |
MODS part is treated as described in aggregators. Each part is described by a triple of the following form:
Where #Part is an aggregator and becomes the subject for subsequent triples.
Example:
ModsResource12356 part #BlankNode15 |
MODS “Physical description” is treated similar to originInfo, as described in Extra Level of Structure Eliminated. In MODS XML it binds together information pertaining to physical characteristics of the resource. MODS RDF dispenses with the container and instead, each physical description subelement tranforms to a direct property of the resource.
Examples:
ModsResource12356 form “oil painting” |
Each individual physicalDescription property is treated as simple.
MODS recordInfo is treated as described in Properties with Range in External Namespaces. It is described by a triple of the following form
Where “recordInfo’ is an external ontology for administrative metadata and “AdministrativeMetadata” is an aggregator for administrative metadata properties.
Example:
ModsResource12356 administrativeMetadata #BlankNode16 |
MODS relatedItem is treated as described in A property for each Enumerated Type. It is described by a triple of the form:
Where {property} depends on the type of related item, as shown in the following table:
For a related item where type= |
the RDF property is |
"host” | relatedHost |
"isReferencedBy” | relatedReferencedBy |
"original” | relatedOriginal |
"otherFormat” | relatedFormat |
"otherVersion” | relatedVersion |
"preceding” | relatedPreceding |
"references” | relatedReference |
"reviewOf” | relatedReview |
"series” | relatedSeries |
"succeeding” | relatedSucceeding |
Example:
ModsResource12356 relatedOriginal ModsResource12357 |
MODS subject is treated as described in A property for each Enumerated Type and also in Properties with Range in External Namespaces. Every MODS subject has a category. (More precisely, in MODS XML, every <subject> element has a subelement, which we refer to here as the subject category. For example for <subject><temporal>, the subject category is ‘temporal’.)
The following table describes how each subject category is described in RDF.
<subject> ..... |
Described by a triple of the form: |
... <topic> | {MODS resource} subjectTopic madsrdf:Topic |
...<geographic> | {MODS resource} subjectTopic madsrdf:Geographic |
...<temporal> | {MODS resource} subjectTopic madsrdf:Temporal |
...<titleInfo> | {MODS resource} subjectTopic madsrdf:Title |
...<name> | {MODS resource} subjectTopic madsrdf:Name |
...<geographicCode> | {MODS resource} subjectTopic madsrdf:Geographic |
...<hierarchicalGeographic> | {MODS resource} subjectTopic madsrdf:HierarchicalGeographic |
...<cartographics> | {MODS resource} cartographics modsrdf:Cartographics (see note) |
...<occupation> | {MODS resource} subjectTopic madsrdf:Occupation |
...<genre> | {MODS resource} subjectTopic madsrdf:GenreForm |
Note: Cartographics is not treated as a subject in MODS RDF. A MODS Cartographics is generated.
Example:
ModsResource12356 subjectTopic #BlankNode18 |
MODS tableOfContents is treated as simple. It is described by a triple of the following form:
Example:
ModsResource12356 tableOfContents “1. Here. 2. There. 3. Everywhere 4. The End. ” . |
MODS targetAudience is treated as simple. It is described by a triple of the following form:
Example:
ModsResource12356 targetAudience “adolescent” . |
MODS title is treated as described in A property for each Enumerated Type and also in Properties with Range in External Namespaces.
There are five categories of titles in MODS.
Where { MADS Title or NameTitle } is:
For each abbreviated, translated, or alternative title, a MADS Variant Title is generated and included in the madsrdf:Title.
The following Example, shows a principal title and a variant title.
ModsResource12356 titlePrincipal http://www.loc/gov/modsrdf/id00001 |
Each MODS typeOfResouce is treated as a triple of the following form:
Example:
ModsResource12356 rdf:type http://id.loc.gov/vocabulary/resourceTypes#Mov |
The following table shows, for MODS "top-level" element, the corresponding MODS RDF property and its range. The domain for all of these properties is modsrdf:ModsResource .
Two "top-level" elements are not included in this table: mods:extension and mods:typeOfResource. The mods:extension is beyond the scope of treatment by this ontology. mods:typeOfResource differs from other "top-level" elements which all correspond to a property, as for example MODS <abstract> corresponds to the RDF property modsrdf:abstract . In contrast MODS <typeOfResource> corresponds to a class, not a property. For example <typeOfResource>moving image</typeOfResource> would correspond to
{MODS resource} rdf:type http://id.loc.gov/vocabulary/resourceTypes#MovingImage
MODS "top level" element (XML) |
condition |
Corresponding RDF property |
Range |
abstract |
|
abstract |
xsd:string |
accessCondition |
|
accessCondition |
xsd:string |
classification |
uncontrolled type |
classificationGroup |
ClassificationGroup |
controlled type |
class:{scheme}; e.g. class:lcc |
(None. Defined as an annotated property.) |
|
genre |
|
genre |
madsrdf:GenreForm |
identifier |
uncontrolled type |
identifierGroup |
IdentifierGroup |
controlled type |
identifier:{type}; e.g. identifier:isbn |
(None. Defined as an annotated property.) |
|
language |
|
languageOfResource |
(None. Defined as an annotated property.) |
location |
|
locationOfResource |
Location |
name |
not the principal name |
name |
madsrdf:Name |
the principal name |
namePrincipal |
||
note |
type unspecified |
note |
xsd:string |
type = “statement of responsibility” |
statementOfResponsibility |
||
type specified |
noteGroup |
NoteGroup |
|
originInfo |
|
(none) |
|
part |
|
part |
Part |
physicalDescription |
|
(none) |
|
recordInfo |
|
adminMetadata |
ri:AdminMetadata |
relatedItem |
type unspecified |
relatedItem |
modsResource |
type=”preceding” |
relatedPreceding |
||
type=”succeeding” |
relatedSucceeding |
||
type=”original” |
relatedOriginal |
||
type=”host” |
relatedHost |
||
type=”constituent” |
relatedConsdtituent |
||
type=”series” |
relatedSeries |
||
type=”otherVersion” |
relatedVersion |
||
type=”otherFormat” |
relatedFormat |
||
type=”isReferencedBy” |
relatedReferencedBy |
||
type=”references” |
relatedReference |
||
type=”reviewOf” |
relatedReview |
||
subject |
subject category topic |
subjectTopic |
madsrdf:topic |
subject category geographic |
subjectGeographic |
madsrdf:geographic |
|
subject category temporal |
subjectTemporal |
madsrdf:temporal |
|
subject category titleInfo |
subjectTitle |
madsrdf:title |
|
subject category name |
subjectName |
madsrdf:name |
|
subject category geographicCode |
subjectGeographicCode |
madsrdf:geographic |
|
subject category hierarchicalGeographic |
subjectHierarchicalGeographic |
madsrdf:ComplexSubject |
|
subject category cartographics |
cartographics |
Cartographics |
|
subject category occupation |
subjectOccupation |
madsrdf:Occupation |
|
subject category genre |
subjectGenre |
madsrdf:GenreForm |
|
complex subject (multiple subjects) |
subjectComplex |
madsrdf:ComplexSubject |
|
tableOfContents |
|
tableOfContents |
xsd:string |
targetAudience |
|
targetAudience |
xsd:string |
titleInfo |
type=”uniform”; principal name exist |
titleUniform |
madsrdf:NameTitle |
type=”uniform”; no principal name exist |
titleUniform |
madsrdf:Title |
|
type not specified |
titlePrincipal |
||
type=”abbreviated”, “traslated”, or “alternative” |
(no modsrdf property) |
madsrdf:variant (embedded in Title) |
MODS elements location and part each correspond to a property whose range is an aggregation class; that is, the object of the RDF triple is a blank node which becomes the subject of two or more triples. This is shown in the following table.
MODSElement |
Aggregation Class |
MODS Subelement |
Property (whose domain is the aggregation class) |
Range |
location |
Location |
(holdingSimple) |
locationCopy |
LocationCopy |
physicalLocation |
locationPhysical |
xsd:string |
||
shelfLocator |
locationShelfLocator |
xsd:string |
||
url |
locationUrl |
xsd:string |
||
part |
Part |
@type |
partType |
xsd:string |
@order |
partOrder |
xsd:integer |
||
date |
partDate |
(ann. Prop.) |
||
text |
partText |
xsd:string |
||
extent@unit |
partUnit |
xsd:string |
||
extent/start |
partStart |
xsd:string |
||
extent/end |
partEnd |
xsd:string |
||
extent/total |
partList |
xsd:positiveInteger |
||
extent/list |
partTotal |
xsd:string |
||
detail/level |
partLevel |
xsd:positiveInteger |
||
detail@type |
partDetailType |
xsd:string |
||
detail/number |
partNumber |
xsd:string |
||
detail/caption |
partCaption |
xsd:string |
||
detail/title |
partTitle |
xsd:string |
||
location/ |
LocationCopy |
form |
locationCopyForm |
xsd:string |
sublocation |
locationCopySublocation |
xsd:string |
||
shelfLocator |
locationCopyShelfLocator |
xsd:string |
||
electronicLocator |
locationCopyeElctronicLocator |
xsd:string |
||
note |
locationCopyNote |
xsd:string |
For the cases shown in the table below an aggregator is defined to bundle a value toghether with its type (or ‘scheme’, in the case of classification).
MODSElement/ condition |
Aggregation Class |
Property (whose domain is the aggregation class) |
Range |
classification / uncoltrolled type |
ClassificationGroup |
classificationGroupScheme |
xsd:string |
classificationGroupValue |
|||
identifier / uncoltrolled type |
IdentifierGroup |
identifierGroupType |
xsd:string |
identifierGroupValue |
|||
note / type specified |
NoteGroup |
noteGroupType |
xsd:string |
noteGroupValue |
Finally, for MODS wrapper elements physicalDescription and originInfo, the wrappers are eliminated and for each subelement a property is directly defined. This is shown in the following table.
MODSElement |
Subelement |
Property |
Range |
originInfo |
place |
placeOforigin |
madsrdf:Geographic |
publisher |
publisher |
xsd:string |
|
dateIssued |
dateIssued |
(None. Defined as annotation properties.) |
|
dateIssuedStart |
|||
dateIssuedEnd |
|||
dateCreated |
dateCreated |
||
dateCreatedStart |
|||
dateCreatedEnd |
|||
dateCaptured |
dateCatpured |
||
dateCatpuredStart |
|||
dateCatpuredEnd |
|||
dateValid |
dateValid |
||
dateValidStart |
|||
dateValidEnd |
|||
dateModified |
dateModified |
||
dateModifiedStart |
|||
dateModifiedEnd |
|||
copyrightDate |
dateOfCopyright |
||
dateOfCopyrightStart |
|||
dateOfCopyrightEnd |
|||
dateOther |
date |
||
dateStart |
|||
dateEnd |
|||
edition |
edition |
xsd:string |
|
issuance |
issuance |
||
frequency |
frequency |
||
PhysicalDescription |
form |
form |
xsd:string |
reformattingQuality |
reformattingQuality |
||
internetMediaType |
mediaType |
||
extent |
extent |
||
digitalOrigin |
digitalOrigin |
||
note |
physicalDescriptionNote |
This ontology declares each MODS RDF property in the left column of the table below to be a subproperty of the corresponding DC Terms property shown to its right (in the middle column) prefaced by http:// purl.org/dc/terms/.
For example, the first row says: modsrdf:abstract is a subproperty of http:// purl.org/dc/terms/abstract.
This modsrdf |
is a subproperty of http:// |
Definition of DC Term property from dublincore.org/documents/dcmi-terms/ |
abstract |
abstract |
A summary of the resource. |
accessCondition |
accessRights |
Information about who can access the resource or an indication of its security status. |
dateCreated |
created |
Date of creation of the resource. |
dateIssued |
issued |
Date of formal issuance (e.g., publication) of the resource. |
dateModified |
modified |
Date on which the resource was changed. |
dateOfCopyright |
dateCopyrighted |
Date of copyright. |
dateValid |
valid |
Date (often a range) of validity of a resource. |
frequence |
accrualPeriodicity |
The frequency with which items are added to a collection. |
genre |
type |
The nature or genre of the resource. |
identifier |
identifier |
An unambiguous reference to the resource within a given context. |
mediaType |
format |
The file format, physical medium, or dimensions of the resource. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME]. |
languageOfResource |
language |
A language of the resource. |
note |
description |
An account of the resource. |
publisher |
publisher |
An entity responsible for making the resource available. |
relatedConstituent |
hasPart |
A related resource that is included either physically or logically in the described resource. |
relatedFormat |
isFormatOf |
A related resource that is substantially the same as the described resource, but in another format. |
relatedHost |
isPartOf |
A related resource in which the described resource is physically or logically included. |
relatedItem |
relation |
A related resource. |
relatedOriginal |
source |
A related resource from which the described resource is derived. |
relatedReference |
references |
A related resource that is referenced, cited, or otherwise pointed to by the described resource. |
relatedReferencedBy |
isReferencedBy |
A related resource that references, cites, or otherwise points to the described resource. |
relatedVersion |
isVersionOf |
A related resource of which the described resource is a version, edition, or adaptation. |
subjectTemporal |
temporal |
Temporal characteristics of the resource. (Subproperty of coverage.) |
tableOfContents |
tableOfContents |
A list of subunits of the resource. |
targetAudience |
audience |
A class of entity for whom the resource is intended or useful. |
title |
title |
A name given to the resource. |
topic |
subject |
The topic of the resource. |
>> Primer February 3, 2022 |