help

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

help

Bluesword528
Hello everybody:
   I'm a new learner who learns to program with protege owl API eagerly.
but, i have met the first question. how to use the SWRLJessBridge class, which can reason the OWLModel with the rule engine jess.May, I have got to how to get a Jess rule engine instance, But what really hit me is how to creat a OWLModel ,which carrys a knowlege base and some SWRL Rules.I really appreciate you if anybody can help me by my honour.
Thanks!  

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: help

Martin O'Connor

Please use meaningful post titles.

The Protege-OWL API is documented here:

http://protegewiki.stanford.edu/wiki/ProtegeOWL_API_Programmers_Guide

The SWRLJessBridge is documented here:

http://protege.cim3.net/cgi-bin/wiki.pl?SWRLJessBridge

Martin

On 11/10/2011 5:02 AM, Bluesword528 wrote:

> Hello everybody:
>    I'm a new learner who learns to program with protege owl API eagerly.
> but, i have met the first question. how to use the SWRLJessBridge class, which can reason the OWLModel with the rule
> engine jess.May, I have got to how to get a Jess rule engine instance, But what really hit me is how to creat a
> OWLModel ,which carrys a knowlege base and some SWRL Rules.I really appreciate you if anybody can help me by my honour.
> Thanks!
>
>
> _______________________________________________
> protege-owl mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Protege 4

Girish Joglekar
I was playing with 4.1 and noticed that it does not have a way to create
the OWL-API code. Is that correct? That will pretty much determine
whether I use Protege 4+. Also, 3.4.7 has a way to define OWL
preferences for a variety of things. I did not notice them in 4.1.
Thanks much.

Girish
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Maintaining ontologies

Girish Joglekar
In reply to this post by Martin O'Connor
Hi Matthew,

Thank you very much for the pointers. I will certainly study the papers.
A quick glance revealed that they are all 2011 publications. I am
surprised to find that with so much work going on in semantic web where
ontologies serve at the key building blocks, there is not much available
to address the migration issue. Have people done it mostly the hard way
in the past, or have they done it right the first time?

Does this mean that the plug-ins are available only for 4.0? Should I
migrate to 4.0? How will the move impact the current code I have? How
different is the Manchester API from Protege's OWL-API?

Thanks again for your help.

Girish
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Matthew Horridge-2
Administrator
In reply to this post by Girish Joglekar
Hi Girish,

There is a plugin of sorts.... Timothy will be able to give you more information as he is the author of the plugin.  Out of interest can you explain what you need the code generation for and why coding against an API like the OWL API isn't good enough?

I'm not sure what you mean by OWL preferences.  Please could you provide more details?

Cheers,

Matthew


On 11 Nov 2011, at 08:21, Girish Joglekar wrote:

> I was playing with 4.1 and noticed that it does not have a way to create the OWL-API code. Is that correct? That will pretty much determine whether I use Protege 4+. Also, 3.4.7 has a way to define OWL preferences for a variety of things. I did not notice them in 4.1.
> Thanks much.
>
> Girish
> _______________________________________________
> protege-owl mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Timothy Redmond
In reply to this post by Girish Joglekar
On 11/11/2011 08:21 AM, Girish Joglekar wrote:
> I was playing with 4.1 and noticed that it does not have a way to
> create the OWL-API code. Is that correct?

There is a plugin but it is in an early stage of development.  I think
that we will include this in the next Protege 4.2 build.

> That will pretty much determine whether I use Protege 4+. Also, 3.4.7
> has a way to define OWL preferences for a variety of things. I did not
> notice them in 4.1.

You need to be more specific.  There are a lot of preferences that can
be set in Protege 4+ but they are very different from the Protege 3.4.7
preferences.

-Timothy


