From srn@techno.com Tue Sep  1 19:03:37 1992
Return-Path: <srn@techno.com>
Received: by scribe.ora.com (5.65c/Spike-2.1)
	id AA26560; Tue, 1 Sep 1992 19:03:35 -0700
Received: from relay2.UU.NET by ora.com (5.65c/Spike-2.1)
	id AA09652; Tue, 1 Sep 1992 16:13:09 -0400
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay2.UU.NET with SMTP 
	(5.61/UUNET-internet-primary) id AA15215; Tue, 1 Sep 92 16:13:12 -0400
Received: from elvin.UUCP by uunet.uu.net with UUCP/RMAIL
	(queueing-rmail) id 161050.29053; Tue, 1 Sep 1992 16:10:50 EDT
Received: by elvin.techno.com (4.1/1.00) id AA06429; Tue, 1 Sep 92 15:59:45 EDT
Date: Tue, 1 Sep 92 15:59:45 EDT
From: Steven R. Newcomb <srn@techno.com>
Message-Id: <9209011959.AA06429@elvin.techno.com>
To: dale@ora.com
Subject: Dav Grp notes 5
Status: OR

********************************************************************************
filename=policy
********************************************************************************
"Policy" defined: (thanks to D.  Hollander) 
1.  Owner's law. (see below) 
2.  Author's suggestions/advice to be interpreted according to
user's best judgment. 

.	Instrumentation regarding whether the policy was actually followed.
.	"Skip chapter 1 if you already have the basic knowledge."
.	Contextually altered response by document.  Automated guidance thru doc.
	.	User's technical context is one part of context.
		.	Is user currently using csh or bash? 
	.	Knapsack is one part of context.  Tokens in knapsack:
		.	Does user use csh or cSh?
	.	Do something different if you've been here before.	
	.	Allow user override of alteration of response due to context, etc.


