【发布时间】:2014-01-05 02:55:30
【问题描述】:
我正在尝试使用 Protege 4.3 为商店创建本体。一切都很顺利,但我坚持了一些事情。
我有两个课程 - 产品和商店。目前他们有对象属性 hasProduct,它有域商店和范围产品。假设商店“Tempo Sport Shop”有产品“棕色拖鞋”。但是有一家名为“Sport Depot”的商店,产品相同,但价格不同。
我很好奇如何在不同的商店为该产品设置不同的价格?我希望那些棕色拖鞋在 Sport Depot 中的价格为 33.00 美元,而完全相同的产品在 Tempo Sport Shop 中的价格为 41.00 美元。
这是本体:
@prefix : <http://www.semanticweb.org/yuriy/ontologies/2014/0/untitled-ontology-23#> .
<http://www.semanticweb.org/yuriy/ontologies/2014/0/untitled-ontology-23> rdf:type owl:Ontology .
:hasBrand rdf:type owl:ObjectProperty ;
rdfs:range :Brands ;
rdfs:domain :Products .
:hasProduct rdf:type owl:ObjectProperty ;
rdfs:range :Products ;
rdfs:domain :Stores .
:Brands rdf:type owl:Class .
:Products rdf:type owl:Class .
:Stores rdf:type owl:Class .
:Adidas rdf:type :Brands ,
owl:NamedIndividual .
:Fluffy_Slippers rdf:type :Products ,
owl:NamedIndividual ;
:hasBrand :Nike .
:Nike rdf:type :Brands ,
owl:NamedIndividual .
:Sport_Depot rdf:type :Stores ,
owl:NamedIndividual ;
:hasProduct :Fluffy_Slippers .
:Tempo_Sport rdf:type :Stores ,
owl:NamedIndividual ;
:hasProduct :Fluffy_Slippers .
【问题讨论】:
-
您可以引入一个类Offer,将产品与商店和价格联系起来。
-
您能否说得更具体些。类似于 SQL 数据库中的关系表?你能举个简单的例子吗:)
-
@user3156345 ORMapper 的评论和迈克尔的回答为您指明了正确的方向。您关心的关系是 3 位关系:“A Store 以 Price 的价格出售 Product。”阅读Defining N-ary Relations on the Semantic Web 可能会对您有所帮助。主要思想是,您需要第三个对象以某种方式连接到所有三件事(即商店、产品和价格)。
标签: rdf semantic-web ontology