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Â
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,
include('
../vendors/arc/ARC2.php
'
);
Certaines fonctionnalités requièrent plus de configuration ; notamment, le magasin de triplets.
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 :
$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 :
if (!
$store
->
isSetUp()) {
$store
->
setUp
();
}
Le magasin est alors prêt pour utilisation : on peut notamment proposer un point d'accès public.
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 :
$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 :
$ep->go();
À l'aide de la classe principale, on peut récupérer un parser générique, qui détecte le format des triplets :
$parser
=
ARC2::
getRDFParser();
Ensuite, on peut lui demander de charger un fichier local ou distant :
$parser
->
parse('
data/foaf.rdf
'
);
$parser
->
parse('
http://me.com/foaf.rdf
'
);
On peut même demander de parser des données :
$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 :
$triples
=
$parser
->
getTriples();
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.
$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 :
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 :