IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

La FAQ sur le Web sémantique

La FAQ sur le Web sémantiqueConsultez toutes les FAQ

Nombre d'auteurs : 8, nombre de questions : 42, dernière mise à jour : 16 juin 2021 

 
OuvrirSommaire→ARC2
précédentsommaire
 
 

ARC2 est un framework PHP 5 pour le Web sémantique, plus précisément concernant le RDF et quelques standards liés : il dispose d'une série de parsers pour divers formats de représentation des triplets, peut les sérialiser, les stocker dans une base de données MySQL et offrir un point d'accès SPARQL, en plus d'extracteurs des formats HTML (microformats, RDFa, etc.). Il supporte également les extensions.

Pour l'installer, il suffit de télécharger ses sources depuis GitHub.

Pour l'utiliser, étant donné qu'il charge lui-même les classes nécessaires à l'exécution, il suffit d'inclure la classe statique ; par exemple,

 
Sélectionnez
include('../vendors/arc/ARC2.php');

Certaines fonctionnalités requièrent plus de configuration ; notamment, le magasin de triplets.

Créé le 12 septembre 2012  par Thibaut Cuvelier

Lien : dépôt GitHub
Lien : Comment configurer le magasin de triplets ?

Pour utiliser le magasin de triplets natif d'ARC2, il faut créer une base de données MySQL (ARC2 en utilise des fonctionnalités avancées), ARC2 peut se charger de créer le schéma nécessaire. Pour l'utilisation du magasin, on utilise un tableau de configuration :

 
Sélectionnez
$config = array(
    'db_host' => '127.0.0.1', 
    'db_name' => 'db',
    'db_user' => 'db_user',
    'db_pwd' => 'secret',
    'store_name' => 'arc_tests',
);
$store = ARC2::getStore($config);

Pour créer le schéma s'il n'existe pas :

 
Sélectionnez
if (!$store->isSetUp()) {
    $store->setUp();
}

Le magasin est alors prêt pour utilisation : on peut notamment proposer un point d'accès public.

Créé le 12 septembre 2012  par Thibaut Cuvelier

Lien : Comment afficher un formulaire sur le point d'accès SPARQL local ?

Pour lancer ce point d'accès, il faut fournir les informations de connexion à la base de données (comme pour la configuration du magasin de triplets) ainsi que les options autorisées sur le point d'accès :

 
Sélectionnez
$config = array(
	  'db_host' => 'localhost', 
	  'db_name' => 'db',
	  'db_user' => 'db_user',
	  'db_pwd' => 'secret',
	 
	  'store_name' => 'my_endpoint_store',
	 
	  'endpoint_features' => array(
	    'select', 'construct', 'ask', 'describe', 'load', 'insert', 'delete', 'dump' 
	  )
	);
	 
	$ep = ARC2::getStoreEndpoint($config);

Il faut que le schéma en base de données ait été créé. On affiche finalement le formulaire :

 
Sélectionnez
$ep->go();
Créé le 12 septembre 2012  par Thibaut Cuvelier

Lien : Comment configurer le magasin de triplets ?

À l'aide de la classe principale, on peut récupérer un parser générique, qui détecte le format des triplets :

 
Sélectionnez
$parser = ARC2::getRDFParser();

Ensuite, on peut lui demander de charger un fichier local ou distant :

 
Sélectionnez
$parser->parse('data/foaf.rdf');
	$parser->parse('http://me.com/foaf.rdf');

On peut même demander de parser des données :

 
Sélectionnez
$base = 'http://me.com/'; 
	$data = '<rdf:RDF></rdf:RDF>'; 
	$parser->parse($base, $data);

De là, on peut récupérer un tableau des triplets chargés :

 
Sélectionnez
$triples = $parser->getTriples();
Créé le 12 septembre 2012  par Thibaut Cuvelier

Une fois la classe statique principale chargée, on utilise la fonction getRemoteStore() pour récupérer une instance du point d'accès ; on peut alors effectuer toute requête nécessaire.

 
Sélectionnez
$q = 'PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
	 
	SELECT DISTINCT ?s 
	WHERE {
	    ?s rdfs:label ?o .
	}';
	 
	$r = ARC2::getRemoteStore(array('remote_store_endpoint' => 'http://dbpedia.org/sparql'))->query($q, 'rows');

On récupère alors un tableau de résultats comme celui-ci :

 
Sélectionnez
array
	  0 => 
	    array
	      's type' => string 'uri' (length=3)
	      's' => string 'http://www.w3.org/2002/07/owl#Thing' (length=35)
	  1 => 
	    array
	      's type' => string 'uri' (length=3)
	      's' => string 'http://sw.opencyc.org/2008/06/10/concept/en/Infinite_thing' (length=58)
	  ...

Chaque ligne correspond à un triplet demandé ; pour chaque ligne, on dispose d'un tableau qui contient le type de données retourné et la valeur (ici, on ne demande que des URI, mais on aurait pu avoir des valeurs littérales). Ainsi, on peut lister tous les résultats de la requête de type URI :

 
Sélectionnez
foreach($r as $e) {
	    if($e['s type'] == 'uri') {
	        var_dump($e['s']); 
	    }
	}
Créé le 12 septembre 2012  par Julien Plu
précédentsommaire
 
 

Copyright © 2010-2012 developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.