- StrixDB
-
StrixDB Développeur Olivier Poirel Environnements Windows Langues Anglais Type Web sémantique Site web www.strixdb.com modifier 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.
Sommaire
Caractéristiques
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 langage 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
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).
Les 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.PREFIX ns: <http://myserver/familly#> SELECT ?person ?ancestor USING <http://myserver/famillyRules> WHERE { ?person ns:ancestorOf ?ancestor }
Example de raisonnement OWL
Les règles suivantes implementent le raisonnement sur les propriétés d'OWL. Remarque: les prédicats peuvent être des 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
- Web sémantique
- SPARQL
- Datalog
- Apache web server (httpd)
- Lua
Liens externes
References
- Tabled Evaluation with Delaying for General Logic Programs - Weidong Chen, David S. Warren (1996)
Wikimedia Foundation. 2010.