Ontology plus database

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

Ontology plus database

Julian Vincent-4
I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?

Best wishes - keep well!
Julian Vincent

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Ontology plus database

Igor Toujilov-2
Hi Julian,
Clearly, no one can answer your question because of the way it’s formulated. It has too many undefined variables. I would recommend for you posting an extremely short but consistent description of your use case.
A use case description, which works successfully in industry and science, normally specifies at least an example of what you try to achieve, technologies and software used, and problems you faced. In this case you will have a much better chance for help.

Cheers,
Igor


> Sent: Friday, May 08, 2020 at 5:02 PM
> From: "Julian Vincent" <[hidden email]>
> To: "User support for WebProtege and Protege Desktop" <[hidden email]>
> Subject: [protege-user] Ontology plus database
>
> I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
> My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?
>
> Best wishes - keep well!
> Julian Vincent
>
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Ontology plus database

samsontu
Hi,

Igor’s advice is very good.

One interpretation of Julian’s problem is that the “cases” in the database are instance data (a-box) and the “kernel” consists of t-box axioms. In that case he may be able to use Protege ’s Refactor/‘copy, move, or delete axioms…’ facility to move the individuals and property assertions to another ontology. Once the “kernel” is working properly, use something like Ontop to link the case data back.

With best regards,
Samson
 

On May 8, 2020, at 3:27 PM, Igor Toujilov <[hidden email]> wrote:

Hi Julian,
Clearly, no one can answer your question because of the way it’s formulated. It has too many undefined variables. I would recommend for you posting an extremely short but consistent description of your use case.
A use case description, which works successfully in industry and science, normally specifies at least an example of what you try to achieve, technologies and software used, and problems you faced. In this case you will have a much better chance for help.

Cheers,
Igor


Sent: Friday, May 08, 2020 at 5:02 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: [protege-user] Ontology plus database

I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?

Best wishes - keep well!
Julian Vincent

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

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


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Ontology plus database

Lorenz Buehmann

It might also be worth to materialized the inferred schema, if such a schema exists. Then you could make use of those explicit maybe in the querying part. Though, as already said, unclear how the workflow is. What is used to query the database? SQL? If so, are you using an OBDA engine?

On 09.05.20 02:59, Samson Tu wrote:
Hi,

Igor’s advice is very good.

One interpretation of Julian’s problem is that the “cases” in the database are instance data (a-box) and the “kernel” consists of t-box axioms. In that case he may be able to use Protege ’s Refactor/‘copy, move, or delete axioms…’ facility to move the individuals and property assertions to another ontology. Once the “kernel” is working properly, use something like Ontop to link the case data back.

With best regards,
Samson
 

On May 8, 2020, at 3:27 PM, Igor Toujilov <[hidden email]> wrote:

Hi Julian,
Clearly, no one can answer your question because of the way it’s formulated. It has too many undefined variables. I would recommend for you posting an extremely short but consistent description of your use case.
A use case description, which works successfully in industry and science, normally specifies at least an example of what you try to achieve, technologies and software used, and problems you faced. In this case you will have a much better chance for help.

Cheers,
Igor


Sent: Friday, May 08, 2020 at 5:02 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: [protege-user] Ontology plus database

I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?

Best wishes - keep well!
Julian Vincent

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

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


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

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Ontology plus database

Julian Vincent-4
Sorry - I obviously thought I had explained it well enough.
I attach a cut-down version of the ontology that includes only a small section of the database part. It has been chosed to illustrate the speed-accuracy trade-off.  What I called the ‘kernel’ is the class <entity> on its own, organised using the BFO as the template. There are some comments of the opening screen of the ontology describing briefly the organisaiton and how to query it for a speed-accuracy trade-off.

I hope there is sufficient information here to make clear the connections between the database section of annotated research papers and the class <entity> which is the main engine of the ontology. And I repeat my question. The Reasoner runs very quickly with the class <entity>, based on the BFO, but is extremely sluggish when all the annotated research papers (at present about 700, of which the ones presented with this ontology are a subset) are present. It would be very convenient for a number of reasons to be able to treat the cases separately, but I can’t see how I can do that.

Best wishes
Julian



On 9 May 2020, at 08:51, Lorenz Buehmann <[hidden email]> wrote:

It might also be worth to materialized the inferred schema, if such a schema exists. Then you could make use of those explicit maybe in the querying part. Though, as already said, unclear how the workflow is. What is used to query the database? SQL? If so, are you using an OBDA engine?

