Hi Prateek,

It would help if you provide more detail. If you run this query from Qconsole, 
against which database are you running it then (the dropdown at the top of 
QConsole)? And does this database contain triple data? You can discover that 
using the Explore button which should reveal XML triple files, or using 
count(cts:triples()) in a new Qconsole query against the same database.

Note that your ruleset needs to be stored in the schemas database that is 
connected to the documents database that you are using..

Cheers,
Geert

From: "prateekjai...@gmail.com<mailto:prateekjai...@gmail.com>" 
<prateekjai...@gmail.com<mailto:prateekjai...@gmail.com>>
Reply-To: MarkLogic Developer Discussion 
<general@developer.marklogic.com<mailto:general@developer.marklogic.com>>
Date: Sunday, July 5, 2015 at 8:20 PM
To: MarkLogic Developer Discussion 
<general@developer.marklogic.com<mailto:general@developer.marklogic.com>>
Subject: Re: [MarkLogic Dev General] How to include inference rules


Hi Geert,

 I am running this script now. It runs w/o error but doesnt return ant results. 
I am not sure if, I am missing something here. Also, I am not sure how to pass 
my data in query like, I want to get all banks in uk.


let $my-store := sem:ruleset-store("/rules/bankAt.rules", sem:store() )
return
 (: use the store you just created - pass it in to sem:sparql() :)
 sem:sparql('
PREFIX ex: <http://example.com/>
PREFIX gn: <http://www.geonames.org/ontology/>

SELECT ?bank ?placeName
FROM <http://marklogic.com/semantics/sb/banks/inf-1>
WHERE
 {
 ?bank ex:bankAt ?place .
 ?place gn:name ?placeName
 }
 ORDER BY ?bank
', (), (),
 $my-store
 )

Prateek Jain

Cell : +91-9958646136

--------------------------------------------------------------
EXPECTATION : Causes all troubles......
--------------------------------------------------------------

On Sun, Jul 5, 2015 at 11:37 PM, Geert Josten 
<geert.jos...@marklogic.com<mailto:geert.jos...@marklogic.com>> wrote:
Hi Prateek,

Which error do you get?

Cheers,
Geert

From: "prateekjai...@gmail.com<mailto:prateekjai...@gmail.com>" 
<prateekjai...@gmail.com<mailto:prateekjai...@gmail.com>>
Reply-To: MarkLogic Developer Discussion 
<general@developer.marklogic.com<mailto:general@developer.marklogic.com>>
Date: Sunday, July 5, 2015 at 8:05 PM
To: MarkLogic Developer Discussion 
<general@developer.marklogic.com<mailto:general@developer.marklogic.com>>
Subject: Re: [MarkLogic Dev General] How to include inference rules


Thanks Geert,

 I have already created rule for inferencing by:

xquery version "1.0-ml";
xdmp:document-insert(
'/rules/bankAt.rules',
text{
'
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema/>
PREFIX ex: <http://example.com/>
PREFIX gn: <http://www.geonames.org/ontology/>

rule "bankAt" CONSTRUCT {
  ?bank ex:bankAt ?place2
} {
  ?bank ex:bankAt ?place1 .
  ?place1 gn:parentFeature ?place2
}
'
}
)

And this is running w/o error. My issue is I am trying to use it in my query 
like


let $my-store := sem:ruleset-store("/rules/bankAt.rules", sem:store() )
return
 (: use the store you just created - pass it in to sem:sparql() :)
 sem:sparql('
PREFIX ex: <http://example.com/>

SELECT ?bank ?placeName
FROM <http://marklogic.com/semantics/sb/banks/inf-1>
WHERE
 {
 ?bank ex:bankAt ?place .
 ?place gn:name ?placeName
 }
 ORDER BY ?bank
', (), (),
 $my-store
 )


This is giving me error. I am confused on how to use custom rule (syntatically)

Prateek Jain

Cell : +91-9958646136

--------------------------------------------------------------
EXPECTATION : Causes all troubles......
--------------------------------------------------------------

On Sun, Jul 5, 2015 at 11:24 PM, Geert Josten 
<geert.jos...@marklogic.com<mailto:geert.jos...@marklogic.com>> wrote:
Hi Prateek,

