@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .

foaf:
	a owl:Ontology ;
	dcterms:description "The Friend of a Friend (FOAF) RDF vocabulary, described using W3C RDF Schema and the Web Ontology Language." ;
	dcterms:title "Friend of a Friend (FOAF) vocabulary" ;
	rdfs:comment "This version of the FOAF vocabulary has been slightly trimmed for LV2." .

foaf:Agent
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "An agent (eg. person, group, software or physical artifact)." ;
	rdfs:label "Agent" ;
	owl:equivalentClass dcterms:Agent .

foaf:Document
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "A document." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Document" ;
	owl:disjointWith foaf:Organization ,
		foaf:Project .

foaf:Group
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "A class of Agents." ;
	rdfs:label "Group" ;
	rdfs:subClassOf foaf:Agent .

foaf:Image
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "An image." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Image" ;
	rdfs:subClassOf foaf:Document .

foaf:LabelProperty
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "A foaf:LabelProperty is any RDF property with textual values that serve as labels." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Label Property" .

foaf:OnlineAccount
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "An online account." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Online Account" ;
	rdfs:subClassOf owl:Thing .

foaf:OnlineChatAccount
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "An online chat account." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Online Chat Account" ;
	rdfs:subClassOf foaf:OnlineAccount .

foaf:OnlineEcommerceAccount
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "An online e-commerce account." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Online E-commerce Account" ;
	rdfs:subClassOf foaf:OnlineAccount .

foaf:OnlineGamingAccount
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "An online gaming account." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Online Gaming Account" ;
	rdfs:subClassOf foaf:OnlineAccount .

foaf:Organization
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "An organization." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Organization" ;
	rdfs:subClassOf foaf:Agent ;
	owl:disjointWith foaf:Document ,
		foaf:Person .

foaf:Person
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "A person." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Person" ;
	rdfs:subClassOf foaf:Agent ;
	owl:disjointWith foaf:Organization ,
		foaf:Project .

foaf:PersonalProfileDocument
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "A personal profile RDF document." ;
	rdfs:label "PersonalProfileDocument" ;
	rdfs:subClassOf foaf:Document .

foaf:Project
	a rdfs:Class ,
		owl:Class ;
	rdfs:comment "A project (a collective endeavour of some kind)." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Project" ;
	owl:disjointWith foaf:Document ,
		foaf:Person .

foaf:account
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "Indicates an account held by this agent." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "account" ;
	rdfs:range foaf:OnlineAccount .

foaf:accountName
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "Indicates the name (identifier) associated with this online account." ;
	rdfs:domain foaf:OnlineAccount ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "account name" ;
	rdfs:range rdfs:Literal .

foaf:accountServiceHomepage
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "Indicates a homepage of the service provide for this online account." ;
	rdfs:domain foaf:OnlineAccount ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "account service homepage" ;
	rdfs:range foaf:Document .

foaf:age
	a rdf:Property ,
		owl:DatatypeProperty ,
		owl:FunctionalProperty ;
	rdfs:comment "The age in years of some agent." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "age" ;
	rdfs:range rdfs:Literal .

foaf:aimChatID
	a rdf:Property ,
		owl:DatatypeProperty ,
		owl:InverseFunctionalProperty ;
	rdfs:comment "An AIM chat ID" ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "AIM chat ID" ;
	rdfs:range rdfs:Literal ;
	rdfs:subPropertyOf foaf:nick .

foaf:birthday
	a rdf:Property ,
		owl:DatatypeProperty ,
		owl:FunctionalProperty ;
	rdfs:comment """The birthday of this Agent, represented in mm-dd string form, eg. '12-31'.""" ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "birthday" ;
	rdfs:range rdfs:Literal .

foaf:currentProject
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A current project this person works on." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "current project" ;
	rdfs:range owl:Thing .

foaf:depiction
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A depiction of some thing." ;
	rdfs:domain owl:Thing ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "depiction" ;
	rdfs:range foaf:Image ;
	owl:inverseOf foaf:depicts .

foaf:depicts
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A thing depicted in this representation." ;
	rdfs:domain foaf:Image ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "depicts" ;
	rdfs:range owl:Thing ;
	owl:inverseOf foaf:depiction .

foaf:familyName
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "The family name of some person." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "familyName" ;
	rdfs:range rdfs:Literal .

foaf:firstName
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "The first name of a person." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "firstName" ;
	rdfs:range rdfs:Literal .

