<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">WellnessRules: The Activity Rule Responder</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Taylor</forename><forename type="middle">Michael</forename><surname>Osmun</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Institute for Information Technology National Research Council</orgName>
								<orgName type="institution">Canada Fredericton</orgName>
								<address>
									<postCode>E3B 9W4</postCode>
									<region>NB</region>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Benjamin</forename><forename type="middle">Larry</forename><surname>Craig</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Institute for Information Technology National Research Council</orgName>
								<orgName type="institution">Canada Fredericton</orgName>
								<address>
									<postCode>E3B 9W4</postCode>
									<region>NB</region>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Harold</forename><surname>Boley</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Institute for Information Technology National Research Council</orgName>
								<orgName type="institution">Canada Fredericton</orgName>
								<address>
									<postCode>E3B 9W4</postCode>
									<region>NB</region>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">WellnessRules: The Activity Rule Responder</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">6EDA00A45F318A96ED4DF8812A5DFF6C</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T10:14+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Rule Responder is an intelligent multi-agent infrastructure for collaborative teams and virtual communities. Within these communities, each participant can be assisted by a semi-automated agent which utilizes rules to respond to messages posed by users. Each Rule Responder instantiation uses three different kinds of agents: An Organizational Agent (OA), Personal Agents (PAs), and External Agents (EAs). This paper describes the implemented Rule Responder instantiation to Well-nessRules, supporting online-interactive wellness communities. In Well-nessRules, Rule Responder's OA, using the Prova engine, acts as the manager of the community, the PAs execute participants' local wellness rules, and the EAs facilitate Web-based interaction between participants and Rule Responder. Each PA is implemented as a Java servlet which can execute both the OO jDREW and Euler engines for POSL and N3 representations of knowledge bases, respectively.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>With an ever-increasing emphasis on exercise and diet for individuals around the world, it becomes necessary to find new and innovative means to provide support for these wellness-related practices. WellnessRules (WR) is a new use case implemented with Rule Responder (RR) with the intention of forming an online-interactive wellness community. The goal of this system is the following. As in Friend of a Friend (FOAF), people can choose a (community-unique) nickname and create semantic profiles about themselves, specifically their wellness practices, for their own planning and to network with other people supported by a system that 'understands' those profiles <ref type="bibr" target="#b0">[BOC09]</ref>. These wellness profiles can currently be written as either POSL or N3 rules, which are handled by the engines OO jDREW and Euler, respectively. Users are then able to send messages to WellnessRules, in the form of general or specific queries which use a RuleML subset for interchange. Profile rules may specify when a participant is able to perform a certain activity (e.g. Walking or Running), depending on the weather forecast, season, and time of day. Queries can be posed to these community profiles, and various activity groups of participants be formed. A number of sample queries is provided via the WellnessRules website 1 . Such a query is delegated from the OA to the relevant PA. This PA then selects the wellness profile(s) of the appropriate participant(s), containing their preferences with regards to activity and nutrition. Finally, this knowledge is used to answer the query and send it back to the OA. The above website features live query-answer pairs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Overview of Rule Responder</head><p>Rule Responder's architecture realizes a system of Organizational Agents (OAs) and Personal Agents (PAs), accessed by External Agents (EAs), on top of an Enterprise Service Bus (ESB) communication middleware <ref type="bibr" target="#b1">[Cra08]</ref>. Using a hub and spoke architecture style, each OA is able to communicate with every PA in its organization, which in turn allows the user access to the relevant knowledge base. In this implementation of Rule Responder, there exists a single OA with as many PAs as needed. An EA, or user of this system, interacts via a Web-based GUI, which uses the HTTP protocol to send and receive messages (in this case, using the WellnessRules website [WRW]). The OA is the delegator of messages sent to the organization. Using a role assignment matrix (implemented by an OWL ontology) and a Prova knowledge base, it assesses the incoming message, and determines the appropriate PA for its destination. The rule-based PAs represent, as their 'dynamic profiles', all of the participating human members of the virtual organization modeled by Rule Responder <ref type="bibr" target="#b1">[Cra08]</ref>. The communication middleware used by Rule Responder is an efficient and open source ESB called Mule; it acts as the the link between Rule Responder and the user. It allows connection through various protocols such as JMS, HTTP, and SOAP, which in turn permits the communication between many sorts of software such as webpages, servlets, and rule engines. The role of the EA is to interact with this communication middleware through the API (in the form of a website), which will transfer the message to and from various parts of Rule Responder.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Implementation of Distributed WellnessRules Using Rule Responder</head><p>Through Rule Responder's system of PAs, OAs, and EAs, WellnessRules' wellness community will be fully realized. WellnessRules extends the hub and spoke architecture of Rule Responder such that an OA not only accesses responsible PAs, but also the PAs select (wellness) profiles of participants in the community (see Fig. <ref type="figure" target="#fig_0">1</ref>). So, although WellnessRules is similar to other systems which use Rule Responder, there are major differences and advancements. SymposiumPlanner<ref type="foot" target="#foot_1">2</ref> , an earlier instantiation of Rule Responder, uses the same hub and spoke architecture. The main difference is that the current SymposiumPlanner assists only symposium chairs (not normal participants), while the current WellnessRules only supports normal participants (later also supporting wellness coaches). A slight deviation from the initial concept of RR is the addition of categories for PAs: the OA has the option of either accessing Activity or Nutrition PAs, which makes finding the appropriate agent more efficient. Of course, each agent has a well-defined role in WellnessRules, which is as follows.</p><p>The OA is the moderator of the wellness community; it has knowledge of which PAs are responsible for specific activities or nutritional preferences in the community. The PAs themselves are differentiated through Activity and Nutrition topics. For example, an Activity Group PA may be responsible for multiple activities (e.g. Walking and Running), or may be more selective and cover only a single activity (e.g. Skating). Finally, the EA is represented through the WellnessRules website [WRW], which can be viewed in appendix B. Through this interface, the user is able to type their query (represented in RuleML format) and send it through the ESB to the OA by hitting the 'Send Message' button. In addition to this, sample queries are provided, which can be used as templates where certain values may be modified to make them specific to the user (e.g. a profile ID).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Example Usage of WellnessRules</head><p>The following is an example usage of the WellnessRules system, which covers the process from the user issuing a query, to the obtained end result. Using the previously shown Web interface, participants issue queries in RuleML format to the OA of the wellness community. The following is a small RuleML example of such a query: The relation name of the query is myActivity, with variables ProfileID, InOut, StartTime, EndTime, Location, Duration, and FitnessLevel (to be bound by the query). The constants provided are Running, and the integers 1 and 5. In English, this query can be summarized as the following question to the wellness community: Is anyone interested in general Running (indoors or outdoors), with one to five people, for any (start and end) time, location, duration, and fitness level?</p><p>This query is passed to the OA, which uses its Prova knowledge base<ref type="foot" target="#foot_2">3</ref> , to handle it via the following reaction rule: The myActivity argument in the rule represents the query that was explained earlier, while the remaining information is given via the full query found in appendix A.1. Prova then looks up the responsible PA for the query which is found through the OWL ontology, located on the Web 4 . The agent in question is the PA named 'wellnessRules Running', which is responsible for all Running activities. This agent is defined via a Java servlet, which will receive an HTTP message through the ESB (Mule), and via its various methods, retrieve all relevant information for Running. This process involves selecting the required profile knowledge bases (in this case, those which pertain to Running activities within the wellness community), and issuing the query to either OO jDREW (for POSL files) or Euler (for N3 files). Example knowledge bases for p0001 are represented in both POSL 5 and N3 6 online. The answers of all PAs are collected and sent back through the ESB to the OA, which then sends them back to the website/user. A sample of such an answer is the following, with the full version being found in appendix A.2: &lt;Atom&gt; &lt;Rel&gt;myActivity&lt;/Rel&gt; &lt;Ind&gt;p0001&lt;/Ind&gt; &lt;Ind&gt;Running&lt;/Ind&gt; &lt;Ind&gt;in&lt;/Ind&gt; &lt;Ind type="integer"&gt;1&lt;/Ind&gt; &lt;Ind type="integer"&gt;5&lt;/Ind&gt; &lt;Ind&gt;2009-06-10T10:15:00&lt;/Ind&gt; &lt;Ind&gt;2009-06-10T11:15:00&lt;/Ind&gt; &lt;Ind&gt;joesGym&lt;/Ind&gt; &lt;Ind&gt;P10M&lt;/Ind&gt; &lt;Ind type="integer"&gt;5&lt;/Ind&gt; &lt;/Atom&gt; Even a single PA can provide multiple answers, but we will consider the above one in particular. This answer tells the user that participant p0001 is interested in going for an indoor run at Joe's Gym between the times of 10:15 and 11:15 on June 10th, for 10 minutes, which will have a difficulty/fitness level of 5. The answer was inferred via Euler's execution on p0001's N3 knowledge base, while answers for other participants may be obtained by OO jDREW through knowledge bases written in POSL. The WellnessRules architecture thus makes users independent from any specific language such as POSL or N3.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion</head><p>Rule Responder has been used to implement a number of use cases, including the RuleML-2007/2008/2009 symposium organization and the W3C Health and Life Science (HCLS) <ref type="bibr" target="#b1">[Cra08]</ref>. With the new system, WellnessRules, Rule Responder's usefulness has been realized even further. Through it, WellnessRules has the ability to support an online-interactive community, which will assist participants in reaching their healthy-lifestyle goals. This is done via an extended hub and spoke architecture of the agent-oriented Rule Responder system, allowing WellnessRules to connect participants in the community. We plan to further improve WellnessRules, e.g. by adding more supported rule languages and/or engines and a full-fledged graphical user interface.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A Sample Query and Result</head><p>The below sample query and result are full listings, corresponding to the paperspecific example. </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. WellnessRules EA/OA/PA architecture.</figDesc><graphic coords="3,137.60,115.83,340.17,221.53" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>processMessage(XID,From,Primitive, myActivity(ProfileID,Activity,InOut,MinRSVP,MaxRSVP, StartTime,EndTime,Location,Duration,FitnessLevel)) :-</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head></head><label></label><figDesc>A.1 Full Example RuleML/XML Query Sample queries are provided online through the EA http interface at the Well-nessRules website [WRW]. This is one of the results that are generated online through the EA http interface at the WellnessRules website [WRW], answered using both POSL and N3 knowledge bases[KBs].</figDesc><table><row><cell>A.2 Full Example RuleML/XML Solution</cell></row><row><cell>&lt;?xml version="1.0" encoding="UTF-8"?&gt;</cell></row><row><cell>&lt;RuleML xmlns=</cell></row><row><cell>"http://www.ruleml.org/0.91/xsd"</cell></row><row><cell>xmlns:xsi=</cell></row><row><cell>&lt;RuleML xmlns= "http://www.w3.org/2001/XMLSchema-instance"</cell></row><row><cell>"http://www.ruleml.org/0.91/xsd" xsi:schemaLocation=</cell></row><row><cell>xmlns:xsi= "http://www.ruleml.org/0.91/xsd</cell></row><row><cell>"http://www.w3.org/2001/XMLSchema-instance" http://ibis.in.tum.de/research/ReactionRuleML/0.2/rr.xsd"&gt;</cell></row><row><cell>xsi:schemaLocation=</cell></row><row><cell>"http://www.ruleml.org/0.91/xsd</cell></row><row><cell>http://ibis.in.tum.de/research/ &lt;Message mode="outbound" directive="answer"&gt;</cell></row><row><cell>ReactionRuleML/0.2/rr.xsd" &lt;oid&gt;</cell></row><row><cell>xmlns:ruleml2007= &lt;Ind&gt;RuleResponder@iitfrdextdev01.iit-iti.priv236&lt;/Ind&gt;</cell></row><row><cell>"http://ibis.in.tum.de/projects/paw#"&gt; &lt;/oid&gt;</cell></row><row><cell>&lt;protocol&gt;</cell></row><row><cell>&lt;Message mode="outbound" &lt;Ind&gt;esb&lt;/Ind&gt;</cell></row><row><cell>directive="query-sync"&gt; &lt;/protocol&gt;</cell></row><row><cell>&lt;oid&gt; &lt;sender&gt;</cell></row><row><cell>&lt;Ind&gt;WellnessRules&lt;/Ind&gt; &lt;Ind&gt;RuleResponder&lt;/Ind&gt;</cell></row><row><cell>&lt;/oid&gt; &lt;/sender&gt;</cell></row><row><cell>&lt;protocol&gt; &lt;content&gt;</cell></row><row><cell>&lt;Ind&gt;esb&lt;/Ind&gt; &lt;Atom&gt;</cell></row><row><cell>&lt;/protocol&gt; &lt;Rel&gt;myActivity&lt;/Rel&gt;</cell></row><row><cell>&lt;sender&gt; &lt;Ind&gt;p0001&lt;/Ind&gt;</cell></row><row><cell>&lt;Ind&gt;User&lt;/Ind&gt; &lt;Ind&gt;Running&lt;/Ind&gt;</cell></row><row><cell>&lt;/sender&gt; &lt;Ind&gt;in&lt;/Ind&gt;</cell></row><row><cell>&lt;content&gt; &lt;Ind type="integer"&gt;1&lt;/Ind&gt;</cell></row><row><cell>&lt;Atom&gt; &lt;Ind type="integer"&gt;5&lt;/Ind&gt;</cell></row><row><cell>&lt;Rel&gt;myActivity&lt;/Rel&gt; &lt;Ind&gt;2009-06-10T10:15:00&lt;/Ind&gt;</cell></row><row><cell>&lt;Var&gt;ProfileID&lt;/Var&gt; &lt;Ind&gt;2009-06-10T11:15:00&lt;/Ind&gt;</cell></row><row><cell>&lt;Ind&gt;Running&lt;/Ind&gt; &lt;Ind&gt;joesGym&lt;/Ind&gt;</cell></row><row><cell>&lt;Var&gt;InOut&lt;/Var&gt; &lt;Ind&gt;P10M&lt;/Ind&gt;</cell></row><row><cell>&lt;Ind type="integer"&gt;1&lt;/Ind&gt; &lt;Ind type="integer"&gt;5&lt;/Ind&gt;</cell></row><row><cell>&lt;Ind type="integer"&gt;5&lt;/Ind&gt; &lt;/Atom&gt;</cell></row><row><cell>&lt;Var&gt;StartTime&lt;/Var&gt; &lt;/content&gt;</cell></row><row><cell>&lt;Var&gt;EndTime&lt;/Var&gt; &lt;/Message&gt;</cell></row><row><cell>&lt;Var&gt;Location&lt;/Var&gt; &lt;/RuleML&gt;</cell></row><row><cell>&lt;Var&gt;Duration&lt;/Var&gt;</cell></row><row><cell>&lt;Var&gt;FitnessLevel&lt;/Var&gt;</cell></row><row><cell>&lt;/Atom&gt;</cell></row><row><cell>&lt;/content&gt;</cell></row><row><cell>&lt;/Message&gt;</cell></row><row><cell>&lt;/RuleML&gt;</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">www.ruleml.org/WellnessRules/RuleResponder/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">www.ruleml.org/RuleML-2009/RuleResponder</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">http://ruleml.org/WellnessRules/files/WellnessRules-Responder.prova</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">www.ruleml.org/WellnessRules/files/WellnessRules.owl</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4">http://ruleml.org/WellnessRules/PA/p0001.posl</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_5">http://ruleml.org/WellnessRules/PA/p0001.n3</note>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B WellnessRules Interface: Website</head><p>The below website [WRW] is the main interface for user interaction with Well-nessRules.</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">Harold</forename><surname>Boley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Taylor</forename><surname>Michael Osmun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Benjamin</forename><surname>Larry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Craig</forename></persName>
		</author>
		<title level="m">Wellness-Rules: A Web 3.0 Case Study in RuleML-Based Prolog-N3 Profile Interoperation</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Deploying a Distributed Symposium Planner Through Rule Responder</title>
		<author>
			<persName><forename type="first">Benjamin</forename><surname>Larry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Craig</forename></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
