我正在使用公共信息模型,我们正在使用RDF文件来表示电气变电站。但是我发现使用RDF Schema验证文件RDF存在一些问题。在这个问题上我需要帮助。有人知道如何使用JAVA来做到这一点。
发布于 2012-10-24 21:08:35
我首先要指出的是,我对公共信息模型一无所知,我只是泛泛地谈到RDF、RDFS和“验证”……
有效的解析非常简单,所以我假设这不是您的意思。我的猜测是,您来自XML,并且您认为RDFS对于RDF的方式与XML模式对于XML文档的方式相同。
事实并非如此。
您必须记住,如果您为一个属性指定了两个范围(我们将其称为A和B),这并不意味着该属性的值应该是A或B。实际上,这意味着它们两者都是,即A和B的交集。Domain的工作原理类似,并且没有什么可以阻止您在指定的域/范围之外使用值。因此,您可能需要小心处理您期望从验证中获得的内容。
此外,如果您开始涉足OWL世界,就会增加对模式(也称为本体)及其可满足性的一致性的担忧。这些都是有效的问题w.r.t。数据的有效性。
更不用说,在OWL中,很难验证桌子有4条腿的限制。你可以定义三个分支,并且假设它是有效的;只有第四个分支系统还不知道。类似地,如果您定义了五条腿,它将假设其中两条腿可以是相同的,因此严格来说它并不是无效的。
如果您想使用RDFS或真正的OWL作为一种约束语言,那么可能需要考虑的是Pellet's Integrity Constraint Validator (ICV)。它允许您使用OWL作为规范模式对数据施加的约束的语言。它通过稍微改变OWL的语义来实现这一点,使其更适合这种用例。该软件实际上已经被移植到Stardog,在那里它可以与数据库中的事务支持相结合,以保持数据完整性。Stardog站点还引用了如何评估完整性约束的正式语义,如果您有足够的好奇心进一步深入研究该定义的话。
除此之外,假设这是您感兴趣的验证类型,您将需要自定义软件来为您执行验证。或者,您可以查看一个与ICV类似但功能不那么正式的软件,称为Jena Eyeball。
https://stackoverflow.com/questions/13031879
复制相似问题