From c93e436e902b051e97d1e4e956c871762acfa3b4 Mon Sep 17 00:00:00 2001 From: Jeremy Nelson Date: Thu, 18 Jun 2026 09:42:14 -0600 Subject: [PATCH] New Monograph 3.0 DCTap files with updated tests --- Monograph DCTAP/Monograph_AdminMetadata.tsv | 9 ++-- .../Monograph_Instance_Electronic.tsv | 47 +++++++++---------- Monograph DCTAP/Monograph_Instance_Print.tsv | 45 +++++++++--------- Monograph DCTAP/Monograph_Work_Text.tsv | 31 +++++++----- tests/monograph_text_works.csv | 2 +- tests/nlm/test.ttl | 11 +++++ 6 files changed, 81 insertions(+), 64 deletions(-) create mode 100644 tests/nlm/test.ttl diff --git a/Monograph DCTAP/Monograph_AdminMetadata.tsv b/Monograph DCTAP/Monograph_AdminMetadata.tsv index 1c041ef..c0dff84 100644 --- a/Monograph DCTAP/Monograph_AdminMetadata.tsv +++ b/Monograph DCTAP/Monograph_AdminMetadata.tsv @@ -1,3 +1,6 @@ -shapeID shapeLabel target propertyID propertyLabel valueShape mandatory severity valueNodeType repeatable note -big:AdminMetadata Admin Metadata bf:AdminMetadata bf:creationDate Date Cataloged or Updated/Changed true Violation literal false -big:AdminMetadata Admin Metadata bf:AdminMetadata bf:assigner Cataloging institution true Violation IRI; bnode false +shapeID shapeLabel target propertyID propertyLabel valueShape mandatory severity valueNodeType repeatable note sh:or +big:AdminMetadata Admin Metadata bf:AdminMetadata bf:creationDate ; bf:date Date Cataloged or Updated/Changed true Violation literal false +big:AdminMetadata Admin Metadata bf:AdminMetadata bf:assigner ; bf:agent Cataloging institution big:Agent true Violation IRI ; bnode false +big:AdminMetadata Admin Metadata bf:AdminMetadata bf:derivedFrom Source metadata true Warning IRI ; bnode TRUE + +big:Agent Agent bf:Agent ; bf:Person ; bf:Family ; bf:Organization ; bf:Jurisdiction ; bf:Meeting rdfs:label ; bf:code Agent Label true Warning literal true \ No newline at end of file diff --git a/Monograph DCTAP/Monograph_Instance_Electronic.tsv b/Monograph DCTAP/Monograph_Instance_Electronic.tsv index 64db9cb..752d6e6 100644 --- a/Monograph DCTAP/Monograph_Instance_Electronic.tsv +++ b/Monograph DCTAP/Monograph_Instance_Electronic.tsv @@ -1,24 +1,23 @@ -shapeID shapeLabel target propertyID propertyLabel valueShape mandatory severity valueNodeType repeatable note -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:instanceOf Instance of big:Monograph:Work true Violation IRI; bnode true -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:title Instance Title big:Title true Violation IRI; bnode true -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:editionStatement Edition Statement true Warning literal true -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:provisionActivity Provision Activity--Publication Information big:ProvisionActivity true Violation IRI; bnode true -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:seriesStatement Series Statement true Warning literal true -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:identifiedBy Identifiers true Warning IRI; bnode true e.g., ISBN -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:issuance Mode of Issuance true Violation IRI; bnode false -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:media Media type true Violation IRI; bnode true -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:carrier Carrier type true Violation IRI; bnode true -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:electronicLocator Uniform Resource Locator for resource true Warning IRI; bnode true -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:digitalCharacteristic Digital Characteristic big:DigitalCharacteristic true Warning IRI; bnode false -big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:adminMetadata Administrative metadata true Violation IRI; bnode true *adminMetadata should be at the Work and Instance levels but the requirements are the same for both -big:Title Instance Title bf:Title bf:mainTitle Main Title true Violation literal false Move to Title Sheet and add other title types -big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication ; bf:Modification bf:agent Agent big:AgentShape true Warning IRI; bnode true prefer use of bf:agent in Provision Activity but if no bf:agent exists, then use bf:simpleAgent (below) -big:Agent bf:Agent ; bf:Person ; bf:Family ; bf:Organization ; bf:Jurisdiction ; bf:Meeting rdfs:label Agent Label true Warning literal true -big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication ; bf:Modification bflc:simpleAgent Agent Simple Label big:Agent true Warning literal true prefer use of bf:agent (above) in Provision Activity but if no bf:agent exists, then use bf:simpleAgent -big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication ; bf:Modification bf:date Date true Warning literal true Pull both types of dates if they exist as the formatting may differ -big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication ; bf:Modification bflc:simpleDate Simple Date true Warning literal true Pull both types of dates if they exist as the formatting may differ -big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication ; bf:Modification bf:place Place big:Place true Warning IRI; bnode true Pull both bf:place and bf:simplePlace LC uses bf:place to indicate the country of publication -big:Place bf:Place rdfs:label Place Label true Warning literal true -big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication ; bf:Modification bflc:simplePlace Place Simple Label true Warning literal true -big:DigitalCharacteristic Digital Characteristic bf:FileType bf:digitalCharacteristic File Type true Warning literal true -big:DigitalCharacteristic Digital Characteristic bf:EncodingFormat bf:digitalCharacteristic Encoding Format true Warning literal true +shapeID shapeLabel target propertyID propertyLabel valueShape mandatory severity valueNodeType repeatable sh:or note +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:instanceOf Instance of big:Monograph:Work true Violation IRI; bnode true +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:title Instance Title big:Title true Violation IRI ; bnode true +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:editionStatement Edition Statement true Warning literal true +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:provisionActivity Provision Activity--Publication Information big:ProvisionActivity true Violation IRI ; bnode true +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:identifiedBy Identifiers true Warning IRI; bnode true +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:issuance Mode of Issuance true Violation IRI ; bnode false +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:media Media type true Violation IRI ; bnode true +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:carrier Carrier type true Violation IRI ; bnode true +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:electronicLocator Uniform Resource Locator for resource true Warning IRI ; bnode true +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:digitalCharacteristic Digital Characteristic big:DigitalCharacteristic true Warning IRI ; bnode true +big:Monograph:Instance:Electronic Instance (Monograph) Electronic bf:Electronic bf:adminMetadata Administrative metadata big:AdminMetadata true Violation IRI ; bnode true +big:Title Instance Title bf:Title bf:mainTitle Main Title true Violation literal true Move to Title Sheet and add other title types +big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication bf:agent Agent big:Agent true Warning IRI; bnode true bflc:simpleAgent prefer use of bf:agent in Provision Activity but if no bf:agent exists, then use bf:simpleAgent (below) +big:Agent bf:Agent ; bf:Person ; bf:Family ; bf:Organization ; bf:Jurisdiction ; bf:Meeting rdfs:label ; bf:code Agent Label true Warning literal true +big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication bflc:simpleAgent Agent Simple Label true Warning literal true bf:agent prefer use of bf:agent (above) in Provision Activity but if no bf:agent exists, then use bf:simpleAgent +big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication bf:date Date true Warning literal true bflc:simpleDate Pull both types of dates if they exist as the formatting may differ +big:ProvisionActivity Provision Activity bf:ProvisionActivity, bf:Distribution, bf:Manufacture, bf:Production, bf:Publication bflc:simpleDate Simple Date true Warning literal true bf:date Pull both types of dates if they exist as the formatting may differ +big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication bf:place Place big:Place true Warning IRI ; bnode true bflc:simplePlace Pull both bf:place and bf:simplePlace LC uses bf:place to indicate the country of publication +big:Place bf:Place rdfs:label Place Label true Warning literal true +big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication bflc:simplePlace Place Simple Label true Warning literal true bf:place +big:DigitalCharacteristic Digital Characteristic bf:FileType bf:digitalCharacteristic File Type true Warning literal true +big:DigitalCharacteristic Digital Characteristic bf:EncodingFormat bf:digitalCharacteristic Encoding Format true Warning literal true \ No newline at end of file diff --git a/Monograph DCTAP/Monograph_Instance_Print.tsv b/Monograph DCTAP/Monograph_Instance_Print.tsv index 2404dbb..f7c13c1 100644 --- a/Monograph DCTAP/Monograph_Instance_Print.tsv +++ b/Monograph DCTAP/Monograph_Instance_Print.tsv @@ -1,23 +1,22 @@ -shapeID shapeLabel target propertyID propertyLabel valueShape mandatory severity valueNodeType repeatable note -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:instanceOf Instance of big:Monograph:Work true Violation IRI; bnode true -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:title Instance Title big:Title true Violation IRI; bnode true -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:editionStatement Edition Statement true Warning literal true -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:provisionActivity Provision Activity--Publication Information big:ProvisionActivity true Violation IRI; bnode true -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:seriesStatement Series Statement true Warning literal true -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:identifiedBy Identifiers true Warning IRI; bnode true e.g., ISBN -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:issuance Mode of Issuance true Violation IRI; bnode false -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:media Media type true Violation IRI; bnode true -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:carrier Carrier type true Violation IRI; bnode true -big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:adminMetadata Administrative metadata true Violation IRI; bnode true *adminMetadata should be at the Work and Instance levels but the requirements are the same for both -big:Title Instance Title bf:Title bf:mainTitle Main Title true Violation literal false Move to Title Sheet and add other title types -big:ProvisionActivity Provision Activity bf:ProvisionActivity bf:agent Agent big:Agent true Warning IRI; bnode true prefer use of bf:agent in Provision Activity but if no bf:agent exists, then use bf:simpleAgent (below) -big:Agent bf:Agent ; bf:Person ; bf:Family ; bf:Organization ; bf:Jurisdiction ; bf:Meeting rdfs:label Agent Label true Warning literal true -big:ProvisionActivity Provision Activity bf:ProvisionActivity bflc:simpleAgent Agent Simple Label true Warning literal true prefer use of bf:agent (above) in Provision Activity but if no bf:agent exists, then use bf:simpleAgent -big:ProvisionActivity Provision Activity bf:ProvisionActivity; bf:Distribution; bf:Manufacture; bf:Production; bf:Publication; bf:Modification bf:date Date true Warning literal true Pull both types of dates if they exist as the formatting may differ -big:ProvisionActivity Provision Activity bf:ProvisionActivity; bf:Distribution; bf:Manufacture; bf:Production; bf:Publication; bf:Modification bflc:simpleDate Simple Date true Warning literal true Pull both types of dates if they exist as the formatting may differ -big:ProvisionActivity Provision Activity bf:ProvisionActivity; bf:Distribution; bf:Manufacture; bf:Production; bf:Publication; bf:Modification bf:place Place big:Place true Warning IRI; bnode true Pull both bf:place and bf:simplePlace LC uses bf:place to indicate the country of publication -big:Place bf:Place rdfs:label Place Label true Warning literal true -ProvisionActivityShape Provision Activity bf:ProvisionActivity; bf:Distribution; bf:Manufacture; bf:Production; bf:Publication; bf:Modification bflc:simplePlace Place Simple Label true Warning literal true - - - +shapeID shapeLabel target propertyID propertyLabel valueShape mandatory severity valueNodeType repeatable sh:or note +big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:instanceOf Instance of big:Monograph:Work true Violation IRI ; bnode true +big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:title Instance Title big:Title true Violation IRI ; bnode true +big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:editionStatement Edition Statement true Warning literal true +big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:provisionActivity Provision Activity--Publication Information big:ProvisionActivity true Violation IRI ; bnode true +big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:identifiedBy Identifiers true Warning IRI ; bnode true +big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:issuance Mode of Issuance true Violation IRI ; bnode false +big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:media Media type true Violation IRI ; bnode true +big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:carrier Carrier type true Violation IRI ; bnode true +big:Monograph:Instance:Print Instance (Monograph) Print bf:Print bf:adminMetadata Administrative metadata big:AdminMetadata true Violation IRI ; bnode true +big:Title Instance Title bf:Title bf:mainTitle Main Title true Violation literal true Move to Title Sheet and add other title types +big:ProvisionActivity Provision Activity bf:ProvisionActivity bflc:simpleAgent Agent Simple Label true Warning literal true bf:agent +big:ProvisionActivity Provision Activity bf:ProvisionActivity bf:agent Agent big:Agent true Warning IRI ; bnode true bflc:simpleAgent +big:Agent bf:Agent ; bf:Person ; bf:Family ; bf:Organization ; bf:Jurisdiction ; bf:Meeting rdfs:label ; bf:code Agent Label true Warning literal true +big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication bf:date Date true Warning literal true bflc:simpleDate Pull both types of dates if they exist as the formatting may differ +big:ProvisionActivity Provision Activity bf:ProvisionActivity ; bf:Distribution ; bf:Manufacture ; bf:Production ; bf:Publication bflc:simpleDate Simple Date true Warning literal true bf:date Pull both types of dates if they exist as the formatting may differ +big:ProvisionActivity Provision Activity bf:ProvisionActivity; bf:Distribution; bf:Manufacture; bf:Production; bf:Publication bf:place Place big:Place true Warning IRI ; bnode true bflc:simplePlace Pull both bf:place and bf:simplePlace LC uses bf:place to indicate the country of publication +big:Place bf:Place rdfs:label Place Label true Warning literal true +ProvisionActivityShape Provision Activity bf:ProvisionActivity; bf:Distribution; bf:Manufacture; bf:Production; bf:Publication bflc:simplePlace Place Simple Label true Warning literal true bf:place + + + \ No newline at end of file diff --git a/Monograph DCTAP/Monograph_Work_Text.tsv b/Monograph DCTAP/Monograph_Work_Text.tsv index 4776c5e..d05a844 100644 --- a/Monograph DCTAP/Monograph_Work_Text.tsv +++ b/Monograph DCTAP/Monograph_Work_Text.tsv @@ -1,16 +1,21 @@ -shapeID shapeLabel target propertyID propertyLabel valueShape mandatory severity valueNodeType repeatable note -big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:title Work Title big:Title true Violation IRI ; bnode true Change to 'SeeTitle Sheet' per AdminMetadata -big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:contribution Contribution big:Contribution true Warning IRI ; bnode true required if applicable. Should be included if it is there -big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:genreForm Form/Genre of Work true Warning IRI ; bnode true From discussion - consider Work subclasses as sufficient -big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:originDate Date of Work true Warning literal true -big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:originPlace Place of Origin of the Work true Warning IRI ; bnode false +shapeID shapeLabel target propertyID propertyLabel valueShape mandatory severity valueNodeType repeatable sh:or +big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:title Work Title big:Title true Violation IRI ; bnode false +big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:contribution Contribution big:Contribution true Warning IRI ; bnode true +big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:genreForm Form/Genre of Work true Warning IRI ; bnode true +big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:originDate Date of Work true Info literal true +big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:originPlace Place of Origin of the Work true Info IRI ; bnode false big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:language Language true Violation IRI true +big:Monograph:Work Work (Monograph) Text bf:Text; bf:Monograph bf:relation Relation big:Relation true Warning IRI ; blanknode true big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:subject Subject of the Work true Warning IRI ; bnode true big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:classification Classification numbers true Warning IRI ; bnode true -big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:content Content Type true Violation IRI ; bnode true *Thought to make this false, leveraging the subclass information for the same - will this fulfill this need? If not, how to address missing data here? uncontrolled labels . Essential for differentiation/identification. -big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:adminMetadata Administrative metadata true Violation IRI ; bnode true See AdminMetadata Sheet -big:Title Monograph Title bf:Title bf:mainTitle Main Title true Violation literal false Move to Title Sheet and add other title types -big:Contribution Contribution bf:Contribution; bf:PrimaryContribution bf:agent Agent big:Agent true Warning IRI ; bnode true -big:Contribution Contribution bf:Contribution; bf:PrimaryContribution bf:role Role big:Role true Warning IRI ; bnode true -big:Agent Agent bf:Agent ; bf:Person ; bf:Family ; bf:Organization ; bf:Jurisdiction ; bf:Meeting rdfs:label Agent Label true Warning literal true -big:Role Role bf:Role rdfs:label Role Label true Warning literal true +big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:content Content Type true Violation IRI ; bnode true +big:Monograph:Work Work (Monograph) Text bf:Text ; bf:Monograph bf:adminMetadata Administrative metadata true Violation IRI ; bnode true +big:Title Monograph Title bf:Title bf:mainTitle Main Title true Violation literal true +big:Contribution Contribution bf:Contribution ; bf:PrimaryContribution bf:agent Agent big:Agent true Warning IRI ; bnode true +big:Contribution Contribution bf:Contribution ; bf:PrimaryContribution bf:role Role big:Role true Warning IRI ; bnode true +big:Agent Agent bf:Agent ; bf:Person ; bf:Family ; bf:Organization ; bf:Jurisdiction ; bf:Meeting rdfs:label ; bf:code Agent Label true Warning literal true +big:Role Role bf:Role rdfs:label ; bf:code Role Label big:AdminMetadata true Warning literal true +big:Relation Relation bf:Relation bf:relationship Relationship big:Relationship true Violation IRI ; bnode false +big:Relationship Relationship bf:Relationship rdfs:label ; bf:code Relationship Label true Warning literal true +big:Relation Relation bf:Relation bf:associatedResource Associated Resource big:Series true Violation IRI ; bnode true +big:Series Series bf:Series bf:title Series title big:Title true Violation IRI ; bnode false \ No newline at end of file diff --git a/tests/monograph_text_works.csv b/tests/monograph_text_works.csv index 0dd35e2..efe8735 100644 --- a/tests/monograph_text_works.csv +++ b/tests/monograph_text_works.csv @@ -1,5 +1,5 @@ rdf_file_path,violations,warnings -loc/monograph/12516952.cbd.rdf,5,2 +loc/monograph/12516952.cbd.rdf,0,1 loc/monograph/22932823.cbd.rdf,6,2 loc/monograph/23703536.cbd.rdf,0,3 loc/monograph/22483233.cbd.rdf,0,3 diff --git a/tests/nlm/test.ttl b/tests/nlm/test.ttl new file mode 100644 index 0000000..d1e8afc --- /dev/null +++ b/tests/nlm/test.ttl @@ -0,0 +1,11 @@ +@prefix rdf: . +@prefix bf: . +@prefix rdfs: . +@prefix bflc: . +@prefix madsrdf: . +@prefix owl: . + a bf:Work , bf:Monograph , bf:Text . + a bf:Language ; + rdfs:label "English" . + bf:language . +_:f27556d097691c78474c72a18c0cd118 a rdfs:label \ No newline at end of file