2012-01-03 4 views
2

J'ai quelques problèmes avec la recherche web sémantique. Je construis une application en PHP/MySQL, qui fonctionnera comme moteur de recherche "sémantique". Ce problème est généralement très difficile, mais ma situation est un peu plus facile. Je n'aurai besoin de rechercher que sur les données de mon site Web et seulement les données que je vais ajouter à la base de données. L'idée est que somoene recherche de la nourriture, de sorte que le système retourne à côté des documents de nourriture aussi le document qui contient le mot Pizza, parce que la pizza est un aliment. Mon site sera vraiment spécifique, il est donc possible de modéliser toutes ces relations (du moins je le pense), mais je m'attends à ce qu'il n'y ait pas tout. Le premier problème est que je ne sais pas comment enregistrer ces données dans la base de données, je veux dire ces relations, parce que ce sera N: M relations et il doit être très flexible, car il sera utilisé pour chaque recherche sur le site. Ce sera "comme l'arbre", du plus abstrait au plus spécifique, par exemple la nourriture -> pizza -> margherita mais aussi la nourriture-> végétarien-> margherita. Mon idée est d'utiliser des triplets du web sémantique et de sauvegarder toutes les relations comme des triplets raisonnés.Recherche similaire et sémantique

Le problème suivant concerne la saisie de données utilisateur. Disons que les utilisateurs pourront ajouter des "tags" à leur document et que mon application devrait les connecter à mes triples. Donc, si l'utilisateur entre Pizza, tout d'abord mon application devrait lui suggérer toutes les pizzas connues et s'il choisit margherita, que son document serait connecté à pizza margherita, mais s'il ajoute une pizza inconnue, mon application va connecter son document avec Puzza seulement (abstraction plus élevée).

Plus tard, chaque requête de recherche recherchera la meilleure correspondance dans mon modèle triplet et dans le document associé à la recherche, est-ce une bonne idée?

Ma question est vraiment générale, comment concevoir cette application, ce qui devrait être la première idée ou une première poussée.

Nous vous remercions d'avoir trouvé des idées pour résoudre ce problème.

+0

Pourquoi est-ce que vous voulez utiliser MySQL? Un magasin triple pourrait mieux s'adapter. –

+0

Eh bien, il ne doit pas être MySQL, mais je voudrais avoir un stockage d'interrogation rapide + il est nécessaire de connecter mes triples avec les données d'entrée utilisateur, que je prévois être en grande quantité, donc je n'utiliserais pas de stockage triple eux, parce que je crois que les bases de données relationnelles traditionnelles sont plus rapides. –

Répondre

3

L'une des façons rapides serait de garder quelque part des phrases comme « Food Pizza margherita » et « Food Pizza quelque chose » connecté à la catégorie id et/ou un ensemble de documents pour que vous puissiez effectuer le texte intégral et morphology- permet de rechercher des catégories/documents associés et d'afficher les catégories supérieures/inférieures.

Ce type de requêtes pourrait être fait en utilisant MySQL stock Recherche en texte intégral http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html ou externes moteurs de recherche en texte intégral comme Lucene http://lucene.apache.org/ ou Sphinx http://sphinxsearch.com