# rdf-vocab
Common OWL/RDFS Vocabularies for use with Ruby [RDF.rb][]

[![Gem Version](https://badge.fury.io/rb/rdf-vocab.png)](http://badge.fury.io/rb/rdf-vocab)
[![Build Status](https://travis-ci.org/ruby-rdf/rdf-vocab.png?branch=master)](http://travis-ci.org/ruby-rdf/rdf-vocab)

## Extensions
This gem extends `RDF::Vocabulary` with `#to_ttl`, `#to_jsonld`, and `#to_html` methods to create special-purpose vocabulary serializations. The HTML version is templated using a Haml template to allow output to be customized.

Also extends `RDF::Vocabulary::Format` with the `gen-vocab` command extension to the `rdf` executable.

## Vocabularies

* RDF::Vocab::ACL       - [Web Access Control](http://www.w3.org/wiki/WebAccessControl) (W3C)
* RDF::Vocab::BF2       - [BIBFRAME 2.0](http://id.loc.gov/ontologies/bibframe) (LoC)
* RDF::Vocab::Bibframe  - [Bibliographic Framework Initiative](http://bibframe.org/vocab/) (LoC)
* RDF::Vocab::BIBO		- [Bibliographic Ontology](http://bibliontology.com)
* RDF::Vocab::CC        - [Creative Commons Vocabulary](http://creativecommons.org/ns#) (Creative Commons) - Alias of `RDF::CC`
* RDF::Vocab::CERT      - [Cert Ontology](http://www.w3.org/ns/auth/cert#) (W3C) - Alias of `RDF::CERT`
* RDF::Vocab::CNT       - [Representing Content in RDF](http://www.w3.org/TR/Content-in-RDF10/) (W3C)
* RDF::Vocab::DataCite  - [DataCite Ontology](http://purl.org/spar/datacite/)
* RDF::Vocab::DC        - [DCMI Metadata Terms](http://purl.org/dc/terms/) (DCMI) - Alias of `RDF::DC`
* RDF::Vocab::DC11      - [Dublin Core Metadata Element Set](http://purl.org/dc/elements/1.1/) (DCMI) - Alias of `RDF::DC11`
* RDF::Vocab::DCAT      - [Data Catalog Vocabulary](http://www.w3.org/TR/vocab-dcat/) (DCMI) - Alias of `RDF::DCAT`
* RDF::Vocab::DCMIType  - [DCMI Type Vocabulary](http://dublincore.org/documents/dcmi-terms/) (DCMI)
* RDF::Vocab::DOAP      - [Description of a Project (DOAP) vocabulary](https://github.com/edumbill/doap/wiki) - Alias of `RDF::DOAP`
* RDF::Vocab::DWC       - [Darwin Core](http://rs.tdwg.org/dwc/terms/)
* RDF::Vocab::EBUCore   - [EBUCore](http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#)
* RDF::Vocab::EXIF      - [Exif vocabulary workspace](http://www.w3.org/2003/12/exif/) (W3C) - Alias of `RDF::EXIF`
* RDF::Vocab::Fcrepo4   - [Fedora Commons Repository 4 Ontology](http://fedora.info/definitions/v4/repository)
* RDF::Vocab::FOAF      - [Friend of a Friend (FOAF) vocabulary](http://xmlns.com/foaf/spec/) - Alias of `RDF::FOAF`
* RDF::Vocab::GEO       - [GEO Vocabulary](http://www.w3.org/2003/01/geo/wgs84_pos#) (W3C) - Alias of `RDF::GEO`
* RDF::Vocab::GR        - [Good Relations](http://www.heppnetz.de/projects/goodrelations/) - Alias of `RDF::GR`
* RDF::Vocab::HT        - [HTTP Vocabulary in RDF 1.0](http://www.w3.org/TR/HTTP-in-RDF10/) (W3C) - Alias of `RDF::HT`
* RDF::Vocab::ICAL      - [iCalendar vocabulary](http://www.w3.org/2002/12/cal/) (W3C) - Alias of `RDF::ICAL`
* RDF::Vocab::Identifiers - [Standard Identifiers Scheme](http://id.loc.gov/vocabulary/identifiers.html) (LoC)
* RDF::Vocab::IIIF      - [International Image Interoperability Framework Presentation API](http://iiif.io/api/presentation/2.0/) (IIIF)
* RDF::Vocab::JSONLD    - [JSON-LD Vocabulary](http://www.w3.org/ns/json-ld)
* RDF::Vocab::LDP       - [Linked Data Platform](http://www.w3.org/TR/ldp/) (W3C)
* RDF::Vocab::LRMI      - [Learning Resources Metadata Initiative](http://dublincore.org/dcx/lrmi-terms/1.1/) (DCMI)
* RDF::Vocab::MA        - [Ontology for Media Resources](http://www.w3.org/TR/mediaont-10/) (W3C) - Alias of `RDF::MA`
* RDF::Vocab::MADS      - [Metadata Authority Description Schema](http://www.loc.gov/standards/mads/) (LoC)
* RDF::Vocab::MARCRelators - [MARC Code List for Relators](http://id.loc.gov/vocabulary/relators.html) (LoC)
* RDF::Vocab::MO        - [Music Ontology](http://musicontology.com) - Alias of `RDF::MO`
* RDF::Vocab::MODS      - [Metadata Object Description Schema](http://www.loc.gov/standards/mods/) (LoC)
* RDF::Vocab::NFO       - [NEPOMUK File Ontology](http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#) (NFO)
* RDF::Vocab::OA        - [Open Annotation Data Model](http://www.w3.org/ns/oa) (W3C)
* RDF::Vocab::OG        - [Open Graph protocol](http://ogp.me) - Alias of `RDF::OG`
* RDF::Vocab::OGC       - [Open Graph protocol classes](http://ogp.me) - Alias of `RDF::OGC`
* RDF::Vocab::ORE       - [Object Reuse and Exchange Ontology](http://www.openarchives.org/ore/1.0/rdfxml) (OAI)
* RDF::Vocab::ORG		- [Organization Ontology](http://www.w3.org/TR/vocab-org/) (W3C)
* RDF::Vocab::PPLAN		- [P-Plan Ontology](http://www.opmw.org/model/p-plan/)
* RDF::Vocab::PREMIS    - [Preservation Metadata Implementation Strategies Ontology](http://id.loc.gov/ontologies/premis.html) (LoC)
* RDF::Vocab::PremisEventType - [PREMIS Event Type](http://id.loc.gov/vocabulary/preservation/eventType.html) (LoC)
* RDF::Vocab::PROV      - [Provenance Ontology](http://www.w3.org/TR/prov-o/) (W3C)  - Alias of `RDF::PROV`
* RDF::Vocab::RSA       - [The RSA Ontology](http://www.w3.org/ns/auth/rsa) - Alias of `RDF::RSA`
* RDF::Vocab::RSS       - [RDF Site Summary](http://web.resource.org/rss/1.0/) - Alias of `RDF::RSS`
* RDF::Vocab::SCHEMA    - [Schema.org](http://schema.org) - Alias of `RDF::SCHEMA`
* RDF::Vocab::SIOC      - [Semantically-Interlinked Online Communities](http://rdfs.org/sioc/spec/) - Alias of `RDF::SIOC`
* RDF::Vocab::SiocServices - [SIOC Services](http://rdfs.org/sioc/spec/) (SIOC)
* RDF::Vocab::SKOS      - [Simple Knowledge Organization System](http://www.w3.org/TR/skos-reference/) (W3C) - Alias of `RDF::SKOS`
* RDF::Vocab::SKOSXL    - [SKOS eXtension for Labels](http://www.w3.org/TR/skos-reference/skos-xl.html) (W3C) - Alias of `RDF::SKOSXL`
* RDF::Vocab::V         - [RDF data vocabulary](http://www.data-vocabulary.org) - Alias of `RDF::V`
* RDF::Vocab::VCARD     - [Ontology for vCards](http://www.w3.org/TR/vcard-rdf/) (W3C) - Alias of `RDF::VCARD`
* RDF::Vocab::VMD       - [RDF data vocabulary](http://www.data-vocabulary.org) - Alias of `RDF::VMD`
* RDF::Vocab::VOID      - [Vocabulary of Interlinked Datasets](http://www.w3.org/TR/void/) (W3C) - Alias of `RDF::VOID`
* RDF::Vocab::VS        - [SemWeb Vocab Status ontology](http://www.w3.org/2003/06/sw-vocab-status/note.html) (W3C) - Alias of `RDF::VS`
* RDF::Vocab::WOT       - [Web of Trust](http://xmlns.com/wot/0.1/) - Alias of `RDF::WOT`
* RDF::Vocab::WDRS      - [Protocol for Web Description Resources](http://www.w3.org/TR/powder-primer/) (W3C) - Alias of `RDF::WRDS`
* RDF::Vocab::XHTML     - [Extensible HyperText Markup Language](http://www.w3.org/1999/xhtml/) (W3C) - Alias of `RDF::XHTML`
* RDF::Vocab::XHV       - [XHTML Vocabulary](http://www.w3.org/1999/xhtml/vocab) (W3C) - Alias of `RDF::XHV`

## Installation

Add to your Gemfile

    gem "rdf-vocab"

then

    bundle install

## Usage

    require "rdf/vocab"

This will load all the vocabulary classes in the library.

Also adds the `gen-vocab` command to the `rdf` command-line executable to generate specifically generated output in Turtle, JSON-LD, and HTML+RDFa for either built-in or arbitrary vocabularies.

## Adding new vocabularies

* First, add an entry to `lib/rdf/vocab.rb`, the key names contained within
for guidance. For more information, see the documentation on
[RDF::Vocabulary](http://www.rubydoc.info/github/ruby-rdf/rdf/RDF/Vocabulary).
* Next, create an empty file in `lib/rdf/vocab` based on the key name for
your vocabulary. For example, if you've added the vocabulary `:foo`, create a
new empty file at `lib/rdf/vocab/foo.rb`.
* Run `rake gen_vocabs`.

## Authors

* [David Chandek-Stark](https://github.com/dchandekstark)
* [Aaron Coburn](https://github.com/acoburn)
* [Michael J. Giarlo](https://github.com/mjgiarlo)
* [Gregg Kellogg](http://github.com/gkellogg)

## Contributing

This repository uses [Git Flow](https://github.com/nvie/gitflow) to mange development and release activity. All submissions _must_ be on a feature branch based on the _develop_ branch to ease staging and integration.

* Do your best to adhere to the existing coding conventions and idioms.
* Don't use hard tabs, and don't leave trailing whitespace on any line.
  Before committing, run `git diff --check` to make sure of this.
* Do document every method you add using [YARD][] annotations. Read the
  [tutorial][YARD-GS] or just look at the existing code for examples.
* Don't touch the `.gemspec` or `VERSION` files. If you need to change them,
  do so on your private branch only.
* Do note that in order for us to merge any non-trivial changes (as a rule
  of thumb, additions larger than about 15 lines of code), we need an
  explicit [public domain dedication][PDD] on record from you.

## License

This is free and unencumbered public domain software. For more information,
see <http://unlicense.org/> or the accompanying {file:LICENSE} file.

[RDF]:              http://www.w3.org/RDF/
[RDF.rb]:           http://rubydoc.info/github/ruby-rdf/rdf
[YARD]:             http://yardoc.org/
[YARD-GS]:          http://rubydoc.info/docs/yard/file/docs/GettingStarted.md
[PDD]:              http://lists.w3.org/Archives/Public/public-rdf-ruby/2010May/0013.html