Rdf 定义一个OWL类以反映方法的参数列表数据类型';签名

Rdf 定义一个OWL类以反映方法的参数列表数据类型';签名,rdf,owl,ontology,rdfs,Rdf,Owl,Ontology,Rdfs,如何定义RDF列表的子类(是的,它需要是RDF列表),以反映对方法签名的参数列表的数据类型的限制 例如 给定方法签名: void set(uint, string); 其中ABox语句如下所示: # syntax: Turtle ("42"^^xsd:unsignedInt "Doug") a :SetCallArgumentList . 我的尝试 我在这里做的事有没有危险、冗余或疏忽?欢迎任何评论。假设我们有一个类C,它的方法是f(p1:p1,p2:p2):R意思是f是一个方法,它使用p

如何定义RDF列表的子类(是的,它需要是RDF列表),以反映对方法签名的参数列表的数据类型的限制

例如 给定方法签名:

void set(uint, string);
其中ABox语句如下所示:

# syntax: Turtle

("42"^^xsd:unsignedInt "Doug") a :SetCallArgumentList .
我的尝试
我在这里做的事有没有危险、冗余或疏忽?欢迎任何评论。

假设我们有一个类
C
,它的方法是
f(p1:p1,p2:p2):R
意思是
f
是一个方法,它使用
p1
类型的参数
p1
p2
类型的
p2
返回
R
类型的东西。类型
P1
P2
R
可以是数据类型或类

其基本思想是引入一个类,该类将使用具体化的签名来表示您的方法。所以我们引入了一个类,比如说
Method\u f
,它的属性是
r\u f
r\u inv
r\u p1
r\u p2
r\u r
r\u f
r\u f
是一个对象属性,其逆属性为
r\u f\u inv
r\u p1
r\u p2
r\u r
将是对象属性或数据属性,具体取决于
p1
p2
r
是类还是数据类型。即,如果
P1
是类
r\u P1
将是对象属性,如果它是数据类型,
r\u P1
将是数据属性。在整个过程中,我将使用对象属性

(1) 类
方法\u f
必须表示一个元组(在本例中由4个组件组成),为此我们添加了以下公理:

Class: Method_f
  SubClassOf:
    r_f_inv exactly 1 Thing and
    r_p1 exactly 1 Thing and
    r_p2 exactly 1 Thing and
    r_R exactly 1 Thing
(2) 为确保类
C
的给定实例的方法(参数
p1
p2
的给定值)不会返回不同的结果,我们为类
方法添加了以下键:

  Haskey:
    r_f_inv, r_p1, r_p2
对于不返回任何内容的方法,只需省略键

(3) 为确保参数和返回值具有正确的类型,添加了以下公理:

ObjectProperty: r_p1
  Domain: Method_f
  Range: P1
ObjectProperty: r_p2
  Domain: Method_f
  Range: P2
ObjectProperty: r_R
  Domain: Method_f
  Range: R
(4) 为了确保类
C
的实例可以调用方法
f
,我们添加了以下公理:

Class: C
  SubClassOf:
    r_f some Method_f
要表示调用的方法
f
,我们必须:

(1) 有
C
P1
P2
R
的实例,比如
C
P1
P2
R
。 (2) 有一个
方法\u f
的实例:

Individual: method_f_call_1
  Types: Method_f
  Facts: 
    r_f_inv c,
    r_p1 p1,
    r_p2 p2,
    r_R r
(3) 调用它

Individual: c
  Types: C
  Facts: r_f method_f_call_1

有关这方面的详细说明,请参阅手册第5章。

我将很快回答这个问题。同时,你可以看看我的第5章,它解释了关于将方法转换为OWL的所有细节。出于兴趣的考虑-你想做这件事的目的是什么?有趣的工作,这种方法看起来相当健壮。但是,参数顺序保留在哪里?例如,我希望在某个地方看到一个链表。顺序是不保留的。这里的目的是实现模型的逻辑验证和确认,以及发现建模启发式冲突。在这些情况下,参数顺序并不重要。参数顺序对于实现细节非常重要,使用OWL无法有效地对其建模。您希望在OWL中对方法建模的目的是什么?谢谢讨论。我意识到我确实有两个不同的需求,一个是验证,另一个是在RDF中编码函数调用。我认为像这样的东西对后者就足够了。
Individual: c
  Types: C
  Facts: r_f method_f_call_1