[Attempto] How to define OWL datatype properties ?

Kaarel Kaljurand kaljurand at gmail.com
Sat Apr 14 14:19:47 CEST 2012


Hi,

On Thu, Apr 12, 2012 at 14:54, Jean-Marc Vanel <jeanmarc.vanel at gmail.com> wrote:
> How to define OWL datatype properties ?
> An example is "Every man has a name." , but is there a way to declare that
> name is always a string ? And if yes, does it translate as expected to OWL ?

The OWL datatype support in the ACE->OWL/SWRL converter (that is part
of APE) works so that if the argument of a transitive verb or
of-construct or comparative/transitive adjective is a data item
(number or string) then the relation is interpreted as a data
property. Examples:

/*1*/ Paul has "Paul".
/*2*/ Paul's name is "Paul".
/*3*/ A name of Paul is "Paul".
/*4*/ Every man whose name is "Paul" is younger than 1000.

The data property support in OWL goes beyond that: (1) in addition to
talking about numbers and strings, one can talk about the more general
data ranges (e.g. a number between 13-19), (2) one can talk about the
data properties themselves (functionality, keyness). This is not
supported in the ACE->OWL/SWRL mapping because we did not find a nice
corresponding representation for these things in ACE.

Your options are:

1. Augment your ACE text with an OWL syntax that can express these
things (e.g. the Manchester syntax)

2. Post-process the OWL form which ACE->OWL/SWRL delivers, e.g. you
could tag in the lexicon the words which you want to stand for data
properties and data types:

$ ./ape.exe -text "Every name is a string." -ulextext "noun_sg(name,
dp_name, neutr). noun_sg(string, d_string, neutr)." -solo owlfsspp

And then rewrite the resulting OWL:

   SubClassOf(
      :dp_name
      :d_string
   )

into the OWL that you actually want:

   DataPropertyRange(
      :name
      xsd:string
   )

In this case it seems quite trivial but I'm not sure about the general
case. If there is a clear and general way to do it and we can come up
with conventions how to tag the lexicon then this could be also
integrated into the ACE->OWL/SWRL converter. Btw, APE is now on GitHub
and easily forkable. Everybody's ideas are welcome in the form of
GitHub pull requests. :)

https://github.com/Attempto/APE

Best regards,
Kaarel


More information about the attempto mailing list