From 5ebb6dd6aa5e7650435255fb1cd978cfc0bbbd22 Mon Sep 17 00:00:00 2001 From: PK Jacob Date: Thu, 15 Aug 2024 17:24:28 -0400 Subject: [PATCH 1/2] Initial version of library and bflc vocabulary --- data/vocab/bflc.ttl | 61 +++++++++++++ data/vocab/library.ttl | 189 ++++++++++++++++++++++++++++++++++++++++- data/vocab/lite.ttl | 6 ++ package.json | 2 +- 4 files changed, 256 insertions(+), 2 deletions(-) create mode 100644 data/vocab/bflc.ttl diff --git a/data/vocab/bflc.ttl b/data/vocab/bflc.ttl new file mode 100644 index 0000000..3dffc76 --- /dev/null +++ b/data/vocab/bflc.ttl @@ -0,0 +1,61 @@ +@prefix rdf: . +@prefix rdfs: . +@prefix lite: . +@prefix dc: . +@prefix schema: . +@prefix owl: . +@prefix bf: . +@prefix bflc: . +@prefix lc: . +@prefix skos: . +@prefix oa: . +@prefix foaf: . +@prefix library: . + +# BIBFRAME Linked Data Extension aka BUILDE Relation 📖🔍 + +# This RDF vocabulary encompasses a wide range of classes and properties suitable for describing various +# types of bibliographic resources, scholarly works, and related entities. BUILDE includes a basic set of +# core classes and properties known as the 'bflc' layer described here, as well as several extensions: + +# archive: things found in archives +# rare books: things found in rare book libraries +# scholar: things found in scholarly research and publishing +# library: things found in libraries + +# This vocabulary is ideal for librarians, information scientists, data curators, and developers working +# in academic and research settings. It can be employed in creating digital libraries, scholarly databases, +# cataloging systems, and other applications requiring structured bibliographic information. + +# Key Features: +# - Compatibility with existing ontologies including Schema.org, SKOS, FOAF, and Dublin Core for enhanced interoperability. +# - Extension of BIBFRAME from the Library of Congress +# - Comprehensive coverage of bibliographic and scholarly domains. +# - Clear, self-explanatory labels and definitions for each class and property. +# - Hierarchical organization of classes using rdfs:subClassOf for structured representation. + +# We encourage users to provide feedback and suggestions to continually improve and update this vocabulary. +# For versioning, updates, and more detailed documentation, please visit [https://bibfra.me/?]. + +# ------------------------------ +# Created by: EBSCO Information Systems +# Version: 1.0 +# Created: August 15, 2024 +# Updated: August 15, 2024 +# ------------------------------ + +# BUILDE BFLC Properties + +bflc:projectedProvisionDate a rdf:Property ; + rdfs:label "projected provision date"@en ; + rdfs:comment "Projected date of publication of the resource."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Instance ; + owl:equivalentProperty lc:projectedProvisionDate . + +bflc:nonSortNum a rdf:Property ; + rdfs:label "non sort number"@en ; + rdfs:comment "Number of initial label characters to skip for indexing and sorting."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain library:Title ; + owl:equivalentProperty lc:nonSortNum . \ No newline at end of file diff --git a/data/vocab/library.ttl b/data/vocab/library.ttl index d40e1d3..71f2e72 100644 --- a/data/vocab/library.ttl +++ b/data/vocab/library.ttl @@ -67,6 +67,72 @@ library:Map a rdfs:Class ; rdfs:comment "Work that has map characteristics."@en ; rdfs:subClassOf lite:Work . +library:Title a rdfs:Class ; + rdfs:label "Title"@en ; + rdfs:comment "Title of a resource."@en ; + rdfs:subClassOf lite:Resource ; + owl:sameAs bf:Title . + +library:VariantTitle a rdfs:Class ; + rdfs:label "Variant Title"@en ; + rdfs:comment "Varying form of title."@en ; + rdfs:subClassOf library:Title ; + owl:sameAs bf:VariantTitle . + +library:ParallelTitle a rdfs:Class ; + rdfs:label "Parallel Title"@en ; + rdfs:comment "Title in another language and/or script."@en ; + rdfs:subClassOf library:Title ; + owl:sameAs bf:ParallelTitle . + +library:Status a rdfs:Class ; + rdfs:label "Status"@en ; + rdfs:comment "Designation of the validity or position of something, e.g., whether something is incorrect or available."@en ; + owl:sameAs bf:Status . + +# Library Properties + +library:assigningSource a rdf:Property ; + rdfs:label "assigning source"@en ; + rdfs:comment "Entity assigning metadata, such as a classification number, name, or identifier."@en ; + rdfs:range lite:Resource ; + rdfs:domain lite:Resource ; + owl:equivalentProperty bf:assigner . + +library:code a rdf:Property ; + rdfs:label "code"@en ; + rdfs:comment "Code representing an information."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Resource ; + owl:equivalentProperty bf:code . + +library:status a rdf:Property ; + rdfs:label "code"@en ; + rdfs:comment "Refers to the validity or standing of something, such as indicating if a classification number or identifier is canceled or invalid."@en ; + rdfs:range library:Status ; + rdfs:domain lite:Resource ; + owl:equivalentProperty bf:status . + +library:qualifier a rdf:Property ; + rdfs:label "qualifier"@en ; + rdfs:comment "Qualifier of information, such as an addition to a title to make it unique or qualifying information associated with an identifier."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Resource ; + owl:equivalentProperty bf:qualifier . + +library:media a rdf:Property ; + rdfs:label "media"@en ; + rdfs:comment "Categorization reflecting the general type of intermediation device required to view, play, run, etc., the content of a resource."@en ; + rdfs:range lite:Category ; + rdfs:domain lite:Resource ; + owl:equivalentProperty bf:media . + +library:source a rdf:Property ; + rdfs:label "source"@en ; + rdfs:comment "The resource from which a value or label is obtained or derived, such as the formal source or scheme for a classification number, the list from which an agent's name is selected, or the system within which an identifier is unique."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Resource ; + owl:equivalentProperty bf:source . # Library Work Properties @@ -201,4 +267,125 @@ library:projection a rdf:Property ; rdfs:label "projection" ; rdfs:comment "Indicates the projection used in producing the Work." ; rdfs:domain bf:Work ; - rdfs:range rdfs:Literal . \ No newline at end of file + rdfs:range rdfs:Literal . + +# Instance Properties + +library:statementOfResponsibility a rdf:Property ; + rdfs:label "statement of responsibility"@en ; + rdfs:comment "Names and roles of agents responsible for creating the content."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain [ + a owl:Class ; + owl:unionOf (lite:Instance lite:Work) + ] ; + owl:equivalentProperty bf:responsibilityStatement . + +library:edition a rdf:Property ; + rdfs:label "edition"@en ; + rdfs:comment "Edition statement, information identifying the edition or version of the resource."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Instance ; + owl:equivalentProperty bf:editionStatement . + +library:publication a rdf:Property ; + rdfs:label "publication"@en ; + rdfs:comment "Information relating to publication of an instance."@en ; + rdfs:range lite:ProviderEvent ; + rdfs:domain lite:Instance ; + owl:equivalentProperty bf:provisionActivity ; + owl:equivalentProperty dc:publisher . + +library:production a rdf:Property ; + rdfs:label "production"@en ; + rdfs:comment "Information relating to production of an instance."@en ; + rdfs:range lite:ProviderEvent ; + rdfs:domain lite:Instance ; + owl:equivalentProperty bf:provisionActivity . + +library:distribution a rdf:Property ; + rdfs:label "distribution"@en ; + rdfs:comment "Information relating to distribution of an instance."@en ; + rdfs:range lite:ProviderEvent ; + rdfs:domain lite:Instance ; + owl:equivalentProperty bf:provisionActivity . + +library:manufacture a rdf:Property ; + rdfs:label "manufacture"@en ; + rdfs:comment "Information relating to manufacture of an instance."@en ; + rdfs:range lite:ProviderEvent ; + rdfs:domain lite:Instance ; + owl:equivalentProperty bf:provisionActivity . + +library:copyright a rdf:Property ; + rdfs:label "copyright"@en ; + rdfs:comment "Copyright event associated with the Instance."@en ; + rdfs:range lite:CopyrightEvent ; + rdfs:domain lite:Instance ; + owl:equivalentProperty bf:copyrightDate . + +library:issuance a rdf:Property ; + rdfs:label "mode of issuance"@en ; + rdfs:comment "Categorization reflecting whether a resource is issued in one or more parts, the way it is updated, and its intended termination."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Instance ; + owl:equivalentProperty bf:issuance . + +# Title Properties + +library:partNumber a rdf:Property ; + rdfs:label "part number"@en ; + rdfs:comment "Part or section enumeration of a title."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Title ; + owl:equivalentProperty bf:partNumber . + +library:partName a rdf:Property ; + rdfs:label "part name"@en ; + rdfs:comment "Part or section name of a title."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Title ; + owl:equivalentProperty bf:partName . + +# Agent Properties + +library:numeration a rdf:Property ; + rdfs:label "numeration"@en ; + rdfs:comment "A Roman numeral alone or combined with a subsequent part of a given name."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain [ + a owl:Class ; + owl:unionOf (lite:Person lite:Family) + ] . + +library:titles a rdf:Property ; + rdfs:label "titles"@en ; + rdfs:comment "Titles and other terms linked with a name, such as 'Dr.'"@en ; + rdfs:range rdfs:Literal ; + rdfs:domain [ + a owl:Class ; + owl:unionOf (lite:Person lite:Family) + ] . + +library:attribution a rdf:Property ; + rdfs:label "attribution"@en ; + rdfs:comment "Attribution qualifier."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain [ + a owl:Class ; + owl:unionOf (lite:Person lite:Family) + ] . + +library:subordinateUnit a rdf:Property ; + rdfs:label "subordinateUnit"@en ; + rdfs:comment "Corporate names or corporate subheadings that follow the name of the highest hierarchical unit."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Organization . + +# Category Properties + +library:term a rdf:Property ; + rdfs:label "term"@en ; + rdfs:comment "Text description of the category."@en ; + rdfs:range rdfs:Literal ; + rdfs:domain lite:Category . \ No newline at end of file diff --git a/data/vocab/lite.ttl b/data/vocab/lite.ttl index 078896b..4c5298f 100644 --- a/data/vocab/lite.ttl +++ b/data/vocab/lite.ttl @@ -269,6 +269,12 @@ lite:date a rdf:Property ; owl:equivalentProperty bf:date, dc:date ; rdfs:domain lite:Resource . +lite:place a rdf:Property ; + rdfs:label "place"@en ; + rdfs:comment "Place associated with a resource"@en ; + rdfs:domain lite:Resource ; + rdfs:range rdfs:Literal . + lite:note a rdf:Property ; rdfs:label "note"@en ; rdfs:comment "Additional descriptive information associated with the resource."@en ; diff --git a/package.json b/package.json index 1dbee6c..315165b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "scripts": { - "precommit": "ttl data/vocab/lite.ttl data/vocab/relation.ttl data/vocab/scholar.ttl", + "precommit": "ttl data/vocab/lite.ttl data/vocab/relation.ttl data/vocab/scholar.ttl data/vocab/bflc.ttl data/vocab/library.ttl", "prepare": "husky" }, "devDependencies": { From 36656d13c329e84d375360c19891662e2d5fb53b Mon Sep 17 00:00:00 2001 From: PK Jacob Date: Thu, 21 Nov 2024 12:49:41 -0500 Subject: [PATCH 2/2] replace sameAs with equivalentClass --- data/vocab/library.ttl | 12 +++++++++--- data/vocab/lite.ttl | 4 +++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/data/vocab/library.ttl b/data/vocab/library.ttl index 71f2e72..279752e 100644 --- a/data/vocab/library.ttl +++ b/data/vocab/library.ttl @@ -71,13 +71,13 @@ library:Title a rdfs:Class ; rdfs:label "Title"@en ; rdfs:comment "Title of a resource."@en ; rdfs:subClassOf lite:Resource ; - owl:sameAs bf:Title . + owl:equivalentClass bf:Title . library:VariantTitle a rdfs:Class ; rdfs:label "Variant Title"@en ; rdfs:comment "Varying form of title."@en ; rdfs:subClassOf library:Title ; - owl:sameAs bf:VariantTitle . + owl:equivalentClass bf:VariantTitle . library:ParallelTitle a rdfs:Class ; rdfs:label "Parallel Title"@en ; @@ -88,7 +88,7 @@ library:ParallelTitle a rdfs:Class ; library:Status a rdfs:Class ; rdfs:label "Status"@en ; rdfs:comment "Designation of the validity or position of something, e.g., whether something is incorrect or available."@en ; - owl:sameAs bf:Status . + owl:equivalentClass bf:Status . # Library Properties @@ -269,6 +269,12 @@ library:projection a rdf:Property ; rdfs:domain bf:Work ; rdfs:range rdfs:Literal . +library:place a rdf:Property ; + rdfs:label "place"@en ; + rdfs:comment "Place associated with a resource"@en ; + rdfs:domain lite:Resource ; + rdfs:range rdfs:Literal . + # Instance Properties library:statementOfResponsibility a rdf:Property ; diff --git a/data/vocab/lite.ttl b/data/vocab/lite.ttl index 4c5298f..0ff4b7c 100644 --- a/data/vocab/lite.ttl +++ b/data/vocab/lite.ttl @@ -10,6 +10,7 @@ @prefix foaf: . @prefix xsd: . @prefix librarylink: . +@prefix lc: . # BIBFRAME Linked Data Extension aka BUILDE 📖🔍 @@ -273,7 +274,8 @@ lite:place a rdf:Property ; rdfs:label "place"@en ; rdfs:comment "Place associated with a resource"@en ; rdfs:domain lite:Resource ; - rdfs:range rdfs:Literal . + rdfs:range rdfs:Literal ; + owl:equivalentProperty lc:simplePlace . lite:note a rdf:Property ; rdfs:label "note"@en ;