@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix : <http://dig.csail.mit.edu/2009/04/socialcomputing#> .
@keywords a, is, of.

<> dc:creator <http://dig.csail.mit.edu/People/kennyluck#I>;
   rdfs:comment """a miscellaneous vocabulary for the social computing paper <http://dig.csail.mit.edu/2009/Papers/SocialComp/SocialCom> """.

#First of all, rules, you should not make a vocabulary before you write any rule

{?person geo:location ?subpartA. 
 ?person desired_thing ?thing. 
  ?office subpart ?subpartA, ?subpartB. 
  ?subpartB offerable_thing ?thing } => 

{[ a DisplacementEvent; 
   object ?thing; 
   from_place ?subpartB; 
   to_person ?person]} .

{?event a DisplacementEvent. ?event object ?object. ?event from_place ?place. ?event
to_person ?personA.
 ?personB geo:location ?from. ?personB foaf:knows ?personA.} =>
{[a BringingEvent; object ?object; sender ?personB; receiver ?personA]} . 

#Here starts the properties. socialcomp is the preferred namespace

#The difference between the static property geo:location and the dynamic notion 
#of 'current' location is subtle. Related to issue in knowledge engineering, 
#I guess.  
geo:location rdfs:label "current location".

desired_thing a owl:ObjectProperty;
	      rdfs:label "desired thing", "want";
	      rdfs:domain foaf:Person;
	      rdfs:comment """The class of the thing the person want, not the
                              particular object. I wonder how subtle this is""".

#I create this property for restricting the displacement events, so that ?office
#won't get bound to the US or something. There is the formal approach, but 
#I think this is sort of hard to understand:
#   1.  Use  geo:location for all the spactial things
#         
#             Kenny location his_desk
#             his_desk location 32-G515
#             drawer location 32-G515
#
#       This makes a lot more sense. ex. The pencil in the pencialbox in the bag
#       in the drawer ...
#   2.  Use an extra guard 'the diameter of the office < 20m'
#
#
#   Anyway, all these point to the fact 'This paper should get published sooner
#   and get all AI people's attention'
subpart a owl:ObjectProperty;
	rdfs:label "subpart".

offerable_thing a owl:ObjectProperty;
		rdfs:label "offerable thing", "can provide";
		rdfs:comment """The class of the thing that the subject can provide""".

lendable_thing a owl:ObjectProperty;
	       rdfs:label "lendable thing", "can lend";
	       rdfs:comment """The class of the thing that the subject can lend""".

# The difficult part of all thest. The complexity of the world. The thing that's
# hard with pure forward-chain reasoning without negation. The place where we
# really need research on TMS.

# The events are those that 'should' happen but whether it will happen is a 
# separate issue
status a owl:Property;
       rdfs:domain Event.
