【问题标题】:Some Jena vocabs use 'ResourceFactory.createProperty()' while others use 'ModelFactory.createDefaultModel().createProperty()'一些 Jena 词汇使用“ResourceFactory.createProperty()”,而其他词汇使用“ModelFactory.createDefaultModel().createProperty()”
【发布时间】:2013-07-17 13:38:04
【问题描述】:

我是 Jena 的新手,但是当我查看使用 Jena 源定义的词汇表时(即在 directory: jena-2.10.0-Source\jena-core\src\main\java\com\hp\hpl\jena\vocabulary 中),我看到一些词汇表使用 'ResourceFactory.createProperty()' 创建属性和资源(例如 OWL2.java、RDF .java, RDFS.java),而同一目录中的其他人使用'ModelFactory.createDefaultModel().createProperty()' (例如 DC_11.java, VCARD.java, DCTerms.java)。

我了解 ResourceFactory 用于创建资源和属性而不参考 'model',但我只是想了解为什么其中一些词汇选择创建和使用 'model' 实例而其他词汇不选择。

这只是个人风格,还是通常推荐一种方法而不是另一种(也许一种风格是“旧方法”,据我了解 Jena 已经存在很长时间了)?

我想在我的代码中同时使用 RDFS 和 DC_11 词汇,并且显然定义了我自己的特定于应用程序的资源和属性,所以我只是想了解我应该为自己的东西采用哪种方法。

【问题讨论】:

    标签: jena vocabulary


    【解决方案1】:

    使用这两种风格只是历史偶然。我认为这些天来,我可能会建议使用ResourceFactory 方法,仅仅是因为它避免了分配模型的(小)开销,并且模型没有给您带来真正的优势。在某个时候,我们可能会返回并进行一些重构,以便在 Jena 代码库中只使用一种方法。

    【讨论】:

    • 酷 - 谢谢伊恩,这正是我想要的!我猜原因可能是历史原因,无论如何我自己都倾向于使用“ResourceFactory”方法,所以感谢一百万花时间为我验证:)
    • 如果您觉得您的问题得到了解答,您可以通过勾选您首选答案旁边的复选标记,通知未来的 SO 读者对该事实进行相同的询问。
    • 是的,我认识 Ian,但我的声誉只有 '6'(!),你需要 15 才能投票 - 抱歉!
    • 不,你误会了。您可以通过勾选问题旁边的复选标记来接受答案,使其变为绿色。这与投票不同,它也会增加您的声誉!
    • @PatMcBennett 你应该accept this answer,现在你已经有了足够的声誉,你也可以投票。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多