Multislot

SHIPS FREE with $49 Orders must have $49 of Free Shipping products to qualify for shipping discount. Additional charges for Non Free Shipping products, products shipping to remote locations, HazMat products, and large or heavy items still apply. This free online casino video slot is based on the MultiSlot platform. The play has 5 reels and 25 paylines on the great cinema themed backdrop. Such movie games have prepared for you special symbols of Popcorn, Filmstrip, 3D Glasses, Hollywood Star icons and Classic Symbols in the movie studio interpretation. Multislot, incorporated in 2011 by a team of the gaming industries founding members, has become one of the top suppliers of Casino Games, RGS Aggregator Platform, Back Office, Bonus Engine.

CLIPS User's Guide
Chapter 5 Doing It Up In Style
Style today, gone tomorrow

In this chapter, you will learn about a keyword called deftemplate, which stands for define template. This feature can aid you in writing rules whose patterns have a well-defined structure.

Mr. Wonderful

Deftemplate is analogous to a record structure in Pascal. That is, the deftemplate defines a group of related fields in a pattern similar to the way in which a Pascal record is a group of related data. A deftemplate is a list of named fields called slots. Deftemplate allows access by name rather than by specifying the order of fields. Deftemplate contributes to good style in expert systems programs and is a valuable tool of software engineering.

A slot is a named single-slot or multislot. A single-slot or simply slot contains exactly one field while a multislot contains zero or more fields. Any number of single or multislot slots may be used in a deftemplate. To write a slot, give the field name (attribute) followed by the field value. Note that a multislot slot with one value is strictly not the same as a single-slot slot. As an analogy, think of a cupboard (the multislot) that may contain dishes. A cupboard with one dish is not the same as a dish (single-slot.) However, the value of a single-slot slot (or variable) may match a multislot slot (or multislot variable) that has one field.

As an example of a deftemplate relation, consider the attributes of a duck who might be considered a good matrimonial prospect.

AttributesValue

name 'Dopey Wonderful'
assets rich
age 99

A deftemplate may be defined for the relation prospect as follows, where white space and comments are used for readability and explanation.

(deftemplate prospect ;name of deftemplate relation

'vital information' ;optional comment in quotes

(slot name ;name of field

(type STRING) ;type of field

(default ?DERIVE)) ;default value of field name

(slot assets ;name of field

(type SYMBOL) ;type of field

(default rich)) ;default value of field assets

(slot age ;name of field

(type NUMBER) ;type. NUMBER can be INTEGER or FLOAT

(default 80))) ;default value of field age

In this example, the components of deftemplate are structured as:

_ A deftemplate relation name

Multislotdemogames

_ Attributes called fields

_ The field type, which can be any one of the allowed types:
SYMBOL, STRING, NUMBER, and others.

_ The default for the field value

This particular deftemplate has three single-slot slots called name, assets, and age.

The deftemplate default values are inserted by CLIPS when a (reset) is done if no explicit values are defined. For example, enter the deftemplate for prospect, and assert it as shown.

CLIPS> (assert (prospect))

Multislot

<Fact-0>

CLIPS> (facts)