> Thanks much.
>
> Girish
> _______________________________________________
> protege-owl mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing:
> http://protege.stanford.edu/doc/faq.html#01a.03

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Girish Joglekar
For example, in 3.4.7, in the main bar there are three menus, Project,
OWL and Code, which are not in 4.1 (it has a new one called Refactor).
The Preferences... option of the OWL drop down menu, opens a dialog box
with 9 tabs that do various things. For example, in 4.1 it is not clear
how to make some of the rdf classes such as seq, bag etc. visible which
I can make visible in 3.4.7 thru OWL->Preferences->Visibility, and I
define subclasses of seq class. The Code drop down menu has the Generate
OWL Java Code... option which I use. I use the Java code in my
application which loads an OWL file containing instances and then
perform various actions. It is quite possible that all these features
exist in 4.1, but when I poked around it was not very apparent. Also, I
found the layout for displaying class structure and definitions in 3.4.7
much more easy to understand than the 4.1. For example, in 3.4.7 to look
at the attributes of a class, I just pick the Properties View toggle and
the attributes are right there. I can add/edit/subtract etc easily. In
4.1 it was not clear to me how to see the attributes of a class and
manipulate them. Again, it could just be a matter of getting used to the
new look and feel.

Thanks much.
Girish

On 11/11/2011 1:01 PM, Timothy Redmond wrote:

> On 11/11/2011 08:21 AM, Girish Joglekar wrote:
>> I was playing with 4.1 and noticed that it does not have a way to
>> create the OWL-API code. Is that correct?
>
> There is a plugin but it is in an early stage of development.  I think
> that we will include this in the next Protege 4.2 build.
>
>> That will pretty much determine whether I use Protege 4+. Also, 3.4.7
>> has a way to define OWL preferences for a variety of things. I did
>> not notice them in 4.1.
>
> You need to be more specific.  There are a lot of preferences that can
> be set in Protege 4+ but they are very different from the Protege
> 3.4.7 preferences.
>
> -Timothy
>
>
>> Thanks much.
>>
>> Girish
>> _______________________________________________
>> protege-owl mailing list
>> [hidden email]
>> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>>
>> Instructions for unsubscribing:
>> http://protege.stanford.edu/doc/faq.html#01a.03
>
> _______________________________________________
> protege-owl mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing:
> http://protege.stanford.edu/doc/faq.html#01a.03

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Matthew Horridge-2
Administrator
Hi Girish,

For example, in 3.4.7, in the main bar there are three menus, Project, OWL and Code, which are not in 4.1 (it has a new one called Refactor).

Yes, the menus are different.  You'll just have to get used to them I suppose.

The Preferences... option of the OWL drop down menu, opens a dialog box with 9 tabs that do various things. For example, in 4.1 it is not clear how to make some of the rdf classes such as seq, bag etc. visible which I can make visible in 3.4.7 thru OWL->Preferences->Visibility, and I define subclasses of seq class.

These classes (well list is) are used to encode OWL at the level of RDF and it's not recommended that you use them for modelling purposes in your ontology.  They are not part of the OWLAPI model that underpins Protege 4 (and you won't find them in the OWL 2 Structural Specification).  Actually, I'm not sure how many RDF tools really deal with them in the sense of reasoning.  If you really do want to use them then all you need to do is simply create some classes in Protege 4 with the same name  (full IRIs as these classes).  Choose create subclass or create sibling and then in the create class dialog that appears you need to enter the full IRI of the class in question e.g. for rdf:Seq the full IRI is the rdf namespace + Seq (http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq).  When you do this make sure Ignore entity creation preferences is ticked.


The Code drop down menu has the Generate OWL Java Code... option which I use. I use the Java code in my application which loads an OWL file containing instances and then perform various actions. It is quite possible that all these features exist in 4.1, but when I poked around it was not very apparent.

o.k. I think Tim has replied about this.

Also, I found the layout for displaying class structure and definitions in 3.4.7 much more easy to understand than the 4.1. For example, in 3.4.7 to look at the attributes of a class, I just pick the Properties View toggle and the attributes are right there. I can add/edit/subtract etc easily. In 4.1 it was not clear to me how to see the attributes of a class and manipulate them. Again, it could just be a matter of getting used to the new look and feel.

For now, it might be best to open your ontologies in both versions and compare the two.  We are going to work on providing a sensible "properties view" for Protege 4.

Cheers,

Matthew



Thanks much.
Girish