decision tree mechanism: may appear in an activity element or elsewhere.
Variables that may affect decisions demanded by decision trees include:
	policy (owner's law).
	distributor's preferences/variables.
	author intent.
	author's advice.
	user preferences.
	user choice.
	user's history (knapsack).  Activity policies can ask to 
		have things added to knapsack, 
		have things deleted from knapsack,
		know whether something is in the knapsack, or
		know what's in the knapsack.
		(should we design a knapsack dtd? 1: whatcha got, and 2: whaddya know)
	environment variables.
	environmental constraints.

	mechanism is an ilink whose endterms are activity tracking elements
	that contain choiceSigs.  The anchors can also have activity attributes
	that point to the same or different activity tracking elements.  
	All constraints must be satisfied before access is allowed.  Some
	rule is needed to  avoid recording access twice or charging double.
Prerequisites:	
	permissions:	are inherent: derive from ownership or membership,
					break down by roles; or they are granted by others:
					security clearance.
	experiences: 	previous exposure(s).
	relevance: 		validity/effectivity of the data with respect to the
					current circumstances: version, user's environment
					(including local vs. remote access) & system configuration
	user preferences: does user want to use Motif? French language? 
	
m.actman  (operator, datum)
operator  (record | erase | query)
%%%% datum (seenThis | hasAccess | owesNothing | isTimely | hasClearance )
datum (permission | experience | relevance | preference)


<!ENTITY % m.actdat "dav.permission | dav.experience | dav.relevance | dav.preference"
<!ENTITY % m.actman "((%m.actop;), (%m.actdat)+)+"

<!element dav.knapsackOperator - - (query | record | erase) >
<!attlist dav.knapsackOperator

<!element dav.permission - - EMPTY >
<!attlist dav.permission
	permit	NAMES #REQUIRED -- some combo of: (read|write|create|delete|link|unlink)  --
>
<!element dav.activityManager.activity 
-- The expression of the owner's and/or author's intent with respect to the
use of the information. --
- - (#PCDATA) -- qualifies the query -->
<!attlist dav.activityManager.activity
		Davnport	NAME		#FIXED		dav.activityManager.activity
		HyTime 		NAME		#FIXED		activity
		id			ID			#REQUIRED
		op		(record | erase | query)	#REQUIRED
		class	(permission|experience|relevance|preference)	#REQUIRED
		value		IDREFS		#IMPLIED >

<actman>
	<kop query notation=ENGLISH>does the user have?</kop>
	<datum op=query permit=write>
</actman>

<!ELEMENT

Possible values of permit:
A	access (read)
M	modify (write)
C	create
D	delete
L	linkto
		annotation
		quote
		derive
U	unlinkto

Possible values of action:
AMCDLU		force display of warnings, etc.
AMCDLU		financial: 		charge royalty and pay owner
			notifications
AMCLU			register user to owner
			instrumentation
AMCLU			register whence user arrived here
A				register where user went

Sample Policy: "To access this document, the user must be
presented the title, author, and copyright notice, and must be
authorized to access it."

<!ELEMENT permit - - (condition*, allowthis)+
 -- if no condition, the permission is granted. -->
<!ATTLIST permit
				Davnport	NAME		#FIXED		dav.policy.activity
				HyTime 		NAME		#FIXED		activity
				actype		NAMES		#IMPLIED	"access"
				id			ID			#REQUIRED
				what		(preview | nologo | read)
>
<!ELEMENT action - - (condition*, dothis)+
 -- if no condition, the action must be done -->
<!ATTLIST action
				Davnport	NAME		#FIXED		dav.policy.activity
				HyTime 		NAME		#FIXED		activity
				actype		NAMES		#IMPLIED	"access"
				id			ID			#REQUIRED
				action		()
>

<!ELEMENT condition - - (NDATA)+ -- a question with a true or false answer -- >
<!ATTLIST condition
				notation	NAME		#IMPLIED
>
<!ELEMENT action - - (%HyBrid;)* >
<!ATTLIST action
				type		(display|other)			display
				conloc		IDREFS		#CONREF		>
<!ELEMENT permit - - (%HyBrid;)* >
<!ATTLIST permit
				type		(display|other)			display
				conloc		IDREFS		#CONREF		
>
<!NOTATION	securequery SYSTEM "/usr/bin/securequery">
<mydoc HyTime=HyDoc activity="access1 access2">
	<accespol id=access1><action conloc="t1 a1 c1">
	<accespol id=access2><condition notation=securequery>securelevel less than 3
		<permit>j
	<title id=t1>What's wrong with my dog.
	<author id=a1>David Hollander
	<copyright id=c1>1992 H-P
	<para>My Dog has fleas.
</mydoc>


Permissions to be granted:


Actions/Prerequisites for permissions:

notification
accreditation
authorization
authentication
registration
billing
instrumentation
	measurement
	tracking


Payment:

Time -> duration -> metered
unit -> how much did you read
subscription
processing loads
absolute value




offer  (prereq*, permit*)

prereq (to learn about the offer)

	prereq (the offer itself)
		conditions
			price
				payment terms
				issuance of credit
				special price on account of who you are, what coupons you have
				taxes
			security
				group membership
			user registration
			endure exhibition of obnoxious advert

permit
	learn about the offer's existence
	subsidiary rights
		movie rights, character licensing, etc.
	modify
		edit
		abridge
		censor
		augment
	copy
								source copy
								formatted instance copy
		print out for own use
		reprint for others
		fair use
			quote in critical reviews
			quote in extenso in critical reviews
		save image for backup and/or personal use
	annotate
	publish
		buy
		lease
		include in anthology; include in bounded object set (BOS) of hyperdoc
		unattributed inclusion
		reprint for resale
		publish with annotations, augmentations, diminutions, variations, etc.
	translate
	browse
		content based billing
		time based billing
		perform
			public performance
		run
		play
	preview/summary/abstract/guided tour/toc
	description (catalog)
	outline

markup
bibliographic info (editions, owner, title)
indexing
search

	



