<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Fast Semantic Attribute-Role-Based Access Control (ARBAC)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Leo Obrst</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dru McCandless</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Ferrell</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>The MITRE Corporation</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>McLean</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Colorado Springs</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>lobrst</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>mccandless</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ferrell}@mitre.org</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2013</year>
      </pub-date>
      <fpage>3</fpage>
      <lpage>10</lpage>
      <abstract>
        <p>-We report on our research effort, called Fast Semantic Attribute-Role-Based Access Control (ARBAC), to develop a semantic platform-independent framework enabling information originators and security administrators to specify access rights to information consistently and completely, in a social network environment, and then to rigorously enforce that specification. We use a modified ARBAC security model and an OWL ontology with additional rules in a logic programming and Java framework to express access policy, going beyond the limitations of previous attempts in this vein. We also experimented with knowledge compilation optimizing techniques that allow access policy constraint checking to be implemented in real-time, via a bit-vector encoding that can be used for rapid run-time reasoning. Approved for Public Release; Distribution Unlimited. 13-3295</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Index Terms—access control policy, attribute-based,
rolebased, Semantic Web, logic programming, knowledge
compilation, social network, ontology, rule-based reasoning</p>
      <p>I. INTRODUCTION</p>
      <p>
        This paper is a report of our effort to provide a semantic
platform-independent framework so that information
originators and security administrators can specify access rights
to information consistently and completely, in a social network
environment, and then to rigorously enforce that specification.
In previous work [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], we discussed the architecture and some
issues with optimization. In this paper, we introduce the
architecture (adapted from [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]), but focus more on the
optimization and implementation issues; as such, this paper can
be viewed as a follow-on to [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>For many sensitivity, privacy, and proprietary reasons,
information sharing cannot be totally open. This is especially
true for collaborative social environments such as the emerging
MITRE Partnership Network (MPN), a large-scale
environment for group-based (social network) information
sharing among disparate governmental, commercial, academic,
and other communities.</p>
      <p>In addition, it is difficult to enforce unambiguous access
rights and information privileges consistently and coherently
and apply the access rules correctly and efficiently.</p>
      <p>In a collaborative social environment, access control of
information protecting privacy, security, and also enabling a
complex range of policy respecting those requirements, is
difficult.</p>
      <p>To accomplish these objectives it is necessary to link a
security policy model to a policy language with sufficient
expressive power to ensure logical consistency. We used a
modified Attribute-Role-Based Access Control (ARBAC)
security model and an OWL ontology with additional rules in a
logic programming framework to express access policy, going
beyond the limitations of previous attempts in this vein, and
then optimized with bit-vectors the runtime policy checking
inference.</p>
      <p>We focused on three aspects: expressivity, adaptability, and
efficiency. We developed two implementations: one that
transforms the policy model instance into a logic programming
execution environment that includes rules; and a second that
transforms the model instance into Java data structures, that in
turn are optimized via a bit-encoding. In both cases, the
prototype was embedded in a Java program that interfaces with
external services, e.g., obtaining identity and access tokens
(and their specific attribute information) from the
authentication service.</p>
      <p>The structure of the rest of the paper is as follows. In
section II, we present the overall architecture and describe the
runtime components. Then in section III, we briefly walk
through the processing involved, followed in section IV by a
discussion of the implementation. Section V addresses the
optimization issues. We introduce related work in section VI,
and finally, in section VII, we propose future directions.</p>
      <p>II. SYSTEM ARCHITECTURE AND RUNTIME COMPONENTS
The general system architecture of the semantic ARBAC
system is represented in Figure 1. It consists of three processes
which flow from left to right. The three processes are: 1) the
Development time process; 2) the Transformation time process;
and 3) the Execution (runtime) process.</p>
      <p>The Development process (the red rounded rectangle in
Figure 1) involves:
1) The creation (or update) of the ARBAC ontology,
represented in OWL and RDF, i.e., the semantic policy
model (SPM); and
2) The instantiation of the specific ARBAC policy (policies)
to be transformed and deployed, i.e., the semantic policy
instance (SPI). This is an instance of the semantic policy
model.</p>
      <p>The Transformation process (the yellow rounded rectangle
in Figure 1) involves developing and/or generating in Prolog
and Java:
1) The transformer interpreter that will take the SPI and
generate the runtime semantic policy instance (RSPI),
which is the bit-vector representation of the policy +
rules;
2) The attribute signature assignment engine (ASAE) which
generates and updates the resource access registry (RAR);
3) The RAR, which captures the attributes of the resources
in bit-vector representation, indexed by resource URI;
4) The runtime user access routine (RUAR);
5) The runtime inference engine (RTIE) which will execute
the RSPI using the RUAR.</p>
      <p>The Transformation process can thus be considered a
knowledge compilation process, where source semantic
models and their interpreting engines get transformed to
efficient Execution time process objects.</p>
      <p>The Execution process (the blue rounded rectangle in
Figure 1) thus includes the RAR, ASAE, RTIE, and the RUAR,
in addition to access to the Development and Transformation
models and data.</p>
    </sec>
    <sec id="sec-2">
      <title>A. Semantic Policy Model (SPM)</title>
      <p>The SPM consists of the OWL ontology classes, object