On 11/11/2011 1:01 PM, Timothy Redmond wrote:
On 11/11/2011 08:21 AM, Girish Joglekar wrote:
I was playing with 4.1 and noticed that it does not have a way to create the OWL-API code. Is that correct?

There is a plugin but it is in an early stage of development.  I think that we will include this in the next Protege 4.2 build.

That will pretty much determine whether I use Protege 4+. Also, 3.4.7 has a way to define OWL preferences for a variety of things. I did not notice them in 4.1.

You need to be more specific.  There are a lot of preferences that can be set in Protege 4+ but they are very different from the Protege 3.4.7 preferences.

-Timothy


Thanks much.

Girish
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Girish Joglekar
My comments inlined.

On 11/11/2011 2:05 PM, Matthew Horridge wrote:
Hi Girish,

For example, in 3.4.7, in the main bar there are three menus, Project, OWL and Code, which are not in 4.1 (it has a new one called Refactor).

Yes, the menus are different.  You'll just have to get used to them I suppose.
That is fine.

The Preferences... option of the OWL drop down menu, opens a dialog box with 9 tabs that do various things. For example, in 4.1 it is not clear how to make some of the rdf classes such as seq, bag etc. visible which I can make visible in 3.4.7 thru OWL->Preferences->Visibility, and I define subclasses of seq class.

These classes (well list is) are used to encode OWL at the level of RDF and it's not recommended that you use them for modelling purposes in your ontology.
I am too much of a novice to understand what you mean by "encode OWL ...", but I find it difficult to understand why their use is not recommended. Afterall, OWL is built on RDF. I find rdf:seq very useful because that is the only class that ensures order in the associated collections which I can exploit in my application. For example, in our domain which is related to chemical engineering, we have a concept of "stream" which is a collection of chemical species and phases, and the composition of stream is defined by mass fraction of these species and phases. Since the same species and phases appear in the entire process it is very convenient that the species names and the associated compositions come out in the same order. Normally, when the range of a property is "multiple objects of a class", the order is not guaranteed. I can see a problem with reasoning but that would not be any different from the current state. Are you implying that the work around you suggested below will solve that problem?
 They are not part of the OWLAPI model that underpins Protege 4 (and you won't find them in the OWL 2 Structural Specification).  Actually, I'm not sure how many RDF tools really deal with them in the sense of reasoning.  If you really do want to use them then all you need to do is simply create some classes in Protege 4 with the same name  (full IRIs as these classes).  Choose create subclass or create sibling and then in the create class dialog that appears you need to enter the full IRI of the class in question e.g. for rdf:Seq the full IRI is the rdf namespace + Seq (http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq).  When you do this make sure Ignore entity creation preferences is ticked.


The Code drop down menu has the Generate OWL Java Code... option which I use. I use the Java code in my application which loads an OWL file containing instances and then perform various actions. It is quite possible that all these features exist in 4.1, but when I poked around it was not very apparent.

o.k. I think Tim has replied about this.

Also, I found the layout for displaying class structure and definitions in 3.4.7 much more easy to understand than the 4.1. For example, in 3.4.7 to look at the attributes of a class, I just pick the Properties View toggle and the attributes are right there. I can add/edit/subtract etc easily. In 4.1 it was not clear to me how to see the attributes of a class and manipulate them. Again, it could just be a matter of getting used to the new look and feel.

For now, it might be best to open your ontologies in both versions and compare the two.  We are going to work on providing a sensible "properties view" for Protege 4.

A sensible properties view will help greatly. The one in 3.4.7 is perfect. Maybe a variant of that will do.

Thanks for your help.

Girish

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Matthew Horridge-2
Administrator
Hi Girish,

>>> For example, in 3.4.7, in the main bar there are three menus, Project, OWL and Code, which are not in 4.1 (it has a new one called Refactor).
>>
>> Yes, the menus are different.  You'll just have to get used to them I suppose.
> That is fine.

o.k. good :)