On 09.05.20 02:59, Samson Tu wrote:
Hi,

Igor’s advice is very good.

One interpretation of Julian’s problem is that the “cases” in the database are instance data (a-box) and the “kernel” consists of t-box axioms. In that case he may be able to use Protege ’s Refactor/‘copy, move, or delete axioms…’ facility to move the individuals and property assertions to another ontology. Once the “kernel” is working properly, use something like Ontop to link the case data back.

With best regards,
Samson
 

On May 8, 2020, at 3:27 PM, Igor Toujilov <[hidden email]> wrote:

Hi Julian,
Clearly, no one can answer your question because of the way it’s formulated. It has too many undefined variables. I would recommend for you posting an extremely short but consistent description of your use case.
A use case description, which works successfully in industry and science, normally specifies at least an example of what you try to achieve, technologies and software used, and problems you faced. In this case you will have a much better chance for help.

Cheers,
Igor


Sent: Friday, May 08, 2020 at 5:02 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: [protege-user] Ontology plus database

I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?

Best wishes - keep well!
Julian Vincent

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

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


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




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

BMO_kernel+speed-accuracy DB.owl (4M) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Ontology plus database

Igor Toujilov-2

Hi Julian,

At the first glance on your ontology, my opinion is: it is not conceptualised properly. You do not use individuals at all. You use subclasses instead. This results in big number of classes with complex logical relationships between them. The consequence is the huge impact on reasoning performance because the reasoner tries to derive all subclasses of every single class. If you would replace unnecessary classes with individuals, the reasoning should be much faster because there will be no need to find all subclasses of the unnecessary classes.

For example, you represent publications as classes: “aerolastic eagle wings” is a publication, and yet it has a subclass “alula feather”, which is a concept. I have an impression that this is wrong. It is enough to make the publication an individual.

 

Cheers,

Igor

 
Sent: Tuesday, May 12, 2020 at 1:50 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Cc: [hidden email]
Subject: Re: [protege-user] Ontology plus database
Sorry - I obviously thought I had explained it well enough.
I attach a cut-down version of the ontology that includes only a small section of the database part. It has been chosed to illustrate the speed-accuracy trade-off.  What I called the ‘kernel’ is the class <entity> on its own, organised using the BFO as the template. There are some comments of the opening screen of the ontology describing briefly the organisaiton and how to query it for a speed-accuracy trade-off.
 
I hope there is sufficient information here to make clear the connections between the database section of annotated research papers and the class <entity> which is the main engine of the ontology. And I repeat my question. The Reasoner runs very quickly with the class <entity>, based on the BFO, but is extremely sluggish when all the annotated research papers (at present about 700, of which the ones presented with this ontology are a subset) are present. It would be very convenient for a number of reasons to be able to treat the cases separately, but I can’t see how I can do that.
 
Best wishes
Julian
 
 
 
On 9 May 2020, at 08:51, Lorenz Buehmann <[hidden email]> wrote:
 

It might also be worth to materialized the inferred schema, if such a schema exists. Then you could make use of those explicit maybe in the querying part. Though, as already said, unclear how the workflow is. What is used to query the database? SQL? If so, are you using an OBDA engine?

On 09.05.20 02:59, Samson Tu wrote:
Hi,
 
Igor’s advice is very good.
 
One interpretation of Julian’s problem is that the “cases” in the database are instance data (a-box) and the “kernel” consists of t-box axioms. In that case he may be able to use Protege ’s Refactor/‘copy, move, or delete axioms…’ facility to move the individuals and property assertions to another ontology. Once the “kernel” is working properly, use something like Ontop to link the case data back.
 
With best regards,
Samson
 
 
On May 8, 2020, at 3:27 PM, Igor Toujilov <[hidden email]> wrote:
 
Hi Julian,
Clearly, no one can answer your question because of the way it’s formulated. It has too many undefined variables. I would recommend for you posting an extremely short but consistent description of your use case.
A use case description, which works successfully in industry and science, normally specifies at least an example of what you try to achieve, technologies and software used, and problems you faced. In this case you will have a much better chance for help.

Cheers,
Igor

 
Sent: Friday, May 08, 2020 at 5:02 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: [protege-user] Ontology plus database

I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?

Best wishes - keep well!
Julian Vincent

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

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Ontology plus database

