# Using owl:sameAs in Stardog Custom Rule

**URL:** <https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675>\
**Category:** Support\
**Created:** [April 14, 2022, 2:45pm UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675 "2022-04-14T14:45:15Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![oli666](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.stardog.com/oli666/32/1019_2.png) [@oli666](https://community.stardog.com/u/oli666)\
**Post date:** [April 14, 2022, 2:45pm UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/1 "2022-04-14T14:45:16Z")

</div>

Hi there,

I am trying to use owl:sameAs in the THEN part of a custom Stardog rule. So far, with no success:

```auto
PREFIX rule: <tag:stardog:api:rule:>

INSERT DATA {
    :C1 a :Customer; :email "test@test.com"; :id 1 .
    :U3 a :User; :email "test@test.com"; :income 1000 .
    :D4 a :User; :email "nope@test.de"; :income 34000 .
    
    
    [] a rule:SPARQLRule;
   rule:content """
      IF {
      	  
          ?x a :Customer ; :email ?email_customer .
          ?y a :User; :email ?email_user .
          FILTER(?email_customer = ?email_user)          
      }
      THEN {
          ?x owl:sameAs ?y .
      }
   """.

    }

```

The following rule does work. Am I allowed to use owl:sameAs? It might be me, but I could not find it out reading [User-defined Rule Reasoning | Stardog Documentation Latest](https://docs.stardog.com/inference-engine/user-defined-rules#rule-limitations--gotchas)

```auto
PREFIX rule: <tag:stardog:api:rule:>

INSERT DATA {
    :C1 a :Customer; :email "test@test.com"; :id 1 .
    :U3 a :User; :email "test@test.com"; :income 1000 .
    :D4 a :User; :email "nope@test.de"; :income 34000 .
    
    
    [] a rule:SPARQLRule;
   rule:content """
      IF {
      	  
          ?x a :Customer ; :email ?email_customer .
          ?y a :User; :email ?email_user .
          FILTER(?email_customer = ?email_user)          
      }
      THEN {
          ?y a :KnownCustomer .
      }
   """.

    }

```

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [April 23, 2022, 2:37am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/2 "2022-04-23T02:37:48Z")

</div>



---

<div class="post-metadata">

**Author:** ![oli666](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.stardog.com/oli666/32/1019_2.png) [@oli666](https://community.stardog.com/u/oli666)\
**Post date:** [April 25, 2022, 3:01pm UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/3 "2022-04-25T15:01:07Z")

</div>

I have stumbled upon on older post regarding this issue stating:

> Stardog currently does not support rules in sameAs reasoning. Only OWL axioms (FunctionaProperty, InversefunctionalProperty and HasKey) and explicit sameAs triples are used. We have a ticket to add this feature but we don’t have a specific deadline at this point.

[Query Available SWRL Rules + Insert new ones - Support / Feature Request - Stardog Community](https://community.stardog.com/t/query-available-swrl-rules-insert-new-ones/651/16)

Is this still a limitation or is there another issue in the original code posted above?

---

<div class="post-metadata">

**Author:** ![oli666](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.stardog.com/oli666/32/1019_2.png) [@oli666](https://community.stardog.com/u/oli666)\
**Post date:** [April 26, 2022, 9:55am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/4 "2022-04-26T09:55:25Z")

</div>

Yet another update ... The logic does work using the following SWRL rule within Protege/Pellet:

```auto
Customer(?x) ^ User(?y) ^ email(?x, ?m) ^ email(?y, ?m) -> sameAs(?x, ?y)

```

This rule is exported as

```auto
#################################################################
# Rules
#################################################################

:x rdf:type swrl:Variable .

:y rdf:type swrl:Variable .

:m rdf:type swrl:Variable .

[ swrla:isRuleEnabled "true"^^xsd:boolean ;
   rdfs:comment ""^^xsd:string ;
   rdfs:label "S1"^^xsd:string ;
   rdf:type swrl:Imp ;
   swrl:body [ rdf:type swrl:AtomList ;
               rdf:first [ rdf:type swrl:ClassAtom ;
                           swrl:classPredicate :Customer ;
                           swrl:argument1 :x
                         ] ;
               rdf:rest [ rdf:type swrl:AtomList ;
                          rdf:first [ rdf:type swrl:ClassAtom ;
                                      swrl:classPredicate :User ;
                                      swrl:argument1 :y
                                    ] ;
                          rdf:rest [ rdf:type swrl:AtomList ;
                                     rdf:first [ rdf:type swrl:DatavaluedPropertyAtom ;
                                                 swrl:propertyPredicate :email ;
                                                 swrl:argument1 :x ;
                                                 swrl:argument2 :m
                                               ] ;
                                     rdf:rest [ rdf:type swrl:AtomList ;
                                                rdf:first [ rdf:type swrl:DatavaluedPropertyAtom ;
                                                            swrl:propertyPredicate :email ;
                                                            swrl:argument1 :y ;
                                                            swrl:argument2 :m
                                                          ] ;
                                                rdf:rest rdf:nil
                                              ]
                                   ]
                        ]
             ] ;
   swrl:head [ rdf:type swrl:AtomList ;
               rdf:first [ rdf:type swrl:SameIndividualAtom ;
                           swrl:argument1 :x ;
                           swrl:argument2 :y
                         ] ;
               rdf:rest rdf:nil
             ]
 ] .

```

However, trying to use this imported SWRL rule (either via a plain data import or by adding it as a schema in the model tab) does not seem to have any effect.

Any thoughts, anyone?

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [May 5, 2022, 3:40pm UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/5 "2022-05-05T15:40:46Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [May 12, 2022, 10:56am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/6 "2022-05-12T10:56:48Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [May 17, 2022, 9:25pm UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/7 "2022-05-17T21:25:45Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [May 24, 2022, 7:57am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/8 "2022-05-24T07:57:20Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [June 1, 2022, 2:55am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/9 "2022-06-01T02:55:57Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [June 10, 2022, 10:42pm UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/10 "2022-06-10T22:42:06Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [June 21, 2022, 10:11am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/11 "2022-06-21T10:11:48Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [July 2, 2022, 6:07am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/12 "2022-07-02T06:07:16Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [July 13, 2022, 6:19pm UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/13 "2022-07-13T18:19:10Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [July 25, 2022, 6:26am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/14 "2022-07-25T06:26:16Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [August 7, 2022, 11:56am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/15 "2022-08-07T11:56:44Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [August 21, 2022, 7:41am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/16 "2022-08-21T07:41:59Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [September 4, 2022, 6:13am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/17 "2022-09-04T06:13:41Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [September 18, 2022, 9:37am UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/18 "2022-09-18T09:37:45Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [October 2, 2022, 2:21pm UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/19 "2022-10-02T14:21:37Z")

</div>



---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [October 16, 2022, 7:02pm UTC](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675/20 "2022-10-16T19:02:07Z")

</div>



[Next page](https://community.stardog.com/t/using-owl-sameas-in-stardog-custom-rule/3675.md?page=2)
