protegeproject / cellfie-plugin

Protégé plugin for creating OWL ontologies from spreadsheets
106 stars 26 forks source link

Cellfie does not update existing entity #110

Open intrixius opened 7 years ago

intrixius commented 7 years ago

When I try to run rules that have to update existing classes, the "Generate Axioms" function gives the error "Entitity already exists: http://www.xxxx.xx#nameOfClass".

To create the classes initialy I used a simple rule Class:@B*

This is the rule I am using to add some comments to the previously created classes: Class: @B* Annotations: rdfs:comment @C*

I Would expect that cellfie just find the existing classes and updates it (i.e. adding the comment), or am I missing something?

pjoziak commented 6 years ago

A similar issue happens to me.

I'm trying to add new instances to an existing OWL ontology (created some time ago), imported from an Spreadsheet, via Cellfie.

My code is:

Individual: @**(mm:hashEncode mm:SkipIfEmptyLocation rdfs:label=@**)
Types: @A*

(the spreadsheet is organized so that the row starts with the class name and instances are in other fields in that class; obviously I iterate from B to +, from 1 to +). What I get is only "Entity already exists" error.

Can I anyhow finish the job without exporting the whole ontology to a spreadsheet, joining with the aforementioned one and creating an ontology from the new one? -----EDIT----- I posted the above question since I was stuck for several hours googling an answer. Some magical answer helped me, along the lines of this issue -- it was enough to change (in view) render type of individuals to "Render by entity IRI short name (Id)"

martinjoconnor commented 6 years ago

So did the email list response solve your problem?

csnyulas commented 6 years ago

I just wanted to point out the exact same thing that @pjoziak has discovered in the email archives: http://protege-project.136.n4.nabble.com/Cellfie-plugin-Protege-5-can-t-create-axioms-with-skos-tp4669718p4669742.html

Besides that, if the problem is not about the way names are generated and matched, what @intrixius experienced could be a potential bug. I need to take a deeper look into it. But what helped me when I encountered a similar issue recently, was to run the rules one at a time.

clynchmd commented 5 years ago

I am having the same issue that if I try to add an rdfs:label to an existing class I get an error that the class already exists, which is surprising as I thought the expected behavior is that Cellfie would find the class referenced in column A and add the label in column B. How else can you add any label or axiom to existing classes?

csnyulas commented 5 years ago

@clynchmd Can you share a sample ontology, spreadsheet and rules where the problem appears? It is really hard to tell what the problem is, or how to overcome it, if we can't reproduce it.

Also, did you try the solution that @pjoziak found, and described in his comment https://github.com/protegeproject/cellfie-plugin/issues/110#issuecomment-369911968 ?

-----EDIT----- I posted the above question since I was stuck for several hours googling an answer. Some magical answer helped me, along the lines of this issue -- it was enough to change (in view) render type of individuals to "Render by entity IRI short name (Id)"

tapishgarg commented 3 years ago

I was having the same error so I tried changing "Render by rdfs:label" to "Render by ow:DASE_RULE. So now I am able to add rdfs:comment to an existing individual entity. I hope this would help Screenshot 2021-03-04 at 12 44 32 PM