【问题标题】:How can I load SPARQL/SPIN constraints and constructors created in TopBraid Composer for use in Sesame within a SPIN-capable repository?如何在支持 SPIN 的存储库中加载在 TopBraid Composer 中创建的 SPARQL/SPIN 约束和构造函数以在 Sesame 中使用?
【发布时间】:2016-06-23 16:47:41
【问题描述】:

我已经使用 TopBraid Composer Maestro 版本 5.1.1 在 OWL/RDF 本体中成功生成和测试了 SPIN 约束(使用 SPARQL ASK 查询)。我现在想在 Sesame 中测试这些 SPIN 约束。如何将我在 TopBraid COMposer Maestro Edition 中编写的 OWL 本体中包含的 SPIN 约束、类定义、属性定义和测试个体放入 Sesame?

我正在使用 Sesame OpenRDF 工作台:

System Information
Application Information
Application Name    OpenRDF Workbench
Version 4.1.2
Runtime Information
Operating System    Windows 8.1 6.3 (amd64)
Java Runtime    Oracle Corporation Java HotSpot(TM) 64-Bit Server VM (1.8.0_91)
Process User    Greg
Memory
Used    357 MB
Maximum 3463 MB

我的约束、类、属性和示例个体包含在 TopBraid Composer Maestro Edition 下的一个 RDF 文件中。

我尝试使用 Sesame Open RDF 工作台Modify/Add 命令拉入由 TopBraid Maestro Edition 生成的 RDF 文件,但我收到一个似乎与空白节点相关的错误:

javax.servlet.ServletException: org.openrdf.repository.RepositoryException: org.openrdf.repository.RepositoryException: org.openrdf.sail.SailException: org.openrdf.query.QueryEvaluationException: Multiple statements for pattern: _:node1alqlr2eix590 http://spinrdf.org/sp#where null

也许我没有正确地从 TopBraid Composer Maestro Edition 导出?我在 TopBraid Composer Maestro 版中使用了 RDF 文件的通用导出到文件系统,并使用了 Sesame OpenRDF 工作台添加 RDF 文件/RDF 数据文件命令,导致上述错误消息。

抢占一些对我的特殊情况没有帮助的可能答案方向:

  1. 我特别想使用 SPIN 构造函数和约束,而不是 SWRL 或其他规则语言。
  2. 虽然我在 TopBraid Composer Maestro 版中取得了成功,并感谢我从 TopQuadrant 获得的帮助,但我无法负担在与其他计算机交互时使用我的 SPIN 构造函数和约束所需的 TopBraid Live 许可证。 (TopBraid Composer Maestro Edition 有一个 SPARQL 端点,但该端点只能通过 localhost 从主机访问。)我还想确定 Sesame 实现是否对 SPIN 约束和构造函数施加了一些与 TopBraid 工具相同的限制。

【问题讨论】:

  • 您是否选择了具有 SPIN 推理的 Sesame 存储库类型?见Sesame server support for SPIN
  • 是的,Scott,我选择了支持 SPIN+RDFS 的内存存储。我的意思是在我的问题中包含它,但它没有出现。错误消息引用了 Sail,它提供了 SPIN 的 Sesame 实现,我相信。另请注意,我尝试导入的 RDF 文件相对较小,总共不到 2000 个事实,因此在内存中应该不是问题。
  • Sesame / RDF4J 中的 SPIN 支持仍处于测试阶段,您很有可能发现了一个错误。您能否提交一份包含相关详细信息的错误报告(包括导致问题的实际 RDF/SPIN 文件)?
  • 感谢 Jeen Broekstrat。这项工作是为国防部服务的。虽然它没有分类,但我仍然应该从本体中取出一些东西,并确保它仍然存在同样的问题。我可以保留其中一个约束,而不必担心泄露我不应该泄露的内容。然后,假设问题仍然存在,我可以提交错误报告。如果问题不存在,这本身就是一个重要线索。
  • 感谢 TallTed 重新格式化。下次提交时,我会尝试将其格式化得更好。我还不熟悉问题格式化工具。

标签: sparql rdf sesame topbraid-composer spin-rdf


【解决方案1】:

通过修改我在 Sesame 中添加 RDF 的方式并避免在 RDF 中实例化类,通过使用使用工作台 Modify/SPARQL 执行的 SPARQL UPDATE 查询推迟该操作,我能够成功地从 TopBraid Composer 免费版加载 RDF改为更新。

具体来说,我原始帖子中的错误消息是由“使用基本 URI 作为上下文标识符”引起的。在 Sesame Workbench 修改/添加中默认选中此选项。取消选中此框会将我的 RDF 加载到它工作的默认图形/上下文中。从技术上讲,我认为这是避免问题而不是解决问题,因为 RDF 也应该能够加载到命名图形/上下文中,但我现在不需要。

Add RDF Into Default Graph/Context by Unckecking "use base URI as context identifier"

清除此错误后,我的 RDF 文件实例化了一些在加载到 Sesame 时导致问题的个体。我通过使用 SPARQL 更新查询来创建我的测试实例化来避免这个问题。这是一个例子:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX sxxicc: <http://www.disa.mil/dso/a2i/ontologies/PBSM/Interface/SXXIComplianceCheck#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX sp: <http://spinrdf.org/sp#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX smf: <http://topbraid.org/sparqlmotionfunctions#>
PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
PREFIX spl: <http://spinrdf.org/spl#>
PREFIX spin: <http://spinrdf.org/spin#>
PREFIX arg: <http://spinrdf.org/arg#>
PREFIX SXXIComplianceCheckIndividuals: <http://www.disa.mil/dso/a2i/ontologies/PBSM/Interface/SXXIComplianceCheckIndividuals#>
PREFIX sxxicci: <http://www.disa.mil/dso/a2i/ontologies/PBSM/Interface/SXXIComplianceCheckIndividuals#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

INSERT DATA
{
   sxxicci:TestPub7Proposal a sxxicc:Pub7Proposal ;
           sxxicc:pub7ProposalHasDataItem sxxicci:testPub7Proposal_DataItem005 ;
           sxxicc:pub7ProposalHasDataItem sxxicci:testPub7Proposal_DataItem017 ;
           sxxicc:pub7ProposalHasDataItem sxxicci:testPub7Proposal_DataItem102 .

   sxxicci:testPub7Proposal_DataItem005 a sxxicc:Pub7DataItem005 ;
           sxxicc:pub7DataItemHasStringValue "S"^^xsd:string .

   sxxicci:testPub7Proposal_DataItem102 a sxxicc:Pub7DataItem102 ;
           sxxicc:pub7DataItemHasStringValue "AF  881234"^^xsd:string .

   sxxicci:testPub7Proposal_DataItem017 a sxxicc:Pub7DataItem017 ;
           sxxicc:pub7DataItemHasStringValue "U"^^xsd:string .
}

【讨论】:

    猜你喜欢
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多