foaf:gender
	a rdf:Property ,
		owl:DatatypeProperty ,
		owl:FunctionalProperty ;
	rdfs:comment """The gender of this Agent (typically but not necessarily 'male' or 'female').""" ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "gender" ;
	rdfs:range rdfs:Literal .

foaf:givenName
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "The given name of some person." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Given name" .

foaf:homepage
	a rdf:Property ,
		owl:InverseFunctionalProperty ,
		owl:ObjectProperty ;
	rdfs:comment "A homepage for some thing." ;
	rdfs:domain owl:Thing ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "homepage" ;
	rdfs:range foaf:Document ;
	rdfs:subPropertyOf foaf:isPrimaryTopicOf ,
		foaf:page .

foaf:icqChatID
	a rdf:Property ,
		owl:DatatypeProperty ,
		owl:InverseFunctionalProperty ;
	rdfs:comment "An ICQ chat ID" ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "ICQ chat ID" ;
	rdfs:range rdfs:Literal ;
	rdfs:subPropertyOf foaf:nick .

foaf:img
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment """An image that can be used to represent some thing (ie. those depictions which are particularly representative of something, eg. one's photo on a homepage).""" ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "image" ;
	rdfs:range foaf:Image ;
	rdfs:subPropertyOf foaf:depiction .

foaf:interest
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A page about a topic of interest to this person." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "interest" ;
	rdfs:range foaf:Document .

foaf:isPrimaryTopicOf
	a rdf:Property ,
		owl:InverseFunctionalProperty ;
	rdfs:comment "A document that this thing is the primary topic of." ;
	rdfs:domain owl:Thing ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "is primary topic of" ;
	rdfs:range foaf:Document ;
	rdfs:subPropertyOf foaf:page ;
	owl:inverseOf foaf:primaryTopic .

foaf:jabberID
	a rdf:Property ,
		owl:DatatypeProperty ,
		owl:InverseFunctionalProperty ;
	rdfs:comment "A jabber ID for something." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "jabber ID" ;
	rdfs:range rdfs:Literal .

foaf:knows
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A person known by this person (indicating some level of reciprocated interaction between the parties)." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "knows" ;
	rdfs:range foaf:Person .

foaf:lastName
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "The last name of a person." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "lastName" ;
	rdfs:range rdfs:Literal .

foaf:logo
	a rdf:Property ,
		owl:InverseFunctionalProperty ,
		owl:ObjectProperty ;
	rdfs:comment "A logo representing some thing." ;
	rdfs:domain owl:Thing ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "logo" ;
	rdfs:range owl:Thing .

foaf:made
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "Something that was made by this agent." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "made" ;
	rdfs:range owl:Thing ;
	owl:inverseOf foaf:maker .

foaf:maker
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "An agent that made this thing." ;
	rdfs:domain owl:Thing ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "maker" ;
	rdfs:range foaf:Agent ;
	owl:equivalentProperty dcterms:creator ;
	owl:inverseOf foaf:made .

foaf:mbox
	a rdf:Property ,
		owl:InverseFunctionalProperty ,
		owl:ObjectProperty ;
	rdfs:comment """A personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox. This is a 'static inverse functional property', in that there is (across time and change) at most one individual that ever has any particular value for foaf:mbox.""" ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "personal mailbox" ;
	rdfs:range owl:Thing .

foaf:mbox_sha1sum
	a rdf:Property ,
		owl:DatatypeProperty ,
		owl:InverseFunctionalProperty ;
	rdfs:comment "The sha1sum of the URI of an Internet mailbox associated with exactly one owner, the first owner of the mailbox." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "sha1sum of a personal mailbox URI name" ;
	rdfs:range rdfs:Literal .

foaf:member
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "Indicates a member of a Group" ;
	rdfs:domain foaf:Group ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "member" ;
	rdfs:range foaf:Agent .

foaf:membershipClass
	a rdf:Property ,
		owl:AnnotationProperty ;
	rdfs:comment "Indicates the class of individuals that are a member of a Group" ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "membershipClass" .

foaf:msnChatID
	a rdf:Property ,
		owl:DatatypeProperty ,
		owl:InverseFunctionalProperty ;
	rdfs:comment "An MSN chat ID" ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "MSN chat ID" ;
	rdfs:range rdfs:Literal ;
	rdfs:subPropertyOf foaf:nick .

foaf:myersBriggs
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "A Myers Briggs (MBTI) personality classification." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "myersBriggs" ;
	rdfs:range rdfs:Literal .

