Skip to content

continuous-foundation/cito-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cito-utils

cito-utils on npm MIT License CI

TypeScript utilities for the Citation Typing Ontology (CiTO). Provides typed enums for all CiTO citation intents, inverse property lookups, and runtime validation — with zero dependencies.

Install

bun add cito-utils
npm install cito-utils

Usage

import { CitationIntent, inverseOf, urlOf, isCitationIntent } from 'cito-utils';

// Use enum values directly — each is the full IRI
CitationIntent.cites;
// => 'http://purl.org/spar/cito/cites'

CitationIntent.agreesWith;
// => 'http://purl.org/spar/cito/agreesWith'

// Look up inverse properties
inverseOf(CitationIntent.agreesWith);
// => CitationIntent.isAgreedWithBy

inverseOf(CitationIntent.isCitedBy);
// => CitationIntent.cites

// Get the URL for more information
urlOf(CitationIntent.citesAsEvidence);
// => 'http://purl.org/spar/cito/citesAsEvidence'

// Validate a string at runtime
isCitationIntent('http://purl.org/spar/cito/cites'); // true
isCitationIntent('http://example.com/not-cito'); // false

API

CitationIntent enum

All CiTO object properties as a TypeScript enum. Each key is camelCase matching the IRI suffix, and each value is the full IRI. Includes:

  • Forward intents (subproperties of cites): agreesWith, citesAsAuthority, citesAsDataSource, citesAsEvidence, confirms, corrects, extends, usesDataFrom, etc.
  • Inverse intents (subproperties of isCitedBy): isAgreedWithBy, isCitedAsAuthorityBy, isConfirmedBy, givesBackgroundTo, providesDataFor, etc.
  • Relationship properties: sharesAuthorWith, sharesJournalWith, sharesPublicationVenueWith, etc.
  • Structural properties: hasCitationCharacterization, hasCitedEntity, hasCitingEntity
  • Other: likes, citation (schema.org alignment)

All properties are fully documented with JSDoc descriptions and usage examples.

inverseOf(intent): CitationIntent | undefined

Returns the inverse CiTO property for a given intent, or undefined for properties without an inverse (e.g. likes, sharesAuthorWith).

urlOf(intent): string

Returns the IRI string for a citation intent. Since enum values are IRIs, this is a semantic accessor for when you want the URL for documentation.

isCitationIntent(value): boolean

Type guard that checks if a string is a valid CiTO citation intent IRI.

CITO_BASE_IRI

The base namespace: 'http://purl.org/spar/cito/'


Made with love by Continuous Science Foundation

About

TypeScript utilities for the Citation Typing Ontology (CiTO)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors