21
How We Use Epimorphics Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project Linyun Fu 2013-03-06

How We Use Epimorphics Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

  • Upload
    march

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

How We Use Epimorphics Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project. Linyun Fu 2013-03-06. Linked Data API. ELDA Stands for Epimorphics Linked Data API Java open-source implementation - PowerPoint PPT Presentation

Citation preview

Page 1: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

How We Use Epimorphics Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Linyun Fu2013-03-06

Page 2: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Linked Data API• ELDA Stands for Epimorphics Linked Data API– Java open-source implementation

• Linked Data API Specification: http://code.google.com/p/linked-data-api/wiki/Specification– http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocabs – http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocab/nims – http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocab/nims/te

rm/0008

– http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocab/nims/terms

– http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocab/nims/term/0008/narrower

Page 3: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

ELDA• Linked data API introduction by Epimorphics Ltd.:

http://www.epimorphics.com/web/projects/linked-data-api • Downloadable from

http://code.google.com/p/elda/downloads/list • java -jar elda-VERSION.jar• Quick start doc:

http://elda.googlecode.com/hg/deliver-elda/src/main/webapp/lda-assets/docs/E1.2.19-index.html

• Installing CMSPV Vocabulary Service: http://tw.rpi.edu/web/project/CMSPV/InstallingVocabularyService

Page 4: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

System architecture

Page 5: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Next steps

• Identifying an endpoint• Binding variables• Selecting resources• Viewing resources• Formatting graphs

• All done with spec files

Page 6: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Spec files• sample spec file:

https://scm.escience.rpi.edu/svn/public/projects/cmspv/branches/elda/specs/cmspv.spec.ttl

• in /{path/to}/Elda_standalone_{version}/webapps/elda/WEB-INF/web.xml: <servlet>

<servlet-name>loader-init</servlet-name> <servlet-class>com.epimorphics.lda.routing.Loader</servlet-class> <init-param> <param-name>com.epimorphics.api.initialSpecFile</param-name> <param-value>cmspv::specs/cmspv.spec.ttl </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>

Page 7: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Identifying an endpointspec:api a api:API;...api:sparqlEndpoint <http://localhost:3030/cmspv/query>;

#api:sparqlEndpoint <local:data/example-data.ttl>api:base "http://aquarius.tw.rpi.edu:8047/elda/cmspv";

...api:variable[api:name "base"; api:value "http://cmspv.tw.rpi.edu/rdf"],

...

Page 8: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Binding variablesspec:api a api:API;...

api:sparqlEndpoint <http://localhost:3030/cmspv/query>;

#api:sparqlEndpoint <local:data/example-data.ttl>api:base "http://aquarius.tw.rpi.edu:8047/elda/cmspv";

...api:variable[api:name "base"; api:value "http://cmspv.tw.rpi.edu/rdf"],

...

Page 9: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Selecting resourcesspec:vocabulariesEndpointa api:ListEndpoint;api:uriTemplate "/vocabs";api:exampleRequestPath "/vocabs";api:selector [api:where "?item rdf:type skos:ConceptScheme. ?item skos:prefLabel ?label.";api:orderBy "?label";];.

http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocabs api:base is "http://aquarius.tw.rpi.edu:8047/elda/cmspv"

Page 10: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

More examples

spec:vocabularyEndpointa api:ItemEndpoint;api:uriTemplate "/vocab/{vocabulary}";api:itemTemplate "{base}/vocab/{vocabulary}";api:exampleRequestPath "/vocab/nims";.

http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocab/nims

shows resource: http://cmspv.tw.rpi.edu/rdf/vocab/nims{base} = http://cmspv.tw.rpi.edu/rdf; {vocabulary} = nims

Page 11: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

spec:termEndpointa api:ItemEndpoint;api:uriTemplate "/vocab/{vocabulary}/term/{term}";api:itemTemplate "{base}/vocab/{vocabulary}/term/{term}";api:exampleRequestPath "/vocab/nims/term/0008"; .

http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocab/nims/term/0008

Page 12: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

spec:vocabularyTermsEndpointa api:ListEndpoint;rdfs:comment "I am making an assumption that I can easily map the scheme URI based on the Linked Data URI";api:uriTemplate "/vocab/{vocabulary}/terms";api:exampleRequestPath "/vocab/nims/terms";api:variable [ api:name "scheme";api:value "{base}/vocab/{vocabulary}";api:type rdfs:Resource;] ;api:selector [api:where "?item skos:inScheme ?scheme. ?item skos:prefLabel ?label.";api:orderBy "?label";] ;.

http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocab/nims/terms

Page 13: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