f-0 (prospect (name ') (assets rich) (age 80))

For a total of 1 fact.

CLIPS>

As you can see, CLIPS has inserted the default value of the null string, ', for the name field since that is the default for a STRING. Likewise, the assets and age defaults were also inserted by CLIPS. Different types have different default symbols such as the null string, ', for STRING; the integer 0 for INTEGER; the float 0.0 for FLOAT and so on. The ?DERIVE keyword selects the appropriate type of constraint for that slot, e.g., the null string , ', for a slot of type STRING.

You can explicitly set the field values, as the following example shows.

CLIPS> (assert (prospect (age 99) (name 'Dopey'))))

CLIPS> (facts)

f-0 (prospect (name ') (assets rich) (age 80))

f-1 (prospect (name 'Dopey') (assets rich) (age 99))

For a total of 2 facts.

CLIPS>

Note that the order that the fields are typed in does not matter since these are named fields.

In the deftemplate, it's important to realize that NUMBER is not a primitive field type like symbol, string, integer, and float. The NUMBER is really a compound type that can be integer or float. It is used for cases in which the user doesn't care what type of numbers are stored. An alternative to NUMBER would be specifying the types as follows.

(slot age

(type INTEGER FLOAT)

(default 80)))

Bye-Bye

In general, a deftemplate with N slots has the following general structure:

(deftemplate <name>

(slot-1)

(slot-2)

..

(slot-N))

In a deftemplate, the attribute values may be specified more precisely than a simple value such as 80 or rich. For example, in this deftemplate, a type of value is specified.

The field values can be specified by either explicitly listing them or giving a range of values. The allowed-values can be any primitive type such as SYMBOL, STRING, INTEGER, FLOAT and so on. For example,

Deftemplate Enumerated ValuesExample

allowed-symbols rich filthy-rich loaded

allowed-strings 'Dopey' 'Dorky' 'Dicky'

allowed-numbers 1 2 3 4.5 -2.001 1.3e-4

allowed-integers -100 53

allowed-floats -2.3 1.0 300.00056

allowed-values 'Dopey' rich 99 1.e9

It doesn't make sense to specify both a numeric range and values allowed for the same deftemplate field. For example, if you specify (allowed-integers 1 4 8), this contradicts a range specification of 1 to 10 by (range 1 10). If the numbers happen to be sequential, such as 1, 2, 3, then you could specify a range which would exactly match: (range 1 3). However, the range would be redundant to the allowed-integers specification. Thus, range and allowed values are mutually exclusive. That is, if you specify a range, you can't specify the allowed values and vice versa. In general, the range attribute cannot be used in conjunction with allowed-values, allowed-numbers, allowed-integers, or allowed-floats.

Without the optional information, the deftemplate and a rule which uses it follows.

(clear)

(deftemplate prospect ;name of deftemplate

(slot name ;name of field

(default ?DERIVE)) ;default value of field name

(slot assets ;name of field

(default rich)) ;default value of field assets

(slot age ;name of field

(default 80))) ;default value of field age

(defrule matrimonial_candidate

(prospect (name ?name) (assets ?net_worth) (age ?months))

=>

(printout t 'Prospect: ' ?name crlf

?net_worth crlf

?months ' months old' crlf crlf))

CLIPS> (assert (prospect (name 'Dopey Wonderful') (age 99)))

<Fact-0>

CLIPS> (run)

Prospect: Dopey Wonderful

rich

99 months old

CLIPS>

Notice that the default value of rich was used for Dopey since the assets field was not specified in the assert command.

If the assets field is given a specific value such as poor, the specified value for assets of poor overrides the default value of rich as shown in the following example about Dopey's penurious nephew.

CLIPS> (reset)

CLIPS> (assert (prospect (name 'Dopey Notwonderful')

(assets poor) (age 95)))

CLIPS> (run)

Prospect: 'Dopey Notwonderful'

poor

95 months old

A deftemplate pattern may be used just like any ordinary pattern. For example, the following rule will eliminate undesirable prospects.

CLIPS> (undefrule matrimonial_candidate)

CLIPS> (defrule bye-bye

?bad-prospect <- (prospect (assets poor) (name ?name))

=>

(retract ?bad-prospect)

(printout t 'bye-bye ' ?name crlf))

CLIPS> (reset)

CLIPS> (assert (prospect (name 'Dopey Wonderful') (assets rich)))

<Fact-1>

CLIPS> (assert (prospect (name 'Dopey Notwonderful') (assets poor)))

<Fact-2>

Best online sportsbooks 2020 usa. CLIPS> (run)

bye-bye Dopey Notwonderful

CLIPS>

Ain't No Strings on Me

Multislot

Notice that only single fields were used for the patterns in the examples so far. That is, the field values for name, assets, and age, were all single values. In some types of rules, you may want multiple fields. Deftemplate allows the use of multiple values in a multislot.

As an example of multislot, suppose that you wanted to treat the name of the relation prospect as multiple fields. This would provide more flexibility in processing prospects since any part of the name could be pattern matched. Shown following is the deftemplate definition using multislot and the revised rule to pattern match on multiple fields. Notice that a multislot pattern, $?name, is now used to match all the fields that make up the name. For convenience, a (deffacts) is also given.

CLIPS> (clear)

CLIPS> (deftemplate prospect

(multislot name

(type SYMBOL)

(default ?DERIVE))

(slot assets

(type SYMBOL)

(allowed-symbols poor rich wealthy loaded)

(default rich))

(slot age

(type INTEGER)

(range 80 ?VARIABLE) ; The older the better!!!

(default 80)))

CLIPS> (defrule happy_relationship

(prospect (name $?name) (assets ?net_worth) (age ?months))

=>

(printout t 'Prospect: ' ?name crlf ; Note: not ?name

?net_worth crlf

?months ' months old' crlf crlf))

CLIPS> (deffacts duck-bachelor

(prospect (name Dopey Wonderful) (assets rich) (age 99)))

CLIPS> (reset)

CLIPS> (run)

Prospect: (Dopey Wonderful)

rich

99 months old

CLIPS>

In the output, the parentheses around Dopey's name are put in by CLIPS to indicate that this is a multislot value. If you compare the output from this multislot version to the single-slot version, you'll see that the double quotes around 'Dopey Wonderful' are gone. The name slot is not a string in the multislot version, so CLIPS treats the name as two independent fields, Dopey and Wonderful.

What's in a Name

Deftemplate greatly simplifies accessing a specific field in a pattern because the desired field can be identified by its slot name. The modify action can be used to retract and assert a new fact in one action by specifying one or more template slots to be modified.

As an example, consider the following rules which show what happens when duck- bachelor Dopey Wonderful loses all his fish buying Donald Duck posters and banana fishsplits for his new duckette, Dixie.

CLIPS> (undefrule *)

CLIPS>

(defrule make-bad-buys

?prospect <- (prospect (name $?name)

(assets rich)

(age ?months))

=>

(printout t 'Prospect: ' ?name crlf ; Note: not ?name

'rich' crlf

?months ' months old' crlf crlf)

(modify ?prospect (assets poor)))

CLIPS>

(defrule poor-prospect

?prospect <- (prospect (name $?name)

(assets poor)

(age ?months))

=>

(printout t 'Ex-prospect: ' ?name crlf ; Note: not ?name

poor crlf

?months ' months old' crlf crlf))

CLIPS> (deffacts duck-bachelor

(prospect (name Dopey Wonderful) (assets rich) (age 99)))

CLIPS> (reset)

CLIPS> (run)

Prospect: (Dopey Wonderful)

rich

99 months old

Ex-prospect: (Dopey Wonderful)

poor

99 months old

CLIPS>

If you do a (facts) command as follows, you'll see that the f-1 fact corresponding to (prospect (assets rich) (age 99) (name Dopey Wonderful)) is gone since the (modify) has retracted it and asserted f-2.

CLIPS> (facts)

f-0 (initial-fact)

f-2 (prospect (name Dopey Wonderful) (assets poor) (age 99))

For a total of 2 facts.

CLIPS>

The make-bad- buys rule is activated by a rich prospect as specified by the assets slot. This rule changes the assets to poor using the modify action. Notice that the slot assets can be accessed by name. Without a deftemplate, it would be necessary to enumerate all the fields by single variables or by using a wildcard, which is less efficient. The purpose of the poor- prospect rule is simply to print out the poor prospects, thus demonstrating that the make-bad-investments rule did indeed modify the assets.

GPRS Mobile Multislot classes

This page covers GPRS mobile multislot classes and mention no. ofmaximum slots supported in uplink and downlink.It covers GPRS class 12,class 32 and class 33.

Multislot classMaximum number of slotsType of GPRS Mobile
RxTxSum
1 1 1 2 1
2 2 1 3 1
3 2 2 3 1
4 3 1 4 1
5 2 2 4 1
6 3 2 4 1
7 3 3 4 1
8 4 1 5 1
9 3 2 5 1
10 4 2 5 1
11 4 3 5 1
Class 124 4 5 1
13 3 3 NA 2
14 4 4 NA 2
15 5 5 NA 2
16 6 6 NA 2
17 7 7 NA 2
18 8 8 NA 2
19 6 2 NA 1
20 6 3 NA 1
21 6 4 NA 1
22 6 4 NA 1
23 6 6 NA 1
24 8 2 NA 1
25 8 3 NA 1
26 8 4 NA 1
27 8 4 NA 1
28 8 6 NA 1
29 8 8 NA 1
30 5 1 6 1
31 5 2 6 1
Class 325 3 6 1
Class 335 4 6 1
34 5 5 6 1
35 5 1 6 1
36 5 2 6 1
37 5 3 6 1
38 5 4 6 1
39 5 5 6 1
40 6 1 7 1
41 6 2 7 1
42 6 3 7 1
43 6 4 7 1
44 6 5 7 1
45 6 6 7 1

The multislot classes are characterized by following useful parameters.
Tx: It indicates maximum number of timeslots allowed in the uplink(i.e.transmit direction).
Rx: It indicates maximum number of timeslots allowed in the downlink(i.e.receive direction).
Sum: It indicates maximum number of combined timeslots allowed in Tx+Rx.
Type of GPRS mobile: There are two types of mobiles available in GPRS.
Type 1 mobile can not transmit and receive at the same time.This type of mobile supports both GMSK and 8-PSK modulation scheme in downlink. It supports only GMSK in the uplink.
Type 2 mobile can transmit and receive at the same time. It supports 8PSK in both downlink and uplink direction.

RELATED LINKS

GSM Tutorial
GPRS tutorial
BER vs BLER vs DBLER
Test Mode A vs Test Mode B
GPRS RxQUAL vs BER
GPRS protocol stack
GPRS Modem vendors
GSM versus GPRS
EDGE/EGPRS Basics
What is GPRS
GPRS measurements

RF and Wireless Terminologies

Multislot


Share this page

Multislotting Algs


Casino Lobby Demo

Translate this page