properties, and data properties. The major classes consist of:
Subject (the person, organization, software that requests
specific access to a resource), Action (the kind of access
requested, e.g., read, write, create, delete, execute, etc.),
Resource (the object needing to be accessed by a subject:
executable, graphic, text, sound, video, hardware, etc.),
Environment (salient  aspects  of  the  space  or  session’s 
environment, e.g., risk or alert level, entry network domain),
Role (traditional roles such as administrator, expert, end user,
developer, etc., that are also related to groups), and related
notions: Authentication (how  one  authenticates  one’s  identity 
and  so,  derivatively,  one’s  potential  access  rights) , Security
(can span information security notions such as protocols,
standards, user- and group-level passwords, encryption
methods, hashing algorithms and values, etc.), Classification
Level (proprietary, sensitive, confidential, secret, top-secret,
etc.), Identity (Public Key Infrastructure [PKI], digital
certificates, etc.), Time (time-stamps, time intervals with
respect to various policy notions), etc.</p>
      <p>In addition, rules are a very important component of the
semantic policy model (SPM). Rules exist outside of the OWL
ontology per se, but are based on the classes and properties
specified in the ontology. Rules were expressed initially in
Prolog, and then in Java code for the second prototype. Rules
are potentially recursive and express logical constraints among
and across class and property values (instances). Some
examples are given below.</p>
      <p>The SPM represents a set of generic semantic components
for ARBAC policy, and thus constitutes a family of potential
specific ARBAC instantiations.</p>
    </sec>
    <sec id="sec-3">
      <title>B. Other Components of the Architecture</title>
      <p>
        For more detailed descriptions of other components of the
architecture, including the SPI, RSPI, RAR, ASAE, RIE,
RUAR, the OWL parser, and external service interface, we
direct interested readers to [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>III. ACCESS DECISION PROCESS FLOW AND WALKTHROUGH
The following depicts the access decision process flow.</p>
      <p>Initially, the Policy/Rules KB is read and loaded
(including any general rules that apply to all
circumstances) by the inference engine.</p>
      <p>Then a request comes in containing the Subject,
Resource, Action, and Environment.</p>
      <p>The  Subject’s  Group  membership  is  looked  up  and 
formed.</p>
      <p>An initial Resource/Group/Access check may be
performed.</p>
      <p>For some common accesses these may be cached, or
may require no further processing if a quick decision
can be made.</p>
      <p>Otherwise, the appropriate rule set is generated and
populated with: any referenced access rule (pre-filtered
to keep the KB small and fast), all facts about the
Subject, Resource, Groups, and Environment, and
General (generally applicable) rules.
The rule set is passed to a runtime inference engine
which evaluates the truth of the permission statement
(something along the lines of allow(Subject, Access,
Resource)).</p>
      <p>The Inference Engine passes back the permission
decision.</p>
      <p>The semantic policy model (SPM) is the holder of much of
the underlying knowledge. Its contents include:</p>
      <p>Ontology
Access Rules
Group Membership Rules</p>
      <p>General Rules</p>
      <p>The Access Rules ultimately determine whether an action
can be performed on a resource (a ‘Privilege’  to  denote  the 
pairing of actions and resources); each rule has three parts:
1. The head, or consequence, which is always a
privilege (e.g., hasPrivilege(subject22,
read,medicalRecord66) ). This leaves the body of the
rule which for convenience is broken into 2 parts:
2. The Group membership required to obtain the
privilege, and
3. Any additional requirements, expressed in terms of
environment variables.</p>
      <p>Example:
hasPrivilege(Subject, Action, Resource)
agent(Subject), member(Subject, Group),
environmentalConstraints(Group, Action, Resource,
Environment), groupWithPrivilege(Group, Action,
Resource, Environment).</p>
      <p>Premises:</p>
      <p>All access decisions can be expressed as a
privilege requirements rule.</p>
      <p>All role or subject attributes can be expressed as
group membership.</p>
      <p>Group membership is both dynamic and contextual.
Resources and their attributes are known a priori. If
resources and attributes can change arbitrarily
dynamically, this will decrease performance.</p>
      <p>Knowledge of four things is used to resolve a permission
question:
1. The Subject (the entity requesting the permission)
2. The Resource that the Subject is requesting
permission about
3. The Action that the Subject wishes to perform
4. The Environment, which is a set of facts/assertions
that the rules may take into account in order to make
a permission determination.</p>
      <p>The result will be either a yes or no answer as to whether
permission is granted.</p>
      <p>The access rules can have fairly complicated group
membership conditions (e.g., a doctor who is an associate of a
patient’s  primary  care  physician  can  have  read access to that
patient’s  medical  record).    Therefore,  determining  group 
membership may rely on a number of General Rules to help
resolve the inferences (e.g., a doctor may be a member of a
group; if another doctor is also a member of that group, then
that doctor is an associate of the first doctor, etc.). By making
group membership dynamic we can keep the access rules
general.</p>
      <p>IV. IMPLEMENTATION</p>
      <p>The Fast Semantic ARBAC software prototype was
designed to show how a system could quickly make access
decisions based on the attribute values of the requesting agent.
How the agent obtained the attribute values is outside the
scope of the prototype; the ARBAC system is provided these
from a separate source, projected to be a session authentication
token (with a prescribed lifespan), that points to the attribute
store, which has been obtained and encoded by the ARBAC
system.</p>
      <p>To achieve this, five conceptual classes were defined that
constitute  the  “ARBAC  view”  of  the  world:    Agents, 
Resources, Groups, ResourceCollections, and Policies. Two
of these are collections, or sets: Groups (collections of
Agents) and ResourceCollections (collections of Resources).
They are hierarchical, e.g., one group may be a subset of
another group, so any member of the subset group is
automatically a member of the larger group. The other three
classes  are  “flat”  in  an  ontological  sense,  but  contain  many 
instances. Agents have (at least) a unique ID, and zero or
more attribute/value pairs, which contain values that may be
assigned to them by an organization or may be values
contained in a security token. A Group is a set of Agents;
group membership can be expressed in two ways: directly (an
Agent by his/her ID value is asserted to be a member of a
specific group) or indirectly (by specifying a set of
attribute/value pairs an agent must possess in order to be a
member of that group; any agent having all of the specified
attribute/value pairs is considered a member of the group).
Each group also has a unique ID. Unique IDs are considered
special attributes and are assigned by the attribute signature
assignment engine (ASAE), which updates the resource access
registry (RAR). Agent IDs in the future will probably inherit
the IDs of the identity token received from the external
authentication service.</p>
      <p>Resources and ResourceCollections are organized similarly
to Agents and Groups. Resources also have a unique ID
assigned by the attribute signature assignment engine (ASAE),
and possess attribute/value pairs (such as ownedBy::
someOrganization, or locatedAt:: area). ResourceCollections
likewise are sets of Resources, and membership can also be
asserted directly or indirectly using a set of attribute/value
pairs that a Resource must have.</p>
      <p>Policies are different from the other four classes, in that
they specify the “access rules” of what it takes for an Agent to 
perform some action on a Resource. In essence, a policy is
just a 3-tuple containing a reference to a ResourceCollection
ID that the policy controls, a reference to the Group ID to
which an Agent must belong, and the action (from an
enumerated set) which the Agent is requesting to perform.</p>
      <p>The result is a simple but very flexible way to organize
authorization decisions about accessing resources. In addition
to general group membership, some special cases are also
supported. For instance, a ResourceCollection can be created
to contain a single resource in order to directly control it.
Similarly, a Group can be defined to consist of a single agent
thus allowing individualized policies. Again, Groups and
ResourceCollections may be organized in a hierarchy which
simplifies policy creation and application. Some advanced
access control mechanisms, such as an expiration date/time for
an  agent’s  token  value,  or  the  ability  to  specify  negative 
conditions (e.g., agents which have a certain attribute/value
pair(s) are NOT allowed access) are not implemented in this
prototype, but are not precluded by this approach (i.e., they
could be added at a later date without having to re-design the
prototype system).</p>
      <p>The ARBAC software is able to make quick authorization
decisions because 1) most of the required information is
known a priori and 2) the actual decision becomes a largely
lookup-and-compare operation. The policies and resource
attributes are known and stored in a location accessible to the
ARBAC system. The Group and ResourceCollection
definition rules are also known ahead of time and stored
(although these may need to be recomputed from time to
time).    The  agent’s  attribute/value  pairs  are  passed  to  the 
ARBAC system (usually via a secureID token, but it can be
done in other ways) once the agent logs onto the system. The
Groups to which the Agent belongs can then be pre-computed
right after login (before the Agent even selects a Resource, in
most cases). Once the agent selects a Resource and the action
he/she wants to take, a series of lookups take place. First, all
of the policies related to the Groups to which the Agent
belongs and allow the requested Action are obtained. Next, all
of the IDs of the ResourceCollections to which the Resource
belongs are obtained. Then the retrieved policies are
examined to see if any of them contain a reference to any of
the relevant ResourceCollections. If any one of them does,
then that allows the Agent to access the requested Resource
and perform the desired action. If none of the policies
contains a reference to any of the possible
ResourceCollections, then the action is not allowed.</p>
      <p>The actual implementation of the system allows for several