foaf:name
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "A name for some thing." ;
	rdfs:domain owl:Thing ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "name" ;
	rdfs:range rdfs:Literal ;
	rdfs:subPropertyOf rdfs:label .

foaf:nick
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "A short informal nickname characterising an agent (includes login identifiers, IRC and other chat nicknames)." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "nickname" .

foaf:openid
	a rdf:Property ,
		owl:InverseFunctionalProperty ,
		owl:ObjectProperty ;
	rdfs:comment "An OpenID for an Agent." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "openid" ;
	rdfs:range foaf:Document ;
	rdfs:subPropertyOf foaf:isPrimaryTopicOf .

foaf:page
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A page or document about this thing." ;
	rdfs:domain owl:Thing ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "page" ;
	rdfs:range foaf:Document ;
	owl:inverseOf foaf:topic .

foaf:pastProject
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A project this person has previously worked on." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "past project" ;
	rdfs:range owl:Thing .

foaf:phone
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A phone, specified using fully qualified tel: URI scheme (refs: http://www.w3.org/Addressing/schemes.html#tel)." ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "phone" .

foaf:plan
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment """A .plan comment, in the tradition of finger and '.plan' files.""" ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "plan" ;
	rdfs:range rdfs:Literal .

foaf:primaryTopic
	a rdf:Property ,
		owl:FunctionalProperty ,
		owl:ObjectProperty ;
	rdfs:comment "The primary topic of some page or document." ;
	rdfs:domain foaf:Document ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "primary topic" ;
	rdfs:range owl:Thing ;
	owl:inverseOf foaf:isPrimaryTopicOf .

foaf:publications
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A link to the publications of this person." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "publications" ;
	rdfs:range foaf:Document .

foaf:schoolHomepage
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A homepage of a school attended by the person." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "schoolHomepage" ;
	rdfs:range foaf:Document .

foaf:sha1
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "A sha1sum hash, in hex." ;
	rdfs:domain foaf:Document ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "sha1sum (hex)" .

foaf:skypeID
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "A Skype ID" ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Skype ID" ;
	rdfs:range rdfs:Literal ;
	rdfs:subPropertyOf foaf:nick .

foaf:status
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "A string expressing what the user is happy for the general public (normally) to know about their current activity." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "status" ;
	rdfs:range rdfs:Literal .

foaf:thumbnail
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A derived thumbnail image." ;
	rdfs:domain foaf:Image ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "thumbnail" ;
	rdfs:range foaf:Image .

foaf:tipjar
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A tipjar document for this agent, describing means for payment and reward." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "tipjar" ;
	rdfs:range foaf:Document ;
	rdfs:subPropertyOf foaf:page .

foaf:title
	a rdf:Property ,
		owl:DatatypeProperty ;
	rdfs:comment "Title (Mr, Mrs, Ms, Dr. etc)" ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "title" .

foaf:topic
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A topic of some page or document." ;
	rdfs:domain foaf:Document ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "topic" ;
	rdfs:range owl:Thing ;
	owl:inverseOf foaf:page .

foaf:topic_interest
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A thing of interest to this person." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "topic_interest" ;
	rdfs:range owl:Thing .

foaf:weblog
	a rdf:Property ,
		owl:InverseFunctionalProperty ,
		owl:ObjectProperty ;
	rdfs:comment "A weblog of some thing (whether person, group, company etc.)." ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "weblog" ;
	rdfs:range foaf:Document ;
	rdfs:subPropertyOf foaf:page .

foaf:workInfoHomepage
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A work info homepage of some person; a page about their work for some organization." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "work info homepage" ;
	rdfs:range foaf:Document .

foaf:workplaceHomepage
	a rdf:Property ,
		owl:ObjectProperty ;
	rdfs:comment "A workplace homepage of some person; the homepage of an organization they work for." ;
	rdfs:domain foaf:Person ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "workplace homepage" ;
	rdfs:range foaf:Document .

foaf:yahooChatID
	a rdf:Property ,
		owl:DatatypeProperty ,
		owl:InverseFunctionalProperty ;
	rdfs:comment "A Yahoo chat ID" ;
	rdfs:domain foaf:Agent ;
	rdfs:isDefinedBy foaf: ;
	rdfs:label "Yahoo chat ID" ;
	rdfs:range rdfs:Literal ;
	rdfs:subPropertyOf foaf:nick .