I see two options:

  1.  Specify ruleset programmatically using a sem:ruleset-store (see 
http://docs.marklogic.com/guide/semantics/inferencing#id_pgfId-920824)
  2.  Use default rulesets, which is a config setting for databases (see 
http://docs.marklogic.com/guide/semantics/inferencing#id_pgfId-919120)

Cheers,
Geert

From: "prateekjai...@gmail.com<mailto:prateekjai...@gmail.com>" 
<prateekjai...@gmail.com<mailto:prateekjai...@gmail.com>>
Reply-To: MarkLogic Developer Discussion 
<general@developer.marklogic.com<mailto:general@developer.marklogic.com>>
Date: Sunday, July 5, 2015 at 7:06 PM
To: "general@developer.marklogic.com<mailto:general@developer.marklogic.com>" 
<general@developer.marklogic.com<mailto:general@developer.marklogic.com>>
Subject: [MarkLogic Dev General] How to include inference rules

Hi,

 I am facing issue while using custom inference rules in marklogic 8.0. Here is 
the scenario:

1. create data

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX place: <http://example.com/places/>
PREFIX ex: <http://example.com/>
PREFIX bank: <http://example.com/banks/>

INSERT DATA
{
  GRAPH <http://marklogic.com/semantics/sb/banks/inf-1>
  {
    bank:1001 rdf:type ex:bank ;
              ex:name "rbs" ;
 ex:service "loan" , "asset management" , "fx" ;
 place:name "london" .
    bank:1002 rdf:type ex:bank ;
              ex:name "rbi" ;
 ex:service "loan" , "retail banking" , "guide lines" ;
 place:name "delhi" .
  }
}

#------------- Define some places and their relationships-------------

DROP SILENT GRAPH <http://marklogic.com/semantics/sb/places/inf-1> ;

CREATE GRAPH <http://marklogic.com/semantics/sb/places/inf-1> ;


PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX place: <http://example.com/places/>
PREFIX ex: <http://example.com/>

INSERT DATA
{
  GRAPH <http://marklogic.com/semantics/sb/places/inf-1>
  {
    place:1001 rdf:type ex:country ;
              ex:name "uk" ;
 ex:isin "Europe" .

place:1002 rdf:type ex:city ;
              ex:name "london" ;
 ex:isin "uk" .

  }
}

2. Query w/o inference

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ex: <http://example.com/>
PREFIX bank: <http://example.com/banks/>
PREFIX place: <http://example.com/places/>

SELECT ?b
FROM <http://marklogic.com/semantics/sb/banks/inf-1>
WHERE
  {
    ?b rdf:type ex:bank ;
place:name "london"
  }

3. I know how to use inference via creating ontology data:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ex: <http://example.com/>

INSERT DATA
{
  GRAPH <http://marklogic.com/semantics/sb/banks/inf-1>
  {
    ex:city rdfs:subClassOf ex:country .
  }
}


-------------------------
4. Now, what I am trying to do is; achieve this via creating custom rules file. 
I have created "bankAt.rules" file under schemas database. Here is the code:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema/>
PREFIX ex: <http://example.com/>
PREFIX gn: <http://www.geonames.org/ontology/>

rule "bankAt" CONSTRUCT {
  ?bank ex:bankAt ?place2
} {
  ?bank ex:bankAt ?place1 .
  ?place1 gn:parentFeature ?place2
}

I dont know how to use this rules file in my sparql query. I would be really 
helpful if someone can just list down the steps on "how to use this rule in 
sparql query".

Regards,

Prateek Jain

--------------------------------------------------------------
EXPECTATION : Causes all troubles......
--------------------------------------------------------------

_______________________________________________
General mailing list
General@developer.marklogic.com<mailto:General@developer.marklogic.com>
Manage your subscription at:
http://developer.marklogic.com/mailman/listinfo/general



_______________________________________________
General mailing list
General@developer.marklogic.com<mailto:General@developer.marklogic.com>
Manage your subscription at:
http://developer.marklogic.com/mailman/listinfo/general


_______________________________________________
General mailing list
General@developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to