@prefix dc: <http://purl.org/dc/elements/1.1/>.
<> dc:Author "Sandro Hawke, sandro@w3.org";
   dc:Description """

       Describes an RDF vocabulary for data about for people working
       on shared or related activities, particularly as needed for
       semantic web software development at the W3C.

       <p> This is how I model work: actors (mostly people) perform
       actions (mostly creating and modifying digital content) and
       talk to each other in many ways.  The work products are mostly
       computer software systems and specifications for such systems.
    """;
    dc:Description """

       <strong>
          STILL PRE-RELEASE -- DO *NOT* CONSIDER THE CONTENTS STABLE 
          OR PARTICULARLY WELL-THOUGHT-OUT IN ALL PARTS!
       </strong>

   """.

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix daml: <http://www.daml.org/2001/03/daml+oil#>.
@prefix rx: <http://www.w3.org/2002/05/rx/v1#>.
# @prefix prov < ... who said it?  when?  where/how ... >.
# @prefix time < ... point in time, duration, ... >.

@prefix cw: <http://www.w3.org/2002/05/cowork/v1#>.
@prefix : <http://www.w3.org/2002/05/cowork/v1#>.

<> daml:imports <http://www.daml.org/2001/03/daml+oil>;
   daml:versionInfo "$Id: v1.n3,v 1.5 2002/05/28 18:48:40 sandro Exp $";
   rdfs:seeAlso <http://www.w3.org/2002/05/cowork/>.

# this stuff is mostly covered over in 2000/01/sw, but it should
# move over here....

#
#
#
# ACTIONS
#
#
#

:Action a rdfs:Class.
:Project a rdfs:Class.
:PromisedAction a rdfs:Class.
:PlannedAction a rdfs:Class.
:CompletedAction a rdfs:Class.

:ActionItem
    rx:cdef """An action which a person has committed to do, 
               in some forum, with an expectation of reporting
               completion to that same forum, usually within a few
               weeks""";  
    rx:subclass :PendingActionItem, 
		:CompletedActionItem,
		:CancelledActionItem.
:by 
    rx:pdef """A person (actor) who did, does, or plans to perform the subject
               Action""";
    rdfs:domain :Action;
    rdfs:range :Actor.

:accepted
    rx:pdef """A forum in which the subject ActionItem was agreed-to""";
    rdfs:domain :ActionItem;
    rdfs:range :Forum;
    rx:note "Or is this provenance???".

# goals?   deadlines?
#
#   if the action is to achieve some goal, then typically the
#   goal has the deadline, not the action.

#   currentAssignment    (person/project)
#      or: which projects are "current" and 
#      if it's only current for one person, then
#      make a subProject current, and only for that person.       


#
#
#
# ACTORS
#
#
#

:Actor a rdfs:Class.
:Person a rdfs:Class.
:Organization a rdfs:Class.

:todo :pdef "An action the subject actor is expected to complete soon".
:done :pdef "An action the subject actor has completed".

#  person:sandro cw:todo [ is :subproject of project:foo ].
#         aka   plannedAction    expectedAction   desiredAction
#        and    completeAction

#
#
#
# DECISIONS, ISSUES, PLANNING
#
#
#

:Discussion a rdfs:Class.

#  Hrm.   Maybe an AgendaItem is itself a Forum.
:AgendaItem a rdfs:Class;
    rdfs:subClassOf :Context;
    rx:equal :Agendum;	    
    rx:cdef """an event (such as a real-time discussion) scheduled as
            part of some meeting."""; 
    :note """has a Meeting, a Subject, times stuff, people stuff,
	  maybe a title overriding the subject's.  My be floating
	  without a meeting, I suppose.  I guess the meeting has
	  agendaItems, really.""";
    :note """Conceptually, it's very similar to a thread, somehow""".
:agendaItem
    rx:pdef """An AgendaItem which is on the Agenda of the subject Meeting""";
    rdfs:domain :Meeting;
    rdfs:range :AgendaItem.
:title
    rdfs:range rx:Comment.
:subject
    rx:pdef """a main thing discussed in a Forum""";
    rdfs:domain :Forum.

:Decision a rdfs:Class.
:Question a rdfs:Class.
:Answer a rdfs:Class.

#
#
#
# COMMUNICATIONS MEDIA          (how much to roll this into URIs?)
#
#
# Where/when was something said?  Where/when will it be discussed?
# (venue, locale, site, ?  forum?  )
#
#    where [Location], where+when [Meeting, Discussion]
#

:Forum :equal :Context.    # or maybe we can draw a distinction?

:Context
    rx:cdef """a situation or context, in one or more communications
    media, where information can be passed between parties""";
    rx:subclass :Meeting, 
		:MeetingSeries,
		:WebSite,
		:MailingList,
		:MailMessage,
		:IRCChannel,
		:TeleconferenceChannel,
		:Room.

:summary
    rx:pdef """a relatively brief description of what was said, like
             an abstract for a scientific publication""";
    rdfs:domain :Context;
    rdfs:range rx:Comment.
:teaser
    rx:pdef """a relatively brief description of what is expected to
             be said, sometimes phrased provocatively, and perhaps
             including a little background.""";
    rx:note """After the title, this should be the part we can most
             expect someone to have read.   We may have links to more
	     detailed background material, but they are likely to be
             displayed on another page.""";
    rdfs:domain :Context;
    rdfs:range rx:Comment.

:subcontext 
    rx:pdef """a context which is entirely within the subject context""";
    rdfs:domain :Context;
    rdfs:range :Context;
    rx:note """an agenda item is a subcontext of a meeting, 
	    a mail message might be a subcontext of a mailing list,
	    a subcommittee is a subcontext of a committee (if
	    you're viewing the committee as a context instea   d
	    of a group of people, as we well might.)""".

:ircLogStart
    rx:pdef """A point in an IRC log marking the start of IRC events 
	       contained in the subject context""";
    rdfs:domain :Context;
    rx:note """Somewhat informal, since we don't assume any particular
	       IRC ontology.""";
    rx:note """IRC events are not always perfectly well ordered; these
	       pointers should be taken with a grain of salt""".	       
# presumably we want ircLogStop and ircEventList or something?

#
#
#
# WORK PRODUCTS       (creations, digital content, artifact)
#
#
#

:Creation a rdfs:Class.
:DigitalCreation a rdfs:Class.   # or is this our default
:Specification a rdfs:Class.
:UseCase a rdfs:Class.
:TestCase a rdfs:Class.
:Scenario a rdfs:Class;
    rx:cdef """a story illustrating a #UseCase by filling in vivid (but
    often fictitious) instance details, such as names and
    motivations for actors""";
    rx:note """can sometimes make a #UseCase much easier to understand.""".
:AbstractDigitalCreation a rdfs:Class.    # a class of files?  WorkProduct?

#
#
#
# SUBJECTS FOR DISCUSSION
#
#
#

:Technique a rdfs:Class.
:System a rdfs:Class.
:Behavior a rdfs:Class.


