Rdf 我解释过这个吗;面向对象开发人员语义web入门”;正确地
声明“因此,将ack(原文如此)指向上述示例,如果某事物有价格,那么它可以作为产品实例处理,即使它参与了其他声明(或三重声明)” 进行单词搜索以查找引用Rdf 我解释过这个吗;面向对象开发人员语义web入门”;正确地,rdf,semantic-web,rdfs,Rdf,Semantic Web,Rdfs,声明“因此,将ack(原文如此)指向上述示例,如果某事物有价格,那么它可以作为产品实例处理,即使它参与了其他声明(或三重声明)” 进行单词搜索以查找引用 基本上,他们是在说房产“hasPrice”的领域是“产品”。这意味着所有产品都可以有价格(到目前为止是有意义的),但也意味着任何具有“hasPrice”属性的产品都可以被视为“产品”。这对我来说似乎有点松散。用面向对象的术语来说,它们当然并不意味着任何具有“hasPrice”属性的东西都实现了“产品”接口,是吗?那太疯狂了 如果您声明hasPr
基本上,他们是在说房产“hasPrice”的领域是“产品”。这意味着所有产品都可以有价格(到目前为止是有意义的),但也意味着任何具有“hasPrice”属性的产品都可以被视为“产品”。这对我来说似乎有点松散。用面向对象的术语来说,它们当然并不意味着任何具有“hasPrice”属性的东西都实现了“产品”接口,是吗?那太疯狂了 如果您声明
hasPrice
的域是Product
,RDF和OWL都会推断任何具有hasPrice
属性的内容都属于Product
类型。所以在这方面你的理解是正确的。请注意,如果定义的hasPrice
没有域,推理器将不会进行此推断
在本体中,如果您有一个服务
,它也有一个hasPrice
属性,它将推断它是一个产品
。如果您声明服务
与产品
是不相交的,则本体中会出现不一致
一种解决方法是在本体中引入一个类来表示域,比如说HasPriceDomain
,它是hasPrice
属性的所有域的联合。这将导致任何具有hasPrice
属性的内容被推断为HasPriceDomain
类型
DataProperty: hasPrice
Domain: HasPriceDomain
Range: xsd:double
Class: HasPriceDomain
EquivalentTo: Product or Service
Class: Product
SubClassOf: hasPrice some xsd:double
DisjointWith: Service
Class: Service
SubClassOf: hasPrice some xsd:double
DisjointWith: Product
从OOP的角度来看,最好将OOP类视为RDF/OWL类,将类的OOP实例视为RDF/OWL个体
在OOP中,接口通常指定行为(即方法),这不能简单地转换为RDF/OWL。从RDF/OWL开始,最好只关注类
有关将OOP转换为OWL的详细信息,请参阅。有关方法转换的详细信息,请参阅的第5章。如果您声明
hasPrice
的域是Product
,RDF和OWL都会推断任何具有hasPrice
属性的对象都属于Product
类型。所以在这方面你的理解是正确的。请注意,如果定义的hasPrice
没有域,推理器将不会进行此推断
在本体中,如果您有一个服务
,它也有一个hasPrice
属性,它将推断它是一个产品
。如果您声明服务
与产品
是不相交的,则本体中会出现不一致
一种解决方法是在本体中引入一个类来表示域,比如说HasPriceDomain
,它是hasPrice
属性的所有域的联合。这将导致任何具有hasPrice
属性的内容被推断为HasPriceDomain
类型
DataProperty: hasPrice
Domain: HasPriceDomain
Range: xsd:double
Class: HasPriceDomain
EquivalentTo: Product or Service
Class: Product
SubClassOf: hasPrice some xsd:double
DisjointWith: Service
Class: Service
SubClassOf: hasPrice some xsd:double
DisjointWith: Product
从OOP的角度来看,最好将OOP类视为RDF/OWL类,将类的OOP实例视为RDF/OWL个体
在OOP中,接口通常指定行为(即方法),这不能简单地转换为RDF/OWL。从RDF/OWL开始,最好只关注类
有关将OOP转换为OWL的详细信息,请参阅。有关方法翻译的详细信息,请参见。的第5章。因此,让我们想出一些我们自然不会认为是产品,但同样通用的东西(在我写这篇文章时,我发现我很难想出真正的东西,所以…)让我们称之为abc。abc存在,有价格,并且不是自然地被认为是产品,这是否表明我们的对象模型(本体论?)不一致,需要比产品或abc更基本的东西来表示有价格的东西?不,不一定。正如我所说,接口不容易转化为本体论。你能详细说明一下“不必要”吗?你能想象一种类似于上述情况的情况吗?在这种情况下,“abc”不被视为“产品”,但有一个价格,但不知何故,让一个推理者推断属于“abc”类的东西也属于“产品”类是可以接受的?@ChechyLevas你的想法是错误的。事实上,你已经给了它一个价格,这意味着根据定义,它是一种产品。如果“abc”不是一种产品,你就不应该给它定价,或者,如果事实证明你的宇宙中存在有价格但不是产品的东西,你就不应该将你的财产领域设置为产品。@JeenBroekstra这不是我在第一次评论中建议的吗?那么让我们想出其他的东西,我们不会自然而然地认为它是一种产品,但它同样是通用的(当我写这篇文章时,我发现我很难想出真正的东西,所以…)让我们称之为abc。abc存在,有价格,并且不是自然地被认为是产品,这是否表明我们的对象模型(本体论?)不一致,需要比产品或abc更基本的东西来表示有价格的东西?不,不一定。正如我所说,接口不容易转化为本体论。你能详细说明一下“不必要”吗?你能想象一种类似于上述情况的情况吗?在这种情况下,“abc”不被视为“产品”,但有一个价格,但不知何故,让一个推理者推断属于“abc”类的东西也属于“产品”类是可以接受的?@ChechyLevas你的想法是错误的。事实上,你已经给了它一个价格,这意味着根据定义,它是一种产品。如果“abc”不是一种产品,你就不应该给它定价,或者,如果事实证明有这样的产品