stardog-manual-4.0.5

Upload: mahesh-maney

Post on 06-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 stardog-manual-4.0.5

    1/263

    Stardog 4: The

    ManualI)/-*d0c/$*)D*c0()/a/$*)

    D*2)'*ad$)" 9 S0++*-/

    C*)/-$b0/$)"

    R*ad(a+

    E)/-+-$. P-($0( S0++*-/

    Ra'/$( S0++*-/

    P-$1a/ Ma1) R+*.$/*-$.

    P-$1a/ D*c&- R+*.$/*-$.

    P-$*-$/4 B0" F$3.

    P-$*-$/4 Fa/0- R'a..

    Q0$c& S/a-/ G0$d

    R,0$-()/.

    I).c0-$/4

    U+"-ad$)" /* S/a-d*" >

    L$)03 a)d OSX

    W$)d*2.

    >:?; Fb-0a-4

  • 8/17/2019 stardog-manual-4.0.5

    2/263

    U.$)" S/a-d*"

    Q0-4$)"

    T-a1-.$)"

    U+da/$)"

    V-.$*)$)"E3+*-/$)"

    Sa-c#$)"

    Ob!0.ca/$)"

    B-*2.$)"

    Na(.+ac$)"

    CLI O)'$) H'+ a&a Ma) Pa".

     Ad($)$./-$)" S/a-d*"

    C*((a)d L$) I)/-!ac

    S-1- Ad($)

    Da/aba. Ad($)

    Ca+ac$/4 P'a))$)"

    U.$)" S/a-d*" *) W$)d*2.

    Sc0-$/4

    R.*0-c.

    P-($..$*).

    D!a0'/ Sc0-$/4 C*)!$"0-a/$*)

    Na(d G-a+# Sc0-$/4

    E)/-+-$. A0/#)/$ca/$*)

    Ma)a"$)" S/a-d*" Sc0-'4

    D+'*4$)" S/a-d*" Sc0-'4

    H$"# A1a$'ab$'$/4 C'0./-

    G0a-a)/.S$)"' S-1- M$"-a/$*)

    C*)!$"0-a/$*)

    I)./a''a/$*)

    C*)!$"0-a/$*) I..0.

    Ma)a"()/

  • 8/17/2019 stardog-manual-4.0.5

    3/263

    G-a+# Sa-c#

    I)d3$)" S/-a/"4

    Ma$)/a$)$)" Sa-c# I)d3.

    I)/"-a/$*) 2$/# SPARQL

    Sa-c# S4)/a3

    OWL 8 R0' Ra.*)$)"

    Ra.*)$)" T4+.

    U.$)" Ra.*)$)"

    E3+'a$)$)" Ra.*)$)" R.0'/.

    U.-d!$)d R0' Ra.*)$)"

    S+c$a' P-d$ca/.

    Q0-4 R2-$/$)"

    Sa( A. Ra.*)$)"

    R(*1$)" U)2a)/d I)!-)c.

    P-!*-(a)c H$)/.

    N*/ S$)" E3+c/d R.0'/.

    K)*2) I..0.

    T-($)*'*"4

     Va'$da/$)" C*)./-a$)/.

    G//$)" S/a-/d 2$/# ICV

    ICV 9 OWL < Ra.*)$)"

    U.$)" ICV !-*( CLI

    ICV G0a-d M*d

    E3+'a$)$)" ICV V$*'a/$*).

    R+a$-$)" ICV V$*'a/$*).

    ICV E3a(+'.

    U.$)" ICV P-*"-a((a/$ca''4

    T-($)*'*"4

     V$-/0a' G-a+#.

    S0++*-/d RDBMS.

    Ma)a"$)" V$-/0a' G-a+#.

    Q0-4$)" V$-/0a' G-a+#.

  • 8/17/2019 stardog-manual-4.0.5

    4/263

    V$-/0a' G-a+# Sc0-$/4

    Ma/-$a'$5$)" V$-/0a' G-a+#.

    CSV a. V$-/0a' G-a+#

    S/a-d*" Ma++$)" S4)/a3

    P-*+-/4 G-a+#.M*/$1a/$*) 9 I(+'()/a/$*)

    S/a-d*" 9 G-('$) C*).*'

    S/a-d*" 9 G-('$) S-1-

    G*.+a/$a' Q0-4

    E)ab'$)" G*.+a/$a' S0++*-/

    G*.+a/$a' Da/a

    SPARQL I)/"-a/$*)E)#a)cd P*'4"*).

    P-*"-a(($)" S/a-d*"

    Sa(+' C*d

    Ja1a P-*"-a(($)"

    SNARL P-*/*c*' B07-.

    E3a(+'.

    U.$)" S.a(

    U.$)" J)a

    C'$)/S-1- S/a-d*"

    C*))c/$*) P**'$)"

    API D+-ca/$*)

    U.$)" Ma1)

    N/2*-& P-*"-a(($)"

    SPARQL P-*/*c*'S/a-d*" R.*0-c.

    Ad($) R.*0-c.

    Ja1a.c-$+/ P-*"-a(($)"

    ./a-d*"%.

  • 8/17/2019 stardog-manual-4.0.5

    5/263

    C'*%0- P-*"-a(($)"

    I)./a''a/$*)

    O1-1$2

    API O1-1$2

    E3a(+'.

    N/ P-*"-a(($)"

    d*/N/RDF D*c0()/a/$*)

    S+-$)" P-*"-a(($)"

    O1-1$2

    Ba.$c S+-$)"

    S+-$)" Ba/c#

    G-**14 P-*"-a(($)"

    O1-1$2

    E3a(+'.

    SNARL M$"-a/$*) G0$d

    S/a-d*" >

    S/a-d*" =

    S/a-d*" <

    U)d-./a)d$)" S/a-d*"

    F-,0)/'4 A.&d Q0./$*).

    B)c#(a-& R.0'/.

    C*(+a/$b$'$/4 P*'$c$.

    K)*2) I..0.

    G'*..a-4

     A++)d$3SPARQL Q0-4 F0)c/$*).

    M$'./*).

  • 8/17/2019 stardog-manual-4.0.5

    6/263

    W#a/. N2 $)S/a-d*" ;

    V$-/0a' G-a+#.

    T$)&-P*+= G-('$) 9 P-*+-/4 G-a+#.

    G*.+a/$a' Q0-4

    RDF Na(.+ac. *+/$*)a'

    -,0$-. Ja1a

    S/a-d*" > API C#a)".

    RDF ;;

    Q0$c& S/a-/ G0$d

    I)/-*d0c/$*)RDF "-a+# da/a (*d' SPARQL

    +-*+-/4 "-a+# (*d' G-('$) "-a+# /-a1-.a' 'a)"0a"

    OWL <

    RELEASE NOTES

    ($'./*).

    http://www.w3.org/RDF/http://www.w3.org/TR/sparql11-overview/https://github.com/tinkerpop/blueprints/wiki/Property-Graph-Modelhttp://tinkerpop.incubator.apache.org/docs/3.0.2-incubating/#_on_gremlin_language_variantshttp://www.w3.org/TR/owl2-overview/http://docs.stardog.com/release-notes/http://docs.stardog.com/release-notes/http://www.w3.org/TR/owl2-overview/http://tinkerpop.incubator.apache.org/docs/3.0.2-incubating/#_on_gremlin_language_variantshttps://github.com/tinkerpop/blueprints/wiki/Property-Graph-Modelhttp://www.w3.org/TR/sparql11-overview/http://www.w3.org/RDF/

  • 8/17/2019 stardog-manual-4.0.5

    7/263

    D*c0()/a/$*)

    ✓   ✓

    ✓   ✓

    ✓   ✓

    ✓   ✓

    ✓   ✓

    ✓   ✓

    D*2)'*ad$)"7 S0++*-/

    D*2)'*ad S/a-d*" .0++*-/ !*-0(

    G$//- c#a/

    C*)/-$b0/$)"

    ./a-d*"

    d*c. ./a-d*"%. ./a-d*""-**14 ./a-d*".+-$)" ./a-d*"-b ./a-d*"c'%

    ;d$/$)" /#. d*c. *) G$/#0b

    http://docs.stardog.com/stardog-manual-4.0.5.pdfhttp://docs.stardog.com/4.0.3http://docs.stardog.com/stardog-manual-4.0.3.pdfhttp://docs.stardog.com/4.0.2http://docs.stardog.com/stardog-manual-4.0.2.pdfhttp://docs.stardog.com/4.0.1http://docs.stardog.com/stardog-manual-4.0.1.pdfhttp://docs.stardog.com/4.0http://docs.stardog.com/stardog-manual-4.0.pdfhttp://docs.stardog.com/3.1.4http://docs.stardog.com/stardog-manual-3.1.4.pdfhttp://stardog.com/#downloadhttps://groups.google.com/a/clarkparsia.com/d/forum/stardoghttps://gitter.im/Complexible/stardog-exampleshttps://github.com/complexible/stardog-docshttps://github.com/complexible/stardog-docshttps://github.com/complexible/stardog.jshttps://github.com/complexible/stardog-groovyhttps://github.com/complexible/stardog-springhttps://github.com/antoniogarrote/stardog-rbhttps://github.com/complexible/stardog-cljhttps://github.com/Complexible/stardog-docs/tree/master/src/dochttps://github.com/Complexible/stardog-docs/tree/master/src/dochttps://github.com/complexible/stardog-cljhttps://github.com/antoniogarrote/stardog-rbhttps://github.com/complexible/stardog-springhttps://github.com/complexible/stardog-groovyhttps://github.com/complexible/stardog.jshttps://github.com/complexible/stardog-docshttps://github.com/complexible/stardog-docshttps://gitter.im/Complexible/stardog-exampleshttps://groups.google.com/a/clarkparsia.com/d/forum/stardoghttp://stardog.com/#downloadhttp://docs.stardog.com/stardog-manual-3.1.4.pdfhttp://docs.stardog.com/3.1.4http://docs.stardog.com/stardog-manual-4.0.pdfhttp://docs.stardog.com/4.0http://docs.stardog.com/stardog-manual-4.0.1.pdfhttp://docs.stardog.com/4.0.1http://docs.stardog.com/stardog-manual-4.0.2.pdfhttp://docs.stardog.com/4.0.2http://docs.stardog.com/stardog-manual-4.0.3.pdfhttp://docs.stardog.com/4.0.3http://docs.stardog.com/stardog-manual-4.0.5.pdf

  • 8/17/2019 stardog-manual-4.0.5

    8/263

    R*ad(a+

    E)/-+-$. P-($0( S0++*-/

    E(a$'

    Ra'/$( S0++*-/

    P-$1a/Ma1)R+*.$/*-$.

    U.$)" Ma1)

    mailto:[email protected]:[email protected]

  • 8/17/2019 stardog-manual-4.0.5

    9/263

  • 8/17/2019 stardog-manual-4.0.5

    10/263

    Q0$c& S/a-/ G0$d

    R,0$-()/.

     sun.misc.Unsafe

    I).c0-$/4

     admin admin

    Sc0-$/4

    U+"-ad$)" /*S/a-d*" ;

    S/a-d*" > SNARL

    M$"-a/$*) G0$d

    L$)03 a)d OSX

    $ export STARDOG_HOME=/data/stardog

  • 8/17/2019 stardog-manual-4.0.5

    11/263

    STARDOG_HOME user.dir

    0+"-ad +-*c..   STARDOG_HOME

    STARDOG_HOME

    STARDOG_HOME

     stardog-license-key.bin

     stardog-license-key.bin

     stardog-license-key.bin STARDOG_HOME

    <

    #//+'*ca'#*./?

  • 8/17/2019 stardog-manual-4.0.5

    12/263

    W$)d*2.

    cmd

     stardog-license-key.bin

    /B

     stardog-license-key.bin

     stardog-license-key.bin STARDOG_HOME

    =

    > set STARDOG_HOME=C:\data\stardog

    > COPY /B stardog-license-key.bin %STARDOG_HOME%

    > stardog-admin.bat server start

    > stardog-admin.bat db create -n myDB data.ttl

    > stardog.bat query myDB "SELECT DISTINCT ?s WHERE { ?s ?p ?o } LIMIT 10"

  • 8/17/2019 stardog-manual-4.0.5

    13/263

    #//+'*ca'#*./?

  • 8/17/2019 stardog-manual-4.0.5

    14/263

    Q0-4 F0)c/$*).

    SPARQL Q0-4 F0)c/$*).

    Fd-a/dQ0-$.

    SERVICE>

    SERVICE

    ?serviceURL

    Service

    http://:/{db}/query

    HTTPA0/#)/$ca/$*)

    SERVICE

    +a..2*-d !$'

     services.sdpass STARDOG_HOME Service

    Service

    Q0-4$)"RDBMS1$a V$-/0a' G-a+#.

    ?

    http://www.w3.org/TR/sparql11-federated-query/http://www.w3.org/TR/sparql11-federated-query/

  • 8/17/2019 stardog-manual-4.0.5

    15/263

    V$-/0a' G-a+#.

    Q0-4$)"G*.+a/$a' Da/a

    G*.+a/$a' Q0-4

    T-a1-.$)"

    G-($) C*).*'

    U+da/$)"

    SPARQLU+da/

    INSERT DELETE

    PREFIX dc: 

    PREFIX ns: 

    INSERT DATA

    { GRAPH  {   ns:price   42 } }

  • 8/17/2019 stardog-manual-4.0.5

    16/263

     WHERE

    @

    Add$)"Da/a2$/#/#CLI

    C-a/$)" a Da/aba.

     add

    -f --format

     add

    PREFIX dc: 

    DELETE DATA

    {

     dc:title "David Copperfield" ;

     dc:creator "Edmund Wells" .

    }

    PREFIX foaf:  

     WITH DELETE { ?person foaf: givenName 'Bill' }

    INSERT { ?person foaf: givenName 'William' }

     WHERE

    { ?person foaf: givenName 'Bill' }

    $ stardog data add myDatabase 1.rdf 2.rdf 3.rdf

    http://docs.stardog.com/man/data-add.htmlhttp://docs.stardog.com/man/data-add.html

  • 8/17/2019 stardog-manual-4.0.5

    17/263

    --named-graph -g

    R(*1$)"Da/a2$/# /# CLI

    remove

    http://foo myDatabase

    1.rdf myDatabase

    2.rdf 3.rdf http://foo

    myDatabase

    H*2S/a-d*"Ha)d'. RDFPa-.$)"

     strict.parsing c*)!$"0-a/$*) *+/$*)

    $ stardog data remove -g http://foo myDatabase

    $ stardog data remove myDatabase 1.rdf

    $ stardog data remove -g http://foo -f TURTLE myDatabase 2.rdf 3.rdf

    http://docs.stardog.com/man/data-remove.htmlhttp://docs.stardog.com/man/data-remove.html

  • 8/17/2019 stardog-manual-4.0.5

    18/263

    "2.5"^^xsd:int

    V-.$*)$)"

    /# ./a-d*"3a(+'. -+*

     versioning.enabled

     stardog-admin metadata set

    Ma) Pa".

    C*(($//$)"C#a)".

     data

     add/remove commit

    $ stardog-admin db create -o versioning.enabled=true -n myDb

    https://github.com/Complexible/stardog-examples/blob/master/examples/cli/versioning/README.mdhttps://github.com/Complexible/stardog-examples/blob/master/examples/cli/versioning/README.md

  • 8/17/2019 stardog-manual-4.0.5

    19/263

     data add data remove query

    V$2$)" R1$.$*).

    --after --before --committer

    R1-/$)"R1$.$*).

    V$2$)"D$6.

    $ stardog vcs commit --add add_file1.ttl add_file2.ttl --remove remove_file.ttl -m

    "This is an example commit" myDb

    $ stardog vcs commit --query update.sparql -m "This is another commit" myDb

    $ stardog vcs list myDb

    $ stardog vcs list --committer userName myDb

    $ stardog vcs revert myDb

    $ stardog vcs revert myDb de44369d-cc7b-4244-a3fb-3f6e271420b0

  • 8/17/2019 stardog-manual-4.0.5

    20/263

    U.$)"Ta".

    Q0-4$)"/#R1$.$*) H$./*-4

    E3+*-/$)"

     export

    DEFAULT ALL --named-graph

    N-TRIPLES, RDF/XML, TURTLE, TRIG N-TRIPLES

    TRIG

    $ stardog vcs diff myDb

    $ stardog vcs diff myDb de44369d-cc7b-4244-a3fb-3f6e271420b0

    $ stardog vcs tag --list myDb

    $ stardog vcs query myDb 'SELECT...'

    http://docs.stardog.com/man/data-export.htmlhttp://docs.stardog.com/man/data-export.html

  • 8/17/2019 stardog-manual-4.0.5

    21/263

    Sa-c#$)"

    Ma)a"$)" Sa-c#

    Sa-c#$)" 2$/# /# C*((a)d L$)

     search (a) +a"

    $ stardog data export --format TURTLE myDatabase myDatabase_output.ttl

    $ stardog data export --named-graph http://example.org/context myDatabase

    myDatabase_output.nt

    $ stardog help query search

    $ stardog query search -q "html" -l 10 catalog

    Index Score Hit

     ====================

     0 6.422 urn:x-domain:oreilly.com:product:9780596527402.IP1 6.422 urn:x-domain:oreilly.com:product:9780596003166.IP

    2 6.422 urn:x-domain:oreilly.com:product:9781565924949.IP

    3 6.422 urn:x-domain:oreilly.com:product:9780596002251.IP

    4 6.422 urn:x-domain:oreilly.com:product:9780596101978.IP

    5 6.422 urn:x-domain:oreilly.com:product:9780596154066.IP

     6 6.422 urn:x-domain:oreilly.com:product:9780596157616.IP

    http://docs.stardog.com/man/query-search.htmlhttp://docs.stardog.com/man/query-search.htmlhttp://docs.stardog.com/man/query-search.html

  • 8/17/2019 stardog-manual-4.0.5

    22/263

    G-a+# Sa-c#

    Ob!0.ca/$)"

     export

    RDF RDFS OWL

    ./a-d*"3a(+'. G$/#0b -+*

    7 6.422 urn:x-domain:oreilly.com:product:9780596805876.IP

     8 6.422 urn:x-domain:oreilly.com:product:9780596527273.IP

     9 6.422 urn:x-domain:oreilly.com:product:9780596002961.IP

    $ stardog data obfuscate myDatabase obfDatabase.ttl

    $ stardog data obfuscate --config obfConfig.ttl myDatabase obfDatabase.ttl

    https://github.com/Complexible/stardog-examples/blob/master/config/obfuscation.ttl:https://github.com/Complexible/stardog-examples/blob/master/config/obfuscation.ttl:

  • 8/17/2019 stardog-manual-4.0.5

    23/263

    B-*2.$)"

    http://foo:5820   foo

    A Sc-).#*/ T*0-…

    d*2)'*ad

    $ stardog query obfuscate --config obfConfig.ttl myDatabase myQuery.sparql >

     obfQuery.ttl

    http://foo:5820/http://stardog.com/http://stardog.com/http://foo:5820/

  • 8/17/2019 stardog-manual-4.0.5

    24/263

    WbC*).*'

  • 8/17/2019 stardog-manual-4.0.5

    25/263

    B-*2.$)" /#G-a+#

  • 8/17/2019 stardog-manual-4.0.5

    26/263

    Ma)a"$)"a Da/aba.

  • 8/17/2019 stardog-manual-4.0.5

    27/263

    Sa-c#$)"/#G-a+#

    Na(.+ac$)"

    Na(.+ac P-!$3 B$)d$)".

  • 8/17/2019 stardog-manual-4.0.5

    28/263

    http://api.stardog.com/

    :Alice a :Person ;

    :knows :Bob .

    $ stardog-admin db create -n mydb data.ttl

    $ stardog query mydb "SELECT * { ?person a :Person }"

    +--------+

    | person |

    +--------+| :Alice |

    +--------+

     Query returned 1 results inin 00: 00: 00.111

    $ stardog data export mydb

     @prefix : .

     @prefix owl: .

     @prefix rdf: .

    http://api.stardog.com/http://api.stardog.com/

  • 8/17/2019 stardog-manual-4.0.5

    29/263

    http://docs.stardog.com/man/query-status.htmlhttp://docs.stardog.com/man/query-list.htmlhttp://docs.stardog.com/man/query-kill.htmlhttp://docs.stardog.com/man/metadata-set.htmlhttp://docs.stardog.com/man/metadata-get.htmlhttp://docs.stardog.com/man/license-info.htmlhttp://docs.stardog.com/man/icv-remove.htmlhttp://docs.stardog.com/man/icv-drop.htmlhttp://docs.stardog.com/man/icv-add.htmlhttp://docs.stardog.com/man/db-status.htmlhttp://docs.stardog.com/man/db-restore.htmlhttp://docs.stardog.com/man/db-repair.htmlhttp://docs.stardog.com/man/db-optimize.htmlhttp://docs.stardog.com/man/db-online.htmlhttp://docs.stardog.com/man/db-online.htmlhttp://docs.stardog.com/man/db-offline.htmlhttp://docs.stardog.com/man/db-migrate.htmlhttp://docs.stardog.com/man/db-list.htmlhttp://docs.stardog.com/man/db-drop.htmlhttp://docs.stardog.com/man/db-create.htmlhttp://docs.stardog.com/man/db-copy.htmlhttp://docs.stardog.com/man/db-backup.htmlhttp://docs.stardog.com/man/cluster-zkstop.htmlhttp://docs.stardog.com/man/cluster-zkstart.htmlhttp://docs.stardog.com/man/cluster-proxystop.htmlhttp://docs.stardog.com/man/cluster-proxystart.htmlhttp://docs.stardog.com/man/cluster-info.htmlhttp://docs.stardog.com/man/cluster-generate.htmlhttp://docs.stardog.com/man/vcs-tag.htmlhttp://docs.stardog.com/man/vcs-revert.htmlhttp://docs.stardog.com/man/vcs-query.htmlhttp://docs.stardog.com/man/vcs-list.htmlhttp://docs.stardog.com/man/vcs-diff.htmlhttp://docs.stardog.com/man/vcs-commit.htmlhttp://docs.stardog.com/man/reasoning-undo.htmlhttp://docs.stardog.com/man/reasoning-schema.htmlhttp://docs.stardog.com/man/reasoning-explain.htmlhttp://docs.stardog.com/man/reasoning-consistency.htmlhttp://docs.stardog.com/man/query-search.htmlhttp://docs.stardog.com/man/query-obfuscate.htmlhttp://docs.stardog.com/man/query-explain.htmlhttp://docs.stardog.com/man/query-execute.htmlhttp://docs.stardog.com/man/namespace-remove.htmlhttp://docs.stardog.com/man/namespace-list.htmlhttp://docs.stardog.com/man/namespace-import.htmlhttp://docs.stardog.com/man/namespace-add.htmlhttp://docs.stardog.com/man/icv-validate.htmlhttp://docs.stardog.com/man/icv-fix.htmlhttp://docs.stardog.com/man/icv-export.htmlhttp://docs.stardog.com/man/icv-explain.htmlhttp://docs.stardog.com/man/icv-convert.htmlhttp://docs.stardog.com/man/data-size.htmlhttp://docs.stardog.com/man/data-remove.htmlhttp://docs.stardog.com/man/data-obfuscate.htmlhttp://docs.stardog.com/man/data-export.htmlhttp://docs.stardog.com/man/data-add.html

  • 8/17/2019 stardog-manual-4.0.5

    30/263

    role add   role grant   role list   role permission   role remove   role revoke

     server start   server status   server stop

    user add   user addrole   user disable   user enable   user grant   user list

    user passwd   user permission   user remove   user removerole   user revoke

     virtual add   virtual import   virtual list   virtual mappings   virtual

     options   virtual remove

    I)./a''$)"Ma)Pa". L*ca''4

    Ad($)$./-$)" S/a-d*"

    Sc0-$/4

    C*((a)dL$) I)/-!ac

     stardog-admin

     stardog

    $ cp docs/man/man1/* /usr/local/share/man1

    $ cp docs/man/man8/* /usr/local/share/man8$ mandb

    $ man stardog-admin-server-start

    http://docs.stardog.com/man/role-add.htmlhttp://docs.stardog.com/man/role-grant.htmlhttp://docs.stardog.com/man/role-list.htmlhttp://docs.stardog.com/man/role-permission.htmlhttp://docs.stardog.com/man/role-remove.htmlhttp://docs.stardog.com/man/role-revoke.htmlhttp://docs.stardog.com/man/server-start.htmlhttp://docs.stardog.com/man/server-status.htmlhttp://docs.stardog.com/man/server-stop.htmlhttp://docs.stardog.com/man/user-add.htmlhttp://docs.stardog.com/man/user-addrole.htmlhttp://docs.stardog.com/man/user-disable.htmlhttp://docs.stardog.com/man/user-enable.htmlhttp://docs.stardog.com/man/user-grant.htmlhttp://docs.stardog.com/man/user-list.htmlhttp://docs.stardog.com/man/user-passwd.htmlhttp://docs.stardog.com/man/user-permission.htmlhttp://docs.stardog.com/man/user-remove.htmlhttp://docs.stardog.com/man/user-removerole.htmlhttp://docs.stardog.com/man/user-revoke.htmlhttp://docs.stardog.com/man/virtual-add.htmlhttp://docs.stardog.com/man/virtual-import.htmlhttp://docs.stardog.com/man/virtual-list.htmlhttp://docs.stardog.com/man/virtual-mappings.htmlhttp://docs.stardog.com/man/virtual-options.htmlhttp://docs.stardog.com/man/virtual-options.htmlhttp://docs.stardog.com/man/virtual-remove.htmlhttp://docs.stardog.com/man/virtual-remove.htmlhttp://docs.stardog.com/man/virtual-options.htmlhttp://docs.stardog.com/man/virtual-options.htmlhttp://docs.stardog.com/man/virtual-mappings.htmlhttp://docs.stardog.com/man/virtual-list.htmlhttp://docs.stardog.com/man/virtual-import.htmlhttp://docs.stardog.com/man/virtual-add.htmlhttp://docs.stardog.com/man/user-revoke.htmlhttp://docs.stardog.com/man/user-removerole.htmlhttp://docs.stardog.com/man/user-remove.htmlhttp://docs.stardog.com/man/user-permission.htmlhttp://docs.stardog.com/man/user-passwd.htmlhttp://docs.stardog.com/man/user-list.htmlhttp://docs.stardog.com/man/user-grant.htmlhttp://docs.stardog.com/man/user-enable.htmlhttp://docs.stardog.com/man/user-disable.htmlhttp://docs.stardog.com/man/user-addrole.htmlhttp://docs.stardog.com/man/user-add.htmlhttp://docs.stardog.com/man/server-stop.htmlhttp://docs.stardog.com/man/server-status.htmlhttp://docs.stardog.com/man/server-start.htmlhttp://docs.stardog.com/man/role-revoke.htmlhttp://docs.stardog.com/man/role-remove.htmlhttp://docs.stardog.com/man/role-permission.htmlhttp://docs.stardog.com/man/role-list.htmlhttp://docs.stardog.com/man/role-grant.htmlhttp://docs.stardog.com/man/role-add.html

  • 8/17/2019 stardog-manual-4.0.5

    31/263

    H'+

    Sc0-$/4 C*).$d-a/$*).

     stardog-

     admin

     stardog

     stardog-admin

    Sc0-$/4

     stardog help

    $ stardog-admin help

    $ stardog

    $ stardog-admin

  • 8/17/2019 stardog-manual-4.0.5

    32/263

    C*((a)d G-*0+.

    (a) +a".

    $ stardog help [command_group_name]

    usage: stardog [ ]

    The most commonly used stardog commands are:

     data Commands which can modify or dump the contents of a database

    helphelp Display helphelp information

    icv Commands forfor working with with Stardog Integrity Constraint Constraint support

    namespace Commands which work work with with the namespaces defined forfor a database database

    queryquery Commands which queryquery a Stardog database database

  • 8/17/2019 stardog-manual-4.0.5

    33/263

     stardog-admin

    A0/*c*(+'/

    bash

    H*(b-2

    `.bash\_profile

    reasoning Commands which useuse the reasoning capabilities of of a Stardog database database

     version version Prints information about this version version of of Stardog

    See 'stardog help' forfor more information on on a specific command.

    $ stardog help query execute

    $ stardog reasoning consistency -u myUsername -p myPassword -r myDB

    $ stardog-admin db migrate -u myUsername -p myPassword myDb

    $ brew install bash-completion

    ifif [ -f `brew --prefix`/etc/bash_completion ]; thenthen

    . `brew --prefix`/etc/bash_completion

    fifi

  • 8/17/2019 stardog-manual-4.0.5

    34/263

    MacP*-/.

    .bash\_profile

    Ub0)/0

    Fd*-a

    A'' P'a/!*-(.

     stardog-completion.sh

    bash\_completion.d /etc/bash_completion.d, /usr/local/

     etc/bash_completion.d or ~/bash_completion.d.

    .bash_profile

    $ sudo port install bash-completion

    ifif [ -f /opt/local/etc/bash_completion ]; thenthen

    . /opt/local/etc/bash_completion

    fifi

    $ sudo apt-get install bash-completion

    $ sudo yum install bash-completion

     source ~/.stardog-completion.sh

  • 8/17/2019 stardog-manual-4.0.5

    35/263

  • 8/17/2019 stardog-manual-4.0.5

    36/263

    E3a(+' C*))c/$*)S/-$)".

    connectionOptions ; =

    S-1-Ad($)

    U+"-ad$)"S/a-d*"S-1-

    Q0$c& S/a-/ G0$d

    STARDOG_HOME

    STARDOG_HOME;:

    STARDOG_HOME

    {scheme}{machineName}:{port}/{databaseName};{connectionOptions}

     snarl://server/billion-triples-punk

    http://localhost:5000/myDatabase

    http://169.175.100.5:1111/myOtherDatabase;reasoning=true

     snarl://stardog:8888/the_database snarl://localhost:1024/db1;reasoning=true

  • 8/17/2019 stardog-manual-4.0.5

    37/263

    --home

    HTTP7 SNARL S-1- U)$!$ca/$*)

    --server

     stardog-admin

    --server -n

    S-1- Sc0-$/4

    Sc0-$/4

    C*)!$"0-$)"S/a-d*" S-1-

    Da/aba. Ad($)

     stardog.home

    STARDOG_HOME

     stardog.properties

    STARDOG_HOME

  • 8/17/2019 stardog-manual-4.0.5

    38/263

    C*)!$"0-$)"T(+*-a-4 Sc-a/c# S+ac

    java.io.tmpdir

    java.io.tmpdir

    java.io.tmpdir

    STARDOG_HOME;;

    S/a-d*"C*)!$"0-a/$*)

     stardog.properties

    ;<

    query.all.graphs true

    false

    query.timeout

    Ma)a"$)" Q0-$.

    logging.[access,audit].[enabled,type,file]

    logging.slow_query.enabled logging.slow_query.time

    logging.slow_query.type

     enabled true

    time

    type text binary

    logging.slow_query.time query.timeout

    http.max.request.parameters

    Integer.MAX_VALUE

    http.max.request.parameters

  • 8/17/2019 stardog-manual-4.0.5

    39/263

     database.connection.timeout

    h m s ms

    1h 5m 90s

    500ms 1h

    password.length.min

    password.length.min

    password.length.max 4

    password.length.max

    1024

    password.regex

    [\\w@#$%]+

     security.named.graphs false

     spatial.use.jts false

    S/a-/$)"7 S/*++$)" /#S-1-

     stardog-admin

     stardog.log

    $ stardog-admin server start

    $ stardog-admin server start --logfile mystardog.log --port= 8080

  • 8/17/2019 stardog-manual-4.0.5

    40/263

    --port

    --no-http --no-snarl

    --server

     0.0.0.0

    --bind server start

    S-1- M*)$/*-$)"2$/#Wa/c#d*"7 JMX

    Acc..$)"Wa/c#d*"

     GET /watchdog

    C*)!$"0-$)"Wa/c#d*"

    5833

     watchdog.port stardog.properties

     watchdog.remote.access false stardog.properties

     watchdog.enabled false stardog.properties

    $ stardog-admin server stop

  • 8/17/2019 stardog-manual-4.0.5

    41/263

    L*c&$)" S/a-d*"H*(

    STARDOG_HOME

    STARDOG_HOME

    STARDOG_HOME

    --home

    Acc.. 7 A0d$/ L*""$)"

     stardog.properties #//+."$/#0bc*(C*(+'3$b'./a-d*"3a(+'.b'*b(a./-

    c*)!$"./a-d*"+-*+-/$.

    Ja1a P-*"-a(($)"

    Ma)a"$)" Q0-$.

    Da/aba. Ad($)

    C*)!$"0-$)"a Da/aba.

    https://github.com/Complexible/stardog-examples/blob/master/config/stardog.propertieshttps://github.com/Complexible/stardog-examples/blob/master/config/stardog.propertieshttps://github.com/Complexible/stardog-examples/blob/master/config/stardog.propertieshttps://github.com/Complexible/stardog-examples/blob/master/config/stardog.properties

  • 8/17/2019 stardog-manual-4.0.5

    42/263

    metadata-get metadata-set Ma)

    Pa".

    C*)!$"0-a/$*)O+/$*).

    *3 Table of Config$!a#ion Op#ion"

    preserve.bnode.idspreserve.bnode.ids true Da/aba.O+/$*).PRESERVE

    FALSE

     database.archetypes database.archetypes Da/aba.O+/$*).ARCHETYP

     database.name database.name Da/aba.O+/$*).NAME

    [A-Za-z]{1}[A-Za-z

     database.namespaces database.namespaces rdf,

    rdfs,

     xsd, owl,

     stardog

    Da/aba.O+/$*).NAMESPA

     database.online database.online true Da/aba.O+/$*).ONLINE

    http://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#PRESERVE_BNODE_IDShttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#ARCHETYPEShttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#NAMEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#NAMESPACEShttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#ONLINEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#ONLINEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#NAMESPACEShttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#NAMEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#ARCHETYPEShttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#PRESERVE_BNODE_IDS

  • 8/17/2019 stardog-manual-4.0.5

    43/263

    icv.active.graphsicv.active.graphs default ICVO+/$*).ICVACTIVEGRA

    icv.active.graphs

    icv.consistency.automaticicv.consistency.automatic false ICVO+/$*).ICVCONSISTEN

    icv.enabledicv.enabled false ICVO+/$*).ICVENABLED

    icv.reasoning.enabledicv.reasoning.enabled false ICVO+/$*).ICVREASONING

    index.connection.timeoutindex.connection.timeout 3,600,000 I)d3O+/$*).INDEXCONNE

    index.differential.enable.limitindex.differential.enable.limit 500,000 I)d3O+/$*).DIFFINDEXM

    index.differential.merge.limitindex.differential.merge.limit 20,000 I)d3O+/$*).DIFFINDEXM

    index.literals.canonicalindex.literals.canonical true I)d3O+/$*).CANONICALL

    http://docs.stardog.com/java/snarl/com/complexible/stardog/icv/ICVOptions.html#ICV_ACTIVE_GRAPHShttp://docs.stardog.com/java/snarl/com/complexible/stardog/icv/ICVOptions.html#ICV_CONSISTENCY_AUTOMATIChttp://docs.stardog.com/java/snarl/com/complexible/stardog/icv/ICVOptions.html#ICV_ENABLEDhttp://docs.stardog.com/java/snarl/com/complexible/stardog/icv/ICVOptions.html#ICV_REASONING_ENABLEDhttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#INDEX_CONNECTION_TIMEOUT_MShttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#DIFF_INDEX_MIN_LIMIThttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#DIFF_INDEX_MAX_LIMIThttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#CANONICAL_LITERALShttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#CANONICAL_LITERALShttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#DIFF_INDEX_MAX_LIMIThttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#DIFF_INDEX_MIN_LIMIThttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#INDEX_CONNECTION_TIMEOUT_MShttp://docs.stardog.com/java/snarl/com/complexible/stardog/icv/ICVOptions.html#ICV_REASONING_ENABLEDhttp://docs.stardog.com/java/snarl/com/complexible/stardog/icv/ICVOptions.html#ICV_ENABLEDhttp://docs.stardog.com/java/snarl/com/complexible/stardog/icv/ICVOptions.html#ICV_CONSISTENCY_AUTOMATIChttp://docs.stardog.com/java/snarl/com/complexible/stardog/icv/ICVOptions.html#ICV_ACTIVE_GRAPHS

  • 8/17/2019 stardog-manual-4.0.5

    44/263

    index.named.graphsindex.named.graphs true I)d3O+/$*).INDEXNAMED

    index.persistindex.persist false I)d3O+/$*).PERSIST

    index.persist.syncindex.persist.sync true I)d3O+/$*).SYNC

    index.statistics.update.automaticindex.statistics.update.automatic true I)d3O+/$*).AUTOSTATS

    index.typeindex.type disk I)d3O+/$*).INDEXTYPE

    index.type

    query.timeoutquery.timeout Da/aba.O+/$*).QUERYTI

    reasoning.consistency.automaticreasoning.consistency.automatic false Ra.*)$)"O+/$*).CONSIST

    reasoning.punning.enabledreasoning.punning.enabled false Ra.*)$)"O+/$*).PUNNING

    reasoning.schema.graphsreasoning.schema.graphs * Ra.*)$)"O+/$*).SCHEMA

    http://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#INDEX_NAMED_GRAPHShttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#PERSISThttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#SYNChttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#AUTO_STATS_UPDATEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#INDEX_TYPEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#QUERY_TIMEOUThttp://docs.stardog.com/java/snarl/com/complexible/stardog/reasoning/ReasoningOptions.html#CONSISTENCY_AUTOMATIChttp://docs.stardog.com/java/snarl/com/complexible/stardog/reasoning/ReasoningOptions.html#PUNNING_ENABLEDhttp://docs.stardog.com/java/snarl/com/complexible/stardog/reasoning/ReasoningOptions.html#SCHEMA_GRAPHShttp://docs.stardog.com/java/snarl/com/complexible/stardog/reasoning/ReasoningOptions.html#SCHEMA_GRAPHShttp://docs.stardog.com/java/snarl/com/complexible/stardog/reasoning/ReasoningOptions.html#PUNNING_ENABLEDhttp://docs.stardog.com/java/snarl/com/complexible/stardog/reasoning/ReasoningOptions.html#CONSISTENCY_AUTOMATIChttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#QUERY_TIMEOUThttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#INDEX_TYPEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#AUTO_STATS_UPDATEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#SYNChttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#PERSISThttp://docs.stardog.com/java/snarl/com/complexible/stardog/index/IndexOptions.html#INDEX_NAMED_GRAPHS

  • 8/17/2019 stardog-manual-4.0.5

    45/263

    tag:stardog:ap

    tag:stardog:api:context:all

     default *

    reasoning.typereasoning.type SL

    SL RL QL EL DL R

    reasoning.approximatereasoning.approximate false Ra.*)$)"O+/$*).APPROXI

     search.enabled search.enabled false Sa-c#O+/$*).SEARCHABLE

     strict.parsing strict.parsing true Da/aba.O+/$*).STRICTPA

    true false

     search.reindex.mode search.reindex.mode async

     search.reindex.mode

    Q0a-/5 c-*) 3+-..$*)

     search.wildcard.search.enabled search.wildcard.search.enabled false Sa-c#O+/$*).LEADINGWI

     search.default.limit search.default.limit 10 Sa-c#O+/$*).SEARCHDEF

    http://docs.stardog.com/java/snarl/com/complexible/stardog/reasoning/ReasoningOptions.html#SCHEMA_GRAPHShttp://docs.stardog.com/java/snarl/com/complexible/stardog/search/SearchOptions.html#SEARCHABLEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#STRICT_PARSINGhttp://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontriggerhttp://docs.stardog.com/java/snarl/com/complexible/stardog/search/SearchOptions.html#LEADING_WILDCARD_SEARCH_ENABLEDhttp://docs.stardog.com/java/snarl/com/complexible/stardog/search/SearchOptions.html#SEARCH_DEFAULT_LIMIThttp://docs.stardog.com/java/snarl/com/complexible/stardog/search/SearchOptions.html#SEARCH_DEFAULT_LIMIThttp://docs.stardog.com/java/snarl/com/complexible/stardog/search/SearchOptions.html#LEADING_WILDCARD_SEARCH_ENABLEDhttp://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontriggerhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#STRICT_PARSINGhttp://docs.stardog.com/java/snarl/com/complexible/stardog/search/SearchOptions.html#SEARCHABLEhttp://docs.stardog.com/java/snarl/com/complexible/stardog/reasoning/ReasoningOptions.html#SCHEMA_GRAPHS

  • 8/17/2019 stardog-manual-4.0.5

    46/263

    transaction.isolationtransaction.isolation SNAPSHOT Da/aba.O+/$*).TRANSACT

    transaction.loggingtransaction.logging false Da/aba.O+/$*).TRANSACT

    transaction.logging.rotation.sizetransaction.logging.rotation.size 524288000 Da/aba.O+/$*).TRANSACT

    transaction.logging true

    transaction.logging.rotation.removetransaction.logging.rotation.remove true Da/aba.O+/$*).TRANSACT

    transaction.logging true

    query.all.graphsquery.all.graphs false Da/aba.O+/$*).QUERYAL

    true

    false

     spatial.enabled spatial.enabled false G*.+a/$a'O+/$*).SPATIAL

     spatial.precision spatial.precision 11 G*.+a/$a'O+/$*).SPATIAL

    A N*/ Ab*0/ Da/aba.S/a/0.

     offline

    http://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#TRANSACTION_ISOLATIONhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#TRANSACTION_LOGGINGhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#TRANSACTION_LOGGINGhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#TRANSACTION_LOGGINGhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#QUERY_ALL_GRAPHShttp://docs.stardog.com/java/snarl/com/complexible/stardog/spatial/GeospatialOptions.html#SPATIAL_ENABLEDhttp://docs.stardog.com/java/snarl/com/complexible/stardog/spatial/GeospatialOptions.html#SPATIAL_PRECISIONhttp://docs.stardog.com/java/snarl/com/complexible/stardog/spatial/GeospatialOptions.html#SPATIAL_PRECISIONhttp://docs.stardog.com/java/snarl/com/complexible/stardog/spatial/GeospatialOptions.html#SPATIAL_ENABLEDhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#QUERY_ALL_GRAPHShttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#TRANSACTION_LOGGINGhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#TRANSACTION_LOGGINGhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#TRANSACTION_LOGGINGhttp://docs.stardog.com/java/snarl/com/complexible/stardog/db/DatabaseOptions.html#TRANSACTION_ISOLATION

  • 8/17/2019 stardog-manual-4.0.5

    47/263

    Ma)a"$)"Da/aba.S/a/0.

    O)'$)a)dO6'$)

     stardog-admin help db

    E3a(+'.

    C-a/$)" a Da/aba.

    [A-Za-z]{1}[A-Za-z0-9_-]

    $ stardog-admin db offline myDatabase

    $ stardog-admin db online myDatabase

  • 8/17/2019 stardog-manual-4.0.5

    48/263

     system admin watchdog docs

     stardog-admin help db create

    Da/aba.A-c#/4+.

    PROV SKOS

    SKOSA-c#/4+

    http://www.w3.org/TR/prov-overview/http://www.w3.org/2004/02/skos/http://www.w3.org/2004/02/skos/http://www.w3.org/TR/prov-overview/

  • 8/17/2019 stardog-manual-4.0.5

    49/263

    PROVA-c#/4+

    U.-d!$)dA-c#/4+.

    S/a-d*" E3a(+'. -+*.$/*-4

    Da/aba.C-a/$*)T(+'a/.

    E3a(+'.

     database.name

    $ stardog-admin db create -n myDb input.ttl another_file.rdf moredata.rdf.gz

    $ stardog-admin db create -c database.properties

    https://github.com/Complexible/stardog-examples/blob/master/examples/foaf/readme.mdhttps://github.com/Complexible/stardog-examples/blob/master/examples/foaf/readme.md

  • 8/17/2019 stardog-manual-4.0.5

    50/263

     db create

    Da/aba.C-a/O+/$*).

     +3 Table of Op#ion" fo! S#a!dog5" create command 

    --name -n

    --copy-server-

     side

    false

    --type -t M D

    --index-triples-

     only -i

    false

    $ stardog-admin db create -n db -o icv.enabled=true icv.reasoning.enabled=true --

    input.ttl

  • 8/17/2019 stardog-manual-4.0.5

    51/263

    R+a$-$)"a Da/aba.

     system

    Bac&$)" U+a)d R./*-$)"

     export

     stardog-admin db backup stardog-admin db restore

    $ stardog-admin db repair myDB

    $ stardog-admin db repair system

  • 8/17/2019 stardog-manual-4.0.5

    52/263

    backup   restore

    Bac&0+

     stardog-admin db backup

    $STARDOG_HOME/.backup -t --to

    foobar

    R./*-

    $ stardog-admin db backup foobar

    $ stardog-admin db backup --to /my/network/share/stardog-backups foobar

    $ stardog-admin db restore $STARDOG_HOME/.backups/myDb/2012- 06-21

    http://docs.stardog.com/man/db-backup.htmlhttp://docs.stardog.com/man/db-restore.htmlhttp://docs.stardog.com/man/db-restore.htmlhttp://docs.stardog.com/man/db-backup.html

  • 8/17/2019 stardog-manual-4.0.5

    53/263

    O)/$( Da/aba.M$"-a/$*). !*-Bac&0+

    foobar

    Na(.+acP-!$3 B$)d$)".

    PREFIX

    PREFIX

    namespace

    $ stardog-admin db migrate foobar

    $ stardog query myDB "select * {?s rdf:type owl:Class}"

    $ stardog namespace add myDb --prefix ex --uri 'http://example.org/test#'

    $ stardog namespace remove myDb --prefix ex

    $ stardog namespace list myDB

  • 8/17/2019 stardog-manual-4.0.5

    54/263

    RDF, RDFS, XSD OWL

    SELECT

     CONSTRUCT

    I)d3S/-a/"$.

    FROM FROM NAMED

    index.named.graphs

    false -i --index-

    triples-only

    D$6-)/$a' I)d3.

  • 8/17/2019 stardog-manual-4.0.5

    55/263

    index.differential.merge.limit

    index.differential.enable.limit

    index.differential.merge.limit

    index.differential.merge.limit

    L*ad$)"C*(+-..dDa/a

    ;=

    GZIP a)dBZIP9

    create .gz .bz2

    test.ttl.gz

  • 8/17/2019 stardog-manual-4.0.5

    56/263

    ZIP

    .zip

    D-*++$)"a Da/aba.

     drop

    U.$)" I)/"-$/4C*)./-a$)/Va'$da/$*)

    Va'$da/$)"

    C*)./-a$)/.

    icv

    icv

     stardog help icv stardog-admin help icv

    M$"-a/$)" a Da/aba.

    migrate

    migrate

    $ stardog-admin db drop my_db

  • 8/17/2019 stardog-manual-4.0.5

    57/263

    myDatabase

    G//$)" Da/aba. I)!*-(a/$*)

    Ma)a"$)"Q0-$.

    C*)!$"0-$)"Q0-4Ma)a"()/

    query.timeout

    query.timeout

     0

    $ stardog-admin db migrate myDatabase

    $ stardog-admin metadata get my_db_name

    $ stardog-admin metadata get -o index.named.graphs my_db_name

  • 8/17/2019 stardog-manual-4.0.5

    58/263

    L$./$)" Q0-$.

    query list

    D'/$)"Q0-$.

    query kill

    A0/*(a/$ca''4K$''$)"Q0-$.

    $ stardog-admin query list

    +----+----------+-------+--------------+

    | ID | Database | User | Elapsed time |

    +----+----------+-------+--------------+

    | 2   | test   | admin | 00: 00:20.165 |

    | 3   | test   | admin | 00: 00:16.223 |

    | 4   | test   | admin | 00: 00: 08.769 |

    +----+----------+-------+--------------+

    3 queries running

    $ stardog-admin query kill 3

     Query 3 killed successfully

  • 8/17/2019 stardog-manual-4.0.5

    59/263

    query.timeout

    ;>

    query.timeout

    query.timeout 0

    query.timeout

    query.timeout

    Q0-4S/a/0.

    query status

    S'*2 Q0-4 L*""$)"

    $ stardog-admin query status 1

    Username: admin

    Database: test

    Started : 2013- 02- 06 09:10:45 AM

    Elapsed : 00: 01:19.187

     Query :

     select ?x ?p ?o1 ?y ?o2

     where {

    ?x ?p ?o1.

    ?y ?p ?o2.

    filter (?o1 > ?o2).

    }

     order by ?o1

    limit 5

  • 8/17/2019 stardog-manual-4.0.5

    60/263

    C*)!$"0-$)" S/a-d*" S-1-

    P-*/*c*'.a)dJa1a API

    S/a-d*". A+$a-4

    Ja1ad*c.

    Sc0-$/4a)dQ0-4 Ma)a"()/

    Ma)a"$)"Sa-c#

    U.$)" S/a-d*"

     search.enabled

     sync

     async

    c-*) 3+-..$*)

     search.reindex.mode

     sync async sync

     search.reindex.mode

    $ stardog-admin db create -o search.enabled=true -n myDb

    http://docs.stardog.apiary.io/http://docs.stardog.com/java/snarl/http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontriggerhttp://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontriggerhttp://docs.stardog.com/java/snarl/http://docs.stardog.apiary.io/

  • 8/17/2019 stardog-manual-4.0.5

    61/263

    ACID T-a).ac/$*).

    ;?

    A/*($c$/4

    ;@

    C*).$./)c4

    Va'$da/$)" C*)./-a$)/.

    I.*'a/$*)

    READ COMMITTED

    READ COMMITTED SNAPSHOT SERIALIZABLE

    transaction.isolation

    READ COMMITTED READ COMMITTED SNAPSHOT

    :x :val 1

    http://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committedhttp://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed

  • 8/17/2019 stardog-manual-4.0.5

    62/263

     ,3 Table of #he di(e!ence be#&een RCI and RCSI

     0 SELECT ?val {?x

    :val ?val}

    1

    SELECT ?val {?x

    :val ?val}

    1

    SELECT ?val {?x

    :val ?val}

    1

    1 BEGINBEGIN TXTX

    2 INSERT {:x :value

    2}

    DELETE {:x :value

    ?old}

    3 SELECT ?val {?x

    :val ?val}

    2

    SELECT ?val {?x

    :val ?val}

    1

    SELECT ?val {?x

    :val ?val}

    1

    4 BEGINBEGIN TXTX

    5 COMMIT COMMIT

     6 SELECT ?val {?x

    :val ?val}

    2

    SELECT ?val {?x

    :val ?val}

    2

    SELECT ?val {?x

    :val ?val}

    1

     8 INSERT {:x :value

    3}

    DELETE {:x :value

    ?old}

     9 COMMIT COMMIT

  • 8/17/2019 stardog-manual-4.0.5

    63/263

    10 SELECT ?val {?x

    :val ?val}

    3

    SELECT ?val {?x

    :val ?val}

    3

    SELECT ?val {?x

    :val ?val}

    3

    READ

     COMMITTED SNAPSHOT

    READ COMMITTED

    SNAPSHOT :counter :val 1

    1 2

    3

    SERIALIZABLE SERIALIZABLE

    D0-ab$'$/4

    C*(($/Fa$'0- A0/*-c*1-4

    INSERT { :counter :val ?newValue }DELETE { :counter :val ?oldValue }

     WHERE   { :counter :val ?oldValue

    BIND (?oldValue+1 AS ?newValue) }

  • 8/17/2019 stardog-manual-4.0.5

    64/263

    ;

     stardog-admin db online

    O+/$($5$)"B0'&Da/a L*ad$)"

    c*(+-..d da/a

    C*)!$"0-$)" a Da/aba.

    /-$+'. *)'4 $)d3$)"

  • 8/17/2019 stardog-manual-4.0.5

    65/263

    Ca+ac$/4P'a))$)"

    ;

    M(*-4 0.a"

    ;

    -3 Table of Memo!' U"age fo! Capaci#' Planning

  • 8/17/2019 stardog-manual-4.0.5

    66/263

    STARDOG_JAVA_ARGS

    "-Xms4g -Xmx4g -XX:MaxDirectMemorySize=8g"

    -Xms

    -Xmx

    S4./(M(*-4 a)d JVM M(*-4

    MaxDirectMemorySize

    D$.&0.a"

     .3 Table of T'pical Di"k Space Re$i!emen#"

  • 8/17/2019 stardog-manual-4.0.5

    67/263

    /-$+'.*)'4 $)d3$)"

    U.$)" S/a-d*" *)W$)d*2.

    .bat

     server start

     server stop

    .bat STARDOG_HOME STARDOG_JAVA_ARGS

  • 8/17/2019 stardog-manual-4.0.5

    68/263

     JAVA_HOME

    java

    R0))$)"S/a-d*" a.a W$)d*2.S-1$c

    I)./a''$)" /#S-1$c

    C*)!$"0-$)"/#S-1$c

    STARDOG_HOME

    STARDOG_MEMORY STARDOG_MEMORY

    STARDOG_HOME STARDOG_HOME STARDOG_HOME

    STARDOG_SERVICE_DISPLAY_NAME

    STARDOG_SERVICE_DISPLAY_NAME

    STARDOG_LOG_PATH

    STARDOG_LOG_PATH

    cd c:\stardog-$VERSION

  • 8/17/2019 stardog-manual-4.0.5

    69/263

     stop-

     service.bat -u -p

     stardog-admin server stop

    I)./a''$)"S/a-d*"a.a S-1$c

    install-service.bat

     services.msc

    S/a-/$)">S/*++$)">7 C#a)"$)"S-1$c C*)!$"0-a/$*)

     stardog-serverw.exe

    U)$)./a''$)" /#S/a-d*"S-1$c

    uninstall-service.bat

    Sc0-$/4

    A+ac# S#$-*

     %BC-4+/

    http://shiro.apache.org/http://www.mindrot.org/projects/jBCrypt/http://www.mindrot.org/projects/jBCrypt/http://shiro.apache.org/

  • 8/17/2019 stardog-manual-4.0.5

    70/263

    R.*0-c.

    type_prefix:name

    /3 Table of S'"#em Re"o$!ce"

    user user:admin

    role

    role:reader

     db db:myDB

    named-graph

    named-

     graph:myDb\named-graph-

    id

    metadata

    metadata:myDB

     admin

     admin:myDB

    icv-constraints

    icv-

    constraints:myDB

  • 8/17/2019 stardog-manual-4.0.5

    71/263

    P-($..$*).

    user role

     write

    INSERT DELETE

    create delete

    read

     write

    create

     delete

     grant

    revoke

  • 8/17/2019 stardog-manual-4.0.5

    72/263

     execute

     all

    W$'dca-d.

    *

    create

     db:*

    S0+-0.-.

     all *:*

    Da/aba.O2)-D!a0'/ P-($..$*).

     delete write read grant

    revoke

     write read grant revoke icv-

    constraints:theDatabase execute admin:theDatabase

    D!a0'/ Sc0-$/4 C*)!$"0-a/$*)

    user:admin user:anonymous

  • 8/17/2019 stardog-manual-4.0.5

    73/263

    role:reader

    read

    S//$)" Pa..2*-d C*)./-a$)/.

     stardog.properties

    password.length.min

    password.length.max

    4

    password.length.max

    20

    password.regex

    [\\w@#$%]+

    U.$)"a Pa..2*-dF$'

    .sdpass

     sdpass.conf Application

    Data\stardog

     stardog.passwd.file

    Pa..2*-d F$'F*-(a/

  • 8/17/2019 stardog-manual-4.0.5

    74/263

    #

    hostname:port:database:username:password

    *

    \

    Na(dG-a+#Sc0-$/4

    E3a(+'

     #this is my password file; there are no others like it and this one is mine anyway...

    *:*:*:flannery:aNahthu8

    *:*:summercamp:jemima:foh9Moaz

    $ stardog-admin user grant -a read -o named-graph:myDB\http://example.org/g1 myUser

    $ stardog-admin user grant -a write -o named-graph:myDB\http://example.org/g2 myUser

  • 8/17/2019 stardog-manual-4.0.5

    75/263

     security.named.graphs=true stardog.properties

    Na(dG-a+#O+-a/$*).

    H*2Na(dG-a+#P-($..$*).W*-&

    Q0-4$)"

     WHERE

  • 8/17/2019 stardog-manual-4.0.5

    76/263

    W-$/$)"

    Ra.*)$)"

    E)/-+-$.A0/#)/$ca/$*)

    cn groupOfNames

    member

  • 8/17/2019 stardog-manual-4.0.5

    77/263

    C*)!$"0-$)"S/a-d*"

     stardog.properties

     security.realms ldap

    ldap.provider.url

    ldap.security.principal

    ldap.security.credentials

    ldap.user.dn.template

    ldap.group.lookup.string

    ldap.users.cn cn

    ldap.superusers.cn cn

     dn: cn=stardogSuperUsers,ou=group,dc=example,dc=com

    cn: stardogSuperUsers

     objectclass: groupOfNames

    member: uid=superuser,ou=people,dc=example,dc=com

     dn: cn=stardogUsers,ou=group,dc=example,dc=com

    cn: stardogUsers

     objectclass: groupOfNames

    member: uid=regularuser,ou=people,dc=example,dc=com

    member: uid=anotherregularuser,ou=people,dc=example,dc=com

     dn: uid=superuser,ou=people,dc=example,dc=com

     objectClass: inetOrgPerson

    cn: superuser

     sn: superuser

    uid: superuser

    userPassword: superpassword

  • 8/17/2019 stardog-manual-4.0.5

    78/263

    ldap.cache.invalidate.time

    24h

    U.-Ma)a"()/

    A)LDAPQ0$-&

    read:user:$NEW_USER

    A0/#)/$ca/dU.-Cac#

     0ms

    A0/#*-$5a/$*)

     security.realms = ldap

    ldap.provider.url = ldap://localhost:5860

    ldap.security.principal = uid=admin,ou=people,dc=example,dc=com

    ldap.security.credentials = secret

    ldap.user.dn.template = uid={0},ou=people,dc=example,dc=com

    ldap.group.lookup.string = ou=group,dc=example,dc=com

    ldap.users.cn = stardogUsers

    ldap.superusers.cn = stardogSuperUsers

    ldap.cache.invalidate.time = 1h

  • 8/17/2019 stardog-manual-4.0.5

    79/263

    S/a'P-($..$*).R*'.

    Q0a-/5 c-*)

    3+-..$*)   ldap.consistency.scheduler.expression

    Ma)a"$)"S/a-d*" Sc0-'4

    U.-.

    create user:*

     delete

    read

     ## Execute the consistency cleanup at 6pm every day

    ldap.consistency.scheduler.expression = 0 0 18 * * ?

    http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontriggerhttp://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontriggerhttp://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontriggerhttp://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger

  • 8/17/2019 stardog-manual-4.0.5

    80/263

    read

    R*'.

    create role:*

     delete

     grant

    revoke

    Da/aba..

    create db:*

     delete db:theDatabase

  • 8/17/2019 stardog-manual-4.0.5

    81/263

     write icv-constraints:theDatabase

    read icv-constraints:theDatabase

     execute admin:theDatabase

     execute admin:theDatabase

     execute admin:theDatabase

    P-($..$*).

     grant

    revoke

  • 8/17/2019 stardog-manual-4.0.5

    82/263

    D+'*4$)"S/a-d*"Sc0-'4

  • 8/17/2019 stardog-manual-4.0.5

    83/263

  • 8/17/2019 stardog-manual-4.0.5

    84/263

    my-trusted-server.crt

  • 8/17/2019 stardog-manual-4.0.5

    85/263

  • 8/17/2019 stardog-manual-4.0.5

    86/263

  • 8/17/2019 stardog-manual-4.0.5

    87/263

    I)./a''

    STARDOG_HOME

     stardog.properties

    pack.zookeeper.address

    pack.cluster.username pack.cluster.password

    pack.node.address

    InetAddress.getLocalhost().getAddress()

     # Flag to enable the cluster, without this flag set, the rest of the properties

     have no effectpack.enabled=true

     # this node's IP address (or hostname) where other Stardog nodes are going to

     connect

    pack.node.address=196.69. 68.1

     # the connection string for ZooKeeper where cluster state is stored

    pack.zookeeper.address=196.69. 68.1:2180,196.69. 68.2:2180,196.69. 68.3:2180

     # credentials used for securing ZooKeeper state

    pack.cluster.username=pack

    pack.cluster.password=admin

  • 8/17/2019 stardog-manual-4.0.5

    88/263

    clientPort zookeeper.properties

    pack.cluster.address stardog.properties

    tickTime=2000

     # Make sure this directory exists and

     # ZK can write and read to and from it.

     dataDir=/data/zookeeperdata/

    clientPort=2180

    initLimit=5

     syncLimit=2

     # This is an enumeration of all nodes in

     # the cluster and must be identical in

     # each node's config.

     server.1=196.69. 68.1:2888:3888

     server.2=196.69. 68.2:2888:3888

     server.3=196.69. 68.3:2888:3888

    tickTime=2000

     dataDir=/data/zookeeperdata/

    clientPort=2180

    initLimit=5

     syncLimit=2

     server.1=196.69. 68.1:2888:3888

     server.2=196.69. 68.2:2888:3888

     server.3=196.69. 68.3:2888:3888

    tickTime=2000

     dataDir=/data/zookeeperdata/

    clientPort=2180

    initLimit=5

     syncLimit=2

     server.1=196.69. 68.1:2888:3888

     server.2=196.69. 68.2:2888:3888

     server.3=196.69. 68.3:2888:3888

  • 8/17/2019 stardog-manual-4.0.5

    89/263

     dataDir

    myid dataDir

    node1 node2

    I)./a''a/$*)

    /data/zookeeperdata/myid # on node 1

    $ echo 2 > /data/zookeeperdata/myid # on node 2

    $ echo 3 > /data/zookeeperdata/myid # on node 3

    $ ./stardog-admin cluster zkstart --home ~/stardog # on node 1

    $ ./stardog-admin cluster zkstart --home ~/stardog # on node 2

    $ ./stardog-admin cluster zkstart --home ~/stardog # on node 3

  • 8/17/2019 stardog-manual-4.0.5

    90/263

    $STARDOG_HOME ~/stardog --home

    5821

    5820

    5820

    *7$c$a' .$/

    haproxy.cfg

    $ ./stardog-admin help cluster zkstart

    $ ./stardog-admin server start --home ~/stardog --port 5821 # on node 1

    $ ./stardog-admin server start --home ~/stardog --port 5821 # on node 2

    $ ./stardog-admin server start --home ~/stardog --port 5821 # on node 3

    $ sudo apt-get update

    $ sudo apt-get install haproxy

     global global

     daemon

    maxconn 256

    http://www.haproxy.org/http://www.haproxy.org/

  • 8/17/2019 stardog-manual-4.0.5

    91/263

     defaults

    timeout connect 5s

    timeout client 1h

    timeout server 1h

     # where HAProxy will listen for connections

    frontend stardog-in

     option tcpka # keep-alive

    bind *:5820

     default_backend stardogs

     # the Stardog servers - we use sticky sessions

    backend stardogs

     option tcpka # keep-alive

     # sticks the client to a given server for the duration of the connection

     # using the destination IP address

     stick-table type integer size 200k expire 30m

     stick on dst

     # these three lines perform a health check

     # they will check that the node accepts connections and

     # that it's operational within the cluster

     option tcp-check

    tcp-check send-binary 50494e47 # PING

    tcp-check expect binary 504F4e47 # PONG

     # replace these IP addresses with the corresponding node address

     server stardog1 196.69.68.1:5821 maxconn 32 check

     server stardog2 196.69.68.2:5821 maxconn 32 check

     server stardog3 196.69.68.3:5821 maxconn 32 check

     global global

     daemon

    maxconn 256

     defaults

    timeout connect 5s

    timeout client 1h

    timeout server 1h

    frontend stardog-in

  • 8/17/2019 stardog-manual-4.0.5

    92/263

    *7$c$a' d*c0()/a/$*)

    5820

     option tcpka # keep-alive

    bind *:5820

     default_backend stardogs

    backend stardogs

    mode http

     # this line serves the same purpose as PING/PONG in tcp mode

     option httpchk GET /admin/healthcheck

     # replace these IP addresses with the corresponding node address

     server stardog1 196.69.68.1:5821 maxconn 32 check

     server stardog2 196.69.68.2:5821 maxconn 32 check

     server stardog3 196.69.68.3:5821 maxconn 32 check

    $ haproxy -f haproxy.cfg

    $ ./stardog-admin db create -n myDb

    $ ./stardog data add myDb /path/to/my/data

    $ ./stardog query myDb "select * { ?s ?p ?o } limit 5"

    $ ./stardog-admin server stop

    http://www.haproxy.org/#docshttp://www.haproxy.org/#docs

  • 8/17/2019 stardog-manual-4.0.5

    93/263

    R0))$)"S/a-d*" C'0./- *)a S$)"'Mac#$)

    STARDOG_HOME

    5820

    5820

     watchdog.port

     stardog.properties

    /data/zookeeperdata

    C*)!$"0-a/$*) I..0.

    T*+*'*"$.7 S$5

    n

  • 8/17/2019 stardog-manual-4.0.5

    94/263

    O+) F$'L$($/.

    ulimit -n

  • 8/17/2019 stardog-manual-4.0.5

    95/263

    Ma)a"()/

    S/a-d*" R'a.

    BOSH

    P$1*/a' C'*0d F*0)d-4

    S/a-d*" R'a.

    BOSH d*c.

    L$($/a/$*).

    G-a+# Sa-c#

    http://github.com/complexible/stardog-releasehttp://bosh.io/http://https//run.pivotal.io/http://github.com/complexible/stardog-releasehttp://bosh.io/docshttp://bosh.io/docshttp://github.com/complexible/stardog-releasehttp://https//run.pivotal.io/http://bosh.io/http://github.com/complexible/stardog-release

  • 8/17/2019 stardog-manual-4.0.5

    96/263

    I)d3$)" S/-a/"4

    U.-d!$)d L0c) A)a'45-

    Ma$)/a$)$)" Sa-c# I)d3.

    C*)!$"0-a/$*) O+/$*).

    I)/"-a/$*)2$/#SPARQLtag:stardog:api:property:textMatch

    http://jena.hpl.hp.com/ARQ/property#textMatch

    textMatch

    50 LIMIT

    ?s ?p ?l

    SELECT DISTINCT ?s ?score

     WHERE {

    ?s ?p ?l.

    ( ?l ?score ) ( 'mac' 0.5 50 ).

    }

  • 8/17/2019 stardog-manual-4.0.5

    97/263

    ?s rdf:type ex:Book

    E.ca+$)"C#a-ac/-. $) Sa-c#

    .ca+d

    Sa-c#S4)/a3

    .a-c# (*d$!$-.

    ? *

     ~ ~ foo~0.8

    "semantic web"~5

     OR AND NOT , and ̀ -

    L0c) d*c.

    OWL 7 R0' Ra.*)$)"

    http://lucene.apache.org/core/4_0_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#Escaping_Special_Charactershttp://lucene.apache.org/core/5_3_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_descriptionhttp://lucene.apache.org/core/4_2_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_descriptionhttp://lucene.apache.org/core/4_2_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_descriptionhttp://lucene.apache.org/core/5_3_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_descriptionhttp://lucene.apache.org/core/4_0_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#Escaping_Special_Characters

  • 8/17/2019 stardog-manual-4.0.5

    98/263

    OWL < D$-c/ S(a)/$c. E)/a$'()/

    R"$(

    =;

    Sa( A. Ra.*)$)"

    Ra.*)$)" T4+.

    reasoning

    -r --reasoning

    a c*))c/$*) *+/$*) a ,0-4 *+/$*)

    false

    true

    reasoning.type

    reasoning.type

    reasoning.type SL

    SL

    RDFS RDF Sc#(a

     QL OWL < QL   RL OWL < RL   EL OWL

    http://www.w3.org/TR/2010/WD-sparql11-entailment-20100126/#id45013http://www.w3.org/TR/2010/WD-sparql11-entailment-20100126/#id45013http://docs.stardog.com/java/snarl/com/complexible/stardog/api/ConnectionConfiguration.html#reasoning(boolean)http://docs.stardog.com/java/snarl/com/complexible/stardog/api/Query.html#reasoning(boolean)http://www.w3.org/TR/rdf-schema/http://www.w3.org/TR/owl2-profiles/#OWL_2_QLhttp://www.w3.org/TR/owl2-profiles/#OWL_2_RLhttp://www.w3.org/TR/owl2-profiles/#OWL_2_ELhttp://www.w3.org/TR/owl2-profiles/#OWL_2_ELhttp://www.w3.org/TR/owl2-profiles/#OWL_2_RLhttp://www.w3.org/TR/owl2-profiles/#OWL_2_QLhttp://www.w3.org/TR/rdf-schema/http://docs.stardog.com/java/snarl/com/complexible/stardog/api/Query.html#reasoning(boolean)http://docs.stardog.com/java/snarl/com/complexible/stardog/api/ConnectionConfiguration.html#reasoning(boolean)http://www.w3.org/TR/2010/WD-sparql11-entailment-20100126/#id45013http://www.w3.org/TR/2010/WD-sparql11-entailment-20100126/#id45013

  • 8/17/2019 stardog-manual-4.0.5

    99/263

    < EL   DL OWL < DL a3$*(.   SL

    SWRL -0'.

    DL

    Q0-4 R2-$/$)"

    DL

    /# OWL < DL -./-$c/$*).   DL

    DL

    DL

    reasoning.type NONE

    U.$)"Ra.*)$)"

    =<

    reasoning.schema.graphs

    tag:stardog:api:context:default

    tag:stardog:api:context:all

    http://www.w3.org/TR/owl2-profiles/#OWL_2_ELhttp://www.w3.org/TR/2012/REC-owl2-syntax-20121211/http://www.w3.org/Submission/SWRL/http://www.w3.org/TR/2012/REC-owl2-syntax-20121211/#Global_Restrictions_on_Axioms_in_OWL_2_DLhttp://www.w3.org/TR/2012/REC-owl2-syntax-20121211/#Global_Restrictions_on_Axioms_in_OWL_2_DLhttp://www.w3.org/Submission/SWRL/http://www.w3.org/TR/2012/REC-owl2-syntax-20121211/http://www.w3.org/TR/owl2-profiles/#OWL_2_EL

  • 8/17/2019 stardog-manual-4.0.5

    100/263

    tag:stardog:api:context:all

    Q0-4A).2-$)"

    C*((a)d L$)

    HTTP

    Ra.*)$)" C*))c/$*)API

    ReasoningConnection Ja1a

    P-*"-a(($)"

    isConsistent()

    $ ./stardog query --reasoning myDB "SELECT ?s { ?s a :C } LIMIT 10"

    $ curl -u admin:admin -X GET "http://localhost:5822/myDB/

    query?reasoning=true&query=..."

  • 8/17/2019 stardog-manual-4.0.5

    101/263

    isSatisfiable(URI theURIClass)

    E3+'a$)$)"Ra.*)$)"R.0'/.

    ==

    S/a-d*". 3/)dd HTTP +-*/*c*' d$.c0..$*) *! SNARL#//+."$/#0bc*(C*(+'3$b'./a-d*"3a(+'.

    P-**!T-.

    =>

    E3a(+'

    :Alice rdf:type :Employee

    $ stardog reasoning explain myDB inference_to_explain.ttl

    https://github.com/Complexible/stardog-examples/https://github.com/Complexible/stardog-examples/

  • 8/17/2019 stardog-manual-4.0.5

    102/263

    INFERRED :Alice rdf:type :Employee

    INFERRED :Alice rdf:type :Employee ASSERTED :Manager rdfs:subClassOf :Employee

    INFERRED :Alice rdf:type :Manager

    INFERRED :Alice rdf:type :Employee

     ASSERTED :Manager rdfs:subClassOf :Employee

    INFERRED :Alice rdf:type :Manager

     ASSERTED :Alice :supervises :Bob

     ASSERTED :supervises rdfs:domain :Manager

    #schema#schema

    :Manager rdfs:subClassOf :Employee

    :ProjectManager rdfs:subClassOf :Manager

    :ProjectManager owl:equivalentClass (:manages some :Project)

    :supervises rdfs:domain :Manager

    :ResearchProject rdfs:subClassOf :Project

    :projectID rdfs:domain :Project

    #instance#instance data

    :Alice :supervises :Bob

    :Alice :manages :ProjectX

    :ProjectX a :ResearchProject

    :ProjectX :projectID "123-45-6789"

  • 8/17/2019 stardog-manual-4.0.5

    103/263

    :Alice

    rdf:type :Employee

    E3+'a)a/$*)8

    E3+'a)a/$*)9

    E3+'a)a/$*):

    :Manager rdfs:subClassOf :Employee

    :ProjectManager rdfs:subClassOf :Manager

    :supervises rdfs:domain :Manager

    :Alice :supervises :Bob

    :Manager rdfs:subClassOf :Employee

    :ProjectManager rdfs:subClassOf :Manager

    :ProjectManager owl:equivalentClass (:manages some :Project)

    :ResearchProject rdfs:subClassOf :Project:Alice :manages :ProjectX

    :ProjectX a :ResearchProject

    :Manager rdfs:subClassOf :Employee

    :ProjectManager rdfs:subClassOf :Manager

    :ProjectManager owl:equivalentClass (:manages some :Project)

    :projectID rdfs:domain :Project

    :Alice :manages :ProjectX

    :ProjectX :projectID "123-45-6789"

    INFERRED :Alice a :Employee

     ASSERTED :Manager rdfs:subClassOf :Employee

    1.1) INFERRED :Alice a :Manager

     ASSERTED :supervises rdfs:domain :Manager

     ASSERTED :Alice :supervises :Bob

    1.2) INFERRED :Alice a :Manager

  • 8/17/2019 stardog-manual-4.0.5

    104/263

    :Alice a :Manager

    1

    1.1 1.2 1

    :ProjectX a :Project 2.1

    2.2

    U.-d!$)d R0'Ra.*)$)"

    SWRL

     ASSERTED :ProjectManager rdfs:subClassOf :Manager

    INFERRED :Alice a :ProjectManager

     ASSERTED :ProjectManager owl:equivalentClass (:manages some :Project)

     ASSERTED :Alice :manages :ProjectX

    2.1) INFERRED :ProjectX a :Project

     ASSERTED :projectID rdfs:domain :Project

     ASSERTED :ProjectX :projectID "123-45-6789"

    2.2) INFERRED :ProjectX a :Project

     ASSERTED :ResearchProject rdfs:subClassOf :Project

     ASSERTED :ProjectX a :ResearchProject

    http://www.w3.org/Submission/SWRL/http://www.w3.org/Submission/SWRL/

  • 8/17/2019 stardog-manual-4.0.5

    105/263

    S/a-d*"R0'.S4)/a3

    IF-THEN=?

    H*2/*U.S/a-d*"R0'.

  • 8/17/2019 stardog-manual-4.0.5

    106/263

    reasoning.schema.graphs

    =@

    tag:stardog:api:rule: content

    SPARQLRule

     @prefix rule: .

    [] a rule:SPARQLRule;

    rule:content """

    ...la di dah the rule goes here!

    """.

     @prefix rule: .

    [] a rule:SPARQLRule ;

    rule:content """

    PREFIX :IF {

    ?r a :Rectangle ;

    :width ?w ;

    :height ?h

    BIND (?w * ?h AS ?area)

    }

    THEN {

    ?r :area ?area

    }""" .

  • 8/17/2019 stardog-manual-4.0.5

    107/263

    R0' L$($/a/$*).7 G*/c#a.

    tag:stardog:api:rule:

     @prefix

    urn:test:

    foo:Example

    IF THEN

    S/a-d*" R0'.E3a(+'.

    PREFIX rule:

    PREFIX :

    PREFIX gr:

    :Product1 gr:hasPriceSpecification [ gr:hasCurrencyValue 100.0 ] .

    :Product2 gr:hasPriceSpecification [ gr:hasCurrencyValue 500.0 ] .

    :Product3 gr:hasPriceSpecification [ gr:hasCurrencyValue 2000.0 ] .

    [] a rule:SPARQLRule ;

    rule:content """PREFIX xsd:

    PREFIX gr:

    PREFIX :

    IF {

    ?offering gr:hasPriceSpecification ?ps .

    ?ps gr:hasCurrencyValue ?price .

  • 8/17/2019 stardog-manual-4.0.5

    108/263

    :Product…

    FILTER

    FILTER (?price >= 200.00).

    }

    THEN {

    ?offering a :ExpensiveProduct .

    }

    """.

    PREFIX rule:

    PREFIX :

    :c a :Circle ;

    :radius 10 .

    :t a :Triangle ;

    :base 4 ;

    :height 10 .

    :r a :Rectangle ;

    :width 5 ;

    :height 8 .

    :s a :Rectangle ;

    :width 10 ;

    :height 10 .

    [] a rule:SPARQLRule ;

    rule:content """

    PREFIX :

    IF {

    ?r a :Rectangle ;

    :width ?w ;

    :height ?h

    BIND (?w * ?h AS ?area)

    }

    THEN {

    ?r :area ?area

    }""" .

  • 8/17/2019 stardog-manual-4.0.5

    109/263

    BIND

    [] a rule:SPARQLRule ;

    rule:content """

    PREFIX :

    IF {

    ?t a :Triangle ;

    :base ?b ;

    :height ?h

    BIND (?b * ?h / 2 AS ?area)

    }

    THEN {

    ?t :area ?area

    }""" .

    [] a rule:SPARQLRule ;

    rule:content """

    PREFIX :

    PREFIX math:

    IF {

    ?c a :Circle ;

    :radius ?r

    BIND (math:pi() * math:pow(?r, 2) AS ?area)

    }

    THEN {

    ?c :area ?area

    }""" .

    [] a rule:SPARQLRule ;

    rule:content """

    PREFIX :

    IF {

    ?r a :Rectangle ;

    :width ?w ;

    :height ?h

    FILTER (?w = ?h)

    }

    THEN {

    ?r a :Square}""" .

  • 8/17/2019 stardog-manual-4.0.5

    110/263

    THEN

    PREFIX swrlb: 

    PREFIX xsd: 

    IF {

    ?x a :Person; hasAge ?age.

    FILTER (?age >= 13 && ?age

  • 8/17/2019 stardog-manual-4.0.5

    111/263

    S0++*-/d B0$'/I).

    #-

    S+c$a' P-d$ca/.

    IF {

    ?x a :Male; :isSiblingOf/:isParentOf ?z

    }THEN {

    ?x :isUncleOf ?z.

    }

    IF {

    ?x a :SuperUser.

    ?y a :Resource.?z a .

    }

    THEN {

    ?z a :Role.

    ?x :hasRole ?z; :readPermission ?y.

    }

  • 8/17/2019 stardog-manual-4.0.5

    112/263

    D$-c/S/-$c/S0bc'a...> S0b+-*+-/$.> 7 D$-c/T4+.

    rdf:type rdfs:subClassOf

    rdfs:subPropertyOf

     sp:directType

     sp:directSubClassOf

     sp:strictSubClassOf

     sp:directSubPropertyOf

     sp:strictSubPropertyOf

     sp tag:stardog:api:property:

     sesame:directType sesame:directSubClassOf sesame:strictSubClassOf

     sesame   http://www.openrdf.org/schema/sesame#

     #c1 is a subclass of c2 but not equivalent to c2

    :c1 sp: strictSubClassOf :c2   =>   :c1 rdfs: subClassOf :c2 .

    FILTER NOT EXISTS {

    :c1 owl: equivalentClass :c2 .

    }

     #c1 is a strict subclass of c2 and there is no c3 between c1 and c2 in

     #the strict subclass hierarchy

    :c1 sp: directSubClassOf :c2   =>   :c1 sp: strictSubClassOf :c2 .

    FILTER NOT EXISTS {

    :c1 sp: strictSubClassOf :c3 .

    :c3 sp: strictSubClassOf :c2 .

    }

     #ind is an instance of c1 but not an instance of any strict subclass of c1

    :ind sp: directType :c1   =>   :ind rdf:type :c1 .

    FILTER NOT EXISTS {

    http://www.openrdf.org/schema/sesamehttp://www.openrdf.org/schema/sesame

  • 8/17/2019 stardog-manual-4.0.5

    113/263

     sp:directSubPropertyOf sp:strictSubPropertyOf

    N2I)d$1$d0a'. 2$/#SWRL

    UUID()

    :ind rdf:type :c2 .

    :c2 sp: strictSubClassOf :c1 .

    }

    IFIF {

    ?p a :ParentParent .

    BIND (UUID() AS AS ?parentparent) .

    }

    THEN {

    ?parentparent a :Person .

    }

  • 8/17/2019 stardog-manual-4.0.5

    114/263

    http://www.w3.org/ns/

     sparql#UUID

    :Parent

    :Person

    R(a-&.

    IFIF {

    ?person a :Person .

    BIND (UUID() AS AS ?parentparent) .

    }

    THEN {

    ?parentparent a :ParentParent ;

     a :Male .

    }

    IFIF {

    ?person a :Person .

    BIND (UUID() AS AS ?parentparent) .

    }

    THEN {

    ?parentparent a :ParentParent .

    }

    IFIF {

    ?person a :Person .

    BIND (UUID() AS AS ?parentparent) .

    }

    http://www.w3.org/ns/sparql#UUIDhttp://www.w3.org/ns/sparql#UUIDhttp://www.w3.org/ns/sparql#UUIDhttp://www.w3.org/ns/sparql#UUID

  • 8/17/2019 stardog-manual-4.0.5

    115/263

    :Male

    :Parent

    :Father

    Q0-4 R2-$/$)"

    THEN {

    ?parentparent a :Male .

    }

    IFIF {

    ?person a :Father .

    }

    THEN {?parentparent a :ParentParent ;

     a :Male .

    }

    IFIF {

    ?person a :Person .

    BIND (UUID() AS AS ?parentparent) .}

    THEN {

    ?parentparent a :Father .

    }

  • 8/17/2019 stardog-manual-4.0.5

    116/263

    *3 Fig$!e * Q$e!' An"&e!ing

     +3 Fig$!e +3 Q$e!' Re&!i#ing

    :SeniorManager rdfs:subClassOf :manages some :Manager

    :manages some :Employee rdfs:subClassOf :Manager

    :Manager rdfs:subClassOf :Employee

  • 8/17/2019 stardog-manual-4.0.5

    117/263

    W#4Q0-4R2-$/$)"

    :Bill rdf:type :SeniorManager

    :Robert rdf:type :Manager

    :Ana :manages :Lucy

    :Lucy rdf:type :Employee

    SELECTSELECT ?employee WHERE WHERE { ?employee rdf:type :Employee }

    SELECTSELECT ?employee WHERE WHERE { ?employee rdf:type :Employee }

    SELECTSELECT ?employee WHERE WHERE { ?employee rdf:type :Manager }

    SELECTSELECT ?employee WHERE WHERE { ?employee rdf:type :SeniorManager }

    SELECTSELECT ?employee WHERE WHERE { ?employee :manages ?x. ?x rdf:type :Employee }

  • 8/17/2019 stardog-manual-4.0.5

    118/263

    Sa(A.Ra.*)$)"

     sameAs sameAs

     sameAs

     sameAs

     sameAs reasoning.sameas

    $ ./stardog-admin db create -o reasoning.sameas=FULL -n myDB

  • 8/17/2019 stardog-manual-4.0.5

    119/263

     OFF sameAs sameAs

    =

     ON sameAs sameAs

     sameAs

    FULL ON

    hasKey sameAs

     sameAs

     sameAs

     sameAs

     sameAs ON

     dbpedia:Elvis_Presley

     dbpedia-owl:birthPlace dbpedia:Mississippi ;

     owl:sameAs freebase:en.elvis_presley .

    nyt:presley_elvis_pernyt:associated_article_count 35 ;

    rdfs:label "Elvis Presley" ;

     owl:sameAs dbpedia:Elvis_Presley .

    freebase:en.elvis_presley

    freebase:common.topic.official_website .

    $ ./stardog query --reasoning elvis 'SELECT * { ?s dbpedia-owl:birthPlace ?o;

    rdfs:label "Elvis Presley" }'

  • 8/17/2019 stardog-manual-4.0.5

    120/263

     sameAs

     sameAs

    rdfs:label dbpedia-owl:birthPlace

     sameAs

    +-----------------------+---------------------+

    | s | o |

    +-----------------------+---------------------+

    | nyt:presley_elvis_per | dbpedia:Mississippi |

    +-----------------------+---------------------+

    SELECT * {

    nyt:presley_elvis_per owl:sameAs ?elvis .

    ?elvis ?p ?o

    }

    SELECT * {

    nyt:presley_elvis_per ?p ?o

    }

  • 8/17/2019 stardog-manual-4.0.5

    121/263

     sameAs

    FULL sameAs

     sameAs

    +----------------------------------------+-----------------------+

    | p | o |

    +----------------------------------------+-----------------------+

    | rdfs:label | "Elvis Presley"   |

    | dbpedia-owl:birthPlace | dbpedia:Mississippi |

    | nyt:associated_article_count | 35   |

    | freebase:common.topic.official_website | http://www.elvis.com/ |

    | rdf:type   | owl:Thing |

    +----------------------------------------+-----------------------+

    SELECT * {

     dbpedia:Elvis_Presley nyt:presley_elvis_per ?p ?o

    }

    $ ./stardog query -r elvis 'SELECT * { freebase:en.elvis_presley owl:sameAs ?elvis }'

    +---------------------------+

    | elvis |

    +---------------------------+

    | dbpedia:Elvis_Presley |

    | freebase:en.elvis_presley |

    | nyt:presley_elvis_per |

    +---------------------------+

    #Everyone#Everyone has a unique SSN number

    :hasSSN a owl:InverseFunctionalProperty , owl:DatatypeProperty .

  • 8/17/2019 stardog-manual-4.0.5

    122/263

     sameAs FULL

    :JohnDoe :hasSSN "123-45-6789" .

    :JDoe :hasSSN "123-45-6789" .

    #Nobody#Nobody can work for more than one company (for the sake of the example)

    :worksFor a owl:FunctionalProperty , owl:ObjectProperty ;

    rdfs:domain :Employee ;

    rdfs:range :Company .

    :JohnDoe :worksFor :Acme .

    :JDoe :worksFor :AcmeInc .

    #For#For each company, there can only be one employee with the same employee ID

    :Employee owl:hasKey (:employeeID :worksFor ).

    :JohnDoe :employeeID "1234-ABC" .

    :JohnD :employeeID "1234-ABC" ;

    :worksFor :AcmeInc .

    :JD :employeeID "5678-XYZ" ;

    :worksFor :AcmeInc .

    :John :employeeID "1234-ABC" ;

    :worksFor :Emca .

    $ ./stardog query -r acme "SELECT * {?x owl:sameAs ?y}"

    +----------+----------+

    | x | y |

    +----------+----------+

    | :JohnDoe | :JohnD |

    | :JDoe | :JohnD |

    | :Acme | :AcmeInc |

    +----------+----------+

  • 8/17/2019 stardog-manual-4.0.5

    123/263

    :JohnDoe owl:sameAs :JohnD

    hasSSN

    :Acme owl:sameAs :AcmeInc :JohnDoe

    :JohnDoe owl:sameAs :JohnD owl:hasKey

     sameAs

    R(*1$)"U)2a)/d I)!-)c.

    reasoning explain

    reasoning undo

    P-!*-(a)c H$)/.

    H$-a-c#$.a)dQ0-$.

    $ ./reasoning undo myDB ":AcmeInc a :Person"

  • 8/17/2019 stardog-manual-4.0.5

    124/263

    :Employee

    :Ci :Employee

    D*(a$).a)dRa)".

    :Employee

    :Manager rdfs:subClassOf :Employee

    :SeniorManager rdfs:subClassOf :Manager

    ...

    :Supervisor rdfs:subClassOf :Employee

    :DepartmentSupervisor rdfs:subClassOf :Supervisor

    ...

    :Secretary rdfs:subClassOf :Employee

    ...

    SELECTSELECT ?employee WHERE WHERE { ?employee rdf:type :Ci }

    SELECT ?manager ? employee WHERE

    { ?manager :manages ?employee.

    ?employee rdf:type :Employee. }

  • 8/17/2019 stardog-manual-4.0.5

    125/263

    V-4 La-"Sc#(a.

    OWL < EL   EL

    Ra.*)$)" T4+.

    N*/ S$)"E3+c/dR.0'/.

    A-1a-$ab'/4+. a(b$"0*0.

    :manages rdfs:range :Employee

    SELECT ?manager ? employee WHERE { ?manager :manages ?employee }

    http://www.w3.org/TR/2012/REC-owl2-profiles-20121211/#OWL_2_ELhttp://www.w3.org/TR/2012/REC-owl2-profiles-20121211/#OWL_2_EL

  • 8/17/2019 stardog-manual-4.0.5

    126/263

    -'1a)/ ./a)da-d

    ?i ?p "a literal" ?p

    ?s ?p ?o

    =

    ?var a TYPE TYPE

    ?var

     owl:ObjectProperty owl:DatatypeProperty

     owl:NamedIndividual owl:Class

    ?s

    ?s ?o

    ?s

    I./#.c#(a2#-4*0/#$)&$/$.

    c*)!$"0-a/$*) *+/$*).

    SELECT ?o

     WHERE {

    ?s rdf:type ?o.

    ?s a owl: ObjectProperty.

    }.

    http://www.w3.org/TR/sparql11-entailment/#OWLDSEnRegimehttp://www.w3.org/TR/sparql11-entailment/#OWLDSEnRegime

  • 8/17/2019 stardog-manual-4.0.5

    127/263

    reasoning schema

    A- 4*00.$)" /#-$"#/ -a.*)$)" /4+

    SL

    A-4*00.$)"DL

    A-4*00.$)"SWRL

    D*4*0&)*22#a//*3+c/

    OWL < +-$(-

    K)*2) I..0.

     owl:imports

    http://docs.stardog.com/man/reasoning-schema.htmlhttp://www.w3.org/TR/owl2-primer/http://www.w3.org/TR/owl2-primer/http://docs.stardog.com/man/reasoning-schema.html

  • 8/17/2019 stardog-manual-4.0.5

    128/263

    T-($)*'*"4

    Da/aba..

    OWL < P-*!$'.

    :complexible :complexible :Stardog

    :complexible rdf:type :Company

    :complexible :maintains :Stardog

    :Company rdfs:subClassOf :Organization

  • 8/17/2019 stardog-manual-4.0.5

    129/263

    Q0-$.

    rdf:type

     owl:differentFrom

     owl:sameAs

    rdfs:subClassOf

     owl:disjointWith

     owl:equivalentClass

    rdfs:subPropertyOf

     owl:equivalentProperty

     owl:inverseOf

     owl:propertyDisjointWith

    rdfs:domain

    rdfs:range

    rdf:type

  • 8/17/2019 stardog-manual-4.0.5

    130/263

    Ra.*)$)"

    :complexible

    :complexible rdf:type :Company

    :Company rdfs:subClassOf :Organization

    :complexible rdf:type :Organization

    SELECTSELECT ?org WHERE WHERE { ?org rdf:type :Organization}

    SELECTSELECT ?org WHERE WHERE

    { { ?org rdf:type :Organization } UNIONUNION

    { ?org rdf:type :Company } UNIONUNION

    ...

    }

  • 8/17/2019 stardog-manual-4.0.5

    131/263

    :LLC

    :LLC

    :complexible

    :LLC :LLC

    :LLC

    :Company :Organization

    OWL 9 P-*!$'.

    OWL < Wb O)/*'*"4 La)"0a" P-*!$'. S+c$!$ca/$*)

    OWL < QL

    :Company owl:disjointWith :Organization

    :LLC owl:equivalentClass :Company and :Organization

    http://www.w3.org/TR/owl2-profiles/http://www.w3.org/TR/owl2-profiles/#OWL_2_QLhttp://www.w3.org/TR/owl2-profiles/#OWL_2_QLhttp://www.w3.org/TR/owl2-profiles/

  • 8/17/2019 stardog-manual-4.0.5

    132/263

    OWL < EL

    OWL < RL

    Va'$da/$)" C*)./-a$)/.

    http://www.w3.org/TR/owl2-profiles/#OWL_2_ELhttp://www.w3.org/TR/owl2-profiles/#OWL_2_RLhttp://www.w3.org/TR/owl2-profiles/#OWL_2_RLhttp://www.w3.org/TR/owl2-profiles/#OWL_2_EL

  • 8/17/2019 stardog-manual-4.0.5

    133/263

    ICV .+c$!$ca/$*)

    G//$)" S/a-/d 2$/# ICV

    3/)dd ICV /0/*-$a'

    ICV7OWL9Ra.*)$)"

    OWL 9 R0' Ra.*)$)"

    http://docs.stardog.com/icv/icv-specification.htmlhttps://github.com/Complexible/stardog-examples/tree/master/examples/cli/icvhttps://github.com/Complexible/stardog-examples/tree/master/examples/cli/icvhttp://docs.stardog.com/icv/icv-specification.html

  • 8/17/2019 stardog-manual-4.0.5

    134/263

    U.$)"ICV!-*(CLI

    $ stardog-admin icv add myDb constraints.rdf

    $ stardog-admin icv drop myDb

    $ stardog-admin icv remove myDb constraints.rdf

    $ stardog icv convert myDb out.rdf

    $ stardog explain --contexts http://example.org/context1 http://example.org/context2

    $ stardog icv export myDb constraints.rdf

    $ stardog validate --contexts http://example.org/context1 http://example.org/context2

  • 8/17/2019 stardog-manual-4.0.5

    135/263

    ICV G0a-d M*d

    E3+'a$)$)" ICVV$*'a/$*).

    P-**! T-.

    Sc0-$/4 N*/

    $ ./stardog-admin db offline --timeout 0 myDb #take the database offline

    $ ./stardog-admin db metadata set -o icv.enabled=true myDb #enable ICV 

    $ ./stardog-admin db online myDb #put the database online

    $ stardog icv explain --reasoning "myDB"

    $ stardog icv explain --reasoning "myDB" constraints.ttl

  • 8/17/2019 stardog-manual-4.0.5

    136/263

    R+a$-$)" ICVV$*'a/$*).

    icv fix

    --execute

    icv fix

    icv

    fix

    ICVE3a(+'.

    !*-(a' .(a)/$c.

    OWL *)/*'*"4 UML d$a"-a(

    http://example.com/company.owl#   xsd:

    http://www.w3.org/2001/XMLSchema#

    R!-)c Ja1a c*d

    $ stardog help icv fix

    http://docs.stardog.com/icv/icv-specification.htmlhttp://docs.stardog.com/icv/company.owlhttp://docs.stardog.com/icv/ClassDiagram.pnghttp://example.com/company.owlhttp://www.w3.org/2001/XMLSchemahttps://gist.github.com/1333767https://gist.github.com/1333767http://www.w3.org/2001/XMLSchemahttp://example.com/company.owlhttp://docs.stardog.com/icv/ClassDiagram.pnghttp://docs.stardog.com/icv/company.owlhttp://docs.stardog.com/icv/icv-specification.html

  • 8/17/2019 stardog-manual-4.0.5

    137/263

    S0b.0(+/$*)C*)./-a$)/.

    Ma)a"-.(0./ b(+'*4.=

    C*)./-a$)/

    Da/aba.A $)1a'$d

    Da/aba.B 1a'$d

    Manager

    Employee Manager Alice

    Employee Alice Manager

    Employee

    D*(a$)Ra)"C*)./-a$)/.

    O)'4 +-*%c/ 'ad-.ca) b -.+*).$b' !*-+-*%c/.=

    C*)./-a$)/

    :Manager rdfs:subClassOf :Employee

    :Alice a :Manager .

    :Alice a :Manager , :Employee .

    :is_responsible_for rdfs:domain :Project_Leader

  • 8/17/2019 stardog-manual-4.0.5

    138/263

    Da/aba.A $)1a'$d

    Da/aba.B $)1a'$d

    Da/aba.C 1a'$d

    is_responsible_for Project_Leader

    Project

    is_responsible_for (Alice, MyProject) MyProject

    Project Alice Project_Leader

     Alice Project_Leader MyProject

    Project Alice Project_Leader

    MyProject Project

    O)'4(+'*4. ca) #a1a)SSN=

    C*)./-a$)/

    Da/aba.A $)1a'$d

    :Alice :is_responsible_for :MyProject .

    :MyProject a :Project .

    :Alice a :Project_Leader ;

    :is_responsible_for :MyProject .

    :Alice a :Project_Leader ;

    :is_responsible_for :MyProject .

    :MyProject a :Project .

    :ssn rdfs:domain :Employee

    :Bob :ssn "123-45-6789" .

  • 8/17/2019 stardog-manual-4.0.5

    139/263

    Da/aba.B 1a'$d

    i SSNi Employee Bob Employee

    SSN Bob Employee

    Ada/*!b$-/#(0./bada/=

    C*)./-a$)/

    Da/aba.A $)1a'$d

    Da/aba.B 1a'$d

    i l DOB

    l xsd:date Bob

    "1970-01-01" DOB "1970-01-01"

    Pa-/$c$+a/$*)C*)./-a$)/.

    :Bob a :Employee ;

    :ssn "123-45-6789" .

    :dob rdfs:range xsd:date

    :Bob :dob "1970-01-01" .

    :Bob :dob "1970-01-01"^ ̂xsd:date

  • 8/17/2019 stardog-manual-4.0.5

    140/263

    Eac# .0+-1$.*-(0./ .0+-1$.a/ 'a./*)(+'*4=

    C*)./-a$)/

    Da/aba.A 1a'$d

    Da/aba.B $)1a'$d

    Da/aba.C $)1a'$d

    Da/aba.D 1a'$d

    i Supervisor ij supervises j

    Employee Supervisor

    Supervisor Alice

     Alice Bob supervises Bob Employee

     #this constraint is very concise in Terp syntax:

     #:Supervisor rdfs:subClassOf (:supervises some :Employee)

    :Supervisor rdfs: subClassOf

    [ a owl:Restriction ;

     owl: onProperty :supervises ;

     owl: someValuesFrom :Employee

    ] .

    :Alice a owl:Thing .

    :Alice a :Supervisor .

    :Alice a :Supervisor ;

    :supervises :Bob .

    :Alice a :Supervisor ;

    :supervises :Bob .

    :Bob a :Employee

  • 8/17/2019 stardog-manual-4.0.5

    141/263

     Alice Bob supervises Bob

    Employee

    Eac# +-*%c/ (0./ #a1 a 1a'$d+-*%c/ )0(b-=

    C*)./-a$)/

    Da/aba.A 1a'$d

    Da/aba.B $)1a'$d

    Da/aba.C $)1a'$d

    Da/aba.D $)1a'$d

     #Again, this constraint in Terp syntax rocks the hizzous:

     #:Project rdfs:subClassOf (:number some xsd:integer[>= 0, < 5000])

    :Project rdfs:subClassOf

    [ a owl:Restriction ;

     owl:onProperty :number ;

     owl:someValuesFrom

    [ a rdfs:Datatype ;

     owl:onDatatype xsd:integer ;

     owl:withRestrictions ([xsd:minInclusive 0] [ xsd:maxExclusive 5000])

    ]

    ] .

    :MyProject a owl:Thing .

    :MyProject a :Project

    :MyProject a :Project ;

    :number "23" .

    :MyProject a :Project ;

    :number "6000"^ ̂xsd:integer .

  • 8/17/2019 stardog-manual-4.0.5

    142/263

    Da/aba.E 1a'$d

    i Project inumber 0 5000

    MyProject

    Project MyProject

    Project number

    MyProject number "23"

    MyProject

    number MyProject

    23 [0,5000]

    Ca-d$)a'$/4C*)./-a$)/.

    E(+'*4.(0./)*/2*-&*)(*-/#a):+-*%c/.=

    C*)./-a$)/

    Da/aba.A 1a'$d

    :MyProject a :Project ;

    :number "23"^ ̂xsd:integer .

     #Constraint in Terp syntax:

     #:Employee rdfs:subClassOf (:works_on max 3 :Project)

    :Employee rdfs: subClassOf

    [ a owl:Restriction ;

     owl: onProperty :works_on;

     owl:maxQualifiedCardinality "3"^ ̂xsd:nonNegativeInteger ;

     owl: onClass :Project

    ] .

    :Bob a owl:Thing.

  • 8/17/2019 stardog-manual-4.0.5

    143/263

    Da/aba.B 1a'$d

    Da/aba.C $)1a'$d

    i Employee i works_on

    Project Bob Employee

    Bob Employee

    MyProject Bob

    Project works_on

    =

    >:

    :Bob a :Employee ;

    :works_on :MyProject .

    :MyProject a :Project .

    :Bob a :Employee ;

    :works_on :MyProject , :MyProjectFoo , :MyProjectBar , :MyProjectBaz .

    :MyProject a :Project .

    :MyProjectFoo a :Project .

    :MyProjectBar a :Project .

    :MyProjectBaz a :Project .

  • 8/17/2019 stardog-manual-4.0.5

    144/263

    D+a-/()/.(0./ #a1 a/ 'a./9 (+'*4.=

    C*)./-a$)/

    Da/aba.A 1a'$d

    Da/aba.B $)1a'$d

    Da/aba.C 1a'$d

    i Department

    j k Employee i works_in

    i works_in MyDepartment

    Department

     #Constraint in Terp syntax:

     #:Department rdfs:subClassOf (inverse :works_in min 2 :Employee)

    :Department rdfs: subClassOf

    [ a owl:Restriction ;

     owl: onProperty [ owl:inverseOf :works_in] ;

     owl:minQualifiedCardinality "2"^ ̂xsd:nonNegativeInteger ;

     owl: onClass :Employee

    ] .

    [source,sparql]

    :MyDepartment a owl:NamedIndividual .

    :MyDepartment a :Department .

    :Bob a :Employee ;

    :works_in :MyDepartment .

    [source,sparql]

    :MyDepartment a :Department .

    :Alice a :Employee ;

    :works_in :MyDepartment .

    :Bob a :Employee ;

    :works_in :MyDepartment .

  • 8/17/2019 stardog-manual-4.0.5

    145/263

    MyDepartment Department Employee

    Bob MyDepartment

    Bob Alice Employee

    Ma)a"-.(0./ (a)a" 3ac/'48 d+a-/()/=

    C*)./-a$)/

    Da/aba.A 1a'$d

    Da/aba.B $)1a'$d

    Da/aba.C $)1a'$d

    Da/aba.D 1a'$d