Comment puis-je effectuer une recherche dans une base de données RDF pour trouver les segments du graphique qui se chevauchent le plus avec un exemple de graphique ?
Par exemple, disons que ma base de données stocke les graphiques arbitraires suivants :
entity1 [
type "TOP" ;
attr1 [
attr11 [
attr111 "apple" ;
] ;
attr12 [
attr121 "orange" ;
] ;
attr13 [
attr131 "banana" ;
] ;
] ;
attr2 [
attr21 [
attr211 "falcon" ;
] ;
attr22 [
attr221 "pigeon" ;
] ;
attr23 [
attr231 "parrot" ;
] ;
] ;
] .
entity2 [
type "TOP" ;
attr11 [
attr111 "apple" ;
] ;
attr12 [
attr121 "orange" ;
] ;
] .
entity3 [
type "TOP" ;
attr2 [
attr_middle [
attr21 [
attr211 "falcon" ;
] ;
attr22 [
attr221 "pigeon" ;
] ;
attr23 [
attr231 "parrot" ;
] ;
] ;
] ;
] .
Et maintenant disons que j'ai l'exemple de graphique :
sample [
type "TOP" ;
attr11 [
attr111 "apple" ;
] ;
attr12 [
attr121 "orange" ;
] ;
attr13 [
attr131 "banana" ;
] ;
attr21 [
attr211 "falcon" ;
] ;
attr22 [
attr221 "pigeon" ;
] ;
attr23 [
attr231 "parrot" ;
] ;
] .
Il est clair que rien dans la base de données ne correspond parfaitement à l'échantillon, mais que chaque entité y correspond partiellement, même si les triples commensaux existent à différents niveaux dans chaque graphique.
Comment puis-je trouver les correspondances les plus proches de l'échantillon ? Dans ce cas, je m'attendrais à ce qu'une requête renvoie la meilleure correspondance triée en premier, [entity1, entity3, entity2]
.
Je suis encore un peu novice en matière de RDF, alors pardonnez-moi si ma terminologie est erronée. D'après ce que je comprends actuellement des bases de données RDF, ce que j'essaie de faire n'est pas typiquement la façon dont elles sont utilisées. Si je veux trouver les entités "contenant" la relation attr111 = "apple" à l'aide d'une requête SPARQL, je dois généralement supposer que la relation se trouve à un emplacement fixe par rapport à chaque entité, alors que la recherche de triplets à des emplacements arbitraires par rapport à une "racine" est beaucoup plus difficile. Est-ce exact ?