
 
expanding  base-term  interpretation  into  the 
interpretation  of  complex  roles  and  concepts. 
Therefore,  in  order  to  translate  a  s-module  M
1
 
“expressed” in 
1
 into a s-module “expressed” in 
2 
we  just  need  to  “contract”  each  interpretation 
  W(M
1
)  to  its  base  interpretation  and  then 
“expand”  it  in  according  to  the  rules  of  expansion 
appropriate  for  the  logic  
2
.  This,  however,  may 
lead to over-expressiveness of some s-modules. 
 
Example 1 (Over-expressiveness). Let us take any 
s-module  M  and  assume  that  it  contains   
interpretations.  We  extend  the  signature  of  the 
module  by  a  new  role  R  and  select  only  these 
interpretations  that  satisfy  the  axiom  Trans(R),  i.e. 
we build M΄ = 
Trans
(R)
(
{R}
(M)). Then we change the 
logic  of  M΄  to  .  Interpretations  contained  in 
W(M΄) no longer map concepts like  3R., but the 
role  R  remains  transitive  in  all  interpretations  in 
W(M΄),  although  there  is  no  possibility  of 
expressing this fact in .   
The effect described in the above example seems 
to  reveal  a  crucial  obstacle  in  using  multi-logic 
modules.  However,  as  it  is  shown  below  over-
expressiveness is not specific only to multi-logic. 
To elaborate on this we introduce a notion of a 
linguistic s-module. To ease the task we return to the 
assumptions of chosen and fixed  and . 
Definition 2 (Linguistic  S-module).  We call  a 
s-module M = (S, W) linguistic iff there exists a set 
of  sentences  S    (S)  such  that  W =  {  
(S): 
  S:   }.                                                        
In other words, linguistic s-modules are modules 
whose models are all models of a particular set of 
sentences. We denote a linguistic s-module as M(S, 
S), where S is the set of sentences, or simply as M(S) 
if module signature can be inferred from the context, 
e.g. M({A  B, A(a)}) with signature S = {A, B, a}. 
In  general,  when  using  specific  operations  we 
have no guarantee that the outcome is linguistic even 
if all operands are. These operations are called non-
linguistic  and  they  are:  Union  (),  Difference  (–), 
Projection  (), and  U-Join (). They  may result in 
obtaining a s-module M which does not correspond 
directly to any set of sentences from (S(M)). 
 
Example 2 (Non-linguistic S-module). Consider a 
union  M΄  of  two  linguistic  s-modules 
M΄= M({A  B})  M({B  A}). Neither M΄ A  B 
nor  M΄  A  B  is  true.  But  after  an  intersection: 
M΄΄= M΄ 
g
 M({A  B(a), A  B(b)}), we obtain 
a s-module with no models: W(M΄΄) = .                
4  EXAMPLES  
There is similarity between the s-module algebra and 
the  relational  algebra.  Both  algebras  aim  at 
delivering  operators  on  defined  units  of  data  (or 
knowledge) that allow a user to combine the units in 
order to obtain a new unit, presumably better suited 
for  a  specific  purpose.  Like  the  relational  algebra, 
the s-module algebra may be a base for development 
of a language for the end-user, and such a language 
would have a desired property of closeness.  
The  following  example  shows  how  to  merge 
information from two  s-modules in order to obtain 
desired piece of knowledge. 
Example 3 (Intersecting S-modules). Consider two 
s-modules:  M
1
  describes  human  resources  and  M
2
 
the structure of a hospital. 
M
1
 = M({isManagerIn.HTBusinessUnit  Expert,  
  Expert  Employee}) 
M
2
 = M({leadsDepartment(johnSmith, 
neurosurgery), Department(neurosurgery)}). 
To  merge  the  information  from  the  two 
s-modules  in  order  to  infer  that  johnSmith  is  an 
expert,  we  first  create  an  intersection  of  the 
s-modules: M´= M
1
 
g
 M
2
, and then restrict the set 
of  models  by  introducing  additional  “bridge” 
axioms:  M´´=  M´  
g
  M({leadsDepartment   
isManagerIn, Department  HTBusinessUnit}). The 
last step can also be done by double selection.     
In the example we did not encounter any name 
conflict  between  s-modules  being  merged.  In 
general,  such  a  conflict  may  occur  and  I-Join 
operator  should  be  used.  Below  we  show  how  to 
align two s-modules in which the same set of terms 
is used to express different meanings. 
Example  4  (Joining  S-modules).  Consider  two 
s-modules: M
1
 and M
2
. They contain assessment of 
several  rooms  for  rent,  and  use  the  same 
categorization  and  signature  S  =  {HSRoom, 
ASRoom, LSRoom}, where the concepts denote high, 
average and low standard rooms. But in M
1
 and M
2
 
different criteria were used for categorization, as in 
the first case we were looking for a room to spend 
just  one  day  and  in  the  second  case  to  stay  for  a 
longer  period of  time.  We  “import”  the assessment 
from M
1
 to M
2
 performing necessary  translation of 
classification between the s-modules. 
1. In the first step we simply I-Join the modules. As 
a  result  we  obtain  a  module  M΄= M
1
  M
2
.  The 
concepts  have  been  renamed,  so  S(M)  = 
{1:HSRoom, 2:HSRoom, 1:ASRoom, …}. 
2. Next, we make the criteria of assessment explicit. 
In  this  example  we  use  only  one  criterion:  a 
KEOD 2009 - International Conference on Knowledge Engineering and Ontology Development
120