Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dns 在我自己的owl本体中重用属性,但更改域/范围_Dns_Range_Owl_Ontology - Fatal编程技术网

Dns 在我自己的owl本体中重用属性,但更改域/范围

Dns 在我自己的owl本体中重用属性,但更改域/范围,dns,range,owl,ontology,Dns,Range,Owl,Ontology,我目前正在创建自己的本体,它重用了其他本体的术语 这就引出了一个简单的问题:我想知道,是否允许(或者:最佳实践)重用其他词汇表的现有术语(例如ObjectProperties),但同时更改它们的域和范围 换句话说:通过在我自己的本体中重新定义/重新定义外部对象属性,我能够重用它们。同时,我正在考虑将其域/范围更改为比原始域/范围更具体的类。更准确地说,我会将域/范围更改为原始域/范围的子类 我想这样做的主要原因是我想尽可能地重用现有的术语。此外,我想缩小一些术语的定义范围。例如,假设(在外部本体

我目前正在创建自己的本体,它重用了其他本体的术语

这就引出了一个简单的问题:我想知道,是否允许(或者:最佳实践)重用其他词汇表的现有术语(例如ObjectProperties),但同时更改它们的域和范围

换句话说:通过在我自己的本体中重新定义/重新定义外部对象属性,我能够重用它们。同时,我正在考虑将其域/范围更改为比原始域/范围更具体的类。更准确地说,我会将域/范围更改为原始域/范围的子类


我想这样做的主要原因是我想尽可能地重用现有的术语。此外,我想缩小一些术语的定义范围。例如,假设(在外部本体中)存在属性
ex:hastinmestamp
。原始词汇表中此属性的范围是一个非常通用的类。现在,在我自己的词汇表中,我想重用这个属性,同时我想将它的范围定义为时间本体中的类
time:TemporalEntity
。我可以通过更改本体中现有
ex:hastinmestamp
属性的范围定义来实现这一点,还是应该以不同的方式实现?e、 g.通过定义
ex:hastinestamp
的子属性,例如
my:hastinestamp
,然后提供更精确的范围定义?

在OWL中声明属性的域和范围不会“限制它可以应用于什么”,而是告诉您有关属性的主题和对象的一些信息。例如,如果您的类层次结构是Human&sqsubsetq;哺乳动物,那么如果你有一个属性hasAgentor和域人类,那么每当你有一个对象属性断言hasAgentor(x,y),你就可以推断人类(x)。但是自从人类&sq;哺乳动物,这意味着哺乳动物(x)。所以,每当你看到有祖先(x,y),你就可以推断出 哺乳动物(x)。这意味着哺乳动物也是祖先的一个域。属性具有多个域和范围

这意味着,如果您在本体中“重新声明”了一个ObjectProperty,那么实际上您并不是在“重新声明”它,而是在声明关于它的其他内容。然而,这通常不是你应该做的事情。通常,导入本体更为合理,因为本体包含您感兴趣的属性,并声明其子属性。由于域和范围的工作方式,您自然会继承超级属性的域和范围,并且可以根据需要声明其他域和范围

例如,您可以声明一个关于堆栈溢出的本体,并声明一个属性answeredUser,这样answeredUser(x,y)x是一个回答用户y问题的用户时。您可以导入FOAF词汇表,并声明answeredUser&sqsubsetq;foaf:knows,并添加额外的域和范围StackOverflowUser