DearCursor,

I tried to implement a multiple superclass construction, as follows:

    Degradation_Ceremony ⊑ Sociological_Processes_of_Socialization_and_Development ⊑ . . .
    Degradation_Ceremony ⊑ Sociological_Processes_of_Deviance_and_Control ⊑ . . .
    Degradation_Ceremony ⊑ (bfo:BFO_0000015 - process) ⊑ . . .

    <SubClassOf>
        <Class IRI="#Degradation_Ceremony"/>
        <Class IRI="#Sociological_Processes_of_Socialization_and_Development"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Degradation_Ceremony"/>
        <Class IRI="#Sociological_Processes_of_Deviance_and_Control"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Degradation_Ceremony"/>
        <Class abbreviatedIRI="bfo:BFO_0000015"/>
    </SubClassOf>

The indented class structure and the BFO mappings:
      . . .
      Social_Interaction                                          BFO_0000015 process
      Influence                                                   BFO_0000015 process
  Sociological_Processes_of_Socialization_and_Development         BFO_0000015 process
      Adoption                                                    BFO_0000015 process
      Ageing                                                      BFO_0000015 process
      Anticipatory_Socialization                                  BFO_0000015 process
      Education                                                   BFO_0000015 process
      Degradation_Ceremony                                        BFO_0000015 process
      Political_Socialization                                     BFO_0000015 process
      Primary_Socialization                                       BFO_0000015 process
  Sociological_Processes_of_Deviance_and_Control                  BFO_0000015 process
      Capital_Punishment                                          BFO_0000015 process
      Collective_Behaviour                                        BFO_0000015 process
      Corporate_Crime                                             BFO_0000015 process
      Crime                                                       BFO_0000015 process
      Cybercrime                                                  BFO_0000015 process
      Degradation_Ceremony                                        BFO_0000015 process
      Deviance                                                    BFO_0000015 process
      Discrimination                                              BFO_0000015 process
      Hate_Crime                                                  BFO_0000015 process
  Sociological_Research_and_Inquiry_Processes                     BFO_0000015 process
      Census                                                      BFO_0000015 process
      Experiment                                                  BFO_0000015 process
      . . .

Unfortunately, the reasoner considers this code construction invalid 
(the class name Degradation_Ceremony will be a subclass of owl:Nothing).

I use Protégé 5.6.3 and FaCT++ 1.6.5 reasoner. 

The class (Degradation_Ceremony) that appears here does not 
appear anywhere else in the ontology.

If I may ask, please provide your encoding suggestions as OWL/XML 
encoding: as you can see, the entire ontology uses this encoding... 

What should I do ? Thank you for your help in advance, as well...


Dear Cursor,

Thank you so much, but the problem is not so simple. You are right... however, please negligate
the file OWLintendedClassName.txt, because its content no more actual.

I told you the relevant (as I meant :) environment of the questionable
class (Degradation_Ceremony).

Should I provide the whole ontology class structure ? :)
---------

Dear Cursor,

Thank you again... I've actualised the file OWLintendedClassNames.txt.
As it can be seen, not only the content, but also the structure have been modified:
the BFO class-mappings are the second items in a line...

Thank you so much for your advice...

Dear Cursor,

Thanks a lot. Your solution would be absolutely correct, however, there are
two questions open:

1) how can I express (in OWL/XML encoding format) these statements:

   Degradation_Ceremony ⊑ Sociological_Processes_of_Socialization_and_Development ⊑ . . .
   Degradation_Ceremony ⊑ Sociological_Processes_of_Deviance_and_Control ⊑ . . .
   Degradation_Ceremony ⊑ (bfo:BFO_0000015 - process) ⊑ . . .

2) am I not able to define superordinate classes in OWL ? 
   But I am quite sure, that it can be done

Btw. your argumentation is perfect, understand why the current structure is invalid.


Dear Cursor,

Your answer is the perfect solution... thank you :)

I haven't mentioned it yet (because it's not relevant) but I have a not-trivial (=quite complex)
development pipeline, that generates the .owl file for me:

1) the inputs are text based files (from the domain experts)

2) the 1st component is a comprehensive cross-consistency check (covering typing errors, using undefined classes, etc)

3) the 2nd component generates .sql files from them and uploads the results into a DB

4) the 3rd component generates the .owl file 

5) and the last one restart the Protégé with the generated .owl file)

It follows from all of this that every change (especially the structural ones) 
does have a smaller or larger impact.

I now consider Option B (Using ObjectIntersectionOf) to be both exact and has the smallest impact of the change mentioned...

Of course, I would be very happy to use your help if I encounter an unexpected problem in the meantime...

Thank you very much once again, dear Cursor :)


Dear Cursor,

[2605-2616]

[6485-6488]




Dear Cursor,

As I understood your enlightenment:

a) I had 'Degradation_Ceremony" appearing as a subclass of both:
'Sociological_Processes_of_Socialization_and_Development',
'Sociological_Processes_of_Deviance_and_Control'.

b) Since these are sibling classes under 'Social_Processes_General', 
the reasoner treated them as disjoint (mutually exclusive), 
making the intersection impossible - hence owl:Nothing.
Of course (deliberately, explicitly), I defined these as disjunct classes.

In fact, there could be (theoretically) two solutions: 

1)  Instead of three subclass definition

    <SubClassOf>
        <Class IRI="#Degradation_Ceremony"/>
        <Class IRI="#Sociological_Processes_of_Socialization_and_Development"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Degradation_Ceremony"/>
        <Class IRI="#Sociological_Processes_of_Deviance_and_Control"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Degradation_Ceremony"/>
        <Class abbreviatedIRI="bfo:BFO_0000015"/>
    </SubClassOf>

    Defining 

    <SubClassOf>
        <Class IRI="#Degradation_Ceremony"/>
        <ObjectIntersectionOf>
            <Class IRI="#Sociological_Processes_of_Socialization_and_Development"/>
            <Class IRI="#Sociological_Processes_of_Deviance_and_Control"/>
            <Class abbreviatedIRI="bfo:BFO_0000015"/>
        </ObjectIntersectionOf>
    </SubClassOf>

    The 'ObjectIntersectionOf' method does not work (the reasoner still considers 
    the definition of 'Degradation_Ceremony' to be incorrect - did I implement this 
    method you suggested correctly?).

2)  Removing one of the "legs" of multiple superclasses from discointClasses:

    <DisjointClasses>
        <Class IRI="#Sociological_Processes_of_Social_Change"/>
        <Class IRI="#Sociological_Processes_of_Interaction_and_Communication"/>
<!--
        <Class IRI="#Sociological_Processes_of_Socialization_and_Development"/>
-->
        <Class IRI="#Sociological_Processes_of_Deviance_and_Control"/>
        <Class IRI="#Sociological_Research_and_Inquiry_Processes"/>
        <Class IRI="#Sociological_Economic_Activity_Processes"/>
        <Class IRI="#Sociological_Demographic_Processes"/>
        <Class IRI="#Sociological_Environmental_Processes"/>
        <Class IRI="#Sociological_Political_Processes"/>
        <Class IRI="#Sociological_Exceptional_Phenomena_Processes"/>
    </DisjointClasses>

By removing the disjointedness of the two superclasses, the reasoner no longer reported an error.

The new problem is just around the corner:

It could not have been my goal to prevent the reasoner from finding errors in the ontology. Removing classes 25-30 from their siblings would have far-reaching consequences when object properties become the subject.

I would welcome any suggestions you may have for improving this situation, dear Cursor...

Btw. I uploaded the whole .owl file (resultOntology.owl)



Dear Cursor,
============================



Dear Gemini,

Thank you very much for your work.
Also for the newly defined intermediate
class annotation.

I did upload the file: BFO_0000017_RealizableEntity_V03.txt
I encountered 0 problems during processing.

The file has been integrated, as the screenshot (4.png) shows us...

Thank you, and I look forward to your
next suggestion...




If I may ask, if you could send me a modification to the content
of the Sociological_Research_Methods_And_Concepts class, please
provide it in the form of a complete list: I can only perform the
various modifications (remove, insert, merge, etc.) manually.

This involves a considerable risk of introducing errors :)





Thank you, and I look forward to your
next suggestion...

===============================================

Sociological_Academic_Disciplines_And_Fields = This sub-category groups established academic disciplines, specialized subfields, and interdisciplinary areas of study within or related to sociology. These fields represent organized bodies of knowledge, theoretical perspectives, and research practices dedicated to the systematic investigation of human society, social behavior, and social phenomena.

Aging_Studies
Demography
Deviance_And_Social_Control
Disability_Studies
Environmental_Sociology
Gerontology
Government_And_Politics
Healthcare
Human_Ecology
Identity_And_Self
Media_And_Communication
Microsociology
Mortality
Natural_Science
Social_Epidemiology
Social_Movements_And_Collective_Behaviour
Social_Science
Sociology_Of_Deviance
ociology_Of_The_Body
Sociology  (as the overarching discipline itself)
Theories_Of_Deviance
Urban_Ecology



