From 21d124330489dfc4721696b99e957270eb8b03a4 Mon Sep 17 00:00:00 2001 From: NuriaGarcia Date: Tue, 24 Feb 2015 11:18:17 +0100 Subject: [PATCH] Added Use Cases functionalities --- .../expertsystem/lab/lov/LOVConnector.java | 214 +++++++++----- .../expertsystem/lab/lov/ResultsListItem.java | 4 +- .../protege/plugin/lov/LOVResultsPanel.java | 54 +++- .../lab/protege/plugin/lov/LOView.java | 263 ++++++++++++++++-- ...rtsystem.lab.plugin.lov-0.1.0-SNAPSHOT.jar | Bin 0 -> 91351 bytes 5 files changed, 428 insertions(+), 107 deletions(-) create mode 100644 target/com.expertsystem.lab.plugin.lov-0.1.0-SNAPSHOT.jar diff --git a/src/com/expertsystem/lab/lov/LOVConnector.java b/src/com/expertsystem/lab/lov/LOVConnector.java index 0e2fd41..0949fa4 100644 --- a/src/com/expertsystem/lab/lov/LOVConnector.java +++ b/src/com/expertsystem/lab/lov/LOVConnector.java @@ -9,8 +9,11 @@ import java.net.ProtocolException; import java.net.URL; import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; import java.util.Scanner; +import org.json.JSONArray; import org.json.JSONObject; /** @@ -25,17 +28,27 @@ public class LOVConnector implements Constants { + public int total_results; + + public LOVConnector(){ + this.total_results = 0; + } + + public int getTotal_results() { + return total_results; + } + + public void setTotal_results(int total_results) { + this.total_results = total_results; + } + /** * Method to search a term through LOV API * @param q: Query string * @param type: Type of the term [class, property, datatype, instance] * @return JSONObject: Results from the query in json format */ - - /* - * Maybe instead returning a JSON object, we could make a POJO class with general - * data that we need and filling the information parsing the JSON string - */ + public JSONObject searchTerm(String q, String type){ HttpURLConnection connection; JSONObject json = null; @@ -59,9 +72,10 @@ public JSONObject searchTerm(String q, String type){ response.append(str); } rd.close(); - - System.out.println(response.toString()); - + + json = new JSONObject(response.toString()); + //System.out.println(response.toString()); + } catch (MalformedURLException e) { e.printStackTrace(); } catch (ProtocolException e) { @@ -71,7 +85,68 @@ public JSONObject searchTerm(String q, String type){ } return json; } - + + public List parseTerms(JSONObject json){ + List results = new ArrayList(); + + this.total_results = json.getInt("total_results"); + //System.out.println(total_results); + + if(total_results > 0){ + JSONArray terms = (JSONArray) json.get("results"); + for (int i=0; i < terms.length(); i++) { + JSONObject data = (JSONObject) terms.get(i); + + //Local Name + String prefixName = data.getJSONArray("prefixedName").get(0).toString(); + String local_name = prefixName.substring(prefixName.lastIndexOf(':') + 1); + //System.out.println(local_name); + + //Prefix + String prefix = data.getJSONArray("vocabulary.prefix").get(0).toString(); + //System.out.println(prefix); + + //Occurrences + String ocurrences = data.getJSONArray("metrics.occurrencesInDatasets").get(0).toString(); + //System.out.println(ocurrences); + + //Datasets + String datasets = data.getJSONArray("metrics.reusedByDatasets").get(0).toString(); + //System.out.println(datasets); + + //Uri + String uri = data.getJSONArray("uri").get(0).toString(); + //System.out.println(uri); + + //Confidence + double score = data.getDouble("score"); + //System.out.println(score); + + JSONObject highlight = data.getJSONObject("highlight"); + //Comment + String comment = ""; + if(!highlight.isNull("http://www.w3.org/2000/01/rdf-schema#comment")){ + comment = highlight.getJSONArray("http://www.w3.org/2000/01/rdf-schema#comment").get(0).toString(); + //comment = comment.replaceAll("\"", " "); + //comment = comment.replace('"', '\"'); + //System.out.println(comment); + + } + + //Label + String label = ""; + if(!highlight.isNull("http://www.w3.org/2000/01/rdf-schema#label")){ + label = highlight.getJSONArray("http://www.w3.org/2000/01/rdf-schema#label").get(0).toString(); + //System.out.println(label); + } + + ResultsListItem item = new ResultsListItem(local_name, prefix, uri, ocurrences, datasets, comment, label, score); + results.add(item); + } + } + return results; + } + /* * ex:http://lov.okfn.org/dataset/lov/api/v2/term/autocomplete?q=foaf:p&type=property * string = URI or prefixed URI to complete (from 1 character). @@ -100,9 +175,9 @@ public JSONObject autocompleteTerm(String q, String type){ response.append(str); } rd.close(); - + System.out.println(response.toString()); - + } catch (MalformedURLException e) { e.printStackTrace(); } catch (ProtocolException e) { @@ -110,57 +185,56 @@ public JSONObject autocompleteTerm(String q, String type){ } catch (IOException e) { e.printStackTrace(); } - - + + return json; } - - - - + + + /* listing all the vocabularies * in LOV ecosystem. Results composed of {titles[{lang,value}], nsp, prefix, uri} * */ public JSONObject listVocab() throws Exception - { + { JSONObject obj = null; - + // build the string and URL String s = LOV_API_VOCAB + "list"; - //s += URLEncoder.encode("UTF-8"); - s += URLEncoder.encode(s, "UTF-8"); - URL url = new URL(s); - - // read from the URL - Scanner scan = new Scanner(url.openStream()); - String str = new String(); - while (scan.hasNext()) - str += scan.nextLine(); - scan.close(); - - // build a JSON object - obj = new JSONObject(str); - if (! obj.getString("status").equals("OK")) - return null; + //s += URLEncoder.encode("UTF-8"); + s += URLEncoder.encode(s, "UTF-8"); + URL url = new URL(s); + + // read from the URL + Scanner scan = new Scanner(url.openStream()); + String str = new String(); + while (scan.hasNext()) + str += scan.nextLine(); + scan.close(); + + // build a JSON object + obj = new JSONObject(str); + if (! obj.getString("status").equals("OK")) + return null; /* todo: parse the result prefix, title + uri + description JSONArray arr = obj.getJSONArray("titles"); for (int i = 0; i < arr.length(); i++) // print the result System.out.println(arr.getJSONObject(i)); - */ - - return obj; + */ + + return obj; } - - - + + + /*get http://lov.okfn.org/dataset/lov/api/v2/vocabulary/info?vocab={string} - *example: http://lov.okfn.org/dataset/lov/api/v2/vocabulary/info?vocab=skos - * input: string representing Prefix, URI or Namespace of a vocabulary in LOV. - * This parameter is mandatory - *output: uri, titles, descriptions, tags (domaine) - */ + *example: http://lov.okfn.org/dataset/lov/api/v2/vocabulary/info?vocab=skos + * input: string representing Prefix, URI or Namespace of a vocabulary in LOV. + * This parameter is mandatory + *output: uri, titles, descriptions, tags (domaine) + */ public JSONObject infoVocab(String vocab) throws Exception{ JSONObject result = null; // build the string and URL @@ -169,33 +243,37 @@ public JSONObject infoVocab(String vocab) throws Exception{ //st += URLEncoder.encode("UTF-8"); st += URLEncoder.encode(st, "UTF-8"); URL url = new URL(st); - + // read from the URL - Scanner scan = new Scanner(url.openStream()); - String str = new String(); - while (scan.hasNext()) - str += scan.nextLine(); - scan.close(); - - // build a JSON object - result = new JSONObject(str); - if (! result.getString("status").equals("OK")) - return null; - - + Scanner scan = new Scanner(url.openStream()); + String str = new String(); + while (scan.hasNext()) + str += scan.nextLine(); + scan.close(); + + // build a JSON object + result = new JSONObject(str); + if (! result.getString("status").equals("OK")) + return null; + + return result; - - - } - + /* * Any other necessary method to get data from the LOV API ? Maybe for agent */ - - - /*public static void main(String[] args){ - LOVApi lovapi = new LOVApi(); - lovapi.searchTerm("Person", "class"); - } */ + + + public static void main(String[] args){ + //LOVConnector lovapi = new LOVConnector(); + //lovapi.searchTerm("Scale", "class"); + //lovapi.parseTerms(lovapi.searchTerm("Scale", "class")); + + /*String uri = "http://www.aktors.org/ontology/portal#Person"; + String name = "Person"; + + String base_uri = uri.substring(0, uri.length() - name.length()); + System.out.println(base_uri);*/ + } } diff --git a/src/com/expertsystem/lab/lov/ResultsListItem.java b/src/com/expertsystem/lab/lov/ResultsListItem.java index 951bab5..fad6d73 100644 --- a/src/com/expertsystem/lab/lov/ResultsListItem.java +++ b/src/com/expertsystem/lab/lov/ResultsListItem.java @@ -17,8 +17,8 @@ public ResultsListItem(String name){ this.name = name; this.prefix = ""; this.url_vocab = ""; - this.num_ocurrences = ""; - this.num_datasets = ""; + this.num_ocurrences = "0"; + this.num_datasets = "0"; this.comment = ""; this.label = ""; this.confidence = 0.0; diff --git a/src/com/expertsystem/lab/protege/plugin/lov/LOVResultsPanel.java b/src/com/expertsystem/lab/protege/plugin/lov/LOVResultsPanel.java index db2b86c..15cc1c1 100644 --- a/src/com/expertsystem/lab/protege/plugin/lov/LOVResultsPanel.java +++ b/src/com/expertsystem/lab/protege/plugin/lov/LOVResultsPanel.java @@ -4,6 +4,7 @@ import java.awt.Color; import java.awt.Component; import java.awt.Font; +import java.awt.Graphics2D; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; @@ -18,6 +19,7 @@ import org.protege.editor.core.ui.list.MList; import org.protege.editor.core.ui.list.MListAddButton; import org.protege.editor.core.ui.list.MListButton; +import org.protege.editor.core.ui.list.MListEditButton; import org.protege.editor.core.ui.util.ComponentFactory; import com.expertsystem.lab.lov.ResultsListItem; @@ -35,20 +37,30 @@ public class LOVResultsPanel extends JPanel { private static final long serialVersionUID = 1L; + //private static final Color ROLL_OVER_COLOR = new Color(50, 50, 255); private JLabel text; private MList list_results; private MListAddButton add_button; + private MListEditButton edit_button; + private MListSubEntityButton subEntity_button; private String local_name; private String label_name; private String type; - public LOVResultsPanel (ActionListener add_listener){ + public LOVResultsPanel (ActionListener add_listener, ActionListener edit_listener, ActionListener subclass_listener){ this.local_name = "Thing"; this.label_name = "Thing"; - this.type = "Class"; + this.type = "class"; setLayout(new BorderLayout()); add_button = new MListAddButton(add_listener); + edit_button = new MListEditButton(edit_listener); + subEntity_button = new MListSubEntityButton(subclass_listener); + init(); + } + + public void init(){ + this.removeAll(); text = new JLabel(); text.setFont(new Font(text.getFont().getName(), Font.PLAIN, 10)); text.setText(" " @@ -63,9 +75,9 @@ public LOVResultsPanel (ActionListener add_listener){ 0, 1, 0, - Color.LIGHT_GRAY), + Color.WHITE), BorderFactory.createEmptyBorder(2, 35, 5, 2))); - add(text, BorderLayout.CENTER); + add(text, BorderLayout.CENTER); } public String getLocal_name() { @@ -100,21 +112,17 @@ public void setList_results(MList list_results) { this.list_results = list_results; } - public void updateLOVResults(){ + public void updateLOVResults(List results){ this.removeAll(); - - List results = new ArrayList(); - results.add(new ResultsListItem(local_name, "foaf", "http://xmlns.com/foaf/0.1/Person", "2,320,027", "72", "A person", "Person", 0.707)); - results.add(new ResultsListItem(local_name, "bbccore", "http://www.bbc.co.uk/ontologies/coreconcepts/Person", "", "", "", "Person @en-gb", 0.556)); - results.add(new ResultsListItem(local_name, "sport", "http://www.bbc.co.uk/ontologies/sport/Person", "", "", "An athlete or other person with typically a @en-gb", "Person @en-gb", 0.526)); - results.add(new ResultsListItem(local_name, "schema", "http://schema.org/Person", "980,153", "2", "A person (alive, dead, undead, or fictional). ", "Person", 0.507)); list_results = new MList(){ private static final long serialVersionUID = 1L; protected List getButtons(Object value) { List buttons = new ArrayList(super.getButtons(value)); - buttons.add(add_button); + buttons.add(subEntity_button); + buttons.add(edit_button); + buttons.add(add_button); return buttons; } }; @@ -123,7 +131,7 @@ protected List getButtons(Object value) { list_results.setCellRenderer(new ResultsListCellRenderer()); JScrollPane sp = ComponentFactory.createScrollPane(list_results); - add(sp, BorderLayout.CENTER); + add(sp, BorderLayout.CENTER); } private class ResultsListCellRenderer extends DefaultListCellRenderer{ @@ -142,7 +150,7 @@ public Component getListCellRendererComponent(JList list, Object value, String text = "
" + item.getPrefix() + ":" +item.getName() + " (" + item.getPrefix() + ")    " + item.getConfidence() + "

"; - if(!item.getNum_ocurrences().equals("") && !item.getNum_datasets().equals("")){ + if(!item.getNum_ocurrences().equals("0") && !item.getNum_datasets().equals("0")){ text += item.getNum_ocurrences() + " occurrences in "+ item.getNum_datasets() + " LOD datasets
"; } @@ -158,7 +166,7 @@ public Component getListCellRendererComponent(JList list, Object value, text += " localName " + item.getName(); text += ""; - + label.setText(text); label.setFont(new Font(label.getFont().getName(), Font.PLAIN, 10)); r.add(label, BorderLayout.WEST); @@ -166,4 +174,20 @@ public Component getListCellRendererComponent(JList list, Object value, return r; } } + + private class MListSubEntityButton extends MListButton { + + protected MListSubEntityButton(ActionListener subclass_listener) { + super("Add subclass", Color.DARK_GRAY.darker(), subclass_listener); + } + + public void paintButtonContent(Graphics2D g) { + int w = getBounds().width; + int h = getBounds().height; + int x = getBounds().x; + int y = getBounds().y; + g.drawOval(x + 3, y + 3, 6, 6); + g.drawLine(x + 8, y + 8, x + w - 5, y + h - 5); + } + } } diff --git a/src/com/expertsystem/lab/protege/plugin/lov/LOView.java b/src/com/expertsystem/lab/protege/plugin/lov/LOView.java index 0d6a4c7..d9c4e3e 100644 --- a/src/com/expertsystem/lab/protege/plugin/lov/LOView.java +++ b/src/com/expertsystem/lab/protege/plugin/lov/LOView.java @@ -3,17 +3,37 @@ import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Set; import javax.swing.JButton; import javax.swing.JLabel; import org.apache.log4j.Logger; import org.protege.editor.core.ui.util.ComponentFactory; +import org.protege.editor.owl.model.entity.OWLEntityCreationException; +import org.protege.editor.owl.model.entity.OWLEntityCreationSet; import org.protege.editor.owl.model.selection.OWLSelectionModel; import org.protege.editor.owl.model.selection.OWLSelectionModelListener; import org.protege.editor.owl.ui.view.AbstractOWLViewComponent; +import org.semanticweb.owlapi.model.AddAxiom; +import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLClass; +import org.semanticweb.owlapi.model.OWLClassExpression; +import org.semanticweb.owlapi.model.OWLDataFactory; +import org.semanticweb.owlapi.model.OWLDataProperty; +import org.semanticweb.owlapi.model.OWLDataPropertyExpression; import org.semanticweb.owlapi.model.OWLEntity; +import org.semanticweb.owlapi.model.OWLObjectProperty; +import org.semanticweb.owlapi.model.OWLObjectPropertyExpression; +import org.semanticweb.owlapi.model.OWLOntologyChange; +import org.semanticweb.owlapi.util.OWLEntityRenamer; +import com.expertsystem.lab.lov.LOVConnector; import com.expertsystem.lab.lov.ResultsListItem; /** @@ -31,35 +51,46 @@ public class LOView extends AbstractOWLViewComponent { private Logger logger = Logger.getLogger(LOView.class); private LOVSelectionPanel lsp; private LOVResultsPanel lrp; + private LOVConnector connector; private JButton selectionButton; - private OWLSelectionModel selectionModel; - - private JLabel prueba; + private OWLSelectionModel selectionModel; + private JLabel status; private OWLSelectionModelListener listener = new OWLSelectionModelListener() { @Override public void selectionChanged() throws Exception { OWLEntity entity = getOWLWorkspace().getOWLSelectionModel().getSelectedEntity(); - updateSelection(entity); + updateSelection(entity); } }; - + private ActionListener button_listener = new ActionListener() { - + @Override public void actionPerformed(ActionEvent e) { if(e.getSource() == selectionButton){ - updateListLOV(); - lrp.updateLOVResults(); - } - + updateListLOV(); + } } private void updateListLOV() { - prueba.setText("(1562 results Person)"); + String type_lov = lsp.getType(); + if(type_lov.equals("objectproperty")){ + type_lov = "property"; + } + if(type_lov.equals("dataproperty")){ + type_lov = "datatype"; + } + if(type_lov.equals("namedindividual")){ + type_lov = "instance"; + } + List r = connector.parseTerms(connector.searchTerm(lsp.getLocal_name_value(), type_lov)); + status.setText("Total Results (" + lsp.getLocal_name_value() + "): " + connector.getTotal_results()); + lrp.updateLOVResults(r); + lrp.updateUI(); } }; - + private ActionListener add_listener = new ActionListener() { @Override @@ -71,35 +102,221 @@ public void actionPerformed(ActionEvent e) { } private void handleAdd(ResultsListItem item) { - prueba.setText("(1562 results Person) Entity selected " + item.getPrefix() + ":" + item.getName()); + status.setText("Total Results (" + lsp.getLocal_name_value() + "): " + connector.getTotal_results()); + status.setText(status.getText() + " | Entity selected " + item.getPrefix() + ":" + item.getName()); + + OWLEntity selectedEntity = getOWLWorkspace().getOWLSelectionModel().getSelectedEntity(); + IRI baseIRI = IRI.create(item.getUrl_vocab().substring(0, item.getUrl_vocab().length() - item.getName().length())); + + OWLEntity parent = null; + + if(selectedEntity.isOWLClass()){ + OWLClass selected = selectedEntity.asOWLClass(); + Set setParent = selected.getSuperClasses(getOWLModelManager().getActiveOntology()); + //Set setParent = (Set) getOWLWorkspace().getOWLSelectionModel().getLastSelectedClass().getSuperClasses(getOWLModelManager().getActiveOntology()); + Iterator it = setParent.iterator(); + if(it.hasNext()){ + parent = it.next().asOWLClass(); + } + } + + if(selectedEntity.isOWLObjectProperty()){ + Set setParent = (Set) getOWLWorkspace().getOWLSelectionModel().getLastSelectedObjectProperty().getSuperProperties(getOWLModelManager().getActiveOntology()); + Iterator it = setParent.iterator(); + if(it.hasNext()){ + parent = it.next().asOWLObjectProperty(); + } + } + + if(selectedEntity.isOWLDataProperty()){ + Set setParent = (Set) getOWLWorkspace().getOWLSelectionModel().getLastSelectedDataProperty().getSuperProperties(getOWLModelManager().getActiveOntology()); + Iterator it = setParent.iterator(); + if(it.hasNext()){ + parent = it.next().asOWLDataProperty(); + } + } + + try { + @SuppressWarnings("unchecked") + OWLEntityCreationSet set = (OWLEntityCreationSet) getOWLModelManager().getOWLEntityFactory().createOWLEntity(selectedEntity.getClass(), item.getName(), baseIRI); + //List changes = new ArrayList(); + if (set != null){ + if(parent == null){ + //OWLEntity newEntity = set.getOWLEntity(); + getOWLModelManager().applyChanges(set.getOntologyChanges()); + //getOWLWorkspace().getOWLSelectionModel().setSelectedEntity(newEntity); + } + else{ + createSubEntity(parent, set); + } + //Building the equivalent assertion + createEquivalentEntity(selectedEntity, set); + } + } catch (OWLEntityCreationException e) { + e.printStackTrace(); + } + + /*try { + if(selectedEntity.isOWLClass()){ + OWLEntityCreationSet set = (OWLEntityCreationSet) getOWLModelManager().getOWLEntityFactory().createOWLClass(item.getName(), baseIRI); + createOWLclass(set); + } + } catch (OWLEntityCreationException e) { + e.printStackTrace(); + }*/ } + + /*private void createOWLclass(OWLEntityCreationSet set){ + OWLObjectHierarchyProvider hclass = getOWLModelManager().getOWLHierarchyManager().getOWLClassHierarchyProvider(); + OWLObjectTree tree = new OWLModelManagerTree(getOWLEditorKit(), hclass); + + @SuppressWarnings("unchecked") + OWLObjectTreeNode parentNode + = (OWLObjectTreeNode) tree.getSelectionPath().getParentPath().getLastPathComponent(); + if (parentNode == null || parentNode.getOWLObject() == null) { + return; + } + OWLClass parentCls = parentNode.getOWLObject(); + + List changes = new ArrayList(); + changes.addAll(set.getOntologyChanges()); + OWLModelManager mngr = getOWLModelManager(); + OWLDataFactory df = mngr.getOWLDataFactory(); + if (!df.getOWLThing().equals(parentCls)) { + changes.add(new AddAxiom(mngr.getActiveOntology(), df.getOWLSubClassOfAxiom(set.getOWLEntity(), parentCls))); + } + mngr.applyChanges(changes); + // Select the new class + tree.setSelectedOWLObject(set.getOWLEntity()); + }*/ }; + private ActionListener edit_listener = new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + if (lrp.getList_results().getSelectedValue() instanceof ResultsListItem) { + ResultsListItem item = (ResultsListItem) lrp.getList_results().getSelectedValue(); + handleEdit(item); + } + } + + private void handleEdit(ResultsListItem item) { + OWLEntity selectedEntity = getOWLWorkspace().getOWLSelectionModel().getSelectedEntity(); + OWLEntityRenamer owlEntityRenamer = new OWLEntityRenamer(getOWLModelManager().getOWLOntologyManager(), + getOWLModelManager().getOntologies()); + try { + final IRI iri = IRI.create(new URI(item.getUrl_vocab())); + if (iri == null) { + return; + } + final List changes; + changes = owlEntityRenamer.changeIRI(selectedEntity, iri); + getOWLModelManager().applyChanges(changes); + getOWLWorkspace().getOWLSelectionModel().setSelectedEntity(getOWLDataFactory().getOWLEntity(selectedEntity.getEntityType(), iri)); + + } catch (URISyntaxException e) { + e.printStackTrace(); + } + } + }; + + private ActionListener subclass_listener = new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + if (lrp.getList_results().getSelectedValue() instanceof ResultsListItem) { + ResultsListItem item = (ResultsListItem) lrp.getList_results().getSelectedValue(); + handleSubEntity(item); + } + } + + private void handleSubEntity(ResultsListItem item) { + IRI baseIRI = IRI.create(item.getUrl_vocab().substring(0, item.getUrl_vocab().length() - item.getName().length())); + OWLEntity parent = getOWLWorkspace().getOWLSelectionModel().getSelectedEntity(); + + try { + @SuppressWarnings("unchecked") + OWLEntityCreationSet set = (OWLEntityCreationSet) getOWLModelManager().getOWLEntityFactory().createOWLEntity(parent.getClass(), item.getName(), baseIRI); + createSubEntity(parent, set); + } catch (OWLEntityCreationException e) { + e.printStackTrace(); + } + } + }; + + public void createSubEntity(OWLEntity parent, OWLEntityCreationSet set){ + List changes = new ArrayList(); + OWLDataFactory df = getOWLModelManager().getOWLDataFactory(); + OWLEntity child = set.getOWLEntity(); + if (parent != null && parent.isOWLClass()){ + changes.add(new AddAxiom(getOWLModelManager().getActiveOntology(), + df.getOWLSubClassOfAxiom((OWLClass)child, (OWLClass)parent))); + } + if (parent != null && parent.isOWLObjectProperty()){ + changes.add(new AddAxiom(getOWLModelManager().getActiveOntology(), + df.getOWLSubObjectPropertyOfAxiom((OWLObjectProperty)child, (OWLObjectProperty) parent))); + } + if (parent != null && parent.isOWLDataProperty()){ + changes.add(new AddAxiom(getOWLModelManager().getActiveOntology(), + df.getOWLSubDataPropertyOfAxiom((OWLDataProperty)child, (OWLDataProperty) parent))); + } + if (parent == null || parent.isOWLNamedIndividual()){ + getOWLModelManager().applyChanges(set.getOntologyChanges()); + } + + getOWLModelManager().applyChanges(changes); + getOWLWorkspace().getOWLSelectionModel().setSelectedEntity(child); + } + + public void createEquivalentEntity(OWLEntity entityA, OWLEntityCreationSet set){ + List changes = new ArrayList(); + OWLDataFactory df = getOWLModelManager().getOWLDataFactory(); + OWLEntity entityB = set.getOWLEntity(); + if (entityA != null && entityA.isOWLClass()){ + changes.add(new AddAxiom(getOWLModelManager().getActiveOntology(), + df.getOWLEquivalentClassesAxiom((OWLClass)entityB, (OWLClass)entityA))); + } + if (entityA != null && entityA.isOWLObjectProperty()){ + changes.add(new AddAxiom(getOWLModelManager().getActiveOntology(), + df.getOWLEquivalentObjectPropertiesAxiom((OWLObjectProperty)entityB, (OWLObjectProperty) entityA))); + } + if (entityA != null && entityA.isOWLDataProperty()){ + changes.add(new AddAxiom(getOWLModelManager().getActiveOntology(), + df.getOWLEquivalentDataPropertiesAxiom((OWLDataProperty)entityB, (OWLDataProperty) entityA))); + } + + getOWLModelManager().applyChanges(changes); + getOWLModelManager().refreshRenderer(); + getOWLWorkspace().getOWLSelectionModel().setSelectedEntity(entityA); + } + @Override protected void initialiseOWLView() throws Exception { logger.info("Initializing LOV view"); setLayout(new BorderLayout()); + connector = new LOVConnector(); selectionButton = new JButton("Search..."); selectionButton.setToolTipText("Search LOV..."); selectionButton.addActionListener(button_listener); lsp = new LOVSelectionPanel(selectionButton); - lrp = new LOVResultsPanel(add_listener); + lrp = new LOVResultsPanel(add_listener, edit_listener, subclass_listener); lsp.setBorder(ComponentFactory.createTitledBorder("LOV Selection Entity")); lrp.setBorder(ComponentFactory.createTitledBorder("LOV Results")); add(lsp, BorderLayout.NORTH); add(lrp, BorderLayout.CENTER); - prueba = new JLabel("OK Status "); - add(prueba, BorderLayout.SOUTH); + status = new JLabel("OK Status "); + add(status, BorderLayout.SOUTH); selectionModel = getOWLWorkspace().getOWLSelectionModel(); selectionModel.addListener(listener); } - + @Override protected void disposeOWLView() { selectionModel.removeListener(listener); selectionButton.removeActionListener(button_listener); } - + public void updateSelection (OWLEntity e){ if (e != null) { String type = e.getEntityType().toString(); @@ -109,7 +326,7 @@ public void updateSelection (OWLEntity e){ lsp.setLabel_value(entityLabel); lsp.setLocal_name("Local Name: " + entityName); lsp.setLabel(" Label : " + entityLabel); - lsp.setType(type); + lsp.setType(type.toLowerCase()); lrp.setLocal_name(entityName); lrp.setLabel_name(entityLabel); lrp.setType(type); @@ -119,10 +336,12 @@ public void updateSelection (OWLEntity e){ lsp.setLabel_value("Thing"); lsp.setLocal_name("Local Name: Thing"); lsp.setLabel(" Label : Thing"); - lsp.setType("Class"); + lsp.setType("class"); lrp.setLocal_name("Thing"); lrp.setLabel_name("Thing"); - lrp.setType("Class"); - } + lrp.setType("class"); + } + lrp.init(); + status.setText("OK Status "); } } diff --git a/target/com.expertsystem.lab.plugin.lov-0.1.0-SNAPSHOT.jar b/target/com.expertsystem.lab.plugin.lov-0.1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..a56fd372c60517a1812171fa70614a8df01586b1 GIT binary patch literal 91351 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�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 If%y>hU#GUNlmGw# literal 0 HcmV?d00001