[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: HM.VR_AI: Goals and Overview : HumanML_VR_AI Facilitator
Doesn't this get back into the argument we had
before about this? We're saying "How do you define happiness?"? Even not getting
into deep root causes, the definition of happiness in any context is going to be
extraordinarily difficult. It almost makes me wonder whether instead
of arguing over level we should instead define some form of
context:
<happiness level="ecstatic"
xlink:def="http://www.hml.org/schemas/happiness/tokens"/>
where xlink:def would in turn point to a specific
schema instance, such as:
<schema>
<element name="happiness"
type="Happiness"/>
<complexType
name="Happiness">
<attribute
name="level" type="Happiness_Level>
</complexType>
<simpleType
name="Happiness_Level" type="String">
<restrictions>
<enumeration value="ecstatic"/>
<enumeration value="buzzed"/>
<enumeration value="amused"/>
<enumeration value="inlove"/>
<enumeration value="sad"/>
</restrictions> </simpleType>
</schema>
By changing the xlink pointer, you could also
change the way that any given element is interpreted:
<happiness level="35"
xlink:def="http://www.hml.org/schemas/happiness/percent"/>
<schema>
<element name="happiness"
type="Happiness"/>
<complexType
name="Happiness">
<attribute
name="level" type="Happiness_Level>
</complexType>
<simpleType
name="Happiness_Level" type="non-negativeInteger">
<restrictions>
<minValueInclusive value="0"/>
<maxValueInclusive
value="100"/>
</restrictions> </simpleType>
</schema> The above would give you a happiness level between
0 and 100 inclusive. You could conceivably also define a default schema that
said that if no xlink:def element, level is assumed to have a value between 0
and 1 inclusive.
This gives us a mechanism for bypassing all of the
potential arguments about HumanML -- the element names and structure fall under
the context of the HumanML, but the interpretation of these names become a
matter for the application developer. By specifically assigning the schemas
in this manner, you can also establish a set of mechanisms for interpretation
between schemas via a language such as XSLT: For instance, if <happiness>
#1 uses http://www.hml.org/schemas/happiness/tokens
and <happiness> #2 uses http://www.hml.org/schemas/happiness/percent,
then you could create a simple map:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="happiness">
<copy>
<xsl:attribute name="xlink:def">http://www.hml.org/schemas/happiness/percent</xsl:attribute>
<xsl:attribute
name="level">
<xsl:for-each select="@level">
<xsl:choose>
<xsl:when test=". = 'ecstatic'
">100</xsl:when>
<xsl:when test=". = 'buzzed' ">70</xsl:when>
<xsl:when test=". = 'amused'
">40</xsl:when>
<xsl:when test=". = 'inlove'
">65</xsl:when>
<xsl:when test=". = 'sad'
">0</xsl:when>
<xsl:otherwise>50</xsl:otherwise>
</xsl:choose> </xsl:for-each>
</xsl:attribute>
</copy>
</xsl:template>
</xsl:stylesheet>
The specific maps could also be associated
with a given RDF document:
[http://www.hml.org/schemas/happiness/tokens,http://www.hml.org/schemas/happiness/percent,http://www.hml.org/transforms/happiness_tokens2percent.xsl]
This basically says that any time you need to
translate from happiness/tokens to happiness/percent, you would use
happiness_tokens2percent.xsl.
-- Kurt Cagle
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC