2017-03-22 1 views
0

Je suis nouveau chez Apache Jena et Fuseki. J'ai installé Apache Jena Fuseki en tant que serveur autonome et j'essaie de définir une règle d'inférence très simple et apparemment, je ne la configure pas correctement. Mon fichier de configuration config_new.ttl ressemble à ceci:Comment faire pour que mon serveur Fuseki lise les règles d'inférence à partir d'un fichier?

@prefix :  <#> . 
@prefix fuseki: <http://jena.apache.org/fuseki#> . 
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 
@prefix tdb:  <http://jena.hpl.hp.com/2008/tdb#> . 
@prefix ja:  <http://jena.hpl.hp.com/2005/11/Assembler#> . 
@prefix ao:  <http://ao.com> . 

[] rdf:type fuseki:Server ; 
    fuseki:services (
     <#mainservice> 
    ) . 

<#mainservice> rdf:type fuseki:Service ; 
    fuseki:name      "mainservice" ; 
    fuseki:serviceQuery    "sparql"  ; 
    fuseki:serviceQuery    "query"  ; 
    fuseki:serviceUpdate    "update"  ; 
    fuseki:serviceUpload    "upload"  ; 
    fuseki:serviceReadWriteGraphStore "data"  ; 
    fuseki:serviceReadGraphStore  "get"   ; 
    fuseki:dataset     <#ao>   ; 
    . 

### In-memory, initially empty. 
## This database set-up allows OWL inference. 
<#ao> rdf:type ja:MemoryModel ; 
       ja:defaultGraph <#infGraph> . 

<#infGraph> rdf:type ja:InfModel ; 
      ja:reasoner [ ja:rulesFrom <file:inference_rules.rules> ; ] . 

je commence le serveur à partir d'une console avec:

./fuseki-server --update --file=config_new.ttl /mainservice 

Il commence et je suis en mesure de télécharger des données et l'interroger avec succès à partir de la page Web, mais apparemment il ne lit pas le fichier inference_rules.rules. Même si le nom du fichier est incorrect ou si le fichier n'existe pas ou si le contenu du fichier est incorrect, je ne reçois aucune erreur et la règle ne fonctionne pas.

Qu'est-ce qui me manque?

Il y a une deuxième question ici. Apparemment, je ne suis pas encore là, mais laissez-moi mettre ici le contenu de inference_rules.rules. Je suis en train de définir une règle simple transitive - si (A est un B) et (B est un C), alors A est un C:

@prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# 
@prefix ex: http://example.com/ 
@prefix xs: http://www.w3.org/2001/XMLSchema# 
@prefix ao: http://ao.com/ 

[isATransitive: 
(?a ao:isA ?b) 
(?b ao:isA ?c) 
       -> 
       (?a ao:isA ?c) 
     ] 

Est-ce que je définis correctement?

Répondre

1

Dans la partie qui dit:

<#ao> rdf:type ja:MemoryModel ; 
       ja:defaultGraph <#infGraph> . 

<#infGraph> rdf:type ja:InfModel ; 
      ja:reasoner [ ja:rulesFrom <file:inference_rules.rules> ; ] . 

<#ao> doit être de type ja:RDFDataset pas un modèle.

<#ao> rdf:type ja:RDFDataset ;

+0

Il ne fonctionne pas :(. Il ne se soucie pas si le fichier ** inference_rules.rules ** existe ou non et ce qui est en elle. La règle ne soit pas chargé. Je pense – Jimo

+0

il y a un problème avec ** ** – Jimo