mdesalvo / owlsharp Goto Github PK
View Code? Open in Web Editor NEWLightweight and friendly .NET library for realizing intelligent Semantic Web applications
License: Apache License 2.0
Lightweight and friendly .NET library for realizing intelligent Semantic Web applications
License: Apache License 2.0
I was looking through this document and noticed a recurring typo, e.g.:
EquivalentClass
States that the given classes can be
threatened the same by a reasoner,
meaning that they are aliases
I guess it was meant to be treated, not threatened
This typo also occurs in a few sections below (DisjojntClass, AllDisjointClasses, etc)
A similar typo is in the code sample:
//**threat** this as a validation error
was meant to be
//**treat** this as a validation error
Actually across the codebase there's no way to create or parse enumerate classes (owl:oneOf) made of literals.
We should add this missing piece of logic in order to support OWL2 construct.
SKOS extension was originally developed with its own set of powerful DTOs, centered all around on SKOSConceptScheme. It should be redesigned to adhere to our standard architecture for extensions, like SWRL (starting from v3.9), GEO and TIME. A true extension layer not introducing or relying on own objects, just focused on OWLOntology and what matters for SKOS programming.
SKOS reasoning should be available through a curated set of reasoner rules in OWLSharp.Extensions.SKOS namespace
SWRL reasoning subsystem should be threated like an extension, having dedicated OWLSharp.Extensions.SWRL namespace and capabilities.
Hi Marco,
here are two simple examples of inconsistent ontology:
CardinalityTest1.ttl.txt
CardinalityTest0.ttl.txt
OWLValidator does not report the inconsistency:
OWLOntology ontology = OWLOntology.FromRDFGraph(RDFGraph.FromFile(RDFModelEnums.RDFFormats.Turtle, filepath));
OWLValidator validator = new();
foreach (OWLEnums.OWLValidatorRules rule in Enum.GetValues(typeof(OWLEnums.OWLValidatorRules)))
validator.AddRule(rule);
OWLValidatorReport report = validator.ApplyToOntology(ontology);
Console.WriteLine(report.EvidencesCount); // writes 0 here
Serialization of ontologies should support OWL/XML format, which is a rather verbose but human-friendly XML dialect.
Provide a way to query an ontology with a SPARQL SELECT query. It is also nice to have the ability to give a reasoner in order to expand the knowledge with eventual inferences.
Provide a "Import(RDFResource)" method to OWLOntology, which makes it possible to import remote ontologies by Uri-dereference. This is a fundamental option for the daily operativity of ontologists!
It should also be possible to merge models in a way "void Merge(model)" and also datas in a way "void Merge(data)". Give ontologists chances to really do knowledge mashups.
Hi Marco!
Let there be an individual I0 and a class C0 in the ontology.
What is the optimal way to check, is there an explicit statement that individual I0 does not belong to class C0?
It must be expressed as belongness to "complementOf C0".
There is the method "CheckHasCompositeClass", but it mixes three different kinds of composite class expressions.
Actually we export the entire ontology, including all the inferences. It should be given a flag to exclude inferences, in order to export the vanilla T-BOX/A-BOX
Actually we are unable to correctly detect the "onProperty" of restrictions if they are expressed as OWL2-Full anonymous inline property expressions.
In #7 we added FunctionalEntailment reasoner rule. We can easily apply the same literature trick to build an InverseFunctionalEntailment rule: if the same individual is reached by an IF object property, then the source individuals can be inferred to be the same (if compatible).
Hi Marco,
here are the steps:
ontology
is made from the graph:ex:DescendantOf rdf:type owl:ObjectProperty .
ex:ParentOf rdf:type owl:ObjectProperty .
ex:ParentOf rdfs:subPropertyOf [ owl:inverseOf ex:DescendantOf ] .
ex:iJunior rdf:type owl:NamedIndividual .
ex:iMajor rdf:type owl:NamedIndividual .
ex:iMajor ex:ParentOf ex:iJunior .
ontology
:var report = new OWLReasoner().AddRule(OWLEnums.OWLReasonerRules.PropertyEntailment).ApplyToOntology(ontology);
Cannot create RDFTriple because given "pred" parameter is a blank resource
Other well-known reasoners handle this properly.
Analyze Allen predicates in order to detect modeled inconsistencies in the OWL-TIME knowledge.
Hello,
I am not sure this is the best channel to ask this question...
I am a researcher at NORCE, and I am building an ontology to describe some industrial real-time signals. I have been using your packages for some time now, it is quite a beautiful work you've done!
Here is my question: I have a functional property (myProperty).
When I declare two assertions of this property for a single resource:
Sorry for the long message, and again the library is a charm to use!
Regards,
Benoit Daireaux
Provide a placeholder rule for enhanced TBOX entailments. We'll add here some complex entailments evidenced with Protege using reasoners Pellet, HermiT and Fact++
Temporal reasoning should be available through a curated set of reasoner rules in OWLSharp.Extensions.TIME namespace
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.