Science topic
OWL - Science topic
Explore the latest questions and answers in OWL, and find OWL experts.
Questions related to OWL
For the completion of RDF graphs. Do you recommend only leaving triples whose expressiveness corresponds only to RDF framework or another more expressive language such as RDF-S or OWL?
I totally can imagine what a huge potential semantic technologies such as knowledge graphs, ontologies, SPARQL search and automated reasoning might have in different fields of science and engineering. However, apart from biology and medicine (which I have only very little insight on) they seem to be rarely used (e.g. compared to machine learning methods).
Of course it is likely that I am simply unaware of very useful applications of semantic technologies, therefor this question.
More precisely, I am interested in short descriptions which concrete knowldegebase/tool is used and which problem it helps to solve or which question it helps to answer.
It has apparently been proven that SQL with cyclic tags is Turing-complete (see [1]).
There are also approaches that convert relational structures to OWL (e.g. [2], [3]).
Can one conclude that one can define any algorithm in OWL or in one of its derivatives?
Does anyone know a paper?
Thanks!
Best,
Felix Grumbach
I know about RDFLib and OWLReady2,
but is there something similar to the (Java) OWL API (involving reasoning) ?
[e.g. I have heard of OWLAPy]
Thanks
The term "Semantic Web" goes back to at least 1999 and the idea – enable machines to "understand" information they process and enable them to be more useful – is much older. But still we do not have universal expert systems, despite that they would be very advantageous, especially in the context of (interdisciplinary) research and teaching.
My impression is, that from the beginning semantic web technologies was dominated by Java-based tools and libraries and that the situation barely changed until today (2022): E.g. most of practical ontology development/usage seems to happen inside Protegé or by using OWLAPI.
However, in the same time span we have seen a tremendous success of numerical AI (often called "machine learning") technologies and here we see a much greater diversity of involved languages and frameworks. Also, the numerical AI community has grown significantly in the last decade.
I think, to a large part this is, because it is simple to getting started with those technologies and Python (-Interfaces) and Jupyter-Notebook contribute significantly to this. Also, Python greatly simplifies programming (calling a library function and piping results to the next) for people who are not programmers by training such as physicists, engineers etc.
On the other hand getting started with semantic technologies is (in comparison) much harder: E.g. a lot of (seemingly) outdated documentation and the lack of user-friendly tools to achieve quick motivating results must be overcome in this process.
Therefore, so my thesis, having an ecosystem of low-threshold Python-based tools available could help to unleash the vast potential of semantic technologies. It would help to grow the semantics community and to enable more people to contribute contents such as (patches to) domain-ontologies, sophiticated queries and innovative applications e.g. combining Wikidata and SymPy.
Over the past months I collected a number of semantic-related Python projects, see https://github.com/pysemtec/semantic-python-overview. So the good news is: There is something to use and grow. However, the amount of collaboration between those projects seems to be low and something like a semantic-python-community (i.e. people who are interested in both semantic technologies and python programming) is still missing.
Because complaining alone rarely leads to improvement of the situation, I try to spawn such a community, see https://pysemtec.org.
What do you think, can Python help to generate more useful applications of semantic technology, especially in science? What has to happen for this? What are possible counter-arguments?
Dear Researchers,
We are trying to implement semantic Geospatial data infrastructure and want to use OWL files with Geonetwork.
Any hint on how to link ontology files with Geonetwork will be greatly appreciated.
Thank you very much for your time.
Regards
Ali Madad
Currently, I want to merge several SKOS files (.rdf files) into one, taking into account mappings between them, made previously.
Is there any tool that allows me to do this?
I designed and developed a domain ontology for solid waste collection management and have OWL/RDF version of my OntoWM domain ontology. Can I use quantitative or qualitative method to evaluate the OntoWM domain ontology? any sample thesis or article please.
Regards
Abdul
There are the following well-known ontology evaluation methods of computational ontology
1. Evaluation by Human
2. Evaluation using ontology-based Application
3. Data-driven evaluation
4. The Gold Standard Evaluation
We designed and developed a domain ontology and implemented it in OWL semantic language. How to evaluate it?
In the near future I`ll be teaching a course on ontologies development, using Protégé for OWL 2.0, that is, Protègè 4.x and 5.x.
I know Manchester Tutorial, aka "Pizza Tutorial", and "Family tutorial", from University of Manchester too. Is there any other tutorial or manual to help learning ontology development? I'll appreciate any suggestion.
I had modeled processes in my ontology like sale, purchase, etc. I want to implement these modeling constructs in OWL or RDF or any other semantic language. Can anybody suggest any language for the proper implementation of the aforementioned process?
Thanks
Dear all,
i have a problem with Protege at the moment. Protege can only write a TURTLE or RDF/XML Sytnax with an OWL part in it, you can not "turn off" the OWL Syntax. My problem is that I'm not very good in coding, so Protege is very usefull with its graphical understanding but i really need the code in RDF/RDFS only
I you have any ideas for me, i'd love to here them.
Thanx you in advance.
I actually want to enable user to defined rules for his resources on Social Network. These rules will be used by proposed model to share users resources across different social network.
Using Protege and SWRL tab, I have the ontology mentioned hereinafter. It is composed of the Class Test and the class Shadow, where Test has three individuals t1, t2, t3. I was trying to define an SWRL rule that creates an individual of Shadow class for each existing individual of Test, the rule is
Test(?x) ^ swrlx:makeOWLThing(?new, ?x) -> Shadow(?new)
QUESTIONS:
1. Only one individual of Shadow, named fred is created, instead of three (corresponding to t1, t2, t3).
2. How to control the naming of the resulting individual which is always named fred?
Here is my ontology:
Prefix(:=<http://www.semanticweb.org/hilal/ontologies/2016/5/untitled- ontology-58#>)
Prefix(owl:=<http://www.w3.org/2002/07/owl#>)
Prefix(rdf:=<http://www.w3.org/1999/02/22-rdf-syntax-ns#>)
Prefix(xml:=<http://www.w3.org/XML/1998/namespace>)
Prefix(xsd:=<http://www.w3.org/2001/XMLSchema#>)
Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)
Ontology(<http://www.semanticweb.org/hilal/ontologies/2016/5/untitled- ontology-58>
Declaration(Class(:Shadow))
Declaration(Class(:Test))
Declaration(NamedIndividual(:t1))
Declaration(NamedIndividual(:t2))
Declaration(NamedIndividual(:t3))
Declaration(AnnotationProperty(<http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled>))
############################
# Named Individuals
############################
# Individual: :t1 (:t1)
ClassAssertion(:Test :t1)
# Individual: :t2 (:t2)
ClassAssertion(:Test :t2)
# Individual: :t3 (:t3)
ClassAssertion(:Test :t3)
DLSafeRule(Annotation(<http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled> "true"^^xsd:boolean) Annotation(rdfs:comment ""^^xsd:string) Annotation(rdfs:label "S1"^^xsd:string) Body(BuiltInAtom(<http://swrl.stanford.edu/ontologies/built-ins/3.3/swrlx.owl#makeOWLThing> Variable(<new>) Variable(<x>)) ClassAtom(:Test Variable(<x>)))Head(ClassAtom(:Shadow Variable(<new>))))
)
Hello ,
I wanna get ontology classes but not in a randomly way, I'm looking for a way to get them by their hierarchical levels: I mean showing for each level of the ontology its classes; is it possible knowing that I'm using OWL API.
Thank you
I am wondering what is the best/easiest to use library or API for OWL parsing in C++ . I did not find many libraries (most of the work is in Java). The ones I found are difficult to install and work with as owlcpp. Can anyone tell me about a library for OWL parsing and writing that is easy to install ? or any one used owlcpp that can help me to install it and use it ??
thank you
Observing trends in publications related to ontologies and ontology Engineering, they look like most of them, if not all, are application oriented.Even more, when analyzing relatively recent history of this field, one can realize that, for example, during the first decade of the XXI Century, there was an intensive process of looking for new methodologies, and after creation of NeON Methodology, I feel, roughly speaking, nothing more has happened.
Other examples, from the development tools. Several years ago there were several tools competing for the roll of most used editor. Today looks like almost every thing is developed using Protégé. Regarding ontology languages there is a similar "state-of-affairs", even we try to open a debate around that topic last year: https://www.researchgate.net/post/What_are_the_current_trends_in_ontology_languages
What do you think? Hopefully I am wrong...
same as you know if we retrieve the object property or data property and subclass can do that by joining them in one variable :
Query 1
SELECT ?x ?y
WHERE { ?x rdfs:subClassOf ?y.
?x rdf:type owl:ObjectProperty.
}
the x var it's same object property and subclass of other class
im need to join (all individual "NamedIndividual")
with object property or subclass .
the problem that is ( ?x rdf:type owl:NamedIndividual . )
couldn't use "?x" in any other location same as :
?x rdfs:subClassOf ?y.
Query 2
SELECT ?x ?y
WHERE { ?x rdfs:subClassOf ?y.
?x rdf:type owl:NamedIndividual .
}
Query 3
SELECT ?x ?y
WHERE { ?x rdf:type owl:ObjectProperty.
?x rdf:type owl:NamedIndividual .
}
So: Query 2 and Query 3 cannot be implemented.
how I can solve this problem?
There are several weighting factors which can be included into word embedding models in order to get useful and accurate semantic representations of terms. But when you have small data and synonyms or homonyms in your corpus you generate noisy results. You can leverage this problem by making use of already known semantic information as it is available in ontologies (RDF, OWL) or in terminological databases (TBX, SKOS). I would be interested to read your feedback on the best approaches to include existing semantic information into vector space algorithms (LSA, LDA) and models (GloVe, Word2Vec...) possibly using libraries like Gensim.
I'm working with ontologies in owl format. According the W3C guide the properties are classified in DatatypeProperty and ObjectProperty. In addition, the properties can be functional, symmetric and transitive. In a bibliography I found three classifications: DatatypePropertys, ObjectPropertys (which could be symmetric or transitive) and FunctionalPropertys. I need to know if any of these classifications (functional, symmetric, transitive) is independent of the ObjectPropertys or they are classifications for the ObjectPropertys.
Hello,
I've been looking for an ontology deployment environment , which is necessary in order to use the ontology in ontology-driven systems.
The environment/system should have the ability of processing owl semantics and reasoning/ at most have reasoning APIs.
I know there are a lot of frameworks for rdf / triple stores, such as Apache Jena. As well, graph databases seem to be capable of deploying ontologies at some point. However, most frameworks only seem to be able of handling rdf and do not really cope with the semantics of owl.
Do you have any recommendation on the issue of ontology deplyoment frameworks?
I need to get All direct superclasses of one class from the ontology, and I need just named classes, not those gotten from the equivalent expression with 'AllValuesFrom' restriction. I tried with the code below, it works for some ontologies that I create but others downloaded from the web (people ontology - pizza ontology) it doesn't work.
public void motherclasses_Of_One_class() {
for (OWLClass clss : ontology.getClassesInSignature())
{
if(reasoner.getSuperClasses(clss, true).getFlattened().size()>1) // if the class has more than one mother class
{// System.out.println(" \n ---------------- : \n");
System.out.println("\n class "+clss.getIRI().getFragment()+" has more than one mother classes : \n");
for(OWLClass parent: reasoner.getSuperClasses(clss, true).getFlattened())
System.out.println(parent.getIRI().getFragment());
}
}
}
I tried with this version of code too, the same result as the first version :
NodeSet<OWLClass> superclasses = reasoner.getSuperClasses(clss, true);
for (org.semanticweb.owlapi.reasoner.Node<OWLClass> parentOWLNode: superclasses) {
OWLClassExpression parent = parentOWLNode.getRepresentativeElement();
System.out.println(parent.getClassesInSignature());.out.println(parent.getClassesInSignature());
}
the problem with downloaded ontologies, that it returns wrong superclasses for a class. I check the . OWL file, then the ontology through protégé, I can't find from when the problem comes. Please find below a wrong case to understand more what I mean.
In the example, 'cat_owner' class has just one mother 'person' class. As you can see, pet_owner and cat_liker classes are at the same hierarchical level as 'cat_owner' class, they can never be mothers for 'cat_owner' class, and more than that in the description of 'cat_owner' class there is just one superclass 'person' class... but in the program output I get them as superclass 'person' class... but in the program output I get them as superclasses of 'cat_owner' class when 'person' class is absent form the list. I can't understand why... this is the output: from the list. I can't understand why...
Please if you have any idea that may help, I would be grateful. Thank you

I try to get all 'subclass-of' axioms of an ontology. I tried by using the following statement.
MyOntology.getAxioms(AxiomType.SUBCLASS_OF));
Effectively, it returns the ontology 'subclass-of' axioms, except for the first 'subclass-of' axiom which links OWL:Thing with my first ontology class.
I cannot understand why this link isn't taken into account in that case ?
Please, is there any way to get all 'subclass-of' axioms including those linking OWL:Thing with other classes ?
tools Else than D2RQ that uses ontologies in RDF
because we have ontologies in OWL.
I am an AI developer working on Project ERGON, an AMA program. I am looking into multiagent development and realize that inter-AI/IoT data dialogue requires a translation middleware using a lingua franca.
I have discovered Ontologies and OWL, and would like to use Protégé, but cannot find a basic step-bystep howto use either?
Can you help please?
If you will need some help or assistance in field data obtaining, I can help you.
I'm building an ontology and I need to create the same semantic relation (the name of the relation is the same as well as the meaning in the domain) between different classes of elements. For example:
o:ClassA o:hasSemanticRelation xsd:string
o:ClassB o:hasSemanticRelation xsd:string
o:ClassC o:hasSemanticRelation xsd:string
My first approach was to create multiple domains for the property but this actually means the intersection of the concepts which is not correct in the domain. My second approach was to have a super property
owl:Thing o:hasSemanticRelation xsd:string
o:hasSemanticRelationA owl:subPropertyOf o:hasSemanticRelation
o:ClassA o:hasSemanticRelationA xsd:string
Because of the meaning of the hasSemanticRelation I want that every time it is used it can be linked to the same property, i.e., o:hasSemanticRelation
Could anyone give ideas how can I best represent this situation?
Hi,
Is there any tool/software/API that supports and helps to model a fuzzy ontology ? I need to develop a fuzzy ontology, validate the model using a reasoner (probably DLorean) and query.
I tried using Protege fuzzy OWL but due to some inconsistency in Gurobi optimization engine, I am not able to validate my fuzzy ontology. I am wondering if anyone has modeled a fuzzy ontology using a readily available ontology tool?
thanks in advance.
I'm currently building an OWL Ontology for the manufacturing/automation domain. I have realized that the eCl@ss Catalog contains crucial information in this regard, and it should be reused. The thing is that the OWL eCl@ss is built for the 5.1.4 and the catalog is now in 9.1 version, therefore many information is not included there. Is still a good practice to reuse this ontology?
I was using Protege 5 beta 17 platform independent, everything was okay, until I tried to open a very large ontology, then it froze and never responded.
When I open Protege again, it gives the DOT error, for graphvis, and then freezes and never respond.
I tried everything from uninstall/reinstall/different versions of Protege including 5 beta for windows, 4.2 and 4.3, the same problem/reinstalling java the same problem/installing protege with its own java the same problem.
What is the problem/solution?
Thanks
The log says
INFO Cajun Visualization Plugin Plugin has no plugin.xml resource org.protege.editor.core.ProtegeApplication[FelixDispatchQueue]
INFO OWLAPI-RDF Library Plugin has no plugin.xml resource org.protege.editor.core.ProtegeApplication[FelixDispatchQueue]
INFO Using OWL API version 3.4.2 org.protege.editor.owl.OWLEditorKit[FelixDispatchQueue]
INFO Rebuilding entity indices... org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO ... rebuilt in 4 ms org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO Setting active ontology to OntologyID(OntologyIRI(<http://www.semanticweb.org/hilal/ontologies/2016/2/untitled-ontology-22>)) org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO Rebuilding entity indices... org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO ... rebuilt in 1 ms org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO ... active ontology changed org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO Cannot generate ontology catalog for ontology at http://www.semanticweb.org/hilal/ontologies/2016/2/untitled-ontology-22 org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO Setting active ontology to OntologyID(OntologyIRI(<http://www.semanticweb.org/hilal/ontologies/2016/2/untitled-ontology-22>)) org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO Rebuilding entity indices... org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO ... rebuilt in 1 ms org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
INFO ... active ontology changed org.protege.editor.owl.model.OWLModelManagerImpl[FelixDispatchQueue]
I use RAP api for PHP to query my knowledge (RDF, OWL and etc.) but I cannot find the way to apply SWRL that I designed on Protege. Somebody suggests me to use Jena.
I have developed an ontology and I am trying to query owl ontology data property assertions using OWL API in java. I have tried to query the definitions for namedIndividuals through data property assertions but I am not succeeding. Can somebody assist out there?
Description I'm developing an OWL application that uses a reasoner. The classification takes too much time (more than 4 minutes) as I'm treating a relatively large ontology. I don't want to waste this time each time I run the application. The alternate is to save the reasoner inferred model and use the stored inferred one instead of running the reasoner each time.
Let's consider the following ontology:
Example
:A rdf:type owl:Class .
:A1 rdf:type owl:Class ;
rdfs:subClassOf :A .
:A2 rdf:type owl:Class ;
rdfs:subClassOf :A1 .
which asserts that A2 subClassOf A1 subClassOf A.
Problem When I use Protege 5 with some reasoner (e.g Pellet or even Hermit), start the reasoner and save the inferred model with all the available inference options. When I open the inferred model, I see that it doesn't state that A2 is a subclass of A. It only states that it's a subclass of A1. see below what it contains about A2:
A2 rdf:type owl:Class ;
rdfs:subClassOf :A1 .
I want all the implicit knowledge to become explicit. This work by Protege doesn't give me what I want (i.e. don't assert that A2 is also a subclass of A)? What is the problem? Any alternatives?
Remark: Saving the inferred model using some other tool (i.e. Jena or OWLAPI) will solve my problem as well, however, calling their methods to save the inferred model behaves the same way as Protege.
link download: http://www.adampease.org/OP/SUMO.owl
is because it have a high volume?
Note: but, i can run a query with jena api on this owl file.
please help me.
Anybody know if exists some variant of OWL language, specially designed for the spatial domain ontologies. Similar to GeoSPARQL regarding SPARQL.
Greetings.
.
As OWL is based on the open world assumption it will rather classify entities than validate them in the classic way, since it assumes a non complete knowledge base.
This characteristic had caused me great problems when considering to use OWL for MDE (Model Driven Engineering) to generate a form based knowledge management system.
With forms the user WANTS validation, which must be rather strict and in real-time. The domain and range conditions won't help:
"The fact that domain and range conditions do not behave as constraints and the fact that they can cause ‘unexpected’ classification results can lead problems and unexpected side effects." (A Practical Guide To Building OWL Ontologies Using Protégé 4 and CO-ODE Tools, p36)
I've found Pellet Integrity Constraints (http://clarkparsia.com/pellet/icv/) which adds stricter constraint features to OWL.
This is where the Semantic Web has lost me. I need to extend an already complex system in order to achive something as simple and common as classic validation?
Have I missed something obvious, or is OWL really unsuitable (or at least very painful) to model closed world systems?
I can see why OWL and the OWA work the way they do and that knowledge bases that aggregate information from different sources can benefit from this concept. However, most systems are (for good reasons) closed world.
Actually, I'm getting lost with domain and range semantics when a subsummption exists, in addition to restriction inheritance between class taxonomy members. Please see the following cases.
Let's consider
(1) hasCar Domain driver
(2) driver subClassOf human
Then, can we infer that
hasCar Domain human
Let's have hasCar (x, y) whatever x is
from (1): driver(x) & from (2): human(x)
then: whatever x is, if hasCar(x, y) => driver (x) =>
(3) hasCar Domain human
First Question: Is this conclusion correct? Why isn't Protege 5 with Hermit (neither Pellet, not even Jena with some reasoner) inferring that?
------------------------------------------------------------------------------------------------
Let's consider
(1) hasAudiCar Range AudiCar
(2) AudiCar subClassOf Car
In a similar fashion, we can infer that
(3) hasAudiCar Range Car
Second Question: Is this conclusion correct? Why isn't Protege 5 with Hermit (neither Pellet, not even Jena with some reasoner) inferring that?
-------------------------------------------------------------------------------------------------
Let's consider
(1) hasAudiCar Domain driver
(2) hasAudiCar Range audiCar
(3) driver hasAudiCar min 1 audiCar
(4) audiCar subClassOf car
Then, we can infer that
driver hasAudiCar min 1 car
Third Question: Is this conclusion correct? Why isn't Protege 5 with Hermit (neither Pellet, not even Jena with some reasoner) inferring that?
Surprisingly; Using Jena with the specification OntModelSpec.OWL_DL_MEM_RULE_INF gives my expected results!
But do not know if the version I downloaded contains only the Ontology Sumo or other manufacturer's components like Dbpedia, FOAF and other Ontologies that are in sumo.
SUMO OWL=(T-Box)+(A-Box)
but, i want only T-box
Is there any domain ontologies (in owl format) which capture the educational concepts in the JAVA programming course or c++ ?
We have not find a bottom spacer in the electrophoresis set for gel casting system. Please, help to find any instruction for gel casting system in the Owl P8DS-2 vertical dual gel system.
I have a owl file and I want to find out wether this file is a owl-dl/ owl-lite or owl full ?
Is there any tag in the owl file that hold dl/life/full keyword or something like this that given an idea that the file belongs to which sub-language of owl?
Many research papers and tools do exist that automatically generate specific domain Ontology from text. and there exist tools to validate the OWL syntax and semantic relationships. However, do we have any tool that check the quality of the generated specific domain ontology?
Currently, I am doing the research on the modelling of design patterns using OWL. For the application, I have considered IOT.
Currently, my colleagues and I are in the first stage of preparing a article about gender determination of Long-eared Owls (Asio otus) based on plumage coloration and biometric measurements supported of DNA analyzes. For now, we found several close related papers which we have been able to found on the Internet databases (Scopus etc). Thank you in advance for your help.
Research on survival rate of injured birds of prey post release.
Correlation between form of release and success rate.
Also type of injury and time of rehabilitation.
OWL Ontology Model
Many thanks.
I know there is a large ontology repository for example here: http://rpc295.cs.man.ac.uk:8080/repository/. I am also aware of generators like LUBM or UOBM. However, they provide either a lot of different ontologies without instances, or (in case of generators) ontologies with fixed number of instances. What I am looking for is a dataset (or generator) that allows to create ontologies of different size (different number of instances).
creation of database automatically
As RDF and Ontology belong to two separate layers in the Semantic Web Layer cake so I want to understand the difference between these two layers? Most of the data on the internet said these two are same. Please help me to understand the difference?
I am looking for information on how I can provide access to a large Ontology developed using Protege as an online web service.
OWL API supports in memory representation and thus does not allow large size ontologies.
Here are a number of API that are using OWL API as there underlying technology:
Protege 4, NeOn Toolkit, OWLSight, Ontology browser, OntoTrack,SKOS, SKOSED, and OWLlinkAPI, etc.
When OWL API is not allowing large size ontologies than how we are going to handle this issue for large application?