Semantic Web

RDF Book Vocabulary 0.1

Buzzword.org.uk Namespace 31 March 2009

This version:
http://purl.org/NET/book/vocab-20090331
Latest version:
http://purl.org/NET/book/vocab
Previous version:
http://purl.org/NET/book/vocab-20090330
Editor:
Toby Inkster

Abstract

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#>.

Diagramme relating some of the classes and properties defined here.

The prose of this document assumes that the following prefixes are defined:

dc
http://purl.org/dc/terms/
event
http://purl.org/NET/c4dm/event.owl#
foaf
http://xmlns.com/foaf/0.1/
frbr
http://vocab.org/frbr/core#

Classes

Book #

The abstract concept of a particular book, e.g. Stephen Hawking's A Brief History of Time.

Subclass of: frbr:Manifestation

Copy #

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

PublicReading #

The event of a copy of a book being read, usually aloud, by an agent to an audience.

Subclass of: Reading

Reading #

The event of a copy of a book being read by an agent.

Subclass of: event:Event

Properties

book #

Indicates which book this Copy is a copy of.

Subproperty of: frbr:exemplarOf
Inverse: copy
Domain: Copy
Range: Book

copy #

Indicates a copy of this Book.

Subproperty of: frbr:exemplar
Inverse: book
Domain: Book
Range: Copy

isbn #

A 10– or 13-digit ISBN code associated with a Book.

Domain: Book
Range: literal

owns #

This predicate indicates that the foaf:Agent is the legal owner of a particular Copy.

Subproperty of: frbr:ownerOf
Domain: foaf:Agent
Range: Copy

ownsCopyOf #

This is an indirect version of "owns" indicating that the foaf:Agent owns an unspecified copy of the Book.

Domain: foaf:Agent
Range: Book

ownsList #

Indicates a foaf:Document listing the books which the foaf:Agent owns copies of.

Domain: foaf:Agent
Range: foaf:Document

ownsPrimaryTopicOf #

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

read #

This predicate indicates that the foaf:Agent has read at least part of a particular Copy.

Domain: foaf:Agent
Range: Copy

readCopyOf #

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

readList #

Indicates a foaf:Document listing the books which the foaf:Agent has read copies of.

Domain: foaf:Agent
Range: foaf:Document

readPrimaryTopicOf #

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

reader #

This predicate indicates the foaf:Agent who was performing the Reading.

Subproperty of: event:agent
Domain: Reading
Range: foaf:Agent

reading #

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

readingOf #

The Book of which a copy was read.

Inverse: reading
Subproperty of: event:factor
Domain: Reading
Range: Book

toRead #

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

toReadCopyOf #

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

toReadList #

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

toReadPrimaryTopicOf #

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

Example Usage

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> .

Valid XHTML + RDFa