Utilisateur:Opoirel/brouillon

StrixDB
[[Fichier: |frameless |upright=0.55 |alt=Description de l'image . ]]

Informations
Développé par Olivier Poirel
Environnement Windows
Langues Anglais
Type Web sémantique
Site web www.strixdb.com

StrixDB est une base de données dédiée RDF. Elle est conçue pour permettre la manipulation et le raisonnement pour des graphes RDF de taille moyenne.

Caractéristiques

modifier

StrixDB a les caractéristiques suivantes :

  • requêtes avec SPARQL et modifications avec SPARQL/Update.
  • inférence dans SPARQL avec des règles Datalog (règles avec récursion, négation et négation dans la récursion).
  • propriétés ACID (atomicity, consistency, isolation, durability). StrixDB utilise le SGBD Gigabase.
  • serialisation des graphes RDF au format standard XML ou Turtle.


StrixDB peut être utilisé :

  • en tant que serveur SPARQL (utilisation en tant que module d'un serveur HTTP Apache).
  • en tant qu'application avec le language de script Lua.
  • appelé par tout langage de programmation en tant que DLL.

La résolution Datalog utilise une variante de l'algorithme SLG [1] adaptée aux triples RDF.


Exemples de règles

modifier

Les règles s'expriment dans une syntaxe inspirée de Datalog ou de Turtle. En supposant que la resource http://myserver/famillyRules contienne les règles suivantes :

prefix ns: <http://myserver/familly#>.
prefix foaf: <http://xmlns.com/foaf/0.1/>.
{?x ns:ancestorOf ?y } :- {?x ns:parentOf ?y}
{?x ns:ancestorOf ?y} :- {?x ns:parentOf ?z. ?z ns:ancestorOf ?y}

ns:motherOf(?mother,?child) :- ns:parentOf(?mother,?child), not ns:fatherOf(?mother,?child).

ns:fatherOf(?f,?child) :- ns:parentOf(?f,?child), not foaf:gender(?f,foaf:female).

Alors, ces règles peuvent être utilisées dans une requête SPARQL en utilisant la clause USING. Cette clause, spécifique à StrixDB est similaire à la clause FROM qui spécifie les graphes RDF ciblés par la requête.

PREFIX ns: <http://myserver/familly#>
SELECT ?person ?ancestor
USING <http://myserver/famillyRules>
WHERE { ?person ns:ancestorOf ?ancestor }


Example de raisonnement OWL

modifier

Les règles suivantes implementent le raisonnement sur les propriétés d'OWL. Elles sont un exemple illustrant que les même des prédicats peuvent être utilisés comme variables :

?p(?x,?y) :- a(?p, owl:SymmetricProperty), ?p(?y,?x).

?p(?x,?y) :- a(?p, owl:TransitiveProperty), ?p(?x,?z), ?p(?z,?y).

?invers1(?x,?y) :- owl:inverseOf(?invers1,?invers2), ?invers2(?y,?x).
?invers1(?x,?y) :- owl:inverseOf(?invers2,?invers1), ?invers2(?y,?x).

?equiv1(?x,?y) :- owl:equivalentProperty(?equiv1,?equiv2), ?equiv2(?x,?y).
?equiv1(?x,?y) :- owl:equivalentProperty(?equiv2,?equiv1), ?equiv2(?x,?y).

?p(?x,?y) :- rdfs:subPropertyOf(?p1,?p), ?p1(?x,?y).


Liens internes

modifier

Liens Externes

modifier

References

modifier
  1. Tabled Evaluation with Delaying for General Logic Programs - Weidong Chen, David S. Warren (1996)


Catégorie:Web_sémantique