possibilities. Based on our work in FY12, the initial design
represented each of the five conceptual classes as OWL
classes, and each instance as an OWL individual.
Attribute/value pairs were implemented as OWL datatype
properties, as were the policy tuples. While some of the
reasoning (such as class hierarchy subsumption) could be done
in OWL, most of the actual policy/rule reasoning was done
using Prolog. The ARBAC system converted the
(hierarchically extended) information into Prolog assertions
and then made a prolog query to see if a particular
Agent/Resource/Action combination was allowable. While
this proved workable, expressing all of the information in
OWL (and using the Jena OWL reasoner to do some of the
pre-computation) turned out to be somewhat cumbersome.
Furthermore, the OWL format is not very interoperable with
what are likely to be the other components of a true ARBAC
system (such as other databases). Since only a small portion
of the OWL semantics were needed, it was decided to
generalize the expression of the ARBAC data by allowing it to
be held in other formats, e.g., JSON (Java Script Object
Notation).</p>
      <p>Using JSON instead of OWL (with Jena) resulted in a
performance increase. Also, because many data sources
support JSON this approach will make interoperability much
easier. Another implementation change was to use a direct bit
vector approach in Java for policy evaluation, rather than
Prolog. The idea is that by keeping everything in Java (Prolog
requires a call to an external .dll or .so application) and using
the inherent efficiency of bit reasoning, performance would
increase further. So a parallel implementation using the
standard Java BitSet class was created, whereby each
attribute/value pair is assigned a bit position at runtime.
Group membership and ResourceCollection membership were
then pre-computed using a set of bits (i.e., a bit vector). When
an agent selects a Resource, all of the Policies are retrieved
based on the pre-computed ResourceCollections, and these are
compared with the set of the Agent’s Groups. If any Group is 
found in any of the policies, then the action is approved.
Given the small set of data available, it was not possible to
determine which approach (Prolog based or bit vector based,
or both) will have the better performance at scale; this
determination will need to be made during a follow-on test and
integration effort.</p>
      <p>V. OPTIMIZATION: BIT-ENCODING</p>
      <p>Bit representation for ontology constructs (classes,
properties, etc.), subsumption, and rule reasoning must address
two related notions:
1) Efficiency of the representation in space and time. This
includes efficiency of the encoding for storage
purposes, but also compaction/compression techniques.
It also includes the time required to perform the offline,
development time encoding, as well as the time
required to do the matching, subsumption
computations, and automated reasoning performed at
runtime.
2) Incremental encoding, i.e., making modifications
dynamically during runtime to ontology constructs and
rules, potentially recomputing the encodings of
ontology constructs and rules, and then continuing
efficient reasoning.</p>
      <p>A. Ontology Constructs</p>
      <p>The primary ontology constructs we use are the following:
