Closed LloydRutledge closed 9 years ago
User story: Jimmy Wales is oprichter en voorzitter van Wikipedia. Hij leest het ABI 30 eindverslag en roept "Zo moet Wikipedia werken!". Hij instalt meteen Fresnel Forms, laad de DBpedia ontologie in, klikt op default Fresnel, exporteert die als wiki, en dan importeert de resultaat direct op Wikipedia zelf. Binnen die 15 seconden is Wikipedia revolutionaire verandert, en iedereen gebruikt Forms om Wikipedia infoboxes om in te voeren en aan te passen. En Alex, Teun en Joop worden wereldberoemd. Maar ja, dan alleen maar als de plugin niet crasht op de DBpedia ontologie, en goed ermee werkt, en een wiki oplevert.
@TeunTheunissen: We kunnen natuurlijk beginnen met een uittreksel van deze ontologie zoals alleen de Person class en alle relevante properties. Dat moet sowieso voor de scenario. Dus alle properties met Person als domain. En nog iets dat ik mis? Er is vast een handige SPARQL query hiervoor. Als de uittreksel in de paper moet omdat de hele ontology niet werkt dan is het handig om zo'n SPARQL definitie van de uittreksel te hebben. Teun, wil je zo'n uittreksel regelen als beginpunt van de definiteive scenario input ontologie?
Om de hele ontologie te gebruiken brengt kwesties van omvang (scale) dat we hoeven niet te beantwoorden. De hele ontologie blijft relevant omdat (al eerdere geschreven) die de volle context van ons scenario is. En de volle context van de motivatie erachter. En dus als het kan werken is het hartstikke leuk. Kwesties die puur om omvang gaan zijn voor ons niet wetenschappelijk relevant. Maar het kan zijn dat delen van de rest van de hele ontologie verrassingen hebben die wel wetenschappelijk van belang zijn.
Bij mij laadt de ontologie wel correct. Het geheel werkt niet echt soepel meer, waarschijnlijk vanwege de hoeveelheid elementen op het scherm, en ik kom schermruimte tekort, maar het werkt wel! Ik kan het zelfs saven als .fresnel bestand.
Welke versie van Protégé gebruik je? De plugin is met versie 5.0.0 beta-16-SNAPSHOT getest.
Hoe dan ook lijkt het me inderdaad verstandig om een subset van de gehele ontologie te nemen om te testen.
Ik heb 15. En kan geen download link voor 16 vinden. Noch op de Protege site noch op hun Github - die stoppen allemaal op 15. Kan je me vertellen waar ik die van vinden? En dev SVN voor Protégé misschien?
En is er een manier om vast te stellen welke de definitieve ontwikkelingsversie is? En erover om af te spreken - over welke versie best op alle onze machines draait, en de beste is voor onze doelgroep?
Is zo'n recent snapshot de best keuze? Is misschien 15 wat stabieler? Dat 16 nauwelijks bereikbaar lijkt te zien geeft aan dat ze misschien er nog mee bezig zijn en is nog niet helemaal debugged en af.
Maar as 16 en niet 15 de hele DBpedia kan pakken dan is dat een zeker voordeel.
@AlexMekkering, als het makkelijk is, zou je de hele DBP nogmaals inladden en de volgende bestanden voor me regelen:
Ik wil die in het artikel zetten bij discussie over hoe dit aanpak de hele Wikipedia zouden kunnen implementeren. Dus een screendump. En discussie over de omvang van de Fresnel bestand. Met Person uittreksel.
En dan ben ik benieuwd of ik een wiki kan maken voor de hele DBpedia van die export. In ieder geval aardig om over de omvang en eigenschappen van die wiki export op te schrijven in de paper. Maar als die wiki toch draait ... dan hebben we gewoon de hele Wikipedia infobox met Form input geïmplementeerd. Dat zal leuk zijn.
Wij maken bij de ontwikkeling gebruik van de master git branch van Protégé (https://github.com/protegeproject/protege.git), zoals beschreven in http://is.cs.ou.nl/ABI30/index.php5/Bouwen_Prot%C3%A9g%C3%A9_5.
Ik heb het net ook met 15 gecheckt en dat levert inderdaad een nullpointer exception op. Ik stel daarom voor om de master git branch gewoon te volgen omdat dit de nieuwe release van Protégé gaat worden en omdat release 15 alweer bijna 8 maanden oud is.
Voor wat betreft je overige verzoeken:
Zie "Review van commit r319 " in issue #29 "Met het oog op schaalbaarheid zouden echter ..."
Ik ga er naar kijken. @jheijning
Compatibiliteit met eerdere versies van Protégé is verbeterd in r378. In ieder geval wordt Protégé 5.0.0 beta-15 nu ook ondersteund.
Het probleem zat 'm in het feit dat de fragment van de prefix IRI van de DBPedia ontology leeg was. Deze fragment wordt in speciale gevallen gebruikt wanneer geen specifieke prefix voor de ontologie bekend is. In 5.0.0 beta-16-SNAPSHOT werd hiervoor een lege string terug gegeven, maar in 5.0.0 beta-15 werd nog null terug gegeven, wat in een runtime exception resulteerde.
Met de commit van r378 wordt een leeg fragment niet meer gebruikt, maar in dat geval een gecodeerde versie van de ontology IRI.
@TeunTheunissen, wil jij deze wijziging nog even reviewen?
Code ziet er goed en de dbpedia ontology laad, dus review is OK.
Als je een Protégé sessie open met de DBpedia ontology op http://downloads.dbpedia.org/2014/dbpedia_2014.owl.bz2 en dan naar de Fresnel Forms tab gaat dan crasht Fresnel Forms met dit Java foutbericht:
Error 1 Logged at Sat Jan 31 16:37:54 CET 2015 NullPointerException: null ontology.Ontology.(Ontology.java:54)
main.OWLImport.initializeOntology(OWLImport.java:54)
main.OWLImport.getActiveOntology(OWLImport.java:44)
main.Controller.(Controller.java:38)
view.FresnelFormsViewComponent.initialiseOWLView(FresnelFormsViewComponent.java:48)
org.protege.editor.owl.ui.view.AbstractOWLViewComponent.initialise(AbstractOWLViewComponent.java:61)
org.protege.editor.core.ui.view.View.createContent(View.java:439)
org.protege.editor.core.ui.view.View.createUI(View.java:219)
org.protege.editor.core.ui.view.View$1.hierarchyChanged(View.java:149)
java.awt.Component.processHierarchyEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.Component.createHierarchyEvents(Unknown Source)
java.awt.Container.createHierarchyEvents(Unknown Source)
java.awt.Container.createHierarchyEvents(Unknown Source)
java.awt.Container.createHierarchyEvents(Unknown Source)
java.awt.Container.createHierarchyEvents(Unknown Source)
java.awt.Container.createHierarchyEvents(Unknown Source)
java.awt.Component.show(Unknown Source)
java.awt.Component.show(Unknown Source)
java.awt.Component.setVisible(Unknown Source)
javax.swing.JComponent.setVisible(Unknown Source)
javax.swing.JTabbedPane.fireStateChanged(Unknown Source)
javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source)
javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEventImpl(Unknown Source)
java.awt.EventQueue.access$400(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)
Deze is de kern ontology voor DBpedia en dus Wikipedia en voor de breder context van ons scenario. Kunnen we die processen?