Sparql 在本体注释的JSON对象之间执行虚拟对齐
我有一个应用程序,它通过RESTAPI从各种其他应用程序请求JSON对象。任何应用程序的响应均采用以下格式:Sparql 在本体注释的JSON对象之间执行虚拟对齐,sparql,rdf,owl,semantic-web,ontology,Sparql,Rdf,Owl,Semantic Web,Ontology,我有一个应用程序,它通过RESTAPI从各种其他应用程序请求JSON对象。任何应用程序的响应均采用以下格式: { data : { key1: { val: value, defBy: "ontology class"} key2: ..., } } 以下代码描述了App1中的对象: { data : { key1: { val: "98404506-385576361", defBy: "abc:SHA-224"} } }
{
data : {
key1: { val: value, defBy: "ontology class"}
key2: ...,
}
}
以下代码描述了App1中的对象:
{
data : {
key1: { val: "98404506-385576361", defBy: "abc:SHA-224"}
}
}
以下代码描述了App2中的对象:
{
data : {
key2: { val: "495967838-485694812", defBy: "xyz:SHA3-224"}
}
}
这里,deffy
指的是用于加密val
中字符串的算法。当我的应用程序收到这些对象时,它会解析JSON并将对象中的每个kv转换为RDF,以便:
// For objects from App1:
key1 rdf:type osba:key
key1 osba:generatedBy abc:SHA-224
...
// For objects from App2
key2 rdf:type osba:key
key2 osba:generatedBy xyz:SHA3-224
我需要以某种方式查询生成的RDF数据,我可以指定任何键的osba:generatedBy
是否属于SHA族,然后将主题作为有效的查询结果返回,例如:where{k osba:generatedBy???}
请注意以下几点:
MD5
)接收对象NS
。例如,在上述对象中,一个使用abc:
,另一个使用xyz:
SecureHashAlgorithm
而不是SHA
defBy:
中存储的值,因为我事先不知道使用了什么本体,也不知道该值代表什么加密算法
我读过关于自动本体集成、对齐、映射等方面的内容,。但是我找不到这个概念对我的问题的基本原理
有什么解决办法吗
3) 我无法使用SPARQL筛选,因为值可能是SecureHashAlgorithm
而不是SHA
定义的SPARQL筛选。因此,沿着
SELECT ?key
WHERE { ?key osba:generatedBy ?generator
FILTER regex(?generator, "^s(ecure)?h(ash)?a(lgorithm)?.*", "i") }
(注意:未测试)应完成此工作。要构建一个好的正则表达式,我可以推荐
如果有必要:您可以将IRI转换为字符串(用于匹配)。您能详细说明第3点吗?您尝试过哪些过滤器不起作用?我尝试过使用Sha*等通配符功能,但我无法解决问题,因为在P-3中表达的原因没有集成本体,您无法进行查询扩展等。显然,您需要同义词术语的映射,否则就无法编写完整正确的过滤器。这适用于每个域。名称空间的意义也不清楚。它们只是语法糖,对SPARQL查询的语义没有帮助。我需要使用语义而不是正则表达式,因为字符串可以改变,如果传入类型是FIPS PUB 180-4会怎么样?SHA3的认证代码您到底想要实现什么?你能用输入数据和预期的输出组合一个小例子吗?如果只是关于SHA被“fips pub 180-4”引用,那么就把它包含到您的正则表达式中?