Group: A subclass of Collection. There are Classes of
Groups (such as the Federally Funded Research and
Development Center [FFRDC] class) and there are
instances of Classes that are groups (e.g., the instances
of the FFRDC class, such as MITRE, Aerospace, Los
Alamos National Lab, etc.)
Resource: A resource is any hardware, software, or
service.</p>
      <p>ResourceCollection: A subclass of Collection. There
are Classes of ResourceCollections and there instances
of Classes that are resource collections.
User: A user (agent) is generally a person, but could
be a software agent.</p>
      <p>Policy: A policy is a set of access constraints on a
Group or Resource created by a User who has the
requisite permissions to create the policy.</p>
      <p>Access: The kind of access a User has to a Resource,
as permitted by a Policy. Examples: Create, Read,</p>
      <p>Write, Delete, Execute, etc.</p>
      <p>Because we are focusing primarily on “attributes” for 
access control, whether or not a User U belongs to a specific
Group is a Boolean attribute, with value either ‘true’ or ‘false’ 
(of value ‘true’ if the User U is a member of a Group G, else 
of value ‘false’). Similarly, whether or not a Resource R is a 
member of a ResourceCollection RG is a Boolean attribute. If
it helps us in our processing, even a User U can be considered
a singleton Group, i.e., a specific instance of a Group having
just one member, U.</p>
      <p>We assume a User U can create a Policy P (perhaps of a
specific type) that grants another User U’ specific Accesses A 
to a Resource R of ResourceCollection RC if the User is a
member  of  some  Group  G  and  Group  G  ‘owns’  the 
ResourceCollection. Other policies may specify Roles, etc.,
which we are not yet addressing here.</p>
      <p>The bit-representation for Group (and Resource) constructs
is similar to the following, naïve representation:</p>
      <p>Subsumption is the relatively simple automated reasoning
that can be done on hierarchies of classes, i.e., the taxonomic
subclass ‘backbone’o ft heo ntology.T heses ubclassh ierarchies 
are important for ontologies, but also important for strongly
typed programming languages, which perform subsumption
reasoning  as  ‘type  inference’  over  the  formal  types  of 
constructions in the specific program.</p>
      <p>
        Ait-Kaci et al [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] proposed a number of bit-representations
that could be used for very efficient subsumption reasoning, by
plungeing the hierarchy of classes (or types), which typically
constitutes  a  ‘partially  ordered  set’  (poset),  into  a  boo lean
lattice, thus enabling efficient Greatest Lower Bound (GLB)
and Least Upper Bound (LUB) operations, and efficient
transitive closure. In an arbitrary poset, neither the GLB or the
LUB is guaranteed to exist, but there are formal structural
embeddings one can perform on the poset into an
orderpreserving structure, a semilattice, a lower semilattice in this
initial case, which preserves the GLB, sometimes called a
meet-semilattice, which says that for any nonempty finite
subset of poset, there is a GLB. Note that the ordering relation
on the elements of the poset (which define the poset) is
typically  notated  as  ≤  ,  e.g.,  a  ≤  b,  where  ≤  is  reflexive, 
antisymmetric, and transitive.
      </p>
      <p>An ontology subclass relation is an ordering relation on the
classes, i.e., reflexive, antisymmetric, and transitive. OWL
provides a top (greatest or most general) and bottom (least or
most specific) class, called respectively Thing and Nothing,
which makes OWL into a language able to model bounded
(semi-) lattices. Bottom is often notated as , with top notated
as ⊤.</p>
      <p>C. Encoding Bit Representations of Subsumption and
Inheritance</p>
      <p>We will discuss encodings proposed in the literature,
beginning first with a naïve bit matrix representation. For all
of these encodings, we adapt the example used by [17, p.
1617], displayed in graph form as the ontology of classes in
Figure 3 (where the isa relation is taken to be synonymous
with the subclass relation). We use this example, rather than
one drawn from our domain ontology, simply because our
ontology does not currently have much depth and no multiple
inheritance, which this example has. Note  that  these  ‘role’ 
subclasses are not ontologically correct, but have been
accommodated to a simple example.</p>
      <p>Table 2 displays the naïve bit matrix representation for this
ontology’s subsumption relations. Note that the bit assignment 
goes as follows:
1) Initially assign 1 (true) for every class (i, j) (where i is
the row, j is the column) and itself, because every
class subsumes itself. This means there is a diagonal
with value 1 from (1, 1) to (n, n).
2) Then for each cell of the matrix (i, j), if the class i is
an ancestor of class j, assign the value 1, otherwise
assign the value 0.
Teaching
Assistant
This encoding thus is the reflexive, transitive closure of the
(antisymmetric) subclass (isa) hierarchy of Figure 4.</p>
      <p>The naïve bit-assignment algorithm as represented in Table
2 is bottom-up,  with  an  implicit  ‘bottom’  ( ). The classes
Employee and Student, and then Person, are the only classes
which have subclasses.</p>
      <p>Subsumption between two classes can then be computed in
constant time using a binary AND operation on the bit vectors
of the two classes. The subsumption operator over the
bitencoded classes is defined as follows.</p>
      <p>Definition: Subsumption over Bit-Encoded Classes:</p>
      <p>Let x1, …,  xn, be classes in a subclass hierarchy, be an