>>
>>> The Preferences... option of the OWL drop down menu, opens a dialog box with 9 tabs that do various things. For example, in 4.1 it is not clear how to make some of the rdf classes such as seq, bag etc. visible which I can make visible in 3.4.7 thru OWL->Preferences->Visibility, and I define subclasses of seq class.
>>
>> These classes (well list is) are used to encode OWL at the level of RDF and it's not recommended that you use them for modelling purposes in your ontology.
> I am too much of a novice to understand what you mean by "encode OWL ...",

Sorry, I mean that OWL objects can be mapped to RDF triples for serialisation purposes.   For example,

SubClassOf(:A  :B)  gets mapped to   :A rdfs:subClassOf :B

The above example is almost trivial, but for more complex OWL objects this mapping uses rdf lists to serialise these more complex.  For example, rdf lists are use to serialise objects like intersections and unions of classes.  At the OWL level rdf lists aren't used for ordering purposes.

> but I find it difficult to understand why their use is not recommended.  Afterall, OWL is built on RDF.
> I find rdf:seq very useful because that is the only class that ensures order in the associated collections which I can exploit in my application.

I suppose the point is that no standard OWL tools will pay attention to this ordering - rdf:Seq isn't part of the OWL spec.  If you share your ontology then people and 3rd party applications need special knowledge of your conventions to interpret it in the same way as you.  Perhaps this is o.k. for you though. :)

> For example, in our domain which is related to chemical engineering, we have a concept of "stream" which is a collection of chemical species and phases, and the composition of stream is defined by mass fraction of these species and phases. Since the same species and phases appear in the entire process it is very convenient that the species names and the associated compositions come out in the same order. Normally, when the range of a property is "multiple objects of a class", the order is not guaranteed. I can see a problem with reasoning but that would not be any different from the current state. Are you implying that the work around you suggested below will solve that problem?

It's not really a work around... the net effect will be exactly the same as what you will get in Protege 3.x.  In essence it will make it possible to refer to rdf:Seq as a class in your ontology..... which is what you want to do, and it will allow you to write down what you want to say.  It sounds like this might be good enough for your needs - especially because you don't want to do reasoning that takes this ordering into consideration.

>>  They are not part of the OWLAPI model that underpins Protege 4 (and you won't find them in the OWL 2 Structural Specification).  Actually, I'm not sure how many RDF tools really deal with them in the sense of reasoning.  If you really do want to use them then all you need to do is simply create some classes in Protege 4 with the same name  (full IRIs as these classes).  Choose create subclass or create sibling and then in the create class dialog that appears you need to enter the full IRI of the class in question e.g. for rdf:Seq the full IRI is the rdf namespace + Seq (http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq).  When you do this make sure Ignore entity creation preferences is ticked.
>>
>> <Mail Attachment.png>
>>
>>> The Code drop down menu has the Generate OWL Java Code... option which I use. I use the Java code in my application which loads an OWL file containing instances and then perform various actions. It is quite possible that all these features exist in 4.1, but when I poked around it was not very apparent.
>>
>> o.k. I think Tim has replied about this.
>>
>>> Also, I found the layout for displaying class structure and definitions in 3.4.7 much more easy to understand than the 4.1. For example, in 3.4.7 to look at the attributes of a class, I just pick the Properties View toggle and the attributes are right there. I can add/edit/subtract etc easily. In 4.1 it was not clear to me how to see the attributes of a class and manipulate them. Again, it could just be a matter of getting used to the new look and feel.
>>
>> For now, it might be best to open your ontologies in both versions and compare the two.  We are going to work on providing a sensible "properties view" for Protege 4.
>>
> A sensible properties view will help greatly.

Yes :)

> The one in 3.4.7 is perfect. Maybe a variant of that will do.

It will be some kind of tabular view like this.

> Thanks for your help.

No problem!  :)

Cheers,

Matthew

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Timothy Redmond
In reply to this post by Girish Joglekar

I am too much of a novice to understand what you mean by "encode OWL ...", but I find it difficult to understand why their use is not recommended. Afterall, OWL is built on RDF. I find rdf:seq very useful because that is the only class that ensures order in the associated collections which I can exploit in my application.

Technically, using these terms in an OWL file takes the ontology out of OWL DL.  You can see this by comparing the following from section 2.4 of the OWL structural specification:

