Content deleted Content added
split up paragraphs |
|||
(11 intermediate revisions by 9 users not shown) | |||
Line 1:
{{Short description|XML-based markup language}}
{{Multiple issues|
{{unreliable sources|date=June 2012}}
Line 5 ⟶ 6:
{{more footnotes|date=June 2012}}
}}
{{Infobox file format
| name = (FML) Fuzzy Markup Language <!-- For rollover expansion of links in other pages-->
Line 20:
| extended from = [[Extensible Markup Language|XML]]
<!-- | extended to = [[XHTML]] -->
| standard = [https://standards.ieee.org/
}}
Line 26:
==Overview==
FML was designed and developed by Giovanni Acampora during his Ph.D. course in Computer Science, at [[University of Salerno]], Italy, in 2004. The original idea inspired Giovanni Acampora to create FML was the necessity of creating a cooperative fuzzy-based framework aimed at automatically controlling a living environment characterized by a plethora of heterogeneous devices whose interactions were devoted to maximize the human comfort under energy saving constraints. This framework represented one of the first concrete examples of [[AmI|Ambient Intelligence]]. Beyond this pioneering application, the major advantage of using XML to describe a fuzzy system is hardware/software interoperability. Indeed, all that is needed to read an FML file is the appropriate schema for that file, and an FML parser. This markup approach makes it much easier to exchange fuzzy systems between software: for example, a machine learning application could extract fuzzy rules which could then be read directly into a fuzzy inference engine or uploaded into a fuzzy controller. Also, with technologies like [[XSLT]], it is possible to compile the FML into the programming language of your choice, ready for embedding into whatever application you please. As stated by Mike Watts on his popular Computational Intelligence blog:<ref>{{cite web|last=Watts |first=Mike |url=http://computational-intelligence.blogspot.it/2011/05/fuzzy-markup-language.html |title=Computational Intelligence: Fuzzy Markup Language |publisher=Computational-intelligence.blogspot.it |date=2011-05-28 |
<blockquote>"Although Acampora's motivation for developing FML seems to be to develop embedded fuzzy controllers for ambient intelligence applications, FML could be a real boon for developers of fuzzy rule extraction algorithms: from my own experience during my PhD, I know that having to design a file format and implement the appropriate parsers for rule extraction and fuzzy inference engines can be a real pain, taking as much time as implementing the rule extraction algorithm itself. I would much rather have used something like FML for my work."</blockquote>
Line 45:
*defuzzification subsystem.
In detail, the opening tag of each FML program is <code><
concept related controlled system, <code><KnowledgeBase></code>
*<code><FuzzyVariable></code> defines the fuzzy concept;
*<code><FuzzyTerm></code> defines a linguistic term describing the fuzzy concept;
*a set of tags defining a shape of fuzzy sets are related to fuzzy terms.
The attributes of <code><FuzzyVariable></code> tag are: ''name'', ''scale'', ''domainLeft'', ''domainRight'', ''type'' and, for only an output, ''accumulation'', ''defuzzifier'' and ''defaultValue''. The ''name'' attribute defines the name of fuzzy concept, for instance, ''temperature''; ''scale'' is used to define the scale used to measure the fuzzy concept, for instance, ''Celsius degree''; ''domainLeft'' and ''domainRight'' are used to model the universe of discourse of fuzzy concept, that is, the set of real values related to fuzzy concept, for instance [0°,40°] in the case of Celsius degree; the position of fuzzy concept into rule (consequent part or antecedent part) is defined by ''type'' attribute (input/output); ''accumulation'' attribute defines the method of accumulation that is a method that permits the combination of results of a variable of each rule in a final result; ''defuzzifier'' attribute defines the method used to execute the conversion from a fuzzy set, obtained after aggregation process, into a numerical value to give it in output to system; ''defaultValue'' attribute defines a real value used only when no rule has fired for the variable at issue.
As for tag <code><FuzzyTerm></code>, it uses two attributes: ''name'' used to identify the linguistic value associate with fuzzy concept and ''complement'', a boolean attribute that defines, if it is true, it is necessary to consider the complement of membership function defined by given parameters. Fuzzy shape tags, used to complete the definition of fuzzy concept, are:
*<code><TRIANGULARSHAPE></code>
Line 70 ⟶ 71:
<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<
<KnowledgeBase>
<FuzzyVariable name="food" domainleft="0.0" domainright="10.0" scale="" type="input">
Line 95 ⟶ 96:
</KnowledgeBase>
............
</fuzzySystem>
</syntaxhighlight>
A special tag that can furthermore be used to define a fuzzy shape is <code><UserShape></code>. This tag is used to customize fuzzy shape (custom shape). The custom shape modeling is performed via a set of <code><Point></code> tags that lists the extreme points of geometric area defining the custom fuzzy shape. Obviously, the attributes used in <code><Point></code> tag are x and y coordinates.
As for rule base component, FML allows to define a set of rule bases, each one of them describes a different behavior of system. The root of each rule base is modeled by <code><RuleBase></code> tag which defines a fuzzy rule set. The <code><RuleBase></code> tag uses five attributes: ''name'', ''type'', ''activationMethod'', ''andMethod'' and ''orMethod''. Obviously, the ''name'' attribute uniquely identifies the rule base. The ''type'' attribute permits to specify the kind of fuzzy controller (Mamdani or TSK) respect to the rule base at issue. The ''activationMethod'' attribute defines the method used to implication process; the ''andMethod'' and ''orMethod'' attribute define, respectively, the ''and'' and ''or'' algorithm to use by default. In order to define the single rule the <code><Rule></code> tag is used. The attributes used by the <code><Rule></code> tag are: ''name'', ''connector'', ''operator'' and ''weight''. The ''name'' attribute permits to identify the rule; ''connector'' is used to define the logical operator used to connect the different clauses in antecedent part (and/or); ''operator'' defines the algorithm to use for chosen connector; ''weight'' defines the importance of rule during inference engine step. The definition of antecedent and consequent rule part is obtained by using <code><Antecedent></code> and <code><Consequent></code> tags. <code><Clause></code> tag is used to model the fuzzy clauses in antecedent and consequent part. This tag use the attribute ''modifier'' to describe a modification to term used in the clause. The possible values for this attribute are: ''above'', ''below'', ''extremely'', ''intensify'', ''more or less'', ''norm'', ''not'', ''plus'', ''slightly'', ''somewhat'', ''very'', ''none''. To complete the definition of fuzzy clause the nested <code><Variable></code> and <code><Term></code> tags have to be used. A sequence of <code><Rule></code> tags realizes a fuzzy rule base.
Line 135 ⟶ 137:
<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<
<KnowledgeBase>
.......
Line 155 ⟶ 157:
<KnowledgeBase>
..........
</fuzzySystem >
</syntaxhighlight>
Line 369 ⟶ 371:
==Further reading==
* {{cite journal | title=Diet assessment based on type-2 fuzzy ontology and fuzzy markup language | journal=International Journal of Intelligent Systems | date=December 2010 | author=Lee, Chang-Shing | pages=1187–1216|display-authors=etal | doi=10.1002/int.20449 | volume=25 | issue=12| s2cid=13570946 }} {{
* {{Cite journal|last=Acampora|first=G.|author2=Loia, V.|year=2005|title=Fuzzy control interoperability and scalability for adaptive domotic framework
* {{Cite journal|last=Acampora|first=G.|author2=Loia, V.|year=2008|title=A proposal of ubiquitous fuzzy computing for Ambient Intelligence
* {{Cite journal|last=Acampora|first=G.|author2=Wang, M.-H.|author3= Lee, C.-S.|author4= Hsieh, K.-L.|author5= Hsu, C.-Y.|author6= Chang, C.-C.|year=2010|title=Ontology-based multi-agents for intelligent healthcare applications
* {{Cite journal|last=Acampora|first=G.|author2= Loia, V.|author3= Gaeta, M.|author4= Vasilakos, A.V.|year=2010|title=Interoperable and adaptive fuzzy services for ambient intelligence applications
[[Category:Markup languages]]
|