Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
hekate:hathor [2010/04/14 19:29]
kkluza added description
hekate:hathor [2011/02/22 13:02]
ikaf
Line 42: Line 42:
  
  
 +===== HaThoR v.2.0 =====
 +
 +HaThoR (v.2.0) is a set of XSLT translators which translate (parts of) [[hekate:​hekate_markup_language|HML]] files into other knowledge representation languages.
 +  * Information about the first version of HaThoR can be found [[hekate:​hathor|here]].
 +  * Evaluation of the first version (including miw projects: [[pl:​miw:​2009:​miw09_swrltrans|XTT->​SWRL]] and [[pl:​miw:​miw08_xtt_rif|XTT->​RIF]]) can be found [[hekatedev:​hathor_evaluation|here]].
 +
 +__HaThoR v.2.0 consists of the following translators:​__
 +  * ATTML -> OWL (RDF/XML syntax)
 +  * ATTML -> OWL2 (RDF/XML syntax)
 +
 +  * ARDML -> OWL (RDF/XML syntax)
 +  * ARDML -> OWL2 (RDF/XML syntax)
 +
 +  * XTTML -> SWRL (RDF/XML syntax)
 +  * XTTML -> RIF Core
 +  * XTTML -> RIF PRD
 +
 +  * STATE -> OWL (RDF/XML syntax)
 +  * STATE -> OWL2 (RDF/XML syntax)
 +
 +  * HML -> SWRL/OWL (RDF/XML syntax)
 +  * HML (without XTTML) -> OWL2 (RDF/XML syntax)
 +
 +==== Download ====
 +{{:​hekatedev:​hathor2-final.tar.gz|}}
 +
 +==== HaThoR online ====
 +[[http://​home.agh.edu.pl/​~wta/​onto/​hathor2/​www/​|HaThoR online]]
 +
 +==== Translators - shortly ​ ====
 +  * **attml2owl1** ​     [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​attml2owl1.xsl|attml2owl1.xsl]]
 +    * based on hathor1 by JSJ
 +    * syntactic changes
 +    * HML2 compliance
 +      * some potentially misleading changes of datatype properties:
 +        * range(ordered)={ordered,​unordered} -> range(tpeIsOrdered)=boolean
 +        * range(att_value)={single,​multiple} -> range(attHasClass)={simple,​general}
 +        * range(att_class)={ro,​rw,​wo,​state} -> range(attHasComm)={in,​io,​out,​state}
 +  * **attml2owl2** [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​attml2owl2.xsl|attml2owl2.xsl]]
 +    * hierarchy of types (SymbolicType,​ NumericType as subclasses of Type)
 +    * datatypes (XSD) and value ranges in domain declarations
 +  * **ardml2owl** [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​ardml2owl1.xsl|ardml2owl1.xsl]]
 +  * **ardml2owl2** [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​ardml2owl2.xsl|ardml2owl2.xsl]]
 +    * based on hathor1 by JSJ
 +  * **xttml2rif** [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​xtt2rif-prd-simple.xsl|xtt2rif-prd-simple.xsl]],​ [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​xtt2rif-core.xsl|xtt2rif-core.xsl]]
 +    * based on miw_08_rif (but it's for RIF-BLD)
 +    * nested groups as in jsj-msc
 +    * variables removed
 +  * **xttml2swrl** [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​xttml2swrl.xsl|xttml2swrl.xsl]]
 +    * production rules can be encoded but will not work, as in [[https://​ai.ia.agh.edu.pl/​wiki/​hekate:​cases:​hekate_case_upsell:​start|Upsell case study]]
 +    * no support for conditions like: attr > Tuesday (swrlb:​greaterThan,​ SWRLJessTab)
 +  * **state2owl** [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​state2owl1.xsl|state2owl1.xsl]]
 +  * **state2owl2** [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​state2owl2.xsl|state2owl2.xsl]]
 +    * ''​attTakesValue(att,​value)''​
 +  * **hml2owl2** [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​hml2owl2.xsl|hml2owl2.xsl]]
 +    * attml2owl2+ardml2owl2+state2owl2 (**NO RULES**)
 +  * **hml2swrl** [[http://​home.agh.edu.pl/​wta/​onto/​hathor2/​hml2swrl.xsl|hml2swrl.xsl]]
 +    * attml2owl1+ardml2owl+xttml2swrl+state2owl1
 +
 +
 +==== Translators - more details ====
 +===Translation ATTML - OWL/RDF===
 +  * The main classes are Attribute and Type.
 +  * Class Attribute represents attributes from the ATTML ''​attributes''​ section, and types of attributes from ATTML ''​types''​ section are represented by subclasses ​ of  a class Type.
 +
 +  * Each type is represented by a class deriving from the superclass Type, and  for each type an instance is generated
 +  *  there  are   main subclasses ​ of the class Type NumericType and SymbolicType, ​ thhey are   ​created based on  information from HML
 +  * multiple ​ properties for types and attributes (translated attributes of HML elements <​attribute>​ and  <​type>​) -  One can describe the attributes in details, e.g. the use of the attribute in the system, its type and class, description etc.
 +  *  in  **attml2owl1** the domains ​ are represented as strings, e.g. ''​0-24''​. In  **atttml2owl2** the data  ranges ​ are used. 
 +  * in  **attml2owl1** the  domains are represented with  properties (for each type a new property is defined), in **attml2owl2**,​ types are defined by the  values they allow, ​ e.g. ''​Boolean ≡ tpeHasValues {0,​1}''​
 +
 +===Translation ARDML - OWL/RDF===
 +  * ARDML properties are represented in OWL as instances of a class Property.
 +  * Relations between properties are represented using Objet Property ''​hasAttribute'',​ ''​dependsOn''​ for dependencies betweeen attribute, and ''​transformedInto''​ for TPH relations.
 +
 +
 +===Translation XTTML - RIF ===
 +== RIF PRD ==
 +2 approaches: simple and frame-based
 +  * simple: using representing attributes and their values by defining/​using external predicates construct extensively
 +    * attributes references are constanst identified with URIs (''​rif:​iri''​)
 +    * attributes'​ values are bound using predicates ''​xtt:​name_of_the_relation(attr,​value_or_a_set)''​
 +  * frame-based:​ representing attributes as frames, //to be considered in future?//
 +
 +General remarks (common for both translations):​
 +  * XTTML model as a RIF Group,
 +  * XTT tables as RIF Nested Groups,
 +  * XTT rules as RIF Rules; the rule conditions are placed in the ''<​if>''​ section, and the decisions in ''<​then>''​ realized in RIF ACTION_BLOCK
 +  * Connections between XTT tables represented with ''​xtt:​link'' ​ predicate (calling external action)
 +  * Logical operators used in rule preconditions are externally defined using RIF ''<​op>''​ tag
 +  * primitive datatypes as defined in  RIF DTB
 +  * new operators and predicates for XTT: ''​**xtt:​range**''​ for ranges <a;b> and ''​**xtt:​set**''​ for sets {a,b,c} (previously:​ xtt:set and xtt:​complex_set)
 +  * in the decision part external actions are used - for better compatibility with RIF BLD and beause of the nuances of ''​Assert'',​ ''​Retract'',​ ''​Modify''​ (e.g. should we assert or modify the attribute value?)
 +
 +  * not compatible with other translations,​ but in this case I think it doesn'​t matter. In the end the others may change, in RIF alternative there are some interesting ideas, e.g:
 +    * [[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​miw08_xtt_rif#​niuanse_zapisu_xtt_w_rif|attr in any]]
 +
 +  * problems: no RIF PRD Validators, only syntax checking (the translator produces valid XML documents)
 +
 +== RIF Core ==
 +  * based on the above translator, only some PRD constructs removed
 +  * validated with [[http://​idi.fundacionctic.org/​rifle/​validator.jsf|RIFLE Validator]] - yields analogous warnings as for the [[http://​www.w3.org/​2005/​rules/​test/​repository/​tc/​|standard W3C RIF files...]] ;-) 
 +
 +===Translation XTTML - SWRL===
 +  * no support for  production rules in SWRL -> rules translated, and asserting new facts can be done  (e.g. by  JessSWRLTab in Protege), but updating an  attribute value would not work
 +  * translated rules' conditions: att=val,​att>​val,​att<​val,​ att in {v1,v2,v3} only partly: if this  is the  only condition in a rule  (as  in thermostat)
 +   * translated ​  ​rules'​ conclusions: ​ att:=val.
 +  * example rule:
 +<​code>​
 +    attTakesValue(att_10,​ "​workday"​) ​ ∧ attTakesValue(att_11,​ ?​var_att_11) ​ ∧ swrlb:​lessThan(?​var_att_11,​ "​9"​) → attTakesValue(att_7,​ "​not_during_business_hours"​)
 +</​code>​
 +   ​* ​ no support ​  ​for ​ symbolic ​ ranges (e.g. att> Tuesday)
 +
 +=== STATE - OWL ===
 +  * A state of a system is modelled with the following ​ properties (role assertions):​ ''​attTakesValue(a,​d)''​ for simple attributes ​ and ''​attTakesValue(a,​v1),​attTakesValue(a,​v2)...attTakesValue(a,​vn)''​ for generalized ones.
 +  * each state in an instance of a class State,with a set of datatype property assertions: ''​stDescibeAttribute(state,​att)''​
  
  
hekate/hathor.txt · Last modified: 2019/06/27 15:49 (external edit)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0