【问题标题】:Ontology linking classes for online store在线商店的本体链接类
【发布时间】: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 StorePrice 的价格出售 Product。”阅读Defining N-ary Relations on the Semantic Web 可能会对您有所帮助。主要思想是,您需要第三个对象以某种方式连接到所有三件事(即商店、产品和价格)。

标签: rdf semantic-web ontology


【解决方案1】:

我会这样做:

:Sport_Depot :sells [ :product :Fluffy_Slippers; 
                      :price "33.00"; 
                      :price_unit "USD" ].

【讨论】:

  • 这是注解吧?在您的示例中,从不同商店获取所有价格的查询是什么样的? :)
  • 选择不同的 ?store ?price where { ?store :sells ?item 。 ?item :price ?price }
  • 这不是注释。这是建模 n 元关系的一种方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
相关资源
最近更新 更多