The Rein Policy Framework for the Semantic Web*
Latest Version : http://dig.csail.mit.edu/2006/06/rein/
This Version : http://dig.csail.mit.edu/2006/06/rein/
Previous Version : http://dig.csail.mit.edu/2005/09/rein/
Rein (pronounced rain) is a framework for representing and reasoning
over policies in the Semantic Web. Rein (Rei and N3)
uses high level
Rei concepts for policies and
N3 logic to
connect these policies to each other and the Web.
Rein is a Web-based policy management framework, which exploits the
inherently decentralized and open nature of the Web by allowing
policies, meta-policies, and policy languages to be combined,
extended, and otherwise handled in the same scalable, modular manner
as are any Web resources. Resources, their policies and meta-policies,
the policy languages used, and their relationships together form
Rein policy networks. Rein allows entities in these policy networks
to be located on local or remote Web servers as long as they are
accessible via Hypertext Transfer Protocol (HTTP). It also allows
these entities to be defined in terms of one other using their Uniform
Resource Identifiers (URI). Rein policy networks are
described using Rein ontologies and these distributed but linked
descriptions are collected off the Web by the Rein engine and are
reasoned over to provide policy decisions.
Rein does NOT propose a single policy language for describing
policies. It allows every user to potentially have her own policy
language or re-use an existing language and if required, a meta
policy. Rein provides ontologies for describing Rein policy networks
and provides mechanisms for reasoning over them. The ontologies and
reasoning mechanisms work with any policy language and domain
knowledge defined in RDF-S, OWL, or supported rule languages.
Some of the main contributions of Rein include
- Rein is a
Web-based approach to representing and reasoning over policies for Web
resources. It promotes extensibility and reusability as it allows
every policy to use its own policy language and meta-policy or re-use
or extend existing policy languages and meta-policies.
- Rein is
flexible with respect to how sophisticated or expressive policies can
- Rein provides a unified mechanism for reasoning over Rein
policy networks to make policy decisions.
- Rein supports
compartmentalized policy development by allowing a division of
responsibilities between different parties with different roles and
skills. Designing policy languages, writing meta-policies associated
with policy languages, developing policies, and enforcing policies are
all modular tasks. This allows policy developers to make frequent
changes at their high level of understanding without requiring any
other changes to the system.
- All information required to make the
policy decision is described within or linked to from the entities in
the resource's policy network making our framework self-describing.
- Download cwm from the public w3c CVS repository
- Install cwm
- The Rein reasoning engine can be run off the web
There are four pictures defined in troop42 (RDF, N3) each of which has its own policy.
- http://demo.policyawareweb.org/images/group.jpg (policy)
- http://demo.policyawareweb.org/images/camping.jpg (policy)
- http://demo.policyawareweb.org/images/award.jpg (policy)
- http://demo.policyawareweb.org/images/alice-award.jpg (policy)
Example 1 (for cwm testing)
Judy makes a request for a certain picture,
group.jpg. The request includes Judy's secret key which is used for authenticating
her. Judy attended the meeting at which the picture was taken, so she
is permitted to view the picture. This request is valid under the policy
of the resource.
- To run the example (about 16secs)
http://dig.csail.mit.edu/2006/06/rein/engine.n3 --think --filter="http://dig.csail.mit.edu/2006/06/rein/filter.n3"
If cwm was installed correctly, the following is the output
#Processed by Id: cwm.py,v 1.186 2006/07/07 03:30:52 syosi Exp
# using base file:/Users/lkagal1/Research/dig-repos/rein/
# Notation3 generation by
# notation3.py,v 1.190 2006/07/10 14:20:31 syosi Exp
# Base was: file:/Users/lkagal1/Research/dig-repos/rein/
@prefix : <http://dig.csail.mit.edu/2005/09/rein/network#> .
@prefix http: <http://dig.csail.mit.edu/2005/09/rein/examples/http-access#> .
[ a :Request;
http:can-get <http://demo.policyawareweb.org/images/group.jpg> ];
:resource <http://demo.policyawareweb.org/images/group.jpg> ].
- To generate the proof (about 1min24secs)
cwm http://dig.csail.mit.edu/2006/06/rein/example/judy-req.n3 http://dig.csail.mit.edu/2006/06/rein/engine.n3 --think --filter="http://dig.csail.mit.edu/2006/06/rein/filter.n3" --base=foo --why > judy.proof
Example 2 (for demo)
An example with a policy and a simplified engine.
- To run this example
cwm http://dig.csail.mit.edu/2006/06/rein/src/lean-req.n3 http://dig.csail.mit.edu/2006/06/rein/src/lean-engine.n3 --think --filter="http://dig.csail.mit.edu/2006/06/rein/src/lean-filter.n3"
- To generate proof
cwm http://dig.csail.mit.edu/2006/06/rein/src/lean-req.n3 http://dig.csail.mit.edu/2006/06/rein/src/lean-engine.n3 --filter="http://dig.csail.mit.edu/2006/06/rein/src/lean-filter.n3" --think --base=foo --why > lean.proof
- To check proof
python (CWM)/check.py lean.proof
- Lalana Kagal, Tim Berners-Lee, Dan Connolly, and Daniel Weitzner, Using Semantic Web Technologies for Policy Management on the
Web, 21st National Conference on Artificial Intelligence (AAAI), July 16 - 20, 2006.
- Lalana Kagal, Tim Berners-Lee, Dan Connolly, and Daniel Weitzner, Self-describing Delegation Networks for the Web, IEEE Workshop on Policy for Distributed Systems and Networks (IEEE Policy), 5 - 7 June 2006.
Rei - An owl-based policy language for Distributed Environments
N3 - Notation3 - Design Issues article
N3 Rules - Experience with N3 rules
Cwm - A general purpose reasoner for
the Semantic Web
Policy Aware Web : a project that uses Rein
maintained by Lalana Kagal
$Revision: 1783 $
$Date: 2006-07-28 17:34:55 -0400 (Fri, 28 Jul 2006) $
*This work is sponsored by the National Science Foundation (Awards 0427275 and 0524481).