Copyright © 2009 Toby Inkster, some rights reserved.
The RDF Book Vocabulary defines a few basic terms for describing books and people's relationships with them. It works best when combined with Dublin Core, FOAF and the Reviews vocabulary.
The namespace URI to use is <http://purl.org/NET/book/vocab#>.

The prose of this document assumes that the following prefixes are defined:
The abstract concept of a particular book, e.g. Stephen Hawking's A Brief History of Time.
| Subclass of: | frbr:Manifestation |
|---|
A specific copy of a particular book, e.g. Joe Blogg's copy of Stephen Hawking's A Brief History of Time.
| Subclass of: | frbr:Item |
|---|
The event of a copy of a book being read, usually aloud, by an agent to an audience.
| Subclass of: | Reading |
|---|
Indicates which book this Copy is a copy of.
| Subproperty of: | frbr:exemplarOf |
|---|---|
| Inverse: | copy |
| Domain: | Copy |
| Range: | Book |
Indicates a copy of this Book.
| Subproperty of: | frbr:exemplar |
|---|---|
| Inverse: | book |
| Domain: | Book |
| Range: | Copy |
This predicate indicates that the foaf:Agent is the legal owner of a particular Copy.
| Subproperty of: | frbr:ownerOf |
|---|---|
| Domain: | foaf:Agent |
| Range: | Copy |
This is an indirect version of "owns" indicating that the foaf:Agent owns an unspecified copy of the Book.
| Domain: | foaf:Agent |
|---|---|
| Range: | Book |
Indicates a foaf:Document listing the books which the foaf:Agent owns copies of.
| Domain: | foaf:Agent |
|---|---|
| Range: | foaf:Document |
This is an indirect version of the "owns" property. Instead of linking a foaf:Agent to a Copy directly, ownsPrimaryTopicOf links a foaf:Agent to a foaf:Document such that the primary topic of the foaf:Document is a Book of which a Copy is owned by the Agent.
| Domain: | foaf:Agent |
|---|---|
| Range: | foaf:Document |
This predicate indicates that the foaf:Agent has read at least part of a particular Copy.
| Domain: | foaf:Agent |
|---|---|
| Range: | Copy |
This is an indirect version of "read", indicating that the foaf:Agent has read at least part of an unspecified copy of the Book.
| Domain: | foaf:Agent |
|---|---|
| Range: | Book |
Indicates a foaf:Document listing the books which the foaf:Agent has read copies of.
| Domain: | foaf:Agent |
|---|---|
| Range: | foaf:Document |
This is an indirect version of the "read" property. Instead of linking a foaf:Agent to a Copy directly, readPrimaryTopicOf links a foaf:Agent to a foaf:Document such that the primary topic of the foaf:Document is a Book, a Copy of which has been read by the Agent.
| Domain: | foaf:Agent |
|---|---|
| Range: | foaf:Document |
This predicate indicates the foaf:Agent who was performing the Reading.
| Subproperty of: | event:agent |
|---|---|
| Domain: | Reading |
| Range: | foaf:Agent |
This predicate indicates that a Book has a Reading event associated with it, at which a copy of the book was read.
| Inverse: | readingOf |
|---|---|
| Domain: | Book |
| Range: | Reading |
The Book of which a copy was read.
| Inverse: | reading |
|---|---|
| Subproperty of: | event:factor |
| Domain: | Reading |
| Range: | Book |
This predicate indicates that the foaf:Agent wants to or plans to read at least part of a particular Copy.
| Domain: | foaf:Agent |
|---|---|
| Range: | Copy |
This is an indirect version of "toRead", indicating that the foaf:Agent wants to or plans to read at least part of an unspecified copy of the Book.
| Domain: | foaf:Agent |
|---|---|
| Range: | Book |
Indicates a foaf:Document listing the books which the foaf:Agent wants to or plans to read copies of.
| Domain: | foaf:Agent |
|---|---|
| Range: | foaf:Document |
This is an indirect version of the "toRead" property. Instead of linking a foaf:Agent to a Copy directly, readPrimaryTopicOf links a foaf:Agent to a foaf:Document such that the primary topic of the foaf:Document is a Book, a Copy of which is planned or wanted to be read by the Agent.
| Domain: | foaf:Agent |
|---|---|
| Range: | foaf:Document |
The following example uses Turtle notation.
@prefix book : <http://purl.org/NET/book/vocab#> . @prefix dc : <http://purl.org/dc/terms/> . @prefix ddc : <http://purl.org/NET/decimalised#c> . @prefix event : <http://purl.org/NET/c4dm/event.owl#> . @prefix ex : <http://example.com/ns#> . @prefix foaf : <http://xmlns.com/foaf/0.1/> . @prefix tl : <http://purl.org/NET/c4dm/timeline.owl#> . @prefix xsd : <http://www.w3.org/2001/XMLSchema#> . # First, let's define a book! _:abhot a book:Book ; book:isbn "0553804367" ; dc:title "A Brief History of Time" ; dc:creator [ a foaf:Person ; foaf:name "Stephen Hawkings" ] ; dc:subject ddc:523 . # Indicate that Alice is the owner of a copy of that book. _:alice book:owns [ a book:Copy ; book:book _:abhot ; ex:condition "As good as new!" ] . # Here's another way of indicating that Alice owns a copy of "A Brief History # of Time". This way no blank node is created for the copy itself, which means # we can't say anything about her copy in particular. _:alice book:ownsCopyOf _:abhot . # Here's an indirect way of saying that Alice has a copy of that book. _:alice book:ownsPrimaryTopicOf <http://en.wikipedia.org/wiki/A_Brief_History_of_Time> . # Has Alice read this book? Yes! (Whether she understood it or not is another # matter altogether!) _:alice book:readCopyOf _:abhot . # There is a re-ified way of saying this which allows us to attach additional # information to the reading of the book. Here we specify that she read it # in France over a period of four days, starting 15 Oct 2007. [] a book:Reading ; book:reader _:alice ; book:readingOf _:abhot ; event:time [ a tl:Interval; tl:at "2007-10-15"^^xsd:dateTime; tl:duration "P4D"^^xsd:duration; ] ; event:place <http://dbpedia.org/resource/France> . # Bob hasn't read it yet, but wants to. _:bob book:toReadCopyOf <http://purl.org/NET/book/isbn/0553804367#book>. # Carol keeps a list of all the books she's read in the past year or two. _:carol a foaf:Person ; foaf:name "Carol" ; book:readList <http://users.example.net/~carol/books.html> .