IRIs with prefixes rdf:, rdfs:, xsd:, and owl: constitute the reserved vocabulary of OWL 2. As described in the following sections, the IRIs from the reserved vocabulary that are listed in Table 3 have special treatment in OWL 2.

with the following from section 3 of the structural specification [2]

Each entity in O must have an IRI satisfying the restrictions on the usage of the reserved vocabulary from Sections 5.15.6.

and such quotes as the following from section 5.1 of the structural specification [3]

IRIs from the reserved vocabulary other than owl:Thing and owl:Nothing must not be used to identify classes in an OWL 2 DL ontology.


Afterall, OWL is built on RDF.

This is a surprisingly complicated and controversial statement.  You will note that in [4] the OWL syntax is defined in terms of UML.  Other syntaxes such as the rdf and functional syntaxes are just serializations of the OWL language.  This is expressed in some detail in the following quote from the introduction of [1]:

This document defines the OWL 2 language. The core part of this specification — called the structural specification — is independent of the concrete exchange syntaxes for OWL 2 ontologies. The structural specification describes the conceptual structure of OWL 2 ontologies and thus provides a normative abstract representation for all (normative and nonnormative) syntaxes of OWL 2. This allows for a clear separation of the essential features of the language from issues related to any particular syntax. Furthermore, such a structural specification of OWL 2 provides the foundation for the implementation of OWL 2 tools such as APIs and reasoners. Each OWL 2 ontology represented as an instance of this conceptual structure can be converted into an RDF graph [OWL 2 RDF Mapping]; conversely, most OWL 2 ontologies represented as RDF graphs can be converted into the conceptual structure defined in this document [OWL 2 RDF Mapping].

There is another document [5] which describes the mapping of OWL ontologies to and from RDF.  But it should be noticed that this document does not allow for the parsing of arbitrary RDF.  Some care is taken to ensure that the RDF being parsed can be mapped to the OWL structural syntax.

Finally - and this really confuses the issue - there is a second language, OWL full [6], described in the OWL specifications.  This language is based on RDF/RDFS.  It has a distinct syntax and semantics from OWL DL.  The syntax for OWL 2 Full is the RDF syntax and the semantics is given by [6] instead of by [7].

The Protege 4 OWL editor is based on the OWL 2 DL language.  In the future there are plans to provide an RDF editor and through this we will have support for OWL 2 Full (the syntax anyway).

For example, in our domain which is related to chemical engineering, we have a concept of "stream" which is a collection of chemical species and phases, and the composition of stream is defined by mass fraction of these species and phases. Since the same species and phases appear in the entire process it is very convenient that the species names and the associated compositions come out in the same order. Normally, when the range of a property is "multiple objects of a class", the order is not guaranteed. I can see a problem with reasoning but that would not be any different from the current state. Are you implying that the work around you suggested below will solve that problem?

I think that a search of the web will find OWL DL ontologies that handle lists.  I always forget where these are but Nick Drummond had a paper that described on such ontology and there was another one somewhere.

-Timothy


[1] http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#IRIs
[2] http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Ontologies
[3] http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Classes
[4] http://www.w3.org/TR/owl2-syntax/
[5] http://www.w3.org/TR/2009/REC-owl2-mapping-to-rdf-20091027/
[6] http://www.w3.org/TR/owl2-rdf-based-semantics/
[7] http://www.w3.org/TR/owl2-direct-semantics/

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Girish Joglekar
Hi Timothy,
I appreciate your detailed response. I do understand the need for the rigor in developing specifications for a standard like OWL. However, I am coming more from the applications stand point and find it frustrating to not be able to do simple things like ordered list within the framework. Methinks it would be easy to implement such a functionality without taking away the rigor, because the property range would be the same whether it is an ordered list or not, and as a bonus it will help in certain domains. One could extend it easily through list of lists to represent an array. To keep it simple, it could just be the order as it appears on the screen. I will certainly try to dig up the references you mentioned.

What liberties does OWL Full offer which can help me in this regard. Also, how do I build mappings? Is that through Protege or external to Protege?
Thanks much.
Girish

On 11/11/2011 4:53 PM, Timothy Redmond wrote:

