Author: lgiessmann Date: Thu Jun 30 03:53:32 2011 New Revision: 537
Log: gdl-frontend: Widgets: added a LoadSchemaCallback for isidorus; added a siple test file for testing LoadSchemaCallback; added the class ButtonDialog, that represetns a dialog with a title, text, and two buttons
Added: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/ButtonDialog.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/test.jtm Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/lib/GDL_TmEngine.jar branches/gdl-frontend/src/anaToMia/GDL_Widgets/lib/GDL_TopicMaps_Model.jar branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/GDL_Widgets.gwt.xml branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/lib/GDL_TmEngine.jar ============================================================================== Binary file (source and/or target). No diff available.
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/lib/GDL_TopicMaps_Model.jar ============================================================================== Binary file (source and/or target). No diff available.
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/GDL_Widgets.gwt.xml ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/GDL_Widgets.gwt.xml Thu Jun 30 03:30:38 2011 (r536) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/GDL_Widgets.gwt.xml Thu Jun 30 03:53:32 2011 (r537) @@ -22,6 +22,7 @@ <source path="base"/> <source path="views"/> <source path="environment"/> + <source path="isidorus"/>
<!-- Reference the javascript file that is necessary for tmjs --> <script src="lib/tm.min.js" />
Added: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/ButtonDialog.java ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/ButtonDialog.java Thu Jun 30 03:53:32 2011 (r537) @@ -0,0 +1,73 @@ +package us.isidor.gdl.anaToMia.Widgets.base; + +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.DialogBox; +import com.google.gwt.user.client.ui.HasHorizontalAlignment; +import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.VerticalPanel; + +public class ButtonDialog extends DialogBox { + private Button btn1 = new Button(); + private Button btn2 = new Button(); + private HandlerRegistration hrBtn1 = null; + private HandlerRegistration hrBtn2 = null; + private Label message = new Label(); + private VerticalPanel mainPanel = new VerticalPanel(); + private HorizontalPanel buttonPanel = new HorizontalPanel(); + + + public ButtonDialog(){ + this.add(mainPanel); + mainPanel.add(message); + mainPanel.add(buttonPanel); + mainPanel.setCellHorizontalAlignment(buttonPanel, HasHorizontalAlignment.ALIGN_RIGHT); + buttonPanel.add(btn1); + buttonPanel.add(btn2); + buttonPanel.setSpacing(5); + } + + + public ButtonDialog(String dialogText, String dialogMessage, String leftButtonText, String rightButtonText, ClickHandler leftButtonHandler, ClickHandler rightButtonHandler){ + this(); + btn1.setText(leftButtonText); + btn2.setText(rightButtonText); + this.setText(dialogText); + message.setText(dialogMessage); + if(leftButtonHandler != null) hrBtn1 = btn1.addClickHandler(leftButtonHandler); + if(rightButtonHandler != null) hrBtn2 = btn2.addClickHandler(rightButtonHandler); + } + + + public void setLeftButtonText(String text){ + btn1.setText(text); + } + + + public void setRightButtonText(String text){ + btn2.setText(text); + } + + + public void setDialogMessage(String text){ + message.setText(text); + } + + + public void setLeftButtonClickHandler(ClickHandler handler){ + if(handler != null){ + if(hrBtn1 != null) hrBtn1.removeHandler(); + hrBtn1 = btn1.addClickHandler(handler); + } + } + + + public void setRightButtonClickHandler(ClickHandler handler){ + if(handler != null){ + if(hrBtn2 != null) hrBtn2.removeHandler(); + hrBtn2 = btn2.addClickHandler(handler); + } + } +}
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java Thu Jun 30 03:30:38 2011 (r536) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java Thu Jun 30 03:53:32 2011 (r537) @@ -37,9 +37,9 @@ // the actual view with the corresponding content GdlDefaultTopicView view = null; // the topic map that is the base of the created GDL view - private TopicMap tm = null; - // the locator of the topic map "tm" - private final String TOPIC_MAP_LOCATOR = GdlPsis.gdl + "topicmap/tm-1"; + private TopicMap requestedSchemaTm = null; + // the locator of the topic map "requestedSchemaTm" + private final String REQUESTED_SCHEMA_TOPIC_MAP_LOCATOR = GdlPsis.gdl + "topicmap/tm-1"; // callback instance for getting/loading the GDL schema private ILoadSchemaCallback loadSchemaCallback = null; @@ -112,7 +112,7 @@ // getter for the Topic Maps engine instance - public TmEngine getTmengine(){ + public TmEngine getTmEngine(){ return this.tmEngine; } @@ -121,9 +121,9 @@ public void setTmEngine(TmEngine tmEngine) { // the Topic Maps engine can be only set if no Topic Maps engine is set // or if the topic map "tm" is null, or contains no topics and associations - if(tmEngine != null && (tm == null || (tm.getTopics().length() == 0 && tm.getAssociations().length() == 0))){ + if(tmEngine != null && (requestedSchemaTm == null || (requestedSchemaTm.getTopics().length() == 0 && requestedSchemaTm.getAssociations().length() == 0))){ this.tmEngine = tmEngine; - this.tm = this.tmEngine.createTopicMap(this.TOPIC_MAP_LOCATOR); + this.requestedSchemaTm = this.tmEngine.createTopicMap(this.REQUESTED_SCHEMA_TOPIC_MAP_LOCATOR); } } @@ -166,8 +166,8 @@ } // a getter for the internal topic map - public TopicMap getTm(){ - return this.tm; + public TopicMap getSchemaTm(){ + return this.requestedSchemaTm; } @@ -176,7 +176,7 @@ // onLoadHandlers are executed public void doLoad(){ try{ - if(tmEngine == null || tm == null){ + if(tmEngine == null || requestedSchemaTm == null){ throw new ExecutionException("No Topic Maps engine was set yet"); } if(this.loadSchemaCallback == null){ @@ -197,13 +197,13 @@ // onCommitHandlers are executed public void doCommit(){ try{ - if(tmEngine == null || tm == null){ + if(tmEngine == null || requestedSchemaTm == null){ throw new ExecutionException("No Topic Maps engine was set yet"); } if(this.commitCallback == null){ throw new ExecutionException("No CommitCallback was set yet"); } - this.commitCallback.commitTmConstruct(tm, TopicMapsTypes.TopicMap); + this.commitCallback.commitTmConstruct(requestedSchemaTm, TopicMapsTypes.TopicMap); }catch(Exception e){ for (IGdlErrorHandler handler : localOnErrorContainer) { handler.onError(GdlErrorTypes.CommitError, e); @@ -217,7 +217,7 @@ // onValidateHandlers are executed public void doValidate() { try{ - if(tmEngine == null || tm == null){ + if(tmEngine == null || requestedSchemaTm == null){ throw new ExecutionException("No Topic Maps engine was set yet"); } @@ -241,13 +241,13 @@ // onDeleteHandlers are executed and the panel's content is removed public void doDelete() { try{ - if(tmEngine == null || tm == null){ + if(tmEngine == null || requestedSchemaTm == null){ throw new ExecutionException("No Topic Maps engine was set yet"); } if(this.deleteCallback == null){ throw new ExecutionException("No DeleteCallback was set yet"); } - this.deleteCallback.deleteTmConstruct(tm, TopicMapsTypes.TopicMap); + this.deleteCallback.deleteTmConstruct(requestedSchemaTm, TopicMapsTypes.TopicMap); }catch(Exception e){ for (IGdlErrorHandler handler : localOnErrorContainer) { handler.onError(GdlErrorTypes.DeleteError, e);
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java Thu Jun 30 03:30:38 2011 (r536) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java Thu Jun 30 03:53:32 2011 (r537) @@ -1,18 +1,16 @@ package us.isidor.gdl.anaToMia.Widgets.base;
+import us.isidor.gdl.anaToMia.TmEngine.jtmsBasedEngine.JtmsTmEngine; +import us.isidor.gdl.anaToMia.Widgets.isidorus.LoadSchemaCallback; + import com.google.gwt.core.client.EntryPoint; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; -import com.google.gwt.user.client.ui.DialogBox; -import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.RootPanel; -import com.google.gwt.user.client.ui.SimplePanel; -import com.google.gwt.user.client.ui.VerticalPanel; -
public class TestClass implements EntryPoint{ HorizontalPanel mainPanel = new HorizontalPanel(); @@ -29,42 +27,22 @@ gdlPanel.setPixelSize(100, 100); DOM.setStyleAttribute(gdlPanel.getElement(), "backgroundColor", "yellow"); mainPanel.add(gdlPanel); + gdlPanel.setTmEngine(new JtmsTmEngine()); - testDialogBox(); - } - - - public void testDialogBox(){ - final DialogBox dialogbox = new DialogBox(); - VerticalPanel dialogBoxContents = new VerticalPanel(); - dialogbox.setText("DialogBox"); - HTML message = new HTML("Click 'Close' to close"); - message.setStyleName("demo-DialogBox-message"); - ClickHandler listener = new ClickHandler() - { - @Override - public void onClick(ClickEvent event) { - dialogbox.hide(); - } - }; - Button button = new Button("Close", listener); - SimplePanel holder = new SimplePanel(); - holder.add(button); - dialogBoxContents.add(message); - dialogBoxContents.add(holder); - dialogbox.setWidget(dialogBoxContents); - - // - // Add a button to the demo to show the above DialogBox - listener = new ClickHandler() - { - @Override + + Button requestButton = new Button("start request"); + requestButton.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { - dialogbox.center(); + LoadSchemaCallback callback = new LoadSchemaCallback(); + try{ + callback.loadSchema(gdlPanel, "", new String[]{}); + }catch(Exception e){ + Window.alert("cought error: " + e.getLocalizedMessage()); + } } - }; - button = new Button("Show DialogBox", listener); - mainPanel.add(button); + }); + + mainPanel.add(requestButton); } - }
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java Thu Jun 30 03:30:38 2011 (r536) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java Thu Jun 30 03:53:32 2011 (r537) @@ -1,31 +1,44 @@ package us.isidor.gdl.anaToMia.Widgets.isidorus;
import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.http.client.Request; import com.google.gwt.http.client.RequestBuilder; import com.google.gwt.http.client.RequestCallback; import com.google.gwt.http.client.RequestException; import com.google.gwt.http.client.Response; import com.google.gwt.http.client.URL; -import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Construct; -import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.TopicMap; +import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.Window; +import us.isidor.gdl.anaToMia.Widgets.base.ButtonDialog; import us.isidor.gdl.anaToMia.Widgets.base.GdlPanel; +import us.isidor.gdl.anaToMia.Widgets.environment.ExecutionException; import us.isidor.gdl.anaToMia.Widgets.environment.ILoadSchemaCallback;
+// this class can be used as a callback that requests the Topic Map data +// addressable by the URI isidorusUrl public class LoadSchemaCallback implements ILoadSchemaCallback{ - private final String isidorusUrl = URL.encode(GWT.getModuleBaseURL() + "testJson.txt"); // TODO: replace with the correct URL + private final String isidorusUrl = URL.encode(GWT.getModuleBaseURL() + "test.jtm"); // TODO: replace with the correct URL + private String[] typeIdentifiers = new String[]{}; + private String instanceIdentifier = ""; private RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, isidorusUrl); + public LoadSchemaCallback(){} + // this method is invoked as a callback method @Override public void loadSchema(GdlPanel panel, String instanceIdentifier, String[] typeIdentifiers) throws RequestException { - Request request = requestBuilder.sendRequest(null, new RequestCallbackImpl(panel)); + this.typeIdentifiers = typeIdentifiers; + this.instanceIdentifier = instanceIdentifier; + requestBuilder.sendRequest(null, new RequestCallbackImpl(panel)); }
+ // this method implements the actual request and a simple error handling private class RequestCallbackImpl implements RequestCallback{ private GdlPanel panel = null; @@ -42,16 +55,65 @@ @Override public void onResponseReceived(Request request, Response response) { if(Response.SC_OK == response.getStatusCode()){ + try{ + if(panel.getTmEngine() == null || panel.getSchemaTm() == null) throw new ExecutionException("no Topic Maps engine was set yet"); + panel.getTmEngine().importTopicMap(response.getText(), panel.getSchemaTm()); + }catch(ExecutionException e){ + Window.alert("Execution Error: " + e.getMessage()); + }catch(Exception e){ + Window.alert("panel: " + panel + ", tm: " + panel.getSchemaTm() + "\ncought error: " + e.getLocalizedMessage()); // TODO: implement smarter error handling + e.printStackTrace(); + } panel.createView(); } else { - // TODO: implement error handling => http://examples.roughian.com/index.htm#Widgets~DialogBox + final ButtonDialog dialog = new ButtonDialog("Connection Error", "The request to " + isidorusUrl + " failed\n" + response.getStatusCode() + ": " + response.getStatusText(), "retry", "cancel", null, null); + dialog.setLeftButtonClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + dialog.hide(); + try{ + loadSchema(panel, instanceIdentifier, typeIdentifiers); + }catch(Exception e){ + Window.alert("connection to : " + isidorusUrl + " failed: " + e.getMessage()); + } + } + }); + + dialog.setRightButtonClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + dialog.hide(); + } + }); + + dialog.center(); } } @Override public void onError(Request request, Throwable exception) { - // TODO: implement error handling => http://examples.roughian.com/index.htm#Widgets~DialogBox + final ButtonDialog dialog = new ButtonDialog("Connection Error", "The request to " + isidorusUrl + " failed\n" + exception.getMessage(), "retry", "cancel", null, null); + dialog.setLeftButtonClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + dialog.hide(); + try{ + loadSchema(panel, instanceIdentifier, typeIdentifiers); + }catch(Exception e){ + Window.alert("connection to : " + isidorusUrl + " failed: " + e.getMessage()); + } + } + }); + + dialog.setRightButtonClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + dialog.hide(); + } + }); + + dialog.center(); } } }
Added: branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/test.jtm ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/test.jtm Thu Jun 30 03:53:32 2011 (r537) @@ -0,0 +1 @@ +{"version":"1.1","prefixes":{"pref_1":"http://www.topicmaps.org/xtm/1.0/core.xtm#","pref_2":"http://psi.topicmaps.org/iso13250/model/","pref_5":"http://some.where/tmsparql/author/","xsd":"http://www.w3.org/2001/XMLSchema#","pref_3":"http://psi.topicmaps.org/tmcl/","pref_6":"http://some.where/psis/poem/","pref_4":"http://some.where/tmsparql/","pref_7":"http://some.where/ii/zb/","pref_8":"http://some.where/ii/"},"item_identifiers":["[pref_4:jtm-tm]"],"topics":[{"subject_identifiers":["[pref_1:topic]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_1:association]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_1:occurrence]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_1:class-instance]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_1:class]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_1:supertype-subtype]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_1:supertype]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_1:subtype]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_1:sort]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_1:display]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_2:type-instance]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_2:type]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_2:instance]"],"subject_locators":null,"item_identifiers":null,"instance_of":null,"names":null,"occurrences":null},{"subject_identifiers":["[pref_3:topic-type]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:topic-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_3:occurrence-type]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:topic-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_3:association-type]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:topic-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:written-by]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:association-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_3:role-type]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:topic-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:written]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:role-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:writer]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:role-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_3:name-type]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:topic-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_3:scope-type]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:topic-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:author]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:topic-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:poem]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:topic-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:first-name]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:name-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:last-name]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:name-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:title]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:name-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:display-name]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:scope-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:de]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:scope-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:date-of-birth]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:occurrence-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:date-of-death]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:occurrence-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:poem-content]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:occurrence-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:years]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:occurrence-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:isDead]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:occurrence-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:isAlive]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:occurrence-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_4:reifier-type]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_3:topic-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_5:goethe]"],"subject_locators":null,"item_identifiers":["[pref_8:goethe]"],"instance_of":["si:[pref_4:author]"],"names":[{"item_identifiers":null,"value":"Johann Wolfgang","type":"si:[pref_4:first-name]","scope":null,"variants":null,"reifier":null},{"item_identifiers":null,"value":"von Goethe","type":"si:[pref_4:last-name]","scope":null,"variants":[{"item_identifiers":["[pref_8:goethe-variant]"],"datatype":"http://www.w3.org/2001/XMLSchema#string","value":"Goethe","scope":["si:[pref_4:display-name]"],"reifier":null}],"reifier":"ii:[pref_8:goethe-name-reifier]"},{"item_identifiers":["[pref_8:goethe-untyped-name]"],"value":"Johann Wolfgang von Goethe","type":null,"scope":null,"variants":null,"reifier":null}],"occurrences":[{"item_identifiers":["[pref_8:goethe-occ]"],"datatype":"http://www.w3.org/2001/XMLSchema#date","type":"si:[pref_4:date-of-birth]","value":"28.08.1749","scope":null,"reifier":"ii:[pref_8:goethe-occ-reifier]"},{"item_identifiers":null,"datatype":"http://www.w3.org/2001/XMLSchema#date","type":"si:[pref_4:date-of-death]","value":"22.03.1832","scope":null,"reifier":null},{"item_identifiers":["[pref_8:goethe-years-occ]"],"datatype":"http://www.w3.org/2001/XMLSchema#integer","type":"si:[pref_4:years]","value":"82","scope":null,"reifier":null},{"item_identifiers":null,"datatype":"http://www.w3.org/2001/XMLSchema#boolean","type":"si:[pref_4:isDead]","value":"true","scope":null,"reifier":null},{"item_identifiers":null,"datatype":"http://www.w3.org/2001/XMLSchema#boolean","type":"si:[pref_4:isAlive]","value":"false","scope":null,"reifier":null}]},{"subject_identifiers":null,"subject_locators":null,"item_identifiers":["[pref_8:goethe-occ-reifier]"],"instance_of":["si:[pref_4:reifier-type]"],"names":null,"occurrences":null},{"subject_identifiers":null,"subject_locators":null,"item_identifiers":["[pref_8:goethe-name-reifier]"],"instance_of":["si:[pref_4:reifier-type]"],"names":null,"occurrences":null},{"subject_identifiers":["[pref_6:zauberlehrling]"],"subject_locators":null,"item_identifiers":null,"instance_of":["si:[pref_4:poem]"],"names":[{"item_identifiers":null,"value":"Der Zauberlehrling","type":"si:[pref_4:title]","scope":null,"variants":null,"reifier":null}],"occurrences":[{"item_identifiers":["[pref_7:occurrence]"],"datatype":"http://www.w3.org/2001/XMLSchema#string","type":"si:[pref_4:poem-content]","value":"Hat der alte Hexenmeister\n\tsich doch einmal wegbegeben!\n\t...","scope":["si:[pref_4:de]"],"reifier":null}]},{"subject_identifiers":null,"subject_locators":null,"item_identifiers":["[pref_8:association-reifier]"],"instance_of":["si:[pref_4:reifier-type]"],"names":null,"occurrences":null},{"subject_identifiers":null,"subject_locators":null,"item_identifiers":["[pref_8:role-reifier]"],"instance_of":["si:[pref_4:reifier-type]"],"names":null,"occurrences":null}],"associations":[{"item_identifiers":["[pref_8:association]"],"type":"si:[pref_4:written-by]","reifier":"ii:[pref_8:association-reifier]","scope":null,"roles":[{"item_identifiers":null,"type":"si:[pref_4:writer]","reifier":"ii:[pref_8:role-reifier]","player":"si:[pref_5:goethe]"},{"item_identifiers":["[pref_8:role-2]"],"type":"si:[pref_4:written]","reifier":null,"player":"si:[pref_6:zauberlehrling]"}]}],"item_type":"topicmap","reifier":null} \ No newline at end of file