当前位置: 首页 > 知识库问答 >
问题:

如何加载在TopBraid Composer中创建的SPARQL/SPIN约束和构造函数,以便在支持SPIN的存储库中使用芝麻?

锺离昂然
2023-03-14

我已经使用TopBraid Composer Maestro Edition 5.1版在OWL/RDF本体中成功地生成并测试了自旋约束(使用SPARQLASKquerys)。1.我现在想在Sesame中测试这些自旋约束。如何将TopBraid COmposer Maestro Edition中编写的OWL本体中包含的自旋约束、类定义、属性定义和测试个体转换为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文件中。

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

javax。servlet。ServletException:org。openrdf。存储库。RepositoryException:org。openrdf。存储库。RepositoryException:org。openrdf。帆例外情况:org。openrdf。查询QueryEvaluationException:模式的多个语句:node1alqlr2eix590http://spinrdf.org/sp#where空

也许我没有正确地从TopBraid作曲家大师版导出?在TopBraid Composer Maestro Edition中,我使用了RDF文件到文件系统的通用导出,并且使用了Sesame OpenRDF workbench add RDF file/RDF Data file命令,导致了上述错误消息。

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

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

共有1个答案

梁俊智
2023-03-14

我能够成功地从TopBraid Composer免费版加载RDF,通过修改我如何在芝麻中添加RDF,并通过避免在RDF中实例化类,推迟通过使用使用工作台修改/SPARQL更新执行的SPARQL UPDATE查询来代替。

具体来说,我最初帖子中的错误消息是由“使用基本URI作为上下文标识符”造成的。默认情况下,在芝麻工作台修改/添加中选中此选项。取消选中此框将我的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 .
}
 类似资料:
  • 描述 (Description) 它用于旋转所选元素的颜色角度。 它有以下参数 - color - 它代表一个颜色对象。 amount - 它包含0 - 100%之间的百分比。 例子 (Example) 以下示例演示了在LESS文件中使用旋转颜色操作 - <html> <head> <title>Spin</title> <link rel = "stylesheet

  • 我有一个Spring仓库如下: 实体类为: 调用findOne或findByName时,会给出以下错误: 如何使用Spring JPA存储库而没有默认构造函数?我想保留实例字段,代码和名称,最终。

  • 问题内容: 我将Elasticsearch用作文档数据库,并且我创建的每个记录都有一个GUID ID,系统将其用作记录ID。商界人士希望提供一种功能,使用户可以基于日期和迄今为止在这一天/每月创建的记录数来拥有自己的自动文件名约定。 我需要防止重复的用户文件名。有没有一种方法可以将索引字段设置为唯一?像sql唯一约束一样? 问题答案: 您需要使用应该唯一的字段作为文档的ID。默认情况下,具有现有I

  • 我一直在使用TopQuadran Composer Free Edition(TBC FE)将SPARQL/SPIN规则(主要是SPIN构造函数)嵌入到存储为RDF的OWL本体中。这个过程的一部分是SPARQL源代码根据http://spinrdf.org/sp.中指定的模式http://spinrdf.org/sp.html在RDF结构中标记/编码。正是这个结构实际上被RDF4J解释来运行SPI

  • 我想有一个java中的构造函数参数化一个类来运行这个类,类似于这个 其中classToRun可能的类没有共同的祖先,但都有方法someStaticMethod。 但也存在一些问题,比如内部类不能有静态方法,类不能被转换为类,等等。 有一些用类方法参数化的解决方案,如 如何在Java中传递类作为参数? 在java中将类作为参数传递给方法 但对建造者来说不是。 这样做的正确解决方案是什么?

  • Overview This plugin provides spin-button interface easily on your form. This interface is very handy to set especially short or middle range numbers. Usage Simply call "spin" method. $(document).read