I am too much of a novice to understand what you mean by "encode OWL ...", but I find it difficult to understand why their use is not recommended. Afterall, OWL is built on RDF. I find rdf:seq very useful because that is the only class that ensures order in the associated collections which I can exploit in my application.

Technically, using these terms in an OWL file takes the ontology out of OWL DL.  You can see this by comparing the following from section 2.4 of the OWL structural specification:

IRIs with prefixes rdf:, rdfs:, xsd:, and owl: constitute the reserved vocabulary of OWL 2. As described in the following sections, the IRIs from the reserved vocabulary that are listed in Table 3 have special treatment in OWL 2.

with the following from section 3 of the structural specification [2]

Each entity in O must have an IRI satisfying the restrictions on the usage of the reserved vocabulary from Sections 5.15.6.

and such quotes as the following from section 5.1 of the structural specification [3]

IRIs from the reserved vocabulary other than owl:Thing and owl:Nothing must not be used to identify classes in an OWL 2 DL ontology.


Afterall, OWL is built on RDF.

This is a surprisingly complicated and controversial statement.  You will note that in [4] the OWL syntax is defined in terms of UML.  Other syntaxes such as the rdf and functional syntaxes are just serializations of the OWL language.  This is expressed in some detail in the following quote from the introduction of [1]:

This document defines the OWL 2 language. The core part of this specification — called the structural specification — is independent of the concrete exchange syntaxes for OWL 2 ontologies. The structural specification describes the conceptual structure of OWL 2 ontologies and thus provides a normative abstract representation for all (normative and nonnormative) syntaxes of OWL 2. This allows for a clear separation of the essential features of the language from issues related to any particular syntax. Furthermore, such a structural specification of OWL 2 provides the foundation for the implementation of OWL 2 tools such as APIs and reasoners. Each OWL 2 ontology represented as an instance of this conceptual structure can be converted into an RDF graph [OWL 2 RDF Mapping]; conversely, most OWL 2 ontologies represented as RDF graphs can be converted into the conceptual structure defined in this document [OWL 2 RDF Mapping].

There is another document [5] which describes the mapping of OWL ontologies to and from RDF.  But it should be noticed that this document does not allow for the parsing of arbitrary RDF.  Some care is taken to ensure that the RDF being parsed can be mapped to the OWL structural syntax.

Finally - and this really confuses the issue - there is a second language, OWL full [6], described in the OWL specifications.  This language is based on RDF/RDFS.  It has a distinct syntax and semantics from OWL DL.  The syntax for OWL 2 Full is the RDF syntax and the semantics is given by [6] instead of by [7].

The Protege 4 OWL editor is based on the OWL 2 DL language.  In the future there are plans to provide an RDF editor and through this we will have support for OWL 2 Full (the syntax anyway).

For example, in our domain which is related to chemical engineering, we have a concept of "stream" which is a collection of chemical species and phases, and the composition of stream is defined by mass fraction of these species and phases. Since the same species and phases appear in the entire process it is very convenient that the species names and the associated compositions come out in the same order. Normally, when the range of a property is "multiple objects of a class", the order is not guaranteed. I can see a problem with reasoning but that would not be any different from the current state. Are you implying that the work around you suggested below will solve that problem?

I think that a search of the web will find OWL DL ontologies that handle lists.  I always forget where these are but Nick Drummond had a paper that described on such ontology and there was another one somewhere.

-Timothy


[1] http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#IRIs
[2] http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Ontologies
[3] http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Classes
[4] http://www.w3.org/TR/owl2-syntax/
[5] http://www.w3.org/TR/2009/REC-owl2-mapping-to-rdf-20091027/
[6] http://www.w3.org/TR/owl2-rdf-based-semantics/
[7] http://www.w3.org/TR/owl2-direct-semantics/
_______________________________________________ protege-owl mailing list [hidden email] https://mailman.stanford.edu/mailman/listinfo/protege-owl Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Timothy Redmond
On 11/11/2011 02:32 PM, Girish Joglekar wrote:
Hi Timothy,
I appreciate your detailed response. I do understand the need for the rigor in developing specifications for a standard like OWL. However, I am coming more from the applications stand point and find it frustrating to not be able to do simple things like ordered list within the framework.