spec:NarrowerTermsEndpointa api:ListEndpoint;api:uriTemplate "/vocab/{vocabulary}/term/{term}/narrower";api:exampleRequestPath "/vocab/nims/term/0008/narrower";api:variable [ api:name "concept";api:value "{base}/vocab/{vocabulary}/term/{term}";api:type rdfs:Resource;] ;api:selector [api:where "?concept skos:narrower ?item. ?item skos:prefLabel ?label.";api:orderBy "?label";] ;.

http://aquarius.tw.rpi.edu:8047/elda/cmspv/vocab/nims/term/0008/narrower

Page 14: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Viewing resources, formatting graphs

spec:SKOSViewera api:Viewer;api:name "SKOS Viewer";api:include api:labelledDescribeViewer;extras:describeAllLabel skos:prefLabel;.

spec:htmlFormattera api:XsltFormatter;api:name "html";api:mimeType "text/html; charset=utf-8";api:stylesheet "lda-assets/xslt/cmspv.xsl";.

Page 15: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

A broader chain viewerspec:broaderChainViewer

a api:Viewer;api:name "Broader Chain Viewer";api:include api:describeViewer;api:properties "prefLabel, broader.prefLabel, broader.broader.prefLabel, broader.broader.broader.prefLabel" .

spec:broaderChainEndpointa api:ItemEndpoint;api:uriTemplate "/vocab/{vocabulary}/term/{term}/broaderChain";api:itemTemplate "{base}/vocab/{vocabulary}/term/{term}";api:exampleRequestPath "/vocab/nims/term/0038/broaderChain";api:defaultViewer spec:broaderChainViewer; .

Page 16: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Don’t forgetspec:api

a api:API;

api:viewerspec:broaderChainViewer,

api:endpointspec:broaderChainEndpoint,

skos:broadera rdf:Property;api:label "broader";.

skos:prefLabela rdf:Property;api:label "prefLabel";.

Page 17: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

/vocab/nims/term/0032/broaderChain

Page 18: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Using Fuseki assemblercmspv-assembler.ttl:@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .

<#dataset> a ja:RDFDataset ;ja:defaultGraph [a ja:OntModel ;ja:ontModelSpec ja:OWL_MEM_MICRO_RULE_INF ;ja:content [ja:externalContent <http://www.w3.org/2009/08/skos-reference/skos.rdf>, <file:////projects/cmspv/branches/initial_rdf/skos/nims.ttl>] ].

Run fuseki with: fuseki-server --desc=cmspv-assembler.ttl /cmspv

Page 19: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Cherry-pick the rules@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .@prefix : <#> .

<#dataset> a ja:RDFDataset ;ja:graph :inf .

:inf a ja:InfModel ;ja:baseModel :data ;ja:reasoner[ ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ; ja:rulesFrom <file:////projects/cmspv/branches/fuseki/skos.rules>] .

:data a ja:MemoryModel ;ja:content [ja:externalContent <http://www.w3.org/2009/08/skos-reference/skos.rdf>, <file:////projects/cmspv/branches/initial_rdf/skos/nims.ttl>] .

Page 20: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

The rules file# RDFS Closure rules[rdfs6: (?p rdfs:subPropertyOf ?q), notEqual(?p,?q) -> table(?p, ?q),

[ (?a ?q ?b) <- (?a ?p ?b)] ]

# inverseOf[inverseOf1: (?P owl:inverseOf ?Q) -> (?Q owl:inverseOf ?P) ][inverseOf2: (?P owl:inverseOf ?Q) -> table(?P), table(?Q), [inverseOf2b:

(?X ?P ?Y) <- (?Y ?Q ?X)] ]

# TransitiveProperty[transitiveProperty1: (?P rdf:type owl:TransitiveProperty) -> table(?P),

[transitiveProperty1b: (?A ?P ?C) <- bound (?C), (?B ?P ?C), (?A ?P ?B)] [transitiveProperty1b: (?A ?P ?C) <- unbound (?C), (?A ?P ?B) (?B ?P ?C)] ]

# SymmetricProperty[symmetricProperty1: (?P rdf:type owl:SymmetricProperty) -> table(?P), [symmetricProperty1b: (?X ?P ?Y) <- (?Y ?P ?X)] ]

Page 21: How We Use  Epimorphics  Linked Data API (ELDA) in Costal and Marine Spatial Planning Vocabulary project

Direct access

• SPARQL endpoint: http://aquarius.tw.rpi.edu:3047/post.html

• RDF file: https://scm.escience.rpi.edu/svn/public/projects/cmspv/branches/initial_rdf/skos/nims.ttl