RDF——如何根据 rdf:type 进行传递属性转换?

发布于 2024-12-17 23:27:54 字数 458 浏览 2 评论 0 原文

我正在尝试找到一种方法来根据类型推断/传播属性以防止名称冲突:

:AOrder :Store :AStore ;
        a :OrderType ;
        :user :AUser .

:AStore :name "Store Name";
        a :StoreType

:AUser :name "Some User";
       a :UserType

根据上面的三元组,我想推断其他几个三元组:

:AOrder :storeName "Store Name" .
:AOrder :userName "Some User" .

我该怎么做?仅供参考,我目前正在使用 Bigdata 和 Sesame。

一种方法是使用SPIN,但Bigdata + Sesame似乎没有;看起来耶拿是唯一具有可比性的地方。

I'm trying to find a way to infer/propogate a property based on types to prevent name collision:

:AOrder :Store :AStore ;
        a :OrderType ;
        :user :AUser .

:AStore :name "Store Name";
        a :StoreType

:AUser :name "Some User";
       a :UserType

Based on the triples above, I'd like to infer several other triples:

:AOrder :storeName "Store Name" .
:AOrder :userName "Some User" .

How can I do this? FYI, I'm currently using Bigdata and Sesame.

One way would be to use SPIN, but it doesn't seem like Bigdata + Sesame have it; it looks like Jena is the only thing out there with something comparable.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

抚你发端 2024-12-24 23:27:54

您可以使用 SPARQL 更新操作来表达这一点:

INSERT { 
  ?x :storeName ?store_name ; 
     :userName ?user_name . 
 }
 WHERE { 
  ?x a :OrderType;
     :Store [ :name ?store_name ] ;
     :user [ :name ?user_name ] .
 }

每当您的商店更新时执行此操作(如果您在本地工作,您可以使用 RepositoryListener 来拦截更改事件)并且将插入您想要的三元组。

或者,查看一些可用于 Sesame 的自定义推理工具。我不确定 Bigdata 支持自定义推理器,但您可以查看 这个自定义的基于规则的推理扩展(尽管它有点过时了)。或者看看 OWLIM,这是一个具有 OWL 推理功能的 Sesame 后端,也支持自定义规则。

You could express this using a SPARQL update operation:

INSERT { 
  ?x :storeName ?store_name ; 
     :userName ?user_name . 
 }
 WHERE { 
  ?x a :OrderType;
     :Store [ :name ?store_name ] ;
     :user [ :name ?user_name ] .
 }

Execute this operation whenever your store is updated (if you're working locally you can use a RepositoryListener to intercept change events) and the triples you want will be inserted.

Alternatively, look at some of the custom reasoning tools available for Sesame. I'm not sure Bigdata supports a custom reasoner, but you could have a look at this custom rule-based reasoner extension (although it's slightly out of date). Or take a look at OWLIM, which is a Sesame backend with OWL reasoning capabilities, which also supports custom rules.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文