bitencoding function, and ⊑ be the subsume relation (where ,
are classes and ⊑ is read as ‘class  subsumes class ’):
Then the following holds:
i. (xi) ⊑ (xj) (xi) AND (xj) = (xj)
ii.</p>
      <p>[the encoding of the first class subsumes the
encoding of the second class if and only if the binary
AND of those encodings is equal to the encoding of
the second class]
(xj) ⊑/ (xi) (xj) AND (xi) (xj)</p>
      <p>[the encoding of the first class does not subsume
the encoding of the second class if and only if the
binary AND of those encodings is not equal to the
encoding of the second class]
Example 1: Does TeachingAssistant subsume
AssociateProfessor?
I.e., does AssociateProfessor occur in the transitive closure of
the subclass relation of TeachingAssistant?
SubsumeS (TeachingAssistant, AssociateProfessor)
= AND (0000001, 0001000) = 00000000, i.e., no.</p>
      <p>Example 2: Does Person subsume TeachingAssistant?
Subsumes (Person, TeachingAssistant)</p>
      <p>= AND (1111111, 0000001) = 0000001, i.e., yes,
because the result 0000001 = 0000001 (the encoding for
TeachingAssistant.</p>
      <p>Example 3: Does Employee subsume Student?
Subsumes (Employee, Student)</p>
      <p>= AND (0011101, 0100011) = 0000001, i.e., no,
because the result 0000001 0100011 (the encoding for
Student).</p>
      <p>What if one wants at runtime to add a new class
incrementally (dynamically) after the above bit-representation
has been generated at development time? We add the new class
ResearchAssistant to the original ontology, resulting in Figure
4.</p>
      <p>Recomputing our bit-matrix, we arrive at the following,
Table 3. Note that we have to add a new bit by creating a new
row and new column for ResearchAssistant, which we add as a
new i+1 row and a new j+1 column into the matrix (but above</p>
      <p>Fig. 4. Academic Role Ontology + ResearchAssistant</p>
      <p>If we added the new bit as a new row and new column at
the beginning of the matrix, then we would maintain the 1-bit
diagonal we saw in Table 2. In addition, of course, we have to
update the entries in the new Research Assistant column with
their values (1 if an ancestor of Research Assistant, 0
otherwise). The naïve bit-encoding of Subsumption requires
n2 bits.</p>
      <p>
        Ait-Kaci et al [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] propose a number of new methods for
encoding subsumption. Their first method requires a bottom-up
(from the terminal classes to the root class) computing of the
binary OR of the bits assigned to children classes, the result of
which becomes the bit-encoding of their parent classes. New
bits are introduced whenever a parent has just one class and
      </p>
      <p>i: row
j: column
Person
Student
Employee
Associate
Professor
Tenured
Professor</p>
      <p>PhD
Student
Teaching
Assistant
Research
Assistant
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
whenever a false positive subsumption would result. If
incremental updates to the encoding are necessary, there are
potential complications. If one wants to add new leaf (terminal)
class nodes to the hierarchy, such as we did with
ResearchAssistant above, there are no issues. However, if one
wants to add new non-terminal (or root) nodes, there are
complications. If a class Cj is added that has the same
inheriting subclasses as an existing class Ci, then a new bit
must be added to re-encode the existing class and all of its
ancestors too. In addition, any new non-terminal class will have
to have the ancestors of its children classes checked for
conflicting encodings.</p>
      <p>For a discussion of other bit-encoding techniques, the
interested reader is directed to [17, pp. 16-23]. There are other
encoding approaches, including interval-encodings.
Intervalbased encodings compute non-overlapping codes for the
children within the interval of the parent, but do not support
multiple inheritance.</p>
      <p>
        In fact, although each of the above approaches out-perform
the naïve encoding, all of them have some issues (except
perhaps [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], which relies on binary representation of prime
numbers) with incremental (dynamic) updates, requiring some
recomputation of encodings and determination of conflicts,
which in turn may require recomputation of encodings.
      </p>
      <p>
        Rules too may be given encodings, but space limitations
preclude a discussion of this topic here, but see [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] for
Boolean satisfiability (SAT) reasoning using bit-matrices.
      </p>
      <sec id="sec-3-1">
        <title>VI. RELATED WORK</title>
        <p>There is much previous related research across multiple
dimensions (access control regimes, policy languages and
approaches, specialized languages (and logics) vs. ontology
approaches, knowledge compilation issues, bit-vector and
other optimization approaches, social network approaches,
privacy vs. security issues and approaches, etc.) that have
influenced our current and impending work.</p>
        <p>
          In order to accomplish our objectives it was necessary to
link a security policy model to a policy language with
sufficient expressive power to ensure logical consistency. We
extend the NIST Role-Based Access Control (RBAC) security
model [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] and related approaches [
          <xref ref-type="bibr" rid="ref18 ref19">18-19</xref>
          ], as have many
other researchers to include attributes, and extend the Web
Ontology Language (OWL) with additional rules to express
access policy using logic programming, and beyond the
limitations of [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. Unfortunately, given our own space
limitations here, we cannot do an extensive comparison of our
approach across the multiples dimensions with other
approaches, nor justly describe those other approaches.
        </p>
        <p>
          In addition, there is extensive research in more general
policy-based approaches that could be employed also for
access control [
          <xref ref-type="bibr" rid="ref21 ref22">21-22</xref>
          ].
        </p>
        <p>
          There are other Semantic Web-based approaches (including
[
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]), some of which address more specifically social network
types of applications [
          <xref ref-type="bibr" rid="ref23 ref24">23, 24</xref>
          ].
        </p>
        <p>
          For implementation in real-time, via a bit-vector or other
efficient encodings that can be used for rapid run-time
reasoning,  we’ve  looked  at [
          <xref ref-type="bibr" rid="ref10 ref11 ref12 ref17 ref2 ref3 ref4 ref5 ref6 ref7 ref8 ref9">2-6, 7-12, 17</xref>
          ]. For bit-vector
representation to support RDF triples, we investigated [
          <xref ref-type="bibr" rid="ref11 ref12 ref13 ref14">11-14</xref>
          ].
        </p>
        <p>
          Our own previous work addressed issues in translating
OWL/RDF ontologies and Semantic Web Rule Language
Rules (SWRL) [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] into logic programming for efficient
runtime reasoning, and employing knowledge compilation
techniques [
          <xref ref-type="bibr" rid="ref26 ref27 ref28">26-28</xref>
          ], which we also generalized to address
services using first-order logic theorem provers and for
ontology alignment [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>VII.FUTURE WORK</title>
        <p>Although we have investigated and implemented some
optimizations, e.g., extensionalization and delayed rule
evaluation, we have only rudimentarily implemented the
second-level of optimization we intended, i.e., the
bitrepresentation execution at runtime.</p>
        <p>
          If we had additional time, we intended to implement the
prime-number bit-encoding of subsumption described in [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
In general, for the restricted reasoning we need for access
control policy enforcement as described in this paper, and
given the probable volume of access request determinations
(and thus subsumption and equivalence checks, rule
execution) we foresee needing in a complex collaborative
social network environment such as the MPN, optimized
efficient automated reasoning is necessary. Traditional, more
general description logic reasoners were deemed too slow
(Pellet, etc.) In addition, most proposed bitmap encodings for
subsumption and type reasoning are efficiently statically
initialized and then used, but dynamically updating the
subsumption/type hierarchy, i.e., adding, deleting, modifying
classes and properties (which will happen, under the Open
World Assumption of OWL and first-order logic), leads to
degraded performance and increasingly baroque re-encodings
to avoid conflicts.
        </p>
        <p>
          Therefore, we would consider implementing the
bitencoding scheme based on assigning prime numbers to nodes
in the class and property subsumption graphs, as developed by
Preuveneers and Berbers [
          <xref ref-type="bibr" rid="ref17 ref30">17, 30</xref>
          ]. Adding a new class or
property does not require re-encoding. Furthermore, the
encoding automatically provides us the direction of the
relationship. Modular hierarchies, each separately encoded,
with very efficient subsumption-checking, are the result.
Figure 5 depicts a subclass hierarchy encoded using prime
numbers.
        </p>
        <p>FIG. 5. PRIME NUMBER ENCODING FOR CLASS SUBSUMPTION</p>
        <p>
          In addition to the use of prime numbers, the scheme of [
          <xref ref-type="bibr" rid="ref17 ref30">17,
30</xref>
          ] defines a compact binary matrix representation of the
inheritance relationships, which we will not go into here.
        </p>
        <p>Evaluation done in [30, p. 32] shows that subsumption
testing in his scheme is much faster than that of some major
existing description logic reasoners, on the order of 250 times
faster than Pellet. An evaluation performed on a different
project we are involved in, written in C/C++ demonstrated
1000% improvement using this method of subsumption
checking over the previous naïve, breadth-first search of the
subsumption graph.</p>
        <p>ACKNOWLEDGMENT
© 2013, The MITRE Corporation. All Rights Reserved.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Obrst</surname>
          </string-name>
          ,  L.;;  D.  McCandless;;  D.  Ferrell. 
          <year>2012</year>
          .  “Fast 
          <article-title>Semantic  Attribute - Role-Based Access Control (ARBAC) in a Collaborative Environment</article-title>
          .” 
          <source>The 7th IEEE International Workshop on Trusted Collaboration (TrustCol</source>
          <year>2012</year>
          ),
          <source>October 14-17</source>
          ,
          <year>2012</year>
          , Pittsburgh, PA.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Abadi</surname>
            ,
            <given-names>D. J.; A.</given-names>
          </string-name>
          <string-name>
            <surname>Marcus</surname>
          </string-name>
          ; S. Madden; K. J. Hollenbach. 
          <year>2007</year>
          . “Scalable  Semantic 
          <article-title>Web  Data  Management  Using  Vertical  Partitioning</article-title>
          .”  In  Proceedings of VLDB, pages
          <volume>411</volume>
          ~
          <fpage>422</fpage>
          ,
          <year>September 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Ait-Kaci</surname>
          </string-name>
          , H.   
          <year>1984</year>
          .
          <article-title>    “A  Lattice -Theoretic Approach to Computation Based on a Calculus of Partially-Ordered Type Structures</article-title>
          .” 
          <string-name>
            <surname>Ph</surname>
          </string-name>
          .D thesis,  Computer and Information Science Dept.,
          <source>Univ. of Pennsylvania</source>
          , Philadelphia, PA.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Ait-Kaci</surname>
          </string-name>
          ,  H.;;  R.  Boyer;;  P.  Lincoln;;  R.  Nasr. 
          <year>1989</year>
          .  “Efficient  Implementation of Lattice Operations.” TOPLAS 
          <fpage>11</fpage>
          -
          <lpage>1</lpage>
          -1989.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Blandford</surname>
            ,
            <given-names>D. K.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Blelloch</surname>
            ,
            <given-names>G. E.</given-names>
          </string-name>
          ; and  Kash,  I.  A. 
          <year>2003</year>
          .  “Compact  representations  of  separable  graphs.”
          <source>  Proceedings  of  the  14 th Annual ACM-SIAM Symposium on Discrete Algorithms (Baltimore, Maryland, January 12 - 14</source>
          ,
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Blandford</surname>
            ,
            <given-names>D. K.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Blelloch</surname>
            ,
            <given-names>G. E.</given-names>
          </string-name>
          ; and  Kash,  I.  A. 
          <year>2004</year>
          .
          <article-title>  “An  Experimental  Analysis  of  a  Compact  Graph  Representation</article-title>
          .” 
          <source>In  Proceedings of ALENEX04.</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Caseau</surname>
            ,
            <given-names>Y.; M.</given-names>
          </string-name>
          <string-name>
            <surname>Habib</surname>
          </string-name>
          ; L. Nourine;;  O.  Raynaud. 
          <year>1999</year>
          .  “Encoding 
          <article-title>of  multiple  inheritance  hierarchies  and  partial  orders</article-title>
          .” 
          <source>Computational  Intelligence</source>
          <volume>15</volume>
          (
          <issue>1</issue>
          ),
          <fpage>50</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Dershowitz</surname>
          </string-name>
          , N. 
          <year>2008</year>
          . “Bit Inference.” Workshop on Practical Aspects of 
          <source>Automated Reasoning, August</source>
          ,
          <year>2008</year>
          , Sydney.
          <fpage>26</fpage>
          -
          <lpage>35</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Fall</surname>
          </string-name>
          ,  A. 
          <year>1995</year>
          .  “Heterogeneous  Encoding.”  In  Proceedings  of  International KRUSE Symposium:
          <article-title>Knowledge Retrieval, Use, and Storage for Efficiency, Gerard Ellis</article-title>
          , Robert Levinson, Andrew Fall, Veronica Dahl, eds., Santa Cruz, CA,
          <year>Aug</year>
          .
          <fpage>11</fpage>
          -
          <issue>13</issue>
          , pp.
          <fpage>134</fpage>
          -
          <lpage>146</lpage>
          (
          <year>1995</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Krall</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Vitek</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <source>Horspool</source>
          ,
          <year>1997</year>
          . “Near optimal hierarchical encoding  of types.” 11th European Conference on Object 
          <article-title>Oriented Programming  (ECOOP'97)</article-title>
          . Springer (
          <year>1997</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>McGlothlin</surname>
            ,
            <given-names>J. P.</given-names>
          </string-name>
          ; L.  Khan,  B.  Thuraisingham. 
          <year>2011</year>
          .
          <article-title>  “RDFKB:  A  Semantic Web Knowledge Base</article-title>
          .” IJCAI, 
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>McGlothlin</surname>
            ,
            <given-names>J. P.</given-names>
          </string-name>
          ; L. Khan. 
          <year>2008</year>
          .
          <article-title> “RDFVector: A Scalable Data Model  for  Efficient  Querying  of  RDF  Datasets</article-title>
          .”  http://  www.utdallas.edu/~jpm083000/ssDBM.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>McGlothlin</surname>
            ,
            <given-names>  J.P.</given-names>
          </string-name>
          ;;  L.  Khan.  2010b. 
          <article-title>“Efficient  RDF  data  management  including provenance and uncertainty</article-title>
          .” IDEAS, 
          <volume>193</volume>
          -
          <fpage>198</fpage>
          ,
          <year>August 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>McGlothlin</surname>
          </string-name>
          ,  J. 
          <year>2010</year>
          .  “RDFVector: 
          <article-title>An  Efficient  and  Scalable  Schema  for  Semantic  Web  Knowledge  Bases</article-title>
          .” 
          <source>PhD  Symposium,  7th  Extended  Semantic Web Conference (ESWC</source>
          <year>2010</year>
          ), Heraklion, Greece. May 30 - June 3,
          <year>2010</year>
          ..
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>[15] http://csrc.nist.gov/groups/SNS/rbac/.</mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Neumann</surname>
          </string-name>
          , T.; G.  Weikum. 
          <year>2009</year>
          .
          <article-title>  “RDF -3X: a RISC-style engine for RDF</article-title>
          .” In Proc. of VLDB, pages 
          <fpage>647</fpage>
          -
          <lpage>659</lpage>
          ,
          <year>September 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Preuveneers</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ; Berbers,  Y., 
          <year>2006</year>
          .
          <article-title> “Prime numbers considered useful:  Ontology encoding for  efficient  subsumption  testing</article-title>
          ,” 
          <source>Tech.  Rep.  CW464</source>
          . http://www.cs.kuleuven.be/publicaties/rapporten/cw/CW464. Department of Computer Science, Katholieke Universiteit Leuven,
          <source>Belgium (October</source>
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Sandhu</surname>
          </string-name>
          , R. 
          <year>1998</year>
          . 
          <article-title>“Role -based access control</article-title>
          .” In M. Zerk Advances in Computers, volume
          <volume>48</volume>
          . Academic Press.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Sandhu</surname>
            ,
            <given-names>R.; E. J.</given-names>
          </string-name>
          <string-name>
            <surname>Coyne; H. L. Feinstein</surname>
          </string-name>
          ; and  C.  E.  Youman. 
          <article-title>“Role - based  access  control  models</article-title>
          .” 
          <year>1996</year>
          .  IEEE  Computer, 
          <volume>29</volume>
          (
          <issue>2</issue>
          ):
          <fpage>38</fpage>
          -
          <lpage>47</lpage>
          ,
          <year>February 1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Finin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ; A.
          <string-name>
            <surname>Joshi; L. Kagal; J. Niu; R. Sandhu</surname>
            , W. Winsborough; and
            <given-names>B.  Thuraisingham. </given-names>
          </string-name>
          <year>2008</year>
          .
          <article-title>  “ROWLBAC:  representing  role  based  access  control  in  OWL</article-title>
          .”  In  Proceedings 
          <article-title>of  the  13th  ACM  symposium  on  Access control models and technologies (SACMAT '08)</article-title>
          . ACM, New York, NY, USA,
          <fpage>73</fpage>
          -
          <lpage>82</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Tonti</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>J. M. Bradshaw; R. Jeffers</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Montanar</surname>
          </string-name>
          ; N.
          <article-title>Suri; and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Uszok</surname>
          </string-name>
          . 
          <year>2003</year>
          .
          <article-title>  “Semantic  web  languages  for  policy  representation  and  reasoning:  A  comparison</article-title>
            of  kaos,  rei,  and  ponder.”  2nd 
          <source>International  Semantic Web Conference (ISWC2003)</source>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Uszok</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>J.M. Bradshaw; J. Lott; M. Breedy; L. Bunch; P. Feltovich; M. Johnson; H. Jung</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>New Developments in Ontology-Based Policy Management: Increasing the Practicality and Comprehensiveness of KAoS</article-title>
          ,
          <source>IEEE Workshop on Policies for Distributed Systems and Networks</source>
          ,
          <volume>145</volume>
          -
          <fpage>152</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Carminati</surname>
            ,
            <given-names>B.; E.</given-names>
          </string-name>
          <string-name>
            <surname>Ferrari</surname>
          </string-name>
          ; and A. Perego, 
          <article-title>“Rule -based access control for social networks,”</article-title>
           in Proc. OTM 2006 Workshops, ser. LNCS, vol. 
          <volume>4278</volume>
          .  Springer, Oct
          <year>2006</year>
          , pp.
          <fpage>1734</fpage>
          -
          <lpage>1744</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Masoumzadeh</surname>
          </string-name>
          , Amirreza;; James Joshi. 
          <year>2010</year>
          .
          <article-title>  “OSNAC: An O ntologyBased  Access  Control  Model  for </article-title>
          <source>Social  Networking  Systems.”  Social  Computing (SocialCom)</source>
          ,
          <source>2010 IEEE Second International Conference on Social Computing</source>
          ,
          <fpage>20</fpage>
          -
          <lpage>22</lpage>
          Aug.
          <year>2010</year>
          , Minneapolis, MN,
          <fpage>751</fpage>
          -
          <lpage>759</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Horrocks</surname>
            <given-names>I.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Boley H.; Tabet</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Grosof</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Dean</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2</year>
           
          <fpage>004</fpage>
          . “SWRL:
          <article-title> A Semantic WebR ule Language Combining OWL  andR uleML</article-title>
          .”  /www.w3.org/Submission/SWRL/ .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Samuel</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ; L. Obrst;
          <string-name>
            <given-names>S.</given-names>
            <surname>Stoutenberg; K. Fox; P. Franklin</surname>
          </string-name>
          ; A. Johnson; K.  Laskey;;  D.  Nichols;;  S.  Lopez;;  and  J.  Peterson. 
          <year>2008</year>
          .
          <article-title>  “Ap plying Prolog to Semantic Web Ontologies &amp; Rules: Moving Toward Description  Logic  Programs</article-title>
          .”  Journal 
          <article-title>of  the  Theory  and  Practice  of  Logic Programming (TPLP</article-title>
          ), M. Marchiori, ed., Cambridge University Press, Volume
          <volume>8</volume>
          ,
          <string-name>
            <surname>Issue</surname>
            <given-names>03</given-names>
          </string-name>
          , May
          <year>2008</year>
          ,
          <fpage>301</fpage>
          -
          <lpage>322</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Samuel</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ; L. Obrst. 
          <year>2007</year>
          . “Answer 
          <article-title>Set Programming: Final Report on  a Comparison Between ASP and Prolog for Semantic Web Ontology and Rule Reasoning</article-title>
          .” October,
          <volume>2</volume>
           
          <fpage>007</fpage>
          .M ITRE 
          <fpage>MTR090069</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Obrst</surname>
            ,
            <given-names>L</given-names>
          </string-name>
          ; Stoutenburg, S; D.
          <string-name>
            <surname>McCandless; D. Nichols; P. Franklin; M. Prausa; R. Sward</surname>
          </string-name>
          .  “Ontologies  for  Rapid  Integration  of  Heterogeneous  Data  for  Command,  Control,  &amp; 
          <string-name>
            <surname>Intelligence</surname>
          </string-name>
          .”  Chapter  in:  Obrst,  Leo;;  Terry Janssen; Werner Ceusters, eds.,
          <year>2010</year>
          .
          <article-title>Ontologies and Semantic Technologies for the Intelligence Community</article-title>
          . Amsterdam, The Netherlands: IOS Press.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>McCandless</surname>
          </string-name>
          ,  Dru;;  Leo  Obrst. 
          <year>2009</year>
          .  “Dynamic  Web  Service 
          <article-title>Chaining  using OWL and a Theorem Prover</article-title>
          .” 3rd IEEE International Conference  on Semantic Computing, Berkeley, CA, USA - September 14-
          <issue>16</issue>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>Preuveneers</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ;
          <string-name>
            <given-names>Y.</given-names>
            <surname>Berbers</surname>
          </string-name>
          . 
          <year>2008</year>
          . “Encoding Semantic Awareness in  Resource-Constrained Devices,” IEE Intelligent Systems, March  - April,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>