Skip to content

1. Project Structure & JavaDoc

Luca Buoncompagni edited this page Apr 8, 2024 · 1 revision

Project Structure

owloop
├── docs
|   ├── ... (html files related to javaDoc)
|   └── index.html
├── gitRepoResources
|   └── images
|       ├── ... (all the images found on this repository's documentation)
|       └── NotesDuringDevelopment.txt
├── gradle/wrapper
|   └── gradle-wrapper.properties
├── lib
|   ├── amor-2.2.jar
|   └── owloop-2.1.jar
├── src
|   ├── main/java/it/emarolab/owloop
|   │   ├── core
|   │   |   ├── Axiom.java
|   │   |   ├── Class.java
|   │   |   ├── DataProperty.java
|   │   |   ├── Individual.java
|   │   |   └── ObjectProperty.java
|   │   └── descriptor
|   │       ├── construction
|   │       │   ├── descriptorEntitySet
|   |       |   |   └── DescriptorEntitySet.java
|   │       │   ├── descriptorExpression
|   |       |   |   ├── ClassExpression.java
|   |       |   |   ├── DataPropertyExpression.java
|   |       |   |   ├── IndividualExpression.java
|   |       |   |   └── ObjectPropertyExpression.java
|   │       │   └── descriptorGround
|   |       |       ├── ClassGround.java
|   |       |       ├── DataPropertyGround.java
|   |       |       ├── DescriptorGroundInterface.java
|   |       |       ├── IndividualGround.java
|   |       |       └── ObjectPropertyGround.java
|   │       └── utility
|   │           ├── classDescriptor
|   |           |   ├── FullClassDescriptor.java 
|   |           |   ├── HierarchicalClassDesc.java
|   |           |   ├── InstanceClassDesc.java
|   |           |   └── RestrictionClassDesc.java
|   │           ├── dataPropertyDescriptor
|   |           |   ├── RestrictionDataPropertyDesc.java
|   |           |   ├── DomainRangeDataPropertyDesc.java
|   |           |   ├── FullDataPropertyDescriptor.java
|   |           |   └── HierarchicalDataPropertyDesc.java
|   │           ├── individualDescriptor
|   |           |   ├── RestrictionIndividualDesc.java
|   |           |   ├── FullIndividualDescriptor.java
|   |           |   ├── LinkIndividualDesc.java
|   |           |   └── TypeIndividualDesc.java
|   │           └── objectPropertyDescriptor
|   |               ├── RestrictionObjectPropertyDesc.java
|   |               ├── DomainRangeObjectPropertyDesc.java
|   |               ├── FullObjectPropertyDescriptor.java
|   |               └── HierarchicalObjectPropertyDesc.java
|   └── test
|       ├── java/it/emarolab/owloopArticleExamples
|       |   ├── example1
|       |   |   └── ConstructOntology.java
|       |   ├── example2
|       |   |   └── UseDescriptorBuild.java
|       |   ├── example3
|       |   |   └── RemoveAxioms.java
|       |   └── exampleDescriptors
|       |       ├── CorridorClassDesc.java
|       |       ├── DefClassDesc.java
|       |       ├── DefSubClassDesc.java
|       |       ├── LocationClassDesc.java
|       |       ├── ObjectLinkIndividualDesc.java
|       |       ├── RoomClassDesc.java
|       |       └── TypeIndividualDesc.java
|       └── resources
|           └── robotAtHomeOntology.owl
├── .gitignore
├── LICENSE
├── README.md
├── build.gradle
├── gradlew
├── gradlew.bat
└── settings.gradle

Within the owloop/src/ package, you have the following packages and files:

  • test/java/it/emaroLab/owloopArticleExamples/ package contains example codes that present the OWLOOP-API. The examples show how to:

    • create Descriptors (in exampleDescriptors/ package),
    • add axioms to an ontology (in example1/ package),
    • infer axioms from an ontology (in example2/ package), and
    • remove axioms from an ontology (in example3/ package).
  • main/java/it/emarolab/owloop/ package contains the actual OWLOOP library, wherein:

    • core/ package contains interfaces which provide methods that allow synchronization between, the state of one or more descriptors (i.e., axioms in OWLOOP) and the state of one or more OWL ontologies (i.e., axioms in an OWL ontology). More in particular:

      • Axiom: is the interface wherein are other interfaces that represent core components within the OWLOOP library (i.e, Ground, Expression, EntitySet and Descriptor).
      • Class: is the interface wherein are other interfaces that represent Expressions related to the OWL entity OWLClass.
      • Individual: is the interface wherein are other interfaces that represent Expressions related to the OWL entity OWLIndividual.
      • ObjectProperty: is the interface wherein are other interfaces that represent Expressions related to the OWL entity OWLObjectProperty.
      • DataProperty: is the interface wherein are other interfaces that represent Expressions related to the OWL entity OWLDataProperty.
    • descriptor/construction/ package contains either implementation or extension of the above core interfaces, which when put together form a Descriptor. More in particular:

      • descriptorEntitySet/ package contains mainly classes which (by implementing the above core/ interfaces) represent the different type of OWL entities (therefore axioms) that can be synchronized between the OWLOOP domain and OWL ontology domain.
      • descriptorExpression/ package contains mainly interfaces which (by extending the above core/ interfaces 'respectively') represent synchronization (between the OWLOOP domain and OWL domain) of ClassExpressionAxioms, IndividualExpressionAxioms, ObjectPropertyExpressionAxioms or DataPropertyExpressionAxioms.
      • descriptorGround/ package contains mainly classes which (by implementing the core/ and descriptorExpression/ interfaces) provide methods that are able to ground an OWL entity in a descriptor. Based on the Ground and its association to an EntitySet via an Expression, a descriptor is formed.
    • descriptor/utility/ package contains classes that implement interfaces and extend classes from descriptor/construction/. These classes are examples of OWLOOP Descriptors. They allow you to manipulate OWL entities as objects within the OOP domain and no more as strings (as is the case when using the classic OWL-API). Furthermore, to have control over the amount of synchronization that happens between the OWLOOP and OWL ontology, you can make your own unique Descriptor, that satisfies the need of your application. Based on your need the descriptor can implement one or more expressions:

      • classDescriptor/ package contains the following Java-classes:
        • FullClassDescriptor: an example of a descriptor which implements 6 expressions (i.e., Equivalent, Disjoint, Sub, Super, Instance, Definition).
        • HierarchicalClassDescriptor: an example of a descriptor which implements 2 expressions (i.e., Sub, Super).
        • InstanceClassDescriptor: an example of a descriptor which implements 1 expression (i.e., Instance).
      • dataPropertyDescriptor/ package contains the following Java-classes:
        • FullDataPropertyDescriptor: an example of a descriptor which implements 6 expressions (i.e., Equivalent, Disjoint, Sub, Super, Domain, Range).
        • HierarchicalDataPropertyDescriptor: an example of a descriptor which implements 2 expressions (i.e., Sub, Super).
      • individualDescriptor/ package contains the following Java-classes:
        • FullIndividualDescriptor: an example of a descriptor which implements 5 expressions (i.e., Equivalent, Disjoint, Type, ObjectLink, DataLink).
        • TypeIndividualDescriptor: an example of a descriptor which implements 1 expression (i.e., Type).
      • objectPropertyDescriptor/ package contains the following Java-classes:
        • FullObjectPropertyDescriptor: an example of a descriptor which implements 7 expressions (i.e., Equivalent, Disjoint, Sub, Super, Domain, Range, Inverse).
        • HierarchicalObjectPropertyDescriptor: an example of a descriptor which implements 2 expressions (i.e., Sub, Super).

JavaDoc

JavaDoc can be accessed by opening the file index.html in your browser. The file can be found in the package owloop/docs/.

Clone this wiki locally