J'ai une application qui demande des objets JSON à partir de diverses autres applications via leurs API REST. La réponse de toute application est livrée dans le format suivant:effectuer l'alignement virtuel entre des objets JSON ontologiquement annotés
{
data : {
key1: { val: value, defBy: "ontology class"}
key2: ...,
}
}
Le code suivant représente un objet de App1:
{
data : {
key1: { val: "98404506-385576361", defBy: "abc:SHA-224"}
}
}
Le code suivant représente un objet de App2:
{
data : {
key2: { val: "495967838-485694812", defBy: "xyz:SHA3-224"}
}
}
Ici, DefBy
fait référence à l'algorithme utilisé pour chiffrer la chaîne dans val
. Lorsque ma demande reçoit ces objets, il analyse le JSON et convertit chaque kv dans l'objet en RDF tels que:
// 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
J'ai besoin d'interroger les données RDF générés d'une manière que je peux préciser si osba:generatedBy
de tout clé appartient à la famille SHA, puis retourner le sujet en tant que résultat de requête valide, tels que: where {?k osba:generatedBy ???}
S'il vous plaît noter les points suivants:
I infl eeive objets avec d'autres algorithmes de cryptage tels que
MD5
, etcJe ne sais pas à l'avance quel algorithme de cryptage sera utilisé par une nouvelle application rejoignant le réseau, ni ce qu'il utilise
NS
. Par exemple, dans les objets ci-dessus, l'un utiliseabc:
et l'autre utilisexyz:
.Je ne peux pas utiliser le filtrage SPARQL parce que la valeur pourrait être
SecureHashAlgorithm
au lieu deSHA
Mon problème est que je ne peux pas définir une ontologie supérieure (référencée) à l'avance et la valeur stockée carte dans defBy:
des objets entrants, parce que je ne sais pas à l'avance quelle ontologie est utilisée ni quel algorithme de chiffrement la valeur représente.
J'ai lu à propos de l'intégration automatique des ontologies, de l'alignement, de la cartographie, etc. mais je ne peux pas trouver la raison de ce concept à mon problème.
Des solutions?
Pouvez-vous élaborer le point 3? Quels filtres as-tu essayés qui n'ont pas fonctionné? –
J'ai essayé d'utiliser une fonction générique comme Sha * mais je ne peux pas résoudre le problème à cause de la raison exprimée dans P-3 –
Sans une ontologie d'intégration, vous ne pouvez pas faire d'expansion de requête ou similaire. Évidemment, vous avez besoin d'un mappage des termes synonymes, sinon, vous ne pouvez pas écrire un filtre complet et correct. Et cela vaut pour tous les domaines. – AKSW