<!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>The Rule Responder Distributed Reputation Management System for the Semantic Web</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Adrian Paschke</string-name>
          <email>paschke@inf.fu-berlin.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rehab Alnemr</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christoph Meinel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Free University of Berlin AG Corporate Semantic Web Hasso Plattner Institute Potsdam University</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Online Reputation management systems compute, manage, and provide reputation about entities which act on the Web. An important research question is how such a reputation management system can be build for the Semantic Web. In this paper we contribute with a reputation management system based on distributed rule agents, which uses Semantic Web rules for implementing the reputation management functionalities as rule agents and which uses Semantic Web ontologies for representing simple or complex multi-dimensional reputations. We demonstrate a Semantic Web reputation management system by means of an e-Commerce and a Social Semantic Web 3.0 use case, which is using an ontology based reputation object model and a rule-based inference service agent middleware, called Rule Responder. As contribution our solution ensures e±cient automation, semantic interpretability and interaction, openness in ownership, ¯ne-grained privacy and security protection and easy management of semantic reputation data on the Web.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Online reputation management systems provide means for collecting reputation data
about entities and computing reputations on the Web; performing actions based on
reputations to determine trustworthiness or make automated decisions; allowing
entities to manage and interchange their reputation; making sure the system is not abused
and privacy of entities is respected so that reputation is only disclosed to authorized
parties. Due to the open nature of reputation - where we can not anticipate
beforehand what interactions, events, and opinions will ¯nally formulate the reputation of
an entity, nor we can know all the contexts in which en entity may gain reputation
in the future - processing of reputation should be dynamically changeable by users in
a declarative way, easily manageable with high levels of automation, and reputation
information should be interchangeable in a well-de¯ned machine-interpretable format.
The Semantic Web, with formal languages for machine-readable data, ontologies and
rules, is generally considered as a solution for declarative knowledge representation on
the Web, enabling high levels of machine intelligence in distributed Web agent systems.
In this paper we examine the Semantic Web approach for declarative reputation
processing and reputation knowledge representation, and demonstrate a distributed online
reputation management system.</p>
      <p>Our online reputation management system is based on distributed semantic rule
agents, which uses Semantic Web rules for implementing the reputation management
functionalities as rule agents and which uses ontologies for representing simple or
complex multi-dimensional reputations. We contribute with an ontology based reputation
object (RO) model and an implementation based on a rule-based inference service
agent middleware called Rule Responder. Because of the semantic structure of a given
RO, a semantic agent is able to extract meaningful information from it and then use
it directly (i.e. determine trust and access levels) or by using the reasoner for decision
support. We describe how we integrate the RO model into Rule Responder agents' logic
and how agents are bene¯ting from the new semantic structure of reputation objects,
as opposed to using a single reputation value like in classical reputation approaches.</p>
      <p>The paper is structured as follows: We start by explaining our model of reputation
object in Section 2, followed by a section with our contribution - the Semantic Web
reputation management system. In Section 4 we describe the implementation of this novel
design artifact, based on our RuleResponder middleware and our reputation object
ontology. Section 5 demonstrates our approach by means of a use case implementation.
Finally, we conclude the paper with a summary of the ¯ndings of our work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Reputation Management</title>
      <p>In this section we brie°y describe our previous work on the Reputation Object (RO)
model. This model is the basis of reputation data usage and information exchange
described in the architecture in section 3.
2.1</p>
      <sec id="sec-2-1">
        <title>Reputation Object Model</title>
        <p>
          Reputation systems are used as a way of establishing trust between unrelated parties,
especially if enforcement methods like institutional policies are not implemented. A
reputation model describes all of the reputation statements, events, and processes for
a particular context. This context is the relevant category for a speci¯c reputation. The
way such systems query, collect, and represent reputation varies. Some systems use stars
or scaling bars as the visual format of reputation, others use numbers and percentages
like the one used to rate an e-markt participant. However, most of these systems use
a single value to express an entity's reputation [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. In most reputation systems, the
context of a reputation value is not embedded within the given reputation information.
Mostly because it has the single value format. Reputation changes with time and is
used within a context. Every domain has its own information sources as well as its own
requirements. Therefore, the representation -not the calculation- of reputation should
be uni¯ed between communities in order to facilitate knowledge exchange. In this paper,
we continue our work on a data model for exchanging reputation information between
di®erent domains. Enabling reputation portability and linking it to its context eases the
management of reputation data, mitigates risks in open environments, and enhances
the decision making process. In our previous work [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], we presented a Reputation
Object (RO) Model where the representation of an entity's reputation is replaced by an
object instead of a single value. The model structure (Figure 1) contains a description
of how this value is collected (e.g. by community ratings or monitoring service), the
computation function (for this criterion) used to aggregate the values each time a new
one is entered, and a history list (previous values dated back to a certain time slot). This
        </p>
        <sec id="sec-2-1-1">
          <title>AggregationAlgorithm</title>
        </sec>
        <sec id="sec-2-1-2">
          <title>Name</title>
        </sec>
        <sec id="sec-2-1-3">
          <title>QualityAttribute</title>
        </sec>
        <sec id="sec-2-1-4">
          <title>Context</title>
          <p>owl:sameAs</p>
        </sec>
        <sec id="sec-2-1-5">
          <title>Description</title>
        </sec>
        <sec id="sec-2-1-6">
          <title>Name</title>
          <p>* calculatedBy
