# equivalentClass class express syntax troubles

**URL:** <https://community.stardog.com/t/equivalentclass-class-express-syntax-troubles/4440>\
**Category:** Stardog Cloud\
**Created:** [June 24, 2023, 10:24pm UTC](https://community.stardog.com/t/equivalentclass-class-express-syntax-troubles/4440 "2023-06-24T22:24:47Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![AnOntologist](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.stardog.com/anontologist/32/1827_2.png) [@AnOntologist](https://community.stardog.com/u/AnOntologist)\
**Post date:** [June 24, 2023, 10:24pm UTC](https://community.stardog.com/t/equivalentclass-class-express-syntax-troubles/4440/1 "2023-06-24T22:24:47Z")

</div>

I have an equivalent class expression that works within Protege using the Pellet reasoner. When loading the same data into Stardog Studio the same inference is not made.

I'm currently thinking that it has to do with the "OR" syntax in the class expression.

 ![OR-syntax-change](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/d/d9233dc2d31cfbbb9a59e8ca329a2421154b7d34.png)  
 ![Competitor-Inferred-Protege](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/1/1bf1bfc16b3572b588e05d0d242821e3f41fd415.png)  
 ![No-Competitor-inference-Stardog-Studio](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/d/d1ea1f51aedfb0c663da1909370087a0c0fc5a40.png)

---

<div class="post-metadata">

**Author:** ![AnOntologist](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.stardog.com/anontologist/32/1827_2.png) [@AnOntologist](https://community.stardog.com/u/AnOntologist)\
**Post date:** [June 27, 2023, 11:30pm UTC](https://community.stardog.com/t/equivalentclass-class-express-syntax-troubles/4440/2 "2023-06-27T23:30:52Z")

</div>

Here is the representation of the equivalent class that works in the Pellet reasoner but not in the Stardog Cloud (Studio) reasoner:

```
<!-- http://www.intel.com/ns/ta-library#Competitor -->

<owl:Class rdf:about="http://www.intel.com/ns/ta-library#Competitor">
    <owl:equivalentClass>
        <owl:Class>
            <owl:intersectionOf rdf:parseType="Collection">
                <rdf:Description rdf:about="http://docs.oasis-open.org/cti/ns/stix#ThreatActor"/>
                <owl:Class>
                    <owl:unionOf rdf:parseType="Collection">
                        <owl:Restriction>
                            <owl:onProperty rdf:resource="http://docs.oasis-open.org/tac/ns/tac#categorizedBy"/>
                            <owl:hasValue rdf:resource="http://www.intel.com/ns/ta-library#BusinessAdvantageOutcome"/>
                        </owl:Restriction>
                        <owl:Restriction>
                            <owl:onProperty rdf:resource="http://docs.oasis-open.org/tac/ns/tac#categorizedBy"/>
                            <owl:hasValue rdf:resource="http://www.intel.com/ns/ta-library#TechnologyAdvantageOutcome"/>
                        </owl:Restriction>
                    </owl:unionOf>
                </owl:Class>
                <owl:Restriction>
                    <owl:onProperty rdf:resource="http://docs.oasis-open.org/tac/ns/tac#categorizedBy"/>
                    <owl:hasValue rdf:resource="http://www.intel.com/ns/ta-library#AdeptSkills"/>
                </owl:Restriction>
                <owl:Restriction>
                    <owl:onProperty rdf:resource="http://docs.oasis-open.org/tac/ns/tac#categorizedBy"/>
                    <owl:hasValue rdf:resource="http://www.intel.com/ns/ta-library#ClandestineVisibility"/>
                </owl:Restriction>
                <owl:Restriction>
                    <owl:onProperty rdf:resource="http://docs.oasis-open.org/tac/ns/tac#categorizedBy"/>
                    <owl:hasValue rdf:resource="http://www.intel.com/ns/ta-library#CopyObjective"/>
                </owl:Restriction>
                <owl:Restriction>
                    <owl:onProperty rdf:resource="http://docs.oasis-open.org/tac/ns/tac#categorizedBy"/>
                    <owl:hasValue rdf:resource="http://www.intel.com/ns/ta-library#ExternalAccess"/>
                </owl:Restriction>
                <owl:Restriction>
                    <owl:onProperty rdf:resource="http://docs.oasis-open.org/tac/ns/tac#categorizedBy"/>
                    <owl:hasValue rdf:resource="http://www.intel.com/ns/ta-library#MinorExtraLegalLimits"/>
                </owl:Restriction>
            </owl:intersectionOf>
        </owl:Class>
    </owl:equivalentClass>
    <rdfs:subClassOf rdf:resource="http://www.intel.com/ns/ta-library#HostileThreatActor"/>
</owl:Class>

```

Can anyone see something that I'm not seeing?
