【问题标题】:How to describe classes and properties using RDFS in Java如何在 Java 中使用 RDFS 描述类和属性
【发布时间】:2014-02-09 19:05:18
【问题描述】:

我对 Java Sesame 还是很陌生。我正在关注本教程:http://openrdf.callimachus.net/sesame/2.7/docs/users.docbook?view。我知道如何创建语句并将它们添加到 Sesame 存储库中。目前,我正在尝试为要添加的语句描述类和属性。例如,我有以下:

:Book rdf:type rdfs:Class .
:bookTitle rdf:type rdf:Property .
:bookTitle rdfs:domain :Book .
:bookTitle rdfs:range rdfs:Literal .
:MyBook rdf:type :Book .
:MyBook :bookTitle "Open RDF" .

如图所示,Book 被定义为Class。 bookTitle 定义为 Property。我的问题是:如何使用org.openrdf.model.vocabulary.RDFS 在Java Openrdf 中执行此操作。为了澄清这一点,这是另一个例子:

con.add(alice, RDF.TYPE, person);

alice 是一种人。如何使用org.openrdf.model.vocabulary.RDFS 将person 定义为一个类。非常感谢您的帮助。

【问题讨论】:

    标签: java sesame openrdf


    【解决方案1】:

    您的操作方式与将alice 描述为person 完全相同。像这样:

     con.add(person, RDF.TYPE, RDFS.CLASS);
    

    对于您要添加的其他内容也是如此(假设您已经为 bookTitle 创建了一个 URI):

    con.add(bookTitle, RDF.TYPE, RDF.PROPERTY);
    con.add(bookTitle, RDFS.DOMAIN, book);
    

    等等

    我应该指出,虽然以这种方式创建模式或本体当然是可能的,但创建一个包含本体的文件可能更容易(例如,在 Turtle 或 N-Triples 语法中),然后简单将该文件上传到您的芝麻存储库。

    【讨论】:

    • 非常感谢您的帮助。如果我错了,请纠正我。我正在尝试做模式或本体并基于它创建我的陈述。那正确吗?还有一件事,请。您是否建议我在文件中创建一个本体并在 Sesame 中上传该文件,然后像 alice 示例一样创建语句?由于我不知道如何以这种方式进行操作,因此我将按照您帮助我的方式进行操作。你觉得可以吗?
    • 如果您要求的是,您不需要需要首先创建架构 - 将 alice 定义为 person 完全可以,无需先定义它person 是一个类。至于你应该在文件中创建什么与直接通过 API 创建什么,这取决于你的用例,但一般来说,相对稳定的数据(=你的本体)更容易从文件中加载,而变化很大的数据是更容易通过 API 直接创建/操作。
    • 请再问一个问题。我现在正在考虑创建一个文件并为它做本体。在那个文件中,包括语句在内的所有内容都应该在那里吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多