What can be done using OWL reasoning? - sparql

I'm working on an OWL ontology and I need some specific issues
I only need ontology schema (TBox) and I got lost, what are the operations that can be
completed using reasoning and sparql and OWL API?
More specifically, I need the following:
1- check cardinalities between classes and properties.
2- find subsumption relationships for a specific class.
3- check whether specific facts hold (e.g. are two classes are disjoint)
4- find the paths (a class-property series) between a set of classes.
What each of reasoning, sparql and OWL API used for? and which one is suitable for my situation?
Actually I don't know how to start and what technique to use.
In addition. Would you please refer me to some reference?
Thanks.

Number 1 is not clear: do you want to know which cardinality axioms are asserted? This can be done without a reasoner. Number 4 is a bit vague as well, can you provide an example?
2, 3 and 5 require a reasoner to be perform accurately.
A reasoner is a program that will explicit implicit information: subsumption, realisation, consistency checks are all operations for which a reasoner is needed. In your tasks, subsumption is clearly needed.
OWLAPI is a Java API to manipulate OWL ontologies; in your case, it could be useful to write the connecting code to use a reasoner for your tasks. Compatible reasoners are Pellet, HermiT, FaCT++, and a few more.
SPARQL is an RDF query language. OWLAPI does not support it. You could use it for your tasks, but they look more OWL oriented than RDF oriented to me. Jena is a Java library supporting RDF, OWL, SPARQL and interfaces with reasoners such as Pellet. Depending on how you decide to solve the above tasks, it might fit more of your requirements than the OWLAPI.
Jena tutorials:
https://jena.apache.org/tutorials/index.html
OWLAPI documentation:
https://github.com/owlcs/owlapi/wiki/Documentation

Related

How to add SWRL vocabularies into Jena Framework

Hi I am an Ontology beginner,
I have built an Ontology and saved the RDF file with rule enabled using Protege. I am going to build a web service that takes some inputs from the Ontology. The inputs can be provided by querying the arguments, class and property predicates under swrl:something swrlb:something tags.
I am using java language and trying Jena framework. But there is no SWRL-related vocabulary, even though I have imported rule reasoners [I am not sure whether importing reasoners will add the SWRL vocabularies].
Are there any hints to add SWRL vocabularies into Jena framework?
I haven't looked into Jena rules yet, I believe that it is different to SWRL.
Thanks,

Probabilistic and/or defeasible reasoning in Protege?

I have found some promising (old) articles but the trail has run cold.
Ideally I am looking for working plugins/code, but if they are simply not available, then any concrete directions on how to build probabilistic and/or defeasible reasoning for integration into Protege would still be useful.
RaMP Defeasible Reasoning plugin for Protege. Appears to be dormant/abandoned. Perhaps project/code was lost along with http://code.google.com/p/nomor/
PR-OWL http://www.pr-owl.org/. Extends OWL to support probabilistic ontologies. Appears to be dormant/abandoned.
Defeasible RuleML looked interesting, but I cannot find any concrete implementations/plugins/code. http://ruleml.org/1.0/defeasible/defeasible.html.
Defeasible Logic RuleML-compatible Rule
Language. Even if code can be found, this implementation looks experimental, and does not leverage more recent standards and formats. Paper: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.5914&rep=rep1&type=pdf Resources: http://lpis.csd.auth.gr/systems/resources.html#drdchairruleml2010
There's Pronto (available here), which is built on top of Pellet. I cannot recall if it comes as a Protege plugin, but as it is tied to Pellet I imagine it shouldn't be too hard to implement an OWLReasoner wrapper for the two.

How does a semantic reasoner for protegé is made?

I'm new in "ontology world". I've been practicing Protegé and ontologies for 2 months and now I would like to understand (and if it is possible to create) a reasoner. But I don't know what is its structure, the language used by it and so on.
Can you please me provide me a piece of information and something to read? Thank you.
The task of a reasoner is to produce inferences. Standard reasoning tasks are consistency check, realization, instance check and satisfiability. You can find all these defined in a number of books and articles about description logic.
Protege uses the OWL API to interface to reasoners so they are implementations of OWLReasoner. Not all of them are written in Java (e.g., FaCT++ is written in C++).
They are quite complex systems, so describing how to implement one takes chapters - too big for an answer here.
I'd recommend exploring the source code of a few of them. Open Source ones, off the top of my head: HermiT, FaCT++, Pellet, JFact, ELK.

Owl Protege model repository

I can't really grasp the concept of how I can add an ontology model in a repository for storing. For example, I've created an ontology model in Protege 4.3. What's the next step? Suppose I want to store this model in a repository, how do I do that? Do we need to create the repository locally? If so, which application can be used for it?
P.S. I've just started learning this software and I'm a slow learner, so please be patient when answering!
The question makes no sense. I don't understand 'repository' in the given context.
As in, why have you mentioned a repository, at all?
A little knowledge is a dangerous thing...
I found your question whilst searching for a repository of .owl models. In particular, I would like to find the UML metamodel, expressed as an OWL ontology, that I can review in Protege.

Developing a Semantic Web Application

Although i have a little bit of experience in developing dynamic websites using ASP technologies, but I am new to semantic web programming, and i intend to implement a website based on semantic web technology.I would like to develop a search engine, where a web user can query for keywords from the backend RDF triple store.I want to implement the website using Java and JSP.I have following questions:
I am currently studying Jena framework and SPARQL to start with,but
i am not sure what other technologies i need to study in order to
implement the website.
What is the difference between RDF and OWL, I have gone through a
lot of web resources but i am still confused.As per my understanding
RDF and OWL both define relationship between concepts but OWL is
more rich in terms of defining relations.
What is meant by different OWL Vocabularies like FOAF, SIOC etc.Why
do we need these vocabularies?
What exactly is the purpose of Virtuso Open Link
Software(http://ods.openlinksw.com/dataspace/dav/wiki/Main/VirtJenaProvider)
Any help would be highly appreciated.
Thanks!
I would definitely like to be kept up to date of your progress. I'm not experienced with java or jsp. I wonder if this could be done in php? I know that some work has been done in python on this kind of thing.
There are some extensions to drupal that work with these semantic web technologies and Semantic Media Wiki is good too.
Check out this and the related links at the bottom. The difference between microformats and vocabularies can be difficult to understand but I think there is a difference, say between a vocabulary like FOAF and a microformat like hCard, hCalendar or hResume. Oh, the link:
http://en.wikipedia.org/wiki/FOAF_(software)
Anyway these related terms are included.
Thanks,
Bruce
http://futurewavedesigns.com
Re: your first question - why do you want to use RDF to implement a keyword search? Keyword search isn't semantic, and there are many established frameworks and APIs for keyword search, such as Lucene.
Re: your second question, comparing RDF and OWL is comparing apples and oranges. RDF is basically for declaring data, but OWL is a layer on top of RDF that is for declaring ontologies (schemas). A more meaningful comparison would be between RDFS (RDF Schema) and OWL, which both address the ontology layer.
Example:
In RDF you might state that John Smith is a Person who hasAge "42" and is marriedTo Jill Smith.
In RDFS or OWL you would declare that Person is a class, hasAge is a property (with domain of Person and range of xsd:integer) and marriedTo is a property (with domain and range of Person).
In OWL you can also declare that marriedTo is a symmetric property (if A is marriedTo B, then B must be marriedTo A). RDF isn't this powerful, so you can't make this particular statement, so can't make inferences about symmetric properties etc.