1
1 ComputationAlgorithm
1...*</p>
        </sec>
        <sec id="sec-2-1-7">
          <title>CurrentValue</title>
        </sec>
        <sec id="sec-2-1-8">
          <title>Time Stamp HistoryList</title>
          <p>u
e
l
h 1
a
a
Vs
1</p>
        </sec>
        <sec id="sec-2-1-9">
          <title>Reputation *</title>
        </sec>
        <sec id="sec-2-1-10">
          <title>Value</title>
          <p>hasReputationValOuersderedValuesList</p>
          <p>
            A reputation object wraps, into one semantic data structure, information about
criteria describing this entity's performance in several context along with information
about how they were obtained, what computation algorithms are used, and how to
compare between values within each criterion. It is developed as an OWL ontology to
ensure integration of data sources, connection of the data to its semantics, e±cient
information analysis as well as to provide common reputation representation framework.
Details about the ontology is illustrated in Using descriptive terms from the ontology
a [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]. To illustrate with an example from the e-market domain, a seller's reputation
object re°ects his expected performance and rating in several criteria such as
productquality, insurance, delivery. The data type of each criterion is dynamic. It can be either
a numerical value, a string, or it can be a reference to an object value -maybe linking to
another ontology in the linked data store- describing the evaluation of this particular
criterion and whether it can be aggregated with others to form a context. Aggregating a
set of criteria to a single context can be done to enhance the usability of the reputation
object and also to ease the ontology matching process when comparing between two
reputation objects. This way an agent using a reputation object, is able to draw more
conclusions about the target entity within its correct context. As mentioned before,
for each criterion in the object a description of how this value is collected (e.g.
community ratings, monitoring), the computation function, and a history of its previous
values are included. This enables the destination system to map its perception (or its
reputation computation function) to the one used in computing this value. [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ][
            <xref ref-type="bibr" rid="ref1">1</xref>
            ][
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] The
reputation object in this case is seen as a pro¯le of the entity's expected performance
which is constructed using di®erent information sources. The degree of visibility for
these criteria to the community's users (i.e. how many criteria presented for users in a
web site) depends on the community (i.e. a web site can limit the number of criteria
for usability reasons).
          </p>
          <p>
            A RO is constructed either o²ine or during negotiation process. It's a generic object
that changes according to the domain and the user preference but in general it holds a
pro¯le (functionality, quality, ratings, etc.) about an entity (service or agent), which is
collected from heterogeneous information sources. These information sources include
the involved security settings (used within the platform) as well as quality attributes
that may be obtained from the used Service Level Agreements (SLAs) such as
robustness, availability, etc.. In [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] , we showed the advantages of using a trusted centralized
party to manage reputation values within a speci¯c domain or multiple domains. One
of the tasks of the Trust Reputation Center (TRC), or a correspondent service, is to
gather reports by participants, i.e. other users, services,etc. Due to user privacy
concerns, reputation information should not be available for public data retrieval. Rather,
the user should have control over which Trust Reputation Centers to use, and which
services to allow access to his reputation data. From the perspective of services, the
user should not be able to hide reputation information. Hence, a reputation search
service is required returning a list of TRCs that store reputation information about the
user, without automatically revealing this information. In [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ] we introduced a protocol
where reputation transfer between di®erent Web sites and platforms is possible while
at the same time, the user's privacy is respected and the user retains control over his
reputation data without giving him the opportunity to hide valuable information.
3
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Architecture: A Rule-based Open Reputation Systems</title>
      <p>In this section we describe our new architectural design artifact for a reputation
management system which is distributed on the (Semantic) Web. For the architecture we
propose a distributed Reputation Processing Network (RPN) consisting of Reputation
Processing Agents (RPAs) that have two di®erent roles:
1. Reputation Authority Agents (RAAs): act as reputation scoring services for the
reputee entities whose Reputation Objects (ROs) are being considered or calculated
in the agents' rule-based Reputation Computation Services (RCSs). A RCS runs
a rule engine which accesses di®erent sources of reputation (input) data from the
reputors about an entity and evaluates a RO based on its declarative rule-based
computational algorithms and contextual information available at the time of
computation (described in the RO by the Criterion and its PossibleValues along
with its ComputationAlgorithm, orderedList, and OrderFunction).
2. Reputation Management Agents (RMAs): -aka reputation trust center- provide
reputation management functionalities. A RMA manages the local RAAs
providing control of their life cycle in particular and also ensuring goals such as fairness.
It might act as a Reputation Service Provider (RSP) which aggregates reputations
from the reputation scores of local RAAs. Based on the ¯nal calculated reputation,
it might also perform actions, e.g. compute trust worthiness, make automated
decisions, or trigger reactions. It also manages the communication with the reputors
collecting data about entities from them, generates reputation data inputs for the
reputation scoring; and distributes the data to the RAAs. It might also act as
central point of communication for the real reputee entities (e.g. persons) giving them
legitimate control over their reputation and allowing entities to governance their
reputations. RMAs can act as a single point of entry to the managed sets of local
RAAs, which allows for e±cient implementation of various mechanisms of making
sure the RAAs functionalities are not abused (security mechanisms) and
making sure privacy of entities, the reputation input data, and computed reputation
objects is respected (privacy &amp; information hiding mechanisms). For instance, an
RMA can disclose abstracted aggregate reputation objects, such as trustworthiness
levels of local entities, to authorized parties without revealing private reputation
scores or local data about the entities.</p>
      <p>Importantly to note, since RPAs can take di®erent roles at the same time, the RPN
