1 / 11

Building Linked Data Applications with PHP and ARC2

This guide provides a comprehensive overview of using PHP with ARC2 to build linked data applications. ARC2 is a PHP-based library that supports various RDF parsers, extractors, and serializers. Learn how to set up a local SPARQL store, load RDF data like FOAF, and perform complex queries to extract information such as friends' workplaces and their locations. We also cover querying a remote store like DBpedia to enrich your data. Ideal for developers interested in semantic web technologies and data integration.

charla
Télécharger la présentation

Building Linked Data Applications with PHP and ARC2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Using PHP in Linked Data Applications Jie Bao Oct 12

  2. ARC2 • ARC2 is PHP-based • Various RDF parsers and extractors (RDF/XML, Turtle, RSS, microformats, eRDF, RDFa, ...) • Serializers (N-Triples, RDF/JSON, RDF/XML, Turtle) • RDF Storage, SPARQL Query, and Update  • http://arc.semsol.org/

  3. PHP Program <?php echo “Hello World”; ?> Can be run in dual modes: http://localhost/hello.php php hello.php

  4. Task today • Load Lalana’sfoaf file at http://www.csail.mit.edu/~lkagal/foaf • Extract her friends • Look at the friends’ FOAF files, see where they work • Use the workplace URI or the labels to query dbpedia for it’s location • Print a list of friends, their workplaces and where the workplaces are located

  5. Getting Started <?php include_once("./ARC2/arc/ARC2.php"); $parser = ARC2::getRDFParser(); $parser->parse('http://www.csail.mit.edu/~lkagal/foaf'); $triples = $parser->getTriples(); foreach($triples as $triple){ print_r($triple); } ?> 1 Load Lalana’sfoaffile at http://www.csail.mit.edu/~lkagal/foaf

  6. Setup Local Triple Store • We will use a SPARQL query • Need to setup a local database for that (ARC2 uses MySQL) $config = array( 'db_name' => 'arc2', 'db_user' => 'arc2', 'db_pwd' => 'arc2‘, 'store_name' => 'arc_tests' ); $store = ARC2::getStore($config); if (!$store->isSetUp()) { $store->setUp(); } $store->query( ‘LOAD < 'http://www.csail.mit.edu/~lkagal/foaf >'); 2. Extract her friends

  7. Do Some Query $q = ' PREFIX foaf: <http://xmlns.com/foaf/0.1/> . SELECT ?person ?name WHERE { <http://people.csail.mit.edu/lkagal/foaf#me> foaf:knows ?person . ?person foaf:name ?name . } '; echo "<table>"; if ($rows = $store->query($q, 'rows')) { foreach ($rows as $row) { $foafURL = $row['person']; echo '<li>' . $row['name'] . '<br/>' . $foafURL . "</li>\n“; } } 3. Look at the friends’ FOAF files, see where they work

  8. Do a More Complicated Query http://dbpedia.org/sparql SPARQL Endpoint: PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX type: <http://dbpedia.org/class/yago/> PREFIX prop: <http://dbpedia.org/property/> PREFIX ont: <http://dbpedia.org/ontology/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> SELECT DISTINCT ?label ?lat ?long WHERE { { {?resource prop:website <""" + workplace + """>.} UNION {?resource foaf:homepage <""" + workplace + """>} } { {?resource ont:location ?location. OPTIONAL {?location geo:lat ?lat. ?location geo:long ?long.} OPTIONAL {?location rdfs:label ?label.} } UNION {?subject prop:employer ?resource} UNION {?subject prop:institution ?resource} UNION {?subject prop:workInstitution ?resource} UNION {?subject prop:workInstitutions ?resource} UNION {?subject prop:workplaces ?resource} UNION {?subject ont:occupation ?resource} OPTIONAL {?resource geo:lat ?lat. ?resource geo:long ?long.} OPTIONAL {?resource rdfs:label ?label.} }} 4. Use the workplace URI or the labels to query dbpedia for it’s location

  9. Query a Remote Store $config_dbpedia = array( /* remote endpoint */ 'remote_store_endpoint' => 'http://dbpedia.org/sparql' ); $store_dbpedia = ARC2::getRemoteStore($config_dbpedia); $q = ' PREFIX foaf: <http://xmlns.com/foaf/0.1/> . SELECT ?name ?person ?workplace WHERE { <http://people.csail.mit.edu/lkagal/foaf#me> foaf:knows ?person . ?person foaf:workplaceHomepage ?workplace . OPTIONAL {?person foaf:name ?name } }'; $rows = $store->query($q, 'rows')) ; 4. Use the workplace URI or the labels to query dbpedia for it’s location

  10. Visualize your result 5. Print a list of friends, their workplaces and where the workplaces are located

  11. Demo and Questions

More Related