Did you know ... Search Documentation:
Pack ape -- prolog/utils/owlswrl/drs_to_owldrs.pl
PublicShow source

The DRS is converted to "OWL DRS" which is a more suitable format for the conversion into OWL. The input must be simplified DRS (drs_to_sdrs.pl) which has been numbervard. The following steps are made:

  1. Rewrite implication chains: A => (B => C) ~~> (A & B) => C.
  2. Rewrite embedded implications via conjunction and negations: A => B ~~> -(A & -B)
  3. Remove double negations: --A ~~> A
  4. Remove toplevel be-predicate-conditions
  5. Remove named-object-conditions, unify the corresponding discourse referents with named(ProperName)
  6. Rewrite certain conditions and sets of conditions:
  • transitive (located-in) and comparative (taller than) adjectives are turned into transitive verbs,
  • relation/3 + be-predicate are used to construct data properties,
  • otherwise, relation/3 is used to construct object properties.
  • "which man" is turned into "what is a man"
  • Map attributive and predicative positive adjectives (property/3) to nouns (object/6). Supporting comparative and superlative ("richer man", "richest man") probably doesn't make sense as these require more background semantics.

    @author Kaarel Kaljurand @version 2013-04-07

 drs_to_owldrs(+Drs:term, -OwlDrs:term) is det
Modifies the DRS to make it easier to convert in to OWL/SWRL.
Arguments:
Drs- is Attempto DRS
OwlDrs- is a modified Attempto DRS