It is easy to define a list construct in OWL.  The RDF list concept is very primitive and doesn't really give you much.  (E.g an RDF list is not even necessarily a list.)  It is extremely easy to do as well or better in OWL using the same type of construction of the list concept.  In particular, in OWL you can make the the link to the next part of the list functional which cannot be said in RDF.   Unfortunately OWL is not a great language for defining lists either.

Methinks it would be easy to implement such a functionality without taking away the rigor, because the property range would be the same whether it is an ordered list or not, and as a bonus it will help in certain domains.

I may have missed an important part of this conversation.  I am not sure what you mean by the order of the property range.  One possibility is that you have a property, p, and a property range assertion

p Range: A and B and C

and you want to preserve the order of A, B, C.  But you can't do this in OWL because the order of the objects in an intersection is not defined.  You can save an OWL ontology with one tool and re-read it with another tool and you will get the equivalent axiom

p Range: B and C and A

with the conjuncts of the range in a different order.


What liberties does OWL Full offer which can help me in this regard. Also, how do I build mappings? Is that through Protege or external to Protege?

My personal feeling is that OWL full will just make your life more complicated.  You lose access to an increasing variety of OWL 2 tools including many reasoners.  I think that it is a bit early on for you to constrain yourself to this language, which I personally feel is more complicated than OWL 2 DL.

-Timothy


One could extend it easily through list of lists to represent an array. To keep it simple, it could just be the order as it appears on the screen. I will certainly try to dig up the references you mentioned.

What liberties does OWL Full offer which can help me in this regard. Also, how do I build mappings? Is that through Protege or external to Protege?
Thanks much.
Girish



_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Protege 4

Girish Joglekar
On 11/11/2011 6:08 PM, Timothy Redmond wrote:
On 11/11/2011 02:32 PM, Girish Joglekar wrote:
Hi Timothy,
I appreciate your detailed response. I do understand the need for the rigor in developing specifications for a standard like OWL. However, I am coming more from the applications stand point and find it frustrating to not be able to do simple things like ordered list within the framework.

It is easy to define a list construct in OWL.  The RDF list concept is very primitive and doesn't really give you much.  (E.g an RDF list is not even necessarily a list.)  It is extremely easy to do as well or better in OWL using the same type of construction of the list concept.  In particular, in OWL you can make the the link to the next part of the list functional which cannot be said in RDF.   Unfortunately OWL is not a great language for defining lists either.

Methinks it would be easy to implement such a functionality without taking away the rigor, because the property range would be the same whether it is an ordered list or not, and as a bonus it will help in certain domains.

I may have missed an important part of this conversation.  I am not sure what you mean by the order of the property range.  One possibility is that you have a property, p, and a property range assertion

p Range: A and B and C
    

and you want to preserve the order of A, B, C.  But you can't do this in OWL because the order of the objects in an intersection is not defined.  You can save an OWL ontology with one tool and re-read it with another tool and you will get the equivalent axiom

p Range: B and C and A

with the conjuncts of the range in a different order.

Of course, what you say above is fundamental. All I meant was, for a property whose range is not functional, if I specify multiple instances in the range, then when I iterate on the collection I should get them out in the same order as I specified (or as I see on the screen). This does not affect the reasoner, but at the same time establishes an implicit correspondence with similar lists specified with other instances using that property. It is intuitive, reduces the amount of data required to build information and helps application developers. Guaranteeing that order does not affect anything, and can be accomplished easily behind the scenes. Just a thought.

What liberties does OWL Full offer which can help me in this regard. Also, how do I build mappings? Is that through Protege or external to Protege?

I am still not very clear about building and using mappings. Is there a reference you can suggest.

My personal feeling is that OWL full will just make your life more complicated.  You lose access to an increasing variety of OWL 2 tools including many reasoners.  I think that it is a bit early on for you to constrain yourself to this language, which I personally feel is more complicated than OWL 2 DL.

-Timothy
Thanks much.
Girish

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03