Hi Lorenz, I didn't know about this API... thanks for sharing! I'll try it later =)
regards, Rodrigo C. Antonialli ====================================== Rio Claro - SP - Brasil LinkedIn: http://www.linkedin.com/in/rcantonialli Contato: rcantonia...@gmail.com Skype: rc_antonialli On Wed, Dec 9, 2015 at 9:18 AM, Lorenz Bühmann < buehm...@informatik.uni-leipzig.de> wrote: > Hello Rodrigo, > > the explanations in Protege are computed by using the API from Matthew > Horridge, which is pretty easy to use and implements his brilliant PhD > thesis. > > The project is located here: > https://github.com/matthewhorridge/owlexplanation > > Kind regards, > Lorenz > > > Hi Nicolas, >> >> Don't forget to read the pellet faq about extracting inferences using >> jena: >> >> https://github.com/Complexible/pellet/wiki/FAQ#how-can-i-extract-all-inferences >> >> About the explanations, I'm not 100% sure, but I believe the methods used >> to get them are from Pellet ( pelletReasoner.getKB().getExplanation() ), >> so, they should work with both APIs. When you download pellet zip package, >> there are some examples... at least one is about explanations... >> >> Most of things you do with Jena you can do with OWLAPI and also the other >> way around... both are quite simple to understand and a few lines of code >> can do many things =) >> >> I was able to implement my custom functions to use with SWRL, if you need >> any help, I'll be glad to help! >> >> >> Rodrigo C. Antonialli >> ====================================== >> Rio Claro - SP - Brasil >> LinkedIn: http://www.linkedin.com/in/rcantonialli >> Contato: rcantonia...@gmail.com >> Skype: rc_antonialli >> >> On Tue, Dec 8, 2015 at 10:28 PM, Nicolas Paris <nipari...@gmail.com> >> wrote: >> >> Hi there, >>> >>> I am working on these things too these days. I try to do all without >>> owlapi, and I hope I will be able to. Thank you all for these >>> question/clear answers. >>> About my tests, as far as I can see, with jena & pellet I am able to : >>> - transform the data from TDB and pass the pellet rules + knowlege >>> base on it, in 4 lines code. >>> - add individuals, data/objects properties and all OWL stuff thanks to >>> Jena OR pellet methods >>> - create SPARQL with jenaARQ OR SPARQLDL with Pellet >>> What I will try to do in the next days will be : >>> - get what you called the "InferredIndividualAxiomGenerator" within >>> jena. -> I have some starting points >>> ( >>> >>> http://stackoverflow.com/questions/25055263/how-to-get-only-inferred-data-from-jena-ontology-model >>> ) >>> - get the explanations of inferred axioms from pellet (the same as >>> Protégé shows when you hit the "?") -> any idea ?. >>> - create my own pellet built-in (begining with implementing some dates >>> related built-in). Maybe make a pull request on github then -> I have >>> already read an interesting post of Rodrigo about that on the Pellet >>> forum. >>> >>> >>> >>> 2015-12-09 0:23 GMT+01:00 Rodrigo Antonialli <rcantonia...@gmail.com>: >>> >>>> Short answer: yes, that's it... >>>> >>>> Long answer: >>>> >>>> I've created the ontologies using Protege, and uploaded them to Fuseki. >>>> When I need the ontologies in my application, Jena is used to load the >>>> ontologies from Fuseki. In most cases, I do things with Jena, specially >>>> SPARQL. >>>> >>>> But once the ontologies are stored into OntModel, they can be written to >>>> some OutputStream and read from OWLAPI. Using OWLAPI at certain >>>> >>> application >>> >>>> features, I'm creating some individuals and running Pellet inference, >>>> including SWRL rules (which, in my case, are defined in a separated >>>> file/graph, which is better for maintenance). >>>> >>>> There are 'tools' from OWLAPI to extract the inferred axioms only (like >>>> InferredIndividualAxiomGenerator). In my case, I'm joining the inferred >>>> axioms with the individuals and "exporting" back to Jena... from Jena >>>> >>> it's >>> >>>> just to upload them to Fuseki again... >>>> >>>> >>>> That may looks like an ugly and unnecessary overhead from some point of >>>> views.... but with that "architecture", I can benefit from both: Jena + >>>> Fuseki (storage and SPARQL) and OWLAPI + Pellet (Inferences, SWRL)... >>>> actually, it's a good way (or at least the one I've found) to use the >>>> >>> power >>> >>>> of both APIs. IMHO, there are some things easier to be done with Jena >>>> and >>>> others easier with OWLAPI (mostly because they are focused on different >>>> aspects... Jena is more "RDF-centric" and OWLAPI, "OWL-centric") >>>> >>>> >>>> >>>> >>>> Rodrigo C. Antonialli >>>> ====================================== >>>> Rio Claro - SP - Brasil >>>> LinkedIn: http://www.linkedin.com/in/rcantonialli >>>> Contato: rcantonia...@gmail.com >>>> Skype: rc_antonialli >>>> >>>> On Tue, Dec 8, 2015 at 7:17 PM, Chris Snyder <csny...@mind-tap.net> >>>> >>> wrote: >>> >>>> That is very helpful feedback. >>>>> >>>>> As a clarification I attempted to use the Pellet code from Maven >>>>> >>>> central >>> >>>> and that is where I ran into the package name change issue. I might try >>>>> getting in touch with Ignazio directly to see if I can help make the >>>>> updates to get Pellet working with the latest Jena. >>>>> >>>>> If you don’t mind my asking, how are you applying the SWRL rules in >>>>> practice? E.G. are you applying the SWRL rules using the OWLAPI + >>>>> >>>> Pellet >>> >>>> and then exporting the additional reasoned triples to your Fuseki >>>>> >>>> instance >>> >>>> so they can be queried with SPARQL? >>>>> >>>>> Thanks, >>>>> Chris >>>>> >>>>> >>>>> >>>>> >>>>> On Dec 8, 2015, at 3:55 PM, Rodrigo Antonialli < >>>>>> >>>>> rcantonia...@gmail.com> >>> >>>> wrote: >>>>> >>>>>> Hi Chris, >>>>>> >>>>>> Maybe I'm not an expert to answer you properly, but I've being >>>>>> >>>>> working >>> >>>> with >>>>> >>>>>> this kind of scenario (Ontologies, SWRL, jena, owlapi) lately and >>>>>> >>>>> here is >>> >>>> what I can share: >>>>>> >>>>>> 1) Yes. As far as I know, Jena doesn't have native support for SWRL. >>>>>> >>>>>> 2) The most recent versions of pellet I've seen is the one from >>>>>> >>>>> Ignazio >>> >>>> Palmisano, which you can find at Maven Central >>>>>> <http://search.maven.org/#search%7Cga%7C1%7Cignazio1977>. I know it >>>>>> >>>>> works >>>>> >>>>>> with most recent versions of OWL-API, can't tell what Jena version it >>>>>> supports now... (I don't know if he is in this mailling list, but >>>>>> >>>>> you can >>> >>>> find him in owlapi mailling list =P) >>>>>> >>>>>> 3) Can't tell for sure, once I've never used Jena Rules, but I >>>>>> >>>>> believe >>> >>>> the >>>>> >>>>>> differences should be around details and most things would be made >>>>>> >>>>> with >>> >>>> both. Actually, Jena Rules and SWRL are "competing" (emphasis on the >>>>>> quotes) with SPARQL SPIN from TopBraid, so it's difficult to find >>>>>> >>>>> clear >>> >>>> documented comparisons. There are a lot of considerations around the >>>>>> subject... >>>>>> >>>>>> 4) The problem with other reasoners is, usually, not Jena >>>>>> >>>>> compatibility, >>> >>>> but SWRL support... As far as I could look around, pellet is the only >>>>>> free/open-source reasoner with a good support for SWRL. I've spent >>>>>> >>>>> some >>> >>>> time looking around, because the pellet performance with SWRL is a >>>>>> >>>>> little >>> >>>> problematic when the ontology is complex, there are a great number of >>>>>> rules... Although one thing I've found to be a nice feature is the >>>>>> >>>>> ability >>>>> >>>>>> to create custom functions for SWRL using Pellet. It was good for me >>>>>> >>>>> to >>> >>>> work with geospatial data (and now I'm trying to speed things up)... >>>>>> >>>>>> 5) "What should I use" questions are like "What's the best", and the >>>>>> >>>>> best >>> >>>> answer is: it depends... of a lot of things... I've being working >>>>>> >>>>> with >>> >>>> both >>>>> >>>>>> APIs and by now, I chose to use Jena to work with Fusek and SPARQL >>>>>> >>>>> and >>> >>>> OWLAPI to manipulate the ontology directly (build and manage axioms). >>>>>> Simple SPARQL queries you can change for some OWLAPI code, but the >>>>>> endpoint/tdb support in jena are an advantage. It's quite easy to >>>>>> >>>>> work >>> >>>> with >>>>> >>>>>> both in the same application (both API read and write from various >>>>>> >>>>> formats) >>>>> >>>>>> >>>>>> Rodrigo C. Antonialli >>>>>> ====================================== >>>>>> Rio Claro - SP - Brasil >>>>>> LinkedIn: http://www.linkedin.com/in/rcantonialli >>>>>> Contato: rcantonia...@gmail.com >>>>>> Skype: rc_antonialli >>>>>> >>>>>> On Tue, Dec 8, 2015 at 6:18 PM, Chris Snyder <csny...@mind-tap.net> >>>>>> >>>>> wrote: >>>>> >>>>>> I have a few reasoner questions. >>>>>>> >>>>>>> 1) I’m using the latest version of Jena 3.0.0 is it true that the >>>>>>> >>>>>> only >>> >>>> way >>>>> >>>>>> to use SWRL rules is with an external reasoner? My concern is how I >>>>>>> >>>>>> would >>>>> >>>>>> use Protege which can handle adding SWRL rules and then processing >>>>>>> >>>>>> the >>> >>>> ontology with Jena. >>>>>>> >>>>>>> 2) I tried to integrate the Pellet reasoner but to get it to work >>>>>>> >>>>>> with >>> >>>> Jena 3.0.0 I believe I would need to fork the Pellet code and >>>>>>> >>>>>> update all >>> >>>> the Jena package paths in it to use the new “org.apache.jena.” >>>>>>> >>>>>> location. >>> >>>> Can anyone comment on that? >>>>>>> >>>>>>> 3) If I am using the built in Jena reasoner is there anything major >>>>>>> >>>>>> that I >>>>> >>>>>> can not do with the Jena rule language that I could do with SWRL? >>>>>>> >>>>>>> 4) Is there an reasoner other than Pellet that someone has used with >>>>>>> >>>>>> Jena >>>>> >>>>>> 3.0.0 successfully that will process SWRL rules? >>>>>>> >>>>>>> 5) A reasoner is obviously an important part of using an ontology. >>>>>>> >>>>>> Is >>> >>>> Jena >>>>> >>>>>> the appropriate way to go or should I be looking into the OWLAPI? >>>>>>> >>>>>>> Thanks in advance, >>>>>>> Chris >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>> -- > Lorenz Bühmann > AKSW group, University of Leipzig > Group: http://aksw.org - semantic web research center > >