can implement various distribution topologies from centralized to distributed
reputation processing networks. For instance, a simple RPA can be a RAA for one or more
entities and at the same time having the role of a RMA implementing the reputation
object management. In more complex topologies RMAs might act as centralized nodes
for networks of local RAA communities which can be accessed via communicating
with the RMAs as a single point of entry to the local networks acting like a black box.
Also mixed topologies are possible where RMAs reveal communication interface details
about local RAAs to authorized consumers which then can start ad-hoc direct
communications with the local RAAs. Another possibility is to interoperate and nest complete
EPNs. This leads to di®erent types of virtual organizations representing RPNs, where
RMAs can communicate with each other, with their local RAAs, as well as with
external reputation consumers. This gives high °exibility to implement di®erent pragmatic
coordination and negotiation protocols for the communication in EPNs, and supports
the various organizational semiotics of how reputation object's information can be used
in the context of organized activities and business domains.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Implementation</title>
      <p>In this section we describe a concrete implementation of the conceptual architecture of
a reputation processing network for the Semantic Web.
4.1</p>
      <sec id="sec-4-1">
        <title>RuleResponder Agent Middleware</title>
        <p>
          Rule Responder 1 is an enterprise service middleware which extends the Semantic
Web towards a Pragmatic Web infrastructure for semantic agent networks. [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] Rule
Responder utilizes industrial-strength enterprise service bus technology (Mule ESB)
for distributed deployment of rule-based agent services and for conversations between
agents. [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] The underlying ESB provides a highly scalable and e±cient agent service
broker and communication middleware which supports synchronous as well as
asynchronous messaging using arbitrary transport protocols (more than 40 protocols such
as SMTP, JMS, JDBC, TCP, HTTP, XMPP, SOAP etc.). For the communication the
agents use (Reaction) RuleML 2 as a standardized platform-independent rule
interchange format to interchange rules, events and information between agent services and
1 Rule Responder: http://www.responder.ruleml.org
2 Reaction RuleML: http://reaction.ruleml.org
other Semantic Web tools. RuleML 3 is an overarching rule standards family which
comprises interchangeable rule languages including e.g. W3C SWRL (RuleML+OWL)
and the new W3C RIF - RuleML 4 [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>Reaction RuleML incorporates various kinds of production, action, reaction, and
KR temporal/event/action logic rules as well as (complex) event/action messages into
the native RuleML syntax. The general syntax of reaction rules is as follows:
&lt;Rule style="active|messaging|reasoning" eval="strong|weak|defeasible|fuzzy"&gt;
&lt;oid&gt; &lt;! object id --&gt; &lt;/oid&gt;
&lt;label&gt; &lt;! meta data of the rule --&gt; &lt;/label&gt;
&lt;scope&gt;&lt;! scope of the rule e.g. a rule module --&gt; &lt;/scope&gt;
&lt;qualification&gt; &lt;! e.g. priorities, validity, fuzzy levels --&gt;&lt;/qualification&gt;
&lt;quantification&gt; &lt;!- e.g. variable bindings--&gt; &lt;/quantification&gt;
&lt;on&gt; &lt;! event part --&gt; &lt;/on&gt;
&lt;if&gt; &lt;! condition part --&gt; &lt;/if&gt;
&lt;then&gt; &lt;! (logical) conclusion part --&gt; &lt;/then&gt;
&lt;do&gt; &lt;!-- action part --&gt; &lt;/do&gt;
&lt;after&gt; &lt;! postcondition part after action, e.g.</p>
        <p>to check effects --&gt; &lt;/after&gt;
&lt;/Rule&gt;</p>
        <p>Depending on which parts of this general rule syntax are used di®erent types of
reaction rules can be expressed, e.g. if-then (derivation rules), if-do (production rules),
on-do (trigger rules), on-if-do (ECA rules). For communication between distributed
rule-based (agent) systems Reaction RuleML provides a general message syntax:
&lt;Message&gt;
&lt;oid&gt; &lt;!-- conversation ID--&gt; &lt;/oid&gt;
&lt;protocol&gt; &lt;!-- used protocol --&gt; &lt;/protocol&gt;
&lt;agent&gt; &lt;!-- sender/receiver agent/service --&gt; &lt;/agent&gt;
&lt;directive&gt; &lt;!-- pragmatic primitive, i.e. context --&gt; &lt;/directive&gt;
&lt;content&gt; &lt;!-- message payload --&gt; &lt;/content&gt;
&lt;/Message&gt;</p>
        <p>Using messages agents can interchange events as well as complete rule bases (rule
set modules), e.g. for remote parallel task processing. The protocol is used to de¯nes
the message passing and coordination protocol. The directive attribute corresponds
to the pragmatic instruction, i.e. the pragmatic characterization of the message
context broadly characterizing the meaning of the message. The typed logic approach of
RuleML enables the integration of external type systems such as Semantic Web
ontologies, XML vocabularies or Object Oriented class models (UML, Java, etc.). For
instance, the following example de¯nes a variable of type ro : ReputationObject which
is de¯ned in our external reputation object ontology.
&lt;var type="ro:ReputationObject"&gt;R&lt;/var&gt;</p>
        <p>Individuals of the reputation object can be bound to the typed rule variable and
interchanged as part of the content of a message; sending the receiving agent not just
the syntactical information about the payload data, but additionally the semantic
information and a pragmatic context (directive) in which this data should be interpreted
using the semantics. A standard nomenclature of pragmatic performatives is, e.g., the
FIPA Agents Communication Language ACL 5, which can be used as external ontology
3 RuleML: http://ruleml.org
4 W3C RIF: http://www.w3.org/2005/rules/wiki/RIF_Working_Group
5 FIPA ACL: http://www.fipa.org/repository/aclspecs.html
in a similar fashion as the reputation object ontology. The semantic agent architecture
in RuleResponder supports privacy and security implementations. In particular, local
information used in the reputation authority agents becomes only accessible by
authorized access via the public interfaces of the reputation management agents which act as
an abstraction layer supporting security and information hiding. The Reaction RuleML
IDL allows descriptions of the signatures of publicly accessibly rule functions together
with their mode and type declarations and narrative human-oriented meta descriptions.
External agents can access the local reputation processing networks only via these
interfaces, which often only reveal abstracted information to authorized users, e.g. about
public trustworthiness levels instead of the private entities' reputation details.
Authorization of users in such hierarchical trust management agents might be implemented
in combination with identity management, e.g. using FOAF+SSL 6 which is based on
Public Key (PKI) standards. For instance, the following RuleML interface described
the declaration of a public function accessReputationObject of a RMA which returns a
ReputationObject (mode = " ¡ ") and expects as an input (mode = " + ") a requesting
agent of type Agent, de¯ned in the FOAF ontology, and a composed security credential
ComposedCredential, de¯ned in the OWL-S credential ontology 7.
&lt;Interface&gt;
&lt;Expr&gt;
&lt;Fun&gt;accessReputationObject&lt;/Fun&gt;
&lt;Var type="ro:ReputationObject" mode="-"&gt;RO&lt;/Var&gt;
&lt;Var type="foaf:Person" mode="+"&gt;Person&lt;/Var&gt;
&lt;Var type="owls:ComposedCredential" mode="+"&gt;ComposedCredential&lt;/Var&gt;
&lt;/Expr&gt;
&lt;/Interface&gt;</p>
        <p>While internal agents communicate using ESB as messaging middleware, external
agents can communicate with the Reputation Processing Network via the con¯gured
endpoints of the ESB. Typically, this is a secure http endpoint for Internet connection,
but might be also any of the other supported transport protocols such as JMS for
communication from enterprise java beans (EJBs). User interfaces for human agents can be
e.g. Web forms which translate into RuleML messages and post data to the RPN-ESB
Internet endpoints (via http). For instance, an online Web user interface can be setup
which allows issuing queries or submit reputation input data in a controlled natural
language. RuleResponder supports arbitrary rule engines which provide a translator from
the platform independent rule interchange format RuleML into the platform speci¯c
rule language of the engine such as Jess, Drools, OOjDrew, Prova, etc. We use Prova
rule engine which provides the adequate expressiveness for the reputation processing
agents.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Prova Rule Engine</title>
        <p>
          Prova 8 is an enterprise strength highly expressive distributed Semantic Web logic
programming (LP) rule engine. Prova follows the spirit and design of the W3C Semantic
Web initiative and combines declarative rules, ontologies and inference with dynamic
object-oriented programming and access to external data sources via query languages
6 FOAF+SSL: http://esw.w3.org/Foaf+ssl
7 OWL-S Security and Privacy: http://www.ai.sri.com/daml/services/owl-s/
security.html
8 Prova: http://prova.ws
such as SQL, SPARQL, and XQuery. One of the key advantages of Prova is its elegant
separation of logic, data access, and computation as well as its tight integration of
Java, Semantic Web technologies, and service-oriented computing and complex event
processing technologies. It can be run in a plain Java environment or as a OSGI
component enabling massive parallelization of Prova agent nodes in grid/cloud environments
and deployment in e.g. ambient / smart components. From a logical perspective, Prova
implements an extended (naf and neg), well-founded (linear 3-valued logic with goal
memoization), defeasible (defeasible con°ict handling with priorities), typed (external
order sorted type systems such as Java or ontologies) semantics. [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]
        </p>
        <p>The ability to embed Java calls in Prova makes the ISO Prolog-like rule
programming style more suitable for integration of highly optimized Java computation
work°ows or (enterprise) java bean functions. The following simple rule creates a response
sentence with the name and reputation score using Java string computation and
displays it via to the Java system out. This is in particular useful for integrating
domainspeci¯c reputation algorithms implemented in Java for e±cient computing reputation
scores. Prova provides a rich library of built-ins include support for many query
languages such as SQL, XQuery, SPARQL, File IO, so that external data sources can be
dynamically accessed at runtime. For instance, the following rule uses a SPARQL query
to access an RDF FOAF pro¯le published on the web. The selected data is bound to
variables and printed to the console.
exampleSPARQLQuery(URL,Type|X)
:QueryString = ' PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;</p>
        <p>PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
SELECT ?contributor ?url ?type
FROM &lt;http://planetrdf.com/bloggers.rdf&gt;
WHERE {
?contributor foaf:name "Bob DuCharme" .
?contributor foaf:weblog ?url .</p>
        <p>?contributor rdf:type ?type . } ',
sparql_select(QueryString,url(URL),type(Type)|X),
println([[url,URL],[type,Type]|X],",").</p>
        <p>This dynamic integration of external data sources is useful to access the
reputation (input) data upon which the reputation is computed. Prova supports
external type systems such as e.g. Java class hierarchies or Semantic Web ontologies
(RDFS, OWL) via its typed order-sorted logic. For instance, the typed RuleML
variable &lt; vartype = "ro : ReputationObject" &gt; R &lt; =var &gt; maps to the typed Prova
variable R : ro ReputationObject. Prova supports reactive messaging via the built-ins
Send a message
sendMsg(XID,Protocol,Agent,Performative,[Predicate|Args]|Context)
Receive a message
rcvMsg(XID,Protocol,Agent,Performative,[Predicate|Args]|Context)
Receive multiple messages
rcvMult(XID,Protocol,Agent,Performative,[Predicate|Args]|Context)</p>
        <p>This built-ins directly map to the message interchange format of RuleML and allow
Prova agents to communicate with other agents via the RuleResponder middleware.
The following rule snippet show how a query for a reputation object is send to an agent
via the ESB and the received reputation object is then evaluated by the querying agent.
...
sendMsg(Sub_CID,esb,Agent,acl_query-ref, QueryRO),
rcvMsg(Sub_CID,esb,Agent,acl_inform-ref, ReceivedRO),
evaluateReputation(ReceivedRO),
...</p>
        <p>Modularization of the knowledge base is another important expressive feature of
Prova which is required to implement di®erent agent roles in the same agent instance.
It is possible to consult (load) distributed rule bases from local ¯les, a Web address,
or from incoming messages transporting a rule base.
:- eval(consult("reputation1.prova")).
:- eval(consult("http://ruleml.org/reputation2.prova")).</p>
        <p>All rules in a rule base automatically have a special annotation
@src(F ILEN AM E=U RL=OID) with which they are managed as one module in the
knowledge base. This label can be used for asserting or retracting complete modules
from the knowledge base and for scoping queries / goals to apply only on the particular
module. In the following example the subgoal evaluateReputation applies on both
modules reputation1 and reputation2.</p>
        <p>This is quite similar to creating constructive views on data in a relational databases.</p>
        <p>These rule labels can be, e.g., used for de¯ning priorities in case of rule con°icts
which are solved by defeasible reasoning. Meta annotations can be also used in literal
guards, as the following example illustrates:
@author(dev22) r2(X):-q(X).
@author(dev32) r2(X):-s(X).
q(2).
s(-2).
trusted(dev22).
% Author dev22 is trusted but dev32 is not, so one solution is found: X1=2
p1(X):@author(A)
r2(X) [trusted(A)].
:-solve(p1(X1)).</p>
        <p>This example uses metadata annotations on rules for the head literals r2=1 and on
the literal r2(X) in the body of the rule for p1(X). Since variable A in @author(A) is
initially free, it gets instantiated from the matching target rule(s). Once A is
instantiated to the target rule's @author annotation's value (dev22, for the ¯rst r2 rule),
the body of the target rule is dynamically non-destructively modi¯ed to include all
the literals in the guard trusted(A) before the body start, after which the processing
continues. Since trusted(dev22) is true but trusted(dev32) is not, only the ¯rst rule
for predicate r2 is used and so one solution X1 = 2 is returned by solve(p1(X1)).
After describing key features of Prova that are needed for implementing reputation
processing agents, we now describe our semantic reputation ontology model which is
used inside the agents for representing and interchanging reputation.</p>
        <p>"Bob"
foaf:name
http://ex.org/Payment
A reputation statement usually describes a target, the topic of evaluation, and the value
of this evaluation (i.e a judgment or a result of monitoring process). For instance, a
rating of a seller in an e-market identi¯ed by &lt;foaf:Person rdf:nodeID="Bob"&gt; then a
simple description of his reputation can be viewed as declaring reputation statements.
Bob's service-quality, delivery, and payment are identi¯ed by URIs as well as the literal
values 0.87 and "very good". These statements corresponds to the RDF graph instance
shown in ¯gure 2 where the edges represent the context. This is a snippet of the
reputation object instance that describes Bob's reputation:
RO={&lt;Bob,quality,0.87&gt;, &lt;Bob,delivery,''very good'' &gt;, &lt;Bob,payment,gr:MasterCard&gt;}</p>
        <p>For the development of the Reputation Object Model Ontology, we used
Prot¶eg¶eOWL 9. We developed a java library to facilitate the integration of the model within
any system on the implementation layer. The implementation for reading, writing, and
processing an RO along with the selection method (given a consumer priority list)
was developed using Jena-API 10. Using this library, a RO is attached to the
rulebased agents and is exchanged and used in its logic for di®erent kind of decisions, i.e.
access policies, information dissemination, trust levels and the resulted, etc. An agent
in Rule Responder also can manage reputation locally in its knowledge base, but can
also communicate reputation objects to other agents. To illustrate, a simple example
of an e-market seller's RO is showed in the following xml where reputation can be
perceived as the evaluation of two criteria: Review and DeliveryMethod.
&lt;gr:Reseller rdf:reference="http://www.example.org/John#"&gt;
&lt;ro:hasReputation &gt;
&lt;ro:ReputationObject rdf:ID=''SellerRO1''&gt;
&lt;ro:hasCriteria&gt;
&lt;ro:Criterion rdf:resource=''http://purl.org/goodrelations/v1/DeliveryMethod''&gt;
&lt;ro:hasReputationValue&gt;standard&lt;/ro:hasReputationValue&gt;
&lt;ro:collectedBy ro:CollectingAlgorithm=''#WebPortal''/&gt;
&lt;/ro:Criterion&gt;
&lt;ro:Criterion&gt;
&lt;review:Review&gt;</p>
        <p>&lt;review:rating&gt;8&lt;/review:rating&gt;
&lt;/review:Review&gt;&lt;/ro:Criterion&gt;
&lt;/ro:ReputationObject&gt;&lt;/ro:hasReputation &gt;
&lt;/gr:Reseller&gt;
9 Protege OWL: http://protege.stanford.edu/overview/protege-owl.html
10 Jena framework: http://jena.sourceforge.net/</p>
        <p>A customer's extract rating information from the structured objects because these
two criteria are his priorities. The developed decision rule is:
buy(Name:gr_Reseller,
Book:gr_Book):reseller(Name:gr_Reseller, Book:gr_Book),
hasDeliveryMethod("standard"),
hasReviewRating("excellent").
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Use Cases</title>
      <p>
        The major bene¯t of using declarative rules, as opposed to standard procedural
implementations e.g. directly in Java, is known to be in it its separation of concerns, which
enables users to de¯ne the reputation processing logic independently from the
underlying application and data models. Users can concentrate on de¯ning the reputation
processing network and the logic of the reputation processing agents - the
responsibility to automatically interpret and execute these rules is delegated to a (Prova) rule
engine. Distributed online reputation management systems can thus be much easier
represented, managed and adapted while ensuring ¯ne grained levels of modularity,
security, privacy, and information abstraction and hiding. While this general bene¯ts are
well known properties of declarative rule programming, and have been demonstrated
e.g. in other RuleResponder projects (e.g. [
        <xref ref-type="bibr" rid="ref10 ref11 ref6 ref9">9, 11, 10, 6</xref>
        ]), an important question in the
evaluation of the quality of this work is the required expressiveness of the
representation language for the declarative programming of distributed reputation processing
networks consisting of rule-based agents. By means of a concrete use case
implementation we demonstrate adequacy. A resource authorization agent, called SocialActivities,
for computing the number of friends, implements a private rule f riend for deriving all
friends of a person using a SPARQL query to access all friends from a local Foaf
document in n3 format. A public rule numberOf F riends computes the number of friends
using this private rules. Other agents can query this public rule via a rcvMsg
reaction rule waiting for incoming ACL query ¡ ref messages, which gives access only to
authorized agents and only to all it's public rules. Privacy is ensured by not reveling
persons' friends to other agents.
% private rule for collecting persons' friends
friend(Person, Friend)
:SparqlQuery = ' PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
      </p>
      <p>PREFIX ex: &lt;http://ns.example.org/#&gt;
SELECT ?person ?friend
FROM &lt;friends.n3&gt;</p>
      <p>WHERE {?person foaf:knows ?friend .} ',
sparql_select(SparqlQuery,person(Person),friend(Friend)).
% public rule for computing number of friends
@public(numberOfFriends(?,?))
numberOfFriends(Person, Number)
:</p>
      <p>count(friend(Person,Friend),Number).
rcvMsg(CID,esb,Agent,acl_query-ref, Query)
:authorized(Agent), % check if requesting agent is authorized
derive(Query) [public(Query)] % derive query if public guard is true
sendMsg(CID,esb,Agent,acl_inform-ref,Query). % send back result</p>
      <p>Another RAA, called Driving, computes driving ratings with respect to the driving
skill level of a person. The shown rule drivingSkill is part of a set of the agent's rules,
which derive personal driving ratings with respect the years of driving experience and
years without accidents. The input data is coming from a local relational database
which is queried by SQL in the private rule yearsOf DrivingExperience.
% public rule for computing number of friends
@public(drivingSkill(?,?))
drivingSkill(Person,Rating):</p>
      <p>Rating = 8, % level is 8
yearsOfDrivingExperience(Person,DrivingYears),
DrivingYears &gt; 5, % if driving experience is higher than 5 years
yeasWithoutAccident(Person,AccidentFreeYears),</p>
      <p>AccidentFreeYears &gt; 3. % and no accidents within 3 years
yearsOfDrivingExperience(Person,Years)
:...,
sql_select(DB,person,[years,Years]). % access data from local database</p>
      <p>The following rule of a reputation management agent (RMA) allows external agents
to ask for a person's reputation object. Both RAAs are queried by the RMA in two
parallel running sub-conversations. The RMA then creates a (complex) reputation
object for a person from the resulting two reputation criteria received from the RAAs.
All details about the reputation computing algorithm and the reputation input data is
not revealed to the external requesting agent, thus ensuring privacy of person's data.
rcvMsg(CID,esb,Agent,acl_query-ref, reputation(Person,ReputationObject)
:% query RAA Driving in new sub-conversation 1
sendMsg(Sub-CID1,esb,"Driving",acl_query-ref,drivingSkill(Person,Rating)),
% in parallel query RAA Rating in sub-cid 2
sendMsg(Sub-CID2,esb,"SocialActivities",acl_query-ref,numberOfFriends(Person, Number)),
% receive reputation criteria 1
rcvMsg(Sub-CID1,esb,"Driving",acl_inform-ref, ReputationCriteria1),
% receive reputation criteria 2
rcvMsg(Sub-CID2,esb,"SocialActivities",acl_inform-ref, ReputationCriteria2),
% create reputation object for person
createReputationObject(ReputationObject,Person,ReputationCriteria1,ReputationCriteria2),
% send back reputation object to requesting agent
sendMsg(CID,esb,Agent, acl_inform-ref, reputation(Person, ReputationObject)).</p>
      <p>This RMA can now be asked for the reputation of a person by sending it a query.
sendMsg(CID,esb,"RMA1", acl_query-ref, reputation(foaf_person:Alice, RO:ro_ReputationObject))</p>
      <p>The computed reputation RO of type ro_ReputationObject can be used to pro¯le
the reputation of a foaf:Person Alice by asserting it with a property ReputationObject
describing her performance in the 2 computed criteria: SocialActivities and Driving.
&lt;foaf:Person rdf:about="#Alice"&gt;
&lt;foaf:openid rdf:resource=http://alice.org''/&gt;
&lt;ro:hasReputation &gt;
&lt;ro:ReputationObject rdf:ID=''AliceRO1''&gt;
&lt;ro:hasCriteria&gt;
&lt;ro:Criterion rdf:resource=''#Driving''&gt;
&lt;ro:hasReputationValue ro:value=8/&gt;
&lt;ro:collectedBy ro:CollectingAlgorithm=''#drivingSkill''/&gt;
&lt;/ro:Criterion&gt;
&lt;ro:Criterion rdf:resource=''#SocialActivities''&gt;
&lt;ro:hasReputationValue ro:value=''active''/&gt;
&lt; ro:collectedby &gt;</p>
      <p>&lt;ro:CollectingAlgorithm rdf:resource=''#numberOfFriends''/&gt;
&lt;/ro:collectedBy&gt;
&lt;/ro:Criterion&gt;
&lt;/ro:ReputationObject&gt;
&lt;/ro:hasReputation &gt;
&lt;/foaf:Person&gt;</p>
      <p>
        As shown by these examples from the implemented use case, we have demonstrated
external data access, use of ontologies in decisioning and reaction rules, local
autonomy of agents with support for data abstraction, information hiding and privacy,
integration of external security system functionalities, parallel processing of reputation
within distributed communicating agent nodes, etc. Other properties which relate to
the (worst case) complexity of the rule semantics and the robustness and scalability
of the RuleResponder agent middleware have been evaluated in other industrial and
research projects. The RuleResponder middleware based on an ESB has been proven to
be highly scalable and robust and the underlying semantics of the Prova rule language
is proven to be polynomial, with possible log-space reduction by de¯ning constructive
views using highly optimized query languages to access external data sources, which
are then applied as fact base for the rule system's knowledge base. [
        <xref ref-type="bibr" rid="ref11 ref9">9, 11</xref>
        ] Moreover,
massive high-performance parallelization of computation is possible by deploying Prova
agents as OSGi components in computing cloud grids.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>In this paper, we demonstrate a RuleResponder reputation management system based
on a distributed reputation processing network architecture consisting of
PragmaticSemantic Web agents which make use of an ontology based reputation object model and
rules for declaratively programming the agent-based reputation processing and
management logic. As a proof of concept we have implemented a Semantic Web reputation
processing network based on ontologies and rules, in combination with highly e±cient
enterprise middleware. We also demonstrate adequacy in terms of expressiveness of
our declarative knowledge representation approach by means of a real-world use case
implementation with our approach. Deploying our reputation management systems
on the Semantic Web helps opening the online reputation market to a context-aware
competition between service providers, and customers who can select their providers
according to their customized needs with respect to levels of reputation and trust.
Acknowledgements This work has been partially supported by the
\InnoPor¯leCorporate Semantic Web" project funded by the German Federal Ministry of
Education and Research (BMBF) and the BMBF Innovation Initiative for the New German
LaÄnder - Entrepreneurial Regions.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Rehab</given-names>
            <surname>Alnemr</surname>
          </string-name>
          , Stefan Koenig,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eymann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Meinel</surname>
          </string-name>
          .
          <article-title>Enabling usage control through reputation objects: A discussion on e-commerce and the internet of services environments. In in the special issue of Trust and Trust Management</article-title>
          ,
          <source>Journal of Theoretical and Applied Electronic Commerce Research</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Rehab</given-names>
            <surname>Alnemr</surname>
          </string-name>
          and
          <string-name>
            <given-names>Christoph</given-names>
            <surname>Meinel</surname>
          </string-name>
          .
          <article-title>Getting more from reputation systems: A context-aware reputation framework based on trust centers and agent lists</article-title>
          .
          <source>Computing in the Global Information Technology, International Multi-Conference</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Rehab</given-names>
            <surname>Alnemr</surname>
          </string-name>
          , Adrian Paschke, and
          <string-name>
            <given-names>Christoph</given-names>
            <surname>Meinel</surname>
          </string-name>
          .
          <article-title>Enabling reputation interoperability through semantic technologies</article-title>
          .
          <source>In ACM International Conference on Semantic Systems. ACM</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Rehab</given-names>
            <surname>Alnemr</surname>
          </string-name>
          , Matthias Quastho®, and
          <string-name>
            <given-names>Christoph</given-names>
            <surname>Meinel</surname>
          </string-name>
          .
          <article-title>Taking Trust Management to the Next Level</article-title>
          .
          <source>Handbook of Research on P2P and Grid Systems for Service-Oriented Computing: Models, Methodologies and Applications</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley. RIF RuleML Rosetta</surname>
          </string-name>
          <article-title>Ring: Round-Tripping the Dlex Subset of Datalog RuleML and RIF-Core</article-title>
          . In Guido Governatori, John Hall, and Adrian Paschke, editors,
          <source>RuleML</source>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Lars</given-names>
            <surname>Braubach</surname>
          </string-name>
          , Alexander Pokahr, and Adrian Paschke.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Jorge</given-names>
            <surname>Cardoso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Amit P.</given-names>
            <surname>Sheth</surname>
          </string-name>
          , John A.
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>Jonathan</given-names>
          </string-name>
          <string-name>
            <surname>Arnold</surname>
            , and
            <given-names>Krys</given-names>
          </string-name>
          <string-name>
            <surname>Kochut</surname>
          </string-name>
          .
          <article-title>Quality of service for work°ows and web service processes</article-title>
          .
          <source>J. Web Sem</source>
          .,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Yutu</surname>
            <given-names>Liu</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Anne H. Ngu</surname>
            , and
            <given-names>Liang Z.</given-names>
          </string-name>
          <string-name>
            <surname>Zeng</surname>
          </string-name>
          .
          <article-title>Qos computation and policing in dynamic web service selection</article-title>
          .
          <source>In WWW Alt. '04: Proceedings of the 13th international World Wide Web conference on Alternate track papers &amp; posters</source>
          , pages
          <volume>66</volume>
          {
          <fpage>73</fpage>
          , New York, NY, USA,
          <year>2004</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>Rule-Based Service Level Agreements - Knowledge Representation for Automated e-Contract, SLA and Policy Management</article-title>
          . IDEA Verlag,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>Rule responder hcls escience infrastructure</article-title>
          .
          <source>In ICPW '08: Proceedings of the 3rd International Conference on the Pragmatic Web</source>
          , pages
          <volume>59</volume>
          {
          <fpage>67</fpage>
          , New York, NY, USA,
          <year>2008</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          and
          <string-name>
            <given-names>Martin</given-names>
            <surname>Bichler</surname>
          </string-name>
          .
          <article-title>Knowledge representation concepts for automated sla management</article-title>
          .
          <source>Decis. Support Syst</source>
          .,
          <volume>46</volume>
          (
          <issue>1</issue>
          ):
          <volume>187</volume>
          {
          <fpage>205</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Adrian</surname>
            <given-names>Paschke</given-names>
          </string-name>
          , Harold Boley, Alexander Kozlenkov, and
          <string-name>
            <given-names>Benjamin</given-names>
            <surname>Craig</surname>
          </string-name>
          . Rule Responder:
          <article-title>RuleML-Based Agents for Distributed Collaboration on the Pragmatic Web</article-title>
          .
          <source>In 2nd ACM Pragmatic Web Conference</source>
          <year>2007</year>
          . ACM,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>