Re: Fwd: Proposal submitted [JENA-491]

2015-04-04 Thread Andy Seaborne

On 03/04/15 03:47, Qihong Lin wrote:

Hello Andy,

It's submitted in time.


Good.

Ying - what is the next process step?


I saw your notes, thanks. Here're some further
questions.

1) API of QueryExecution
Does the API look like:
- Iterator QueryExecution.execConstrucQuads()
- Dataset QueryExecution.execConstructDataset()


Both.  (One builds on the other anyway.)

It should mirror how execConstruct/execConstructTriples are done unless 
there is a very good reason not to.



2) master.jj
How does master.jj generate arq.jj? What tool? You mentioned "is
processed with cpp". What's cpp?


cpp is the C preprocessor (yes!!)  It rewrites one text file to another 
text file.  ARQ does not cpp macros, it is just using defined symbols 
ARQ and SPARQL_11 to put in different blocks of text.


It's also why there are no comments in arq.jj.  cpp removes them and 
blank lines (the alternative is lots of blank lines - it's yuk).


The script to drive it is jena-arq/Grammar/grammar (it's a bash script - 
I don't know how well it runs on MS Windows - it used to using cygwin). 
 The script directs the output to the right place in the java source code.


If you have trouble running it, edit arq.jj then run javacc.

The SyntaxARQ parts that are not SPARQL 1.1, are in sections

#ifdef ARQ

#endif



3) query string  sytax
I went through TriG syntax.
- For our query string, can it construct a Dataset with multiple
graphs, or just one default/named graph?


Multiple.

A dataset is one default and zero or more named graphs.

CONSTRUCT
{ GRAPH :g1 { ?s ?p ?o }
  GRAPH :g2 { ?s ?p ?o }
  GRAPH ?g { ?s ?p ?o }
} ...

only in real use the patterns will be bigger.


- Shall we consider using variables for named graphs? I mean "?g", not ":g":
CONSTRUCT {
 # Named graph
 GRAPH ?g { ?s :p ?o }
} WHERE



Yes.

Class Template can be made to work purely on quads.  Where it current 
uses BasicPattern (which is triples), use QuadPattern.


That will work for non-extended SPARQL 1.1 as well because "CONSTRUCT { 
no use of GRAPH }" will give a quad pattern of all quads for the default 
graph. There is a magic constant for "this quad is for the default 
graph" - see class Quad.


So you don't need tow different sets of machinary - update Template to 
handle quads and the syntactic restrictions of SPARQL_11 will stop it 
getting named graph in CONSTRUCT.


execConstruct/execConstructTriples then work on the default graph of a 
dataset.


You may find it helpful to look at the TriG parser output. That parser 
is not Javacc (it's much faster).  It's informing but you will need to 
write the javacc for this project.



regards,
Qihong


Andy


[jira] [Closed] (JENA-912) Add support for SKOS and SKOS-XL vocabularies

2015-04-04 Thread Andy Seaborne (JIRA)

 [ 
https://issues.apache.org/jira/browse/JENA-912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Seaborne closed JENA-912.
--

> Add support for SKOS and SKOS-XL vocabularies
> -
>
> Key: JENA-912
> URL: https://issues.apache.org/jira/browse/JENA-912
> Project: Apache Jena
>  Issue Type: New Feature
>  Components: Jena
>Reporter: Quentin Reul
>Assignee: Andy Seaborne
> Fix For: Jena 2.13.1
>
> Attachments: SKOS.java, SKOSXL.java
>
>
> The [com.hp.hpl.jena.vocabulary 
> package|https://jena.apache.org/documentation/javadoc/jena/com/hp/hpl/jena/vocabulary/package-summary.html]
>  is missing classes for the SKOS and SKOS-XL vocabularies. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)