is.specific {lfl} | R Documentation |
Determine whether the first set x
of predicates is more specific (or equal)
than y
with respect to vars
and specs
.
Description
The function takes two character vectors of predicates and determines whether
x
is more specific (or equal w.r.t. the specificity) than y
. The
specificity relation is fully determined with the values of the vars()
vector
and the specs()
incidence matrix that is encapsulated in the given fsets
object.
Usage
is.specific(x, y, fsets, vars = NULL, specs = NULL)
Arguments
x |
The first character vector of predicates. |
y |
The second character vector of predicates. |
fsets |
A valid instance of the |
vars |
Deprecated parameter must be |
specs |
Deprecated parameter must be |
Details
Let x_i
and y_j
represent some predicates of vectors x
and y
,
respectively. Function assumes that each vector x
and y
does not
contain two or more predicates with the same value of vars()
.
This function returns TRUE iff all of the following conditions hold:
for any
y_j
there existsx_i
such thatvars[y_j] = vars[x_i]
;for any
x_i
there either does not existy_j
such thatvars[x_i] = vars[y_j]
, orx_i = y_j
, orspecs[x_i, y_j] = 1
.
Value
TRUE or FALSE (see description).
Author(s)
Michal Burda
See Also
perceive()
, pbld()
, fsets()
, vars()
, specs()
Examples
# prepare fsets object
v <- c(rep('a', 3), rep('b', 3), rep('c', 3), rep('d', 3))
s <- matrix(c(0,1,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0, 0,1,0, 0,0,0, 0,0,0,
0,0,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0, 0,0,0, 0,1,0, 0,0,0,
0,0,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0, 0,0,0, 0,0,0, 0,1,0,
0,0,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0, 0,0,0, 0,0,0, 0,0,0),
byrow=TRUE,
ncol=12)
m <- matrix(0, nrow=1, ncol=12)
colnames(m) <- paste(rep(c('VeSm', 'Sm', 'Bi'), times=4),
rep(c('a', 'b', 'c', 'd'), each=3),
sep='.')
f <- fsets(m, v, s)
# returns TRUE
is.specific(c('VeSm.a', 'Bi.c'),
c('VeSm.a', 'Bi.c'),
f)
# returns TRUE (x and y swapped return FALSE)
is.specific(c('VeSm.a', 'Bi.c', 'Sm.d'),
c('Sm.a', 'Bi.c', 'Sm.d'),
f)
# returns TRUE (x and y swapped return FALSE)
is.specific(c('VeSm.a', 'Bi.c', 'Sm.d'),
c('VeSm.a', 'Bi.c'),
f)
# returns TRUE (x and y swapped return FALSE)
is.specific(c('VeSm.a', 'Bi.c', 'Sm.d'),
character(),
f)
# returns FALSE
is.specific(c('Sm.a'), c('Bi.c'), f)
# returns FALSE
is.specific(c('VeSm.a', 'Sm.c'),
c('Sm.a', 'Bi.c'),
f)