2

我已经ASK使用 TopBraid Composer Maestro 版本 5.1.1 在 OWL/RDF 本体中成功生成并测试了 SPIN 约束(使用 SPARQL 查询)。我现在想在 Sesame 中测试这些 SPIN 约束。如何将我的 SPIN 约束、类定义、属性定义和包含在 TopBraid COMposer Maestro Edition 中创作的 OWL 本体中的测试个体放入 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 工具相同的限制。
4

1 回答 1

1

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

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

通过取消“使用基本 URI 作为上下文标识符”将 RDF 添加到默认图/上下文中

清除此错误后,我的 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 .
}
于 2016-06-30T17:36:14.870 回答