Julian Vincent-4
OK, I’ll try that. But will it make it possible to separate the individuals into a separate database, which is another aim, since I’d like to have several different databases for the ontology to reason over.

Julian

On 12 May 2020, at 16:12, Igor Toujilov <[hidden email]> wrote:

Hi Julian,

At the first glance on your ontology, my opinion is: it is not conceptualised properly. You do not use individuals at all. You use subclasses instead. This results in big number of classes with complex logical relationships between them. The consequence is the huge impact on reasoning performance because the reasoner tries to derive all subclasses of every single class. If you would replace unnecessary classes with individuals, the reasoning should be much faster because there will be no need to find all subclasses of the unnecessary classes.

For example, you represent publications as classes: “aerolastic eagle wings” is a publication, and yet it has a subclass “alula feather”, which is a concept. I have an impression that this is wrong. It is enough to make the publication an individual.

 

Cheers,

Igor

 
Sent: Tuesday, May 12, 2020 at 1:50 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Cc: [hidden email]
Subject: Re: [protege-user] Ontology plus database
Sorry - I obviously thought I had explained it well enough.
I attach a cut-down version of the ontology that includes only a small section of the database part. It has been chosed to illustrate the speed-accuracy trade-off.  What I called the ‘kernel’ is the class <entity> on its own, organised using the BFO as the template. There are some comments of the opening screen of the ontology describing briefly the organisaiton and how to query it for a speed-accuracy trade-off.
 
I hope there is sufficient information here to make clear the connections between the database section of annotated research papers and the class <entity> which is the main engine of the ontology. And I repeat my question. The Reasoner runs very quickly with the class <entity>, based on the BFO, but is extremely sluggish when all the annotated research papers (at present about 700, of which the ones presented with this ontology are a subset) are present. It would be very convenient for a number of reasons to be able to treat the cases separately, but I can’t see how I can do that.
 
Best wishes
Julian
 
 
 
On 9 May 2020, at 08:51, Lorenz Buehmann <[hidden email]> wrote:
 

It might also be worth to materialized the inferred schema, if such a schema exists. Then you could make use of those explicit maybe in the querying part. Though, as already said, unclear how the workflow is. What is used to query the database? SQL? If so, are you using an OBDA engine?

On 09.05.20 02:59, Samson Tu wrote:
Hi,
 
Igor’s advice is very good.
 
One interpretation of Julian’s problem is that the “cases” in the database are instance data (a-box) and the “kernel” consists of t-box axioms. In that case he may be able to use Protege ’s Refactor/‘copy, move, or delete axioms…’ facility to move the individuals and property assertions to another ontology. Once the “kernel” is working properly, use something like Ontop to link the case data back.
 
With best regards,
Samson
 
 
On May 8, 2020, at 3:27 PM, Igor Toujilov <[hidden email]> wrote:
 
Hi Julian,
Clearly, no one can answer your question because of the way it’s formulated. It has too many undefined variables. I would recommend for you posting an extremely short but consistent description of your use case.
A use case description, which works successfully in industry and science, normally specifies at least an example of what you try to achieve, technologies and software used, and problems you faced. In this case you will have a much better chance for help.

Cheers,
Igor

 
Sent: Friday, May 08, 2020 at 5:02 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: [protege-user] Ontology plus database

I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?

Best wishes - keep well!
Julian Vincent

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


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Ontology plus database

Igor Toujilov-2

I would strongly recommend creating separate blank ontologies (one for each database), importing the kernel ontology to each of the blank ontologies, and then populating the blank ontologies with individuals from corresponding databases.

Igor

Sent: Tuesday, May 12, 2020 at 4:50 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: Re: [protege-user] Ontology plus database
OK, I’ll try that. But will it make it possible to separate the individuals into a separate database, which is another aim, since I’d like to have several different databases for the ontology to reason over.
 
Julian
 
On 12 May 2020, at 16:12, Igor Toujilov <[hidden email]> wrote:
 

Hi Julian,

At the first glance on your ontology, my opinion is: it is not conceptualised properly. You do not use individuals at all. You use subclasses instead. This results in big number of classes with complex logical relationships between them. The consequence is the huge impact on reasoning performance because the reasoner tries to derive all subclasses of every single class. If you would replace unnecessary classes with individuals, the reasoning should be much faster because there will be no need to find all subclasses of the unnecessary classes.

For example, you represent publications as classes: “aerolastic eagle wings” is a publication, and yet it has a subclass “alula feather”, which is a concept. I have an impression that this is wrong. It is enough to make the publication an individual.

 

Cheers,

Igor

 
Sent: Tuesday, May 12, 2020 at 1:50 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Cc: [hidden email]
Subject: Re: [protege-user] Ontology plus database
Sorry - I obviously thought I had explained it well enough.
I attach a cut-down version of the ontology that includes only a small section of the database part. It has been chosed to illustrate the speed-accuracy trade-off.  What I called the ‘kernel’ is the class <entity> on its own, organised using the BFO as the template. There are some comments of the opening screen of the ontology describing briefly the organisaiton and how to query it for a speed-accuracy trade-off.
 
I hope there is sufficient information here to make clear the connections between the database section of annotated research papers and the class <entity> which is the main engine of the ontology. And I repeat my question. The Reasoner runs very quickly with the class <entity>, based on the BFO, but is extremely sluggish when all the annotated research papers (at present about 700, of which the ones presented with this ontology are a subset) are present. It would be very convenient for a number of reasons to be able to treat the cases separately, but I can’t see how I can do that.
 
Best wishes
Julian
 
 
 
On 9 May 2020, at 08:51, Lorenz Buehmann <[hidden email]> wrote:
 

It might also be worth to materialized the inferred schema, if such a schema exists. Then you could make use of those explicit maybe in the querying part. Though, as already said, unclear how the workflow is. What is used to query the database? SQL? If so, are you using an OBDA engine?

On 09.05.20 02:59, Samson Tu wrote:
Hi,
 
Igor’s advice is very good.
 
One interpretation of Julian’s problem is that the “cases” in the database are instance data (a-box) and the “kernel” consists of t-box axioms. In that case he may be able to use Protege ’s Refactor/‘copy, move, or delete axioms…’ facility to move the individuals and property assertions to another ontology. Once the “kernel” is working properly, use something like Ontop to link the case data back.
 
With best regards,
Samson
 
 
On May 8, 2020, at 3:27 PM, Igor Toujilov <[hidden email]> wrote:
 
Hi Julian,
Clearly, no one can answer your question because of the way it’s formulated. It has too many undefined variables. I would recommend for you posting an extremely short but consistent description of your use case.
A use case description, which works successfully in industry and science, normally specifies at least an example of what you try to achieve, technologies and software used, and problems you faced. In this case you will have a much better chance for help.

Cheers,
Igor

 
Sent: Friday, May 08, 2020 at 5:02 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: [protege-user] Ontology plus database

I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?

Best wishes - keep well!
Julian Vincent

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

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Ontology plus database

Julian Vincent-4
I don’t think the idea of using individuals for the database will work. Have you looked at any of the descriptions of the text data class? I think that all you did was look at usage of the eagle wing paper which doesn’t really show you how integrated the description is with the <entity> part of the ontology. Your latest note (below) is in fact expressed in a slightly different form in my original note at the beginning of this string - the idea that the <entity> can be used as an engine with different databases each associated with a different topic (classic market segmentation strategy). Any database still has to be integrated with the ontology - we are working on a computer analytical system to do this, but it’s not part of the present discussion.
On my computer the Reasoner took 58 sec for the ontology I submitted for you, which was reduced to 48 sec when I took out “is realised by”. But when I took out “has participant” (which adds very little information to the ontology) I gave up after 7 min!

Julian

On 12 May 2020, at 17:25, Igor Toujilov <[hidden email]> wrote:

I would strongly recommend creating separate blank ontologies (one for each database), importing the kernel ontology to each of the blank ontologies, and then populating the blank ontologies with individuals from corresponding databases.

Igor

Sent: Tuesday, May 12, 2020 at 4:50 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: Re: [protege-user] Ontology plus database
OK, I’ll try that. But will it make it possible to separate the individuals into a separate database, which is another aim, since I’d like to have several different databases for the ontology to reason over.
 
Julian
 
On 12 May 2020, at 16:12, Igor Toujilov <[hidden email]> wrote:
 

Hi Julian,

At the first glance on your ontology, my opinion is: it is not conceptualised properly. You do not use individuals at all. You use subclasses instead. This results in big number of classes with complex logical relationships between them. The consequence is the huge impact on reasoning performance because the reasoner tries to derive all subclasses of every single class. If you would replace unnecessary classes with individuals, the reasoning should be much faster because there will be no need to find all subclasses of the unnecessary classes.

For example, you represent publications as classes: “aerolastic eagle wings” is a publication, and yet it has a subclass “alula feather”, which is a concept. I have an impression that this is wrong. It is enough to make the publication an individual.

 

Cheers,

Igor

 
Sent: Tuesday, May 12, 2020 at 1:50 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Cc: [hidden email]
Subject: Re: [protege-user] Ontology plus database
Sorry - I obviously thought I had explained it well enough.
I attach a cut-down version of the ontology that includes only a small section of the database part. It has been chosed to illustrate the speed-accuracy trade-off.  What I called the ‘kernel’ is the class <entity> on its own, organised using the BFO as the template. There are some comments of the opening screen of the ontology describing briefly the organisaiton and how to query it for a speed-accuracy trade-off.
 
I hope there is sufficient information here to make clear the connections between the database section of annotated research papers and the class <entity> which is the main engine of the ontology. And I repeat my question. The Reasoner runs very quickly with the class <entity>, based on the BFO, but is extremely sluggish when all the annotated research papers (at present about 700, of which the ones presented with this ontology are a subset) are present. It would be very convenient for a number of reasons to be able to treat the cases separately, but I can’t see how I can do that.
 
Best wishes
Julian
 
 
 
On 9 May 2020, at 08:51, Lorenz Buehmann <[hidden email]> wrote:
 

It might also be worth to materialized the inferred schema, if such a schema exists. Then you could make use of those explicit maybe in the querying part. Though, as already said, unclear how the workflow is. What is used to query the database? SQL? If so, are you using an OBDA engine?

On 09.05.20 02:59, Samson Tu wrote:
Hi,
 
Igor’s advice is very good.
 
One interpretation of Julian’s problem is that the “cases” in the database are instance data (a-box) and the “kernel” consists of t-box axioms. In that case he may be able to use Protege ’s Refactor/‘copy, move, or delete axioms…’ facility to move the individuals and property assertions to another ontology. Once the “kernel” is working properly, use something like Ontop to link the case data back.
 
With best regards,
Samson
 
 
On May 8, 2020, at 3:27 PM, Igor Toujilov <[hidden email]> wrote:
 
Hi Julian,
Clearly, no one can answer your question because of the way it’s formulated. It has too many undefined variables. I would recommend for you posting an extremely short but consistent description of your use case.
A use case description, which works successfully in industry and science, normally specifies at least an example of what you try to achieve, technologies and software used, and problems you faced. In this case you will have a much better chance for help.

Cheers,
Igor

 
Sent: Friday, May 08, 2020 at 5:02 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: [protege-user] Ontology plus database

I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?

Best wishes - keep well!
Julian Vincent

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


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Ontology plus database

Igor Toujilov-2

It’s a usual design pattern to map data from databases to individuals. Your ontology initial design might be not compatible to this pattern.

 

Igor

Sent: Tuesday, May 12, 2020 at 7:19 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: Re: [protege-user] Ontology plus database
I don’t think the idea of using individuals for the database will work. Have you looked at any of the descriptions of the text data class? I think that all you did was look at usage of the eagle wing paper which doesn’t really show you how integrated the description is with the <entity> part of the ontology. Your latest note (below) is in fact expressed in a slightly different form in my original note at the beginning of this string - the idea that the <entity> can be used as an engine with different databases each associated with a different topic (classic market segmentation strategy). Any database still has to be integrated with the ontology - we are working on a computer analytical system to do this, but it’s not part of the present discussion.
On my computer the Reasoner took 58 sec for the ontology I submitted for you, which was reduced to 48 sec when I took out “is realised by”. But when I took out “has participant” (which adds very little information to the ontology) I gave up after 7 min!
 
Julian
 
On 12 May 2020, at 17:25, Igor Toujilov <[hidden email]> wrote:
 

I would strongly recommend creating separate blank ontologies (one for each database), importing the kernel ontology to each of the blank ontologies, and then populating the blank ontologies with individuals from corresponding databases.

Igor

Sent: Tuesday, May 12, 2020 at 4:50 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: Re: [protege-user] Ontology plus database
OK, I’ll try that. But will it make it possible to separate the individuals into a separate database, which is another aim, since I’d like to have several different databases for the ontology to reason over.
 
Julian
 
On 12 May 2020, at 16:12, Igor Toujilov <[hidden email]> wrote:
 

Hi Julian,

At the first glance on your ontology, my opinion is: it is not conceptualised properly. You do not use individuals at all. You use subclasses instead. This results in big number of classes with complex logical relationships between them. The consequence is the huge impact on reasoning performance because the reasoner tries to derive all subclasses of every single class. If you would replace unnecessary classes with individuals, the reasoning should be much faster because there will be no need to find all subclasses of the unnecessary classes.

For example, you represent publications as classes: “aerolastic eagle wings” is a publication, and yet it has a subclass “alula feather”, which is a concept. I have an impression that this is wrong. It is enough to make the publication an individual.

 

Cheers,

Igor

 
Sent: Tuesday, May 12, 2020 at 1:50 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Cc: [hidden email]
Subject: Re: [protege-user] Ontology plus database
Sorry - I obviously thought I had explained it well enough.
I attach a cut-down version of the ontology that includes only a small section of the database part. It has been chosed to illustrate the speed-accuracy trade-off.  What I called the ‘kernel’ is the class <entity> on its own, organised using the BFO as the template. There are some comments of the opening screen of the ontology describing briefly the organisaiton and how to query it for a speed-accuracy trade-off.
 
I hope there is sufficient information here to make clear the connections between the database section of annotated research papers and the class <entity> which is the main engine of the ontology. And I repeat my question. The Reasoner runs very quickly with the class <entity>, based on the BFO, but is extremely sluggish when all the annotated research papers (at present about 700, of which the ones presented with this ontology are a subset) are present. It would be very convenient for a number of reasons to be able to treat the cases separately, but I can’t see how I can do that.
 
Best wishes
Julian
 
 
 
On 9 May 2020, at 08:51, Lorenz Buehmann <[hidden email]> wrote:
 

It might also be worth to materialized the inferred schema, if such a schema exists. Then you could make use of those explicit maybe in the querying part. Though, as already said, unclear how the workflow is. What is used to query the database? SQL? If so, are you using an OBDA engine?

On 09.05.20 02:59, Samson Tu wrote:
Hi,
 
Igor’s advice is very good.
 
One interpretation of Julian’s problem is that the “cases” in the database are instance data (a-box) and the “kernel” consists of t-box axioms. In that case he may be able to use Protege ’s Refactor/‘copy, move, or delete axioms…’ facility to move the individuals and property assertions to another ontology. Once the “kernel” is working properly, use something like Ontop to link the case data back.
 
With best regards,
Samson
 
 
On May 8, 2020, at 3:27 PM, Igor Toujilov <[hidden email]> wrote:
 
Hi Julian,
Clearly, no one can answer your question because of the way it’s formulated. It has too many undefined variables. I would recommend for you posting an extremely short but consistent description of your use case.
A use case description, which works successfully in industry and science, normally specifies at least an example of what you try to achieve, technologies and software used, and problems you faced. In this case you will have a much better chance for help.

Cheers,
Igor

 
Sent: Friday, May 08, 2020 at 5:02 PM
From: "Julian Vincent" <[hidden email]>
To: "User support for WebProtege and Protege Desktop" <[hidden email]>
Subject: [protege-user] Ontology plus database

I have been developing an ontology that queries a database of cases that are loaded with characteristics stored in the ontology. The database is currently integral with the ontology. The format, loosely, is that the kernel of the ontology contains a set of 39 trade-off parameters that are allocated in pairs (thus defining a simple trade-off) to each of the cases in the database section. The kernel also contains a set of 40 design parameters, 3 or 4 of which can be assigned to each of the cases in the database to define the ways in which each case manipulates or solves its trade-off. Each case may have other bits of information associated with it, derived from the kernel.
My problem is that most of the development involves the kernel, which the reasoner currently checks within a second or so. But if I include the database (currently with about 800 cases) it takes a long time (30 - 40 minutes) for the reasoner to run. Since the cases in the database are essentially static - they don’t change - it seems silly to keep them as part of the ontology. Also I want to use the ontology to work with databases gleaned from different areas of knowledge (currently it’s biology, but I might want to have separate databases on management, food science, architecture, etc). There are also look-up tables in the kernel (e.g. a list of animals and plants) that are also effectively unchanging. How do I go about separating the kernel from the database and look-up tables when they are so intimately entwined?

Best wishes - keep well!
Julian Vincent

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

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