GithubHelp home page GithubHelp logo

ralphbln / aspect-owl-protege Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ag-csw/aspect-owl-protege

1.0 1.0 0.0 9.76 MB

A Protégé plug-in for aspect-oriented ontology development

License: GNU General Public License v3.0

Java 99.75% AspectJ 0.13% AppleScript 0.12%

aspect-owl-protege's People

Contributors

rafaelalberdi avatar ralphbln avatar stdotjohn avatar

Stargazers

 avatar

Watchers

 avatar

aspect-owl-protege's Issues

Implement editing of aspect annotations

From aspect-owl-protege created by RalphBln: ag-csw#8

Shouldn't be too complicated. Since aspects are internally represented as OWLAspectAssertionAxioms, which are OWLAxioms, they can carry annotations. Just add an annotation button to the Aspect UI and see what else needs to be added.

Clean up package structure

From aspect-owl-protege created by RalphBln: ag-csw#3

The current package structure is a mess. We should align our package naming scheme with the one used by the Protege and owlapi folks.

Aspect assertion lost after renaming aspect class

If a named class appears as an aspect in an aspect assertion axiom and the class is renamed the aspect assertion is lost. The aspect assertion should remain intact with the newly renamed class as the aspect.

Cache aspect property

From aspect-owl-protege created by RalphBln: ag-csw#14

OWLOntologyAspectManager.isAspectInOntology is highly inefficient. Whether a class (expression) is an aspect or not should be cached, and the cache needs to be invalidated only after a class (expression) has been added, edited, or removed.

Separate owlapi and protégé related code

Split the project into two projects, one containing owlapi-related extensions and the other containing protégé-related extensions only. This way it will become possible to use the AspectOWL and AspectSWRL-related extensions outside of Protégé. Some restructuring of packages and some refactoring will be necessary. #2 is related to this issue.

New aspect wizard

From aspect-owl-protege created by RalphBln: ag-csw#15

Write a wizard for the creation of new aspects. The wizard would allow the user to select from a list of preconfigured aspect types. An aspect type corresponds to a kind of modal logic. The kind of modal logic is determined by its axiomatization, which reflects in the combination of accessibility relation characteristics. An aspect configuration would therefore include

  • an OWL class representing the aspect
  • one or more accessibility relations (OWL object properties) with characteristics corresponding to the selected type of modal logic
  • possibly one or more OWL individuals representing possible worlds (e.g. in case of a temporal aspect with known start and end instants, two individuals representing these instants would be created).

The complete temporal aspect example would look like this:

  • Type name: "Temporal Aspect"
  • Required user input:
    • name (will be local part of class IRI)
    • start (optional) and end (optional) instance (select existing or create new)
    • accessibility relation (select or create new)
  • Output:
    • Aspect class
    • accessibility relation(s)
    • possibly individual(s)

Some aspects might share a single accessibility relation while others won't (all temporal aspects might share the same before/after relation, while an epistemic aspect will need one accessibility relation per agent).

For certain types of aspects it might be possible to re-use existing vocabulary/ontologies. E.g., temporal aspects might use the W3C time ontology's time:before and time:after object properties, and every time instant (possible world) might be an instance of time:Instant. There should be an option for configuring this. This would be a per-ontology setting.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.