[Attempto] How to define OWL datatype properties ?

Jean-Marc Vanel jeanmarc.vanel at gmail.com
Thu Apr 26 17:45:39 CEST 2012


Sorry for the late reply; was busy with EulerGUI release.

2012/4/14 Kaarel Kaljurand <kaljurand at gmail.com>

> 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.


I tried this expression that both expresses waht I wads searching, and
actually works (with the git version ) :

./ape.exe -text 'If X v:has-a-name Y then Y is a n:xsd_string.' -solo
owlfsspp
Prefix(:=<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test#>)
Ontology(<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test>
   ObjectPropertyRange(
      :has-a-name
      :xsd_string
   )
)

And this nicely brings me to the next question I planed to ask (I asked it
before, but nothing happened AFAIK ).
What is the best practice for refering to OWL classes and properties in
another RDF namespace ?

I this particular case, I want to obtain directly ( no hacking and regular
expressions ) :

ObjectPropertyRange(
      :has-a-name
      xsd:string
 )

( I don't particularly recommend the underscore notation, it's just an
example; some syntax must be standardized, and the OWL translator has to
leverage on it  )

I consider that this is main missing feature in ATTEMPTO tool chain.
Defininig an ontology from scratch is the current ATTEMPTO use case, but
extending one or more ontologies is also very important ( reuse is good
practice ! ).
ATTEMPTO was born before the Semantic Web, and it has not yet fully adapted
to it .

I'll enter this in the GitHub site in issues :
https://github.com/Attempto/APE/issues


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
>
> Very good news !
It should have been announced on the list !


> Best regards,
> Kaarel
> _______________________________________________
> attempto mailing list
> attempto at lists.ifi.uzh.ch
> https://lists.ifi.uzh.ch/listinfo/attempto
>



-- 
Jean-Marc Vanel
Déductions SARL - Consulting, services, training,
Rule-based programming, Semantic Web
http://jmvanel.free.fr/ - EulerGUI, a turntable GUI for Semantic Web +
rules, XML, UML, eCore, Java bytecode
+33 (0)6 89 16 29 52
chat :  irc://irc.freenode.net#eulergui
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ifi.uzh.ch/pipermail/attempto/attachments/20120426/599b856b/attachment.html>


More information about the attempto mailing list