From 61d111b2d75811eb7ab377a5a064416b03f4fb0d Mon Sep 17 00:00:00 2001 From: "M.Scholz" Date: Mon, 5 Dec 2011 12:39:56 +0100 Subject: [PATCH] SemanticWebApp --- ws2011/BP/QS-Dokument/QS-Dokument.pdf | Bin 69434 -> 69649 bytes ws2011/BP/QS-Dokument/QS-Dokument.tex | 4 +- .../1. Bonus Aufgabe/SemanticWebApp/.DS_Store | Bin 0 -> 6148 bytes .../1. Bonus Aufgabe/SemanticWebApp/index.php | 48 +++ .../SemanticWebApp/logic/controller.php | 120 +++++++ .../logic/freebaseController.php | 24 ++ .../SemanticWebApp/logic/mdbController.php | 28 ++ .../SemanticWebApp/logos/freebase.jpg | Bin 0 -> 3212 bytes .../SemanticWebApp/logos/mdb.png | Bin 0 -> 22291 bytes .../nbproject/private/config.properties | 0 .../nbproject/private/private.properties | 5 + .../nbproject/private/private.xml | 9 + .../nbproject/private/private.xml.0.nblh~ | 4 + .../nbproject/project.properties | 7 + .../SemanticWebApp/nbproject/project.xml | 9 + .../SemanticWebApp/rdfLib/.DS_Store | Bin 0 -> 6148 bytes .../SemanticWebApp/rdfLib/sparqllib.php | 335 ++++++++++++++++++ 17 files changed, 591 insertions(+), 2 deletions(-) create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/.DS_Store create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/index.php create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/controller.php create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/freebaseController.php create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/mdbController.php create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logos/freebase.jpg create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logos/mdb.png create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/config.properties create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.properties create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.xml create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.xml.0.nblh~ create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/project.properties create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/project.xml create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/rdfLib/.DS_Store create mode 100644 ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/rdfLib/sparqllib.php diff --git a/ws2011/BP/QS-Dokument/QS-Dokument.pdf b/ws2011/BP/QS-Dokument/QS-Dokument.pdf index 2127f001d70cb71bc179c9698b8a499485116c18..7c4c06794d6460860610b64663fcc235dbf5ff4c 100644 GIT binary patch delta 16585 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®1nG)hs+Rna2D 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°Y(P0Qf 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 Cn|?X~ delta 16323 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 ScyOGYtemi9WMT^9u>S)aA==~s diff --git a/ws2011/BP/QS-Dokument/QS-Dokument.tex b/ws2011/BP/QS-Dokument/QS-Dokument.tex index 248f7d2f..f4c0e5cd 100644 --- a/ws2011/BP/QS-Dokument/QS-Dokument.tex +++ b/ws2011/BP/QS-Dokument/QS-Dokument.tex @@ -82,12 +82,12 @@ ma Für eine bessere Nachvollziehbarkeit sind die Änderungen in diesem Dokument tabellarisch festgehalten. -\begin{tabular}{|| l || p{12cm} ||} +\begin{tabular}{ || l | p{12cm} || } \hline v. 0.0.0 - 01.12.2011 - MS & Dokument angelegt \\ \hline -test & test2 +test & dies soll nur ein langer sinnloser text werden, damit man überprüfen kann, ob auch der zeilenumbruch in der tabelle funktioniert. \\ \hline test & test2 \\ \hline diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/.DS_Store b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7e82419310637b9183df4ab14fc119ec1a754db5 GIT binary patch literal 6148 zcmeHK&2G~`5T0$5V)G;Ag6MI@i9=K+rX`ii!HohU5{C*`>VcwS$AJV{aTGgBB@-|_ zMV|tA5YC9V3E%z%*$w3aiV)h7X20>y%&zCtde=)ttUV2zL^UF^paLt`(fmS$U+9W# z=$;!uCdcq7rI;qv??x-pro%8`82Hy15Z|s%JJcbM&Y(ZP-?$e4>_QVjm;6NOLK+K=kJ|5WSscd(BpzH}@OAV_FcMzcfMLKeP-H;t4;(7c)tD=kTL&6> z1prpiEd{o?ONbn<(bbqMga^V@Do~{|eZ^oZ9sOL#xf*kYDxH{|8RO`gnZBVgIXn8f z3@7F)G_7I4Fi>V-Q$5zi`TywZ`+qsfJQ)TI1OF8RtkUs1ZIqp+ZDl nu280+(Z{hg#8JErl>#3Z2GG@*D?|^({0K-IOk)^WD+50OGR^|8 literal 0 HcmV?d00001 diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/index.php b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/index.php new file mode 100644 index 00000000..d8c04bea --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/index.php @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/controller.php b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/controller.php new file mode 100644 index 00000000..e386ebe6 --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/controller.php @@ -0,0 +1,120 @@ +buildNamespaces(); + + + if( !$db ) { print sparql_errno() . ": " . sparql_error(). "\n"; exit; } + + sparql_ns("prop", "http://dbpedia.org/property/"); + sparql_ns("type", "http://dbpedia.org/class/yago/"); + + + sparql_ns("test1", "http://dbpedia.org/ontology/"); + sparql_ns("test2", "http://www.w3.org/2000/01/"); + // sparql_ns("test3", ""); + + //folgende Abfragen funktionieren: +// $sparql = "SELECT ?country_name ?population WHERE { +// ?country a type:LandlockedCountries ; +// rdfs:label ?country_name ; +// prop:populationEstimate ?population . +// FILTER (?population > 15000000) . +// }"; +// + //$sparql = "select DISTINCT ?label2 WHERE { ?country ?city . ?country ?label1 . ?city ?label2 . FILTER (str(?label1) = \"".$userInput."\" && LANG(?label2) = \"en\") }"; + + + //$sparql = "SELECT ?movie WHERE { ?arni linkedmdbRes:actor_name \"Arnold Schwarzeneger\" . ?movie linkedmdbRes:actor ?arni . "; + + + $sparql = "SELECT ?actorName WHERE { ?woody linkedmdbRes:director_name \"Woody Allen\" . + ?movie ?woody; + ?actor. + ?actor ?actorName . + }"; + + $result = $db->query( $sparql ); + + $resultsReady = true; + + if( !$result ) + { print sparql_errno() . ": " . sparql_error(). "\n"; exit; } + + $fields = $result->field_array( $result ); + + +// if($userInput == "Test"){ +// echo "No way! I won't search infos about " . $userInput; +// }else{ + print "

Found: ".sparql_num_rows( $result )." entries.

"; + print ""; + print ""; + foreach( $fields as $field ) + { + print ""; + } + print ""; + while( $row = sparql_fetch_array( $result ) ) + { + print ""; + foreach( $fields as $field ) + { + print ""; + } + print ""; + } + print "
$field
$row[$field]
"; + // } + + + } + +} + +?> diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/freebaseController.php b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/freebaseController.php new file mode 100644 index 00000000..f0281657 --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/freebaseController.php @@ -0,0 +1,24 @@ + diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/mdbController.php b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/mdbController.php new file mode 100644 index 00000000..7afda6f9 --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logic/mdbController.php @@ -0,0 +1,28 @@ + diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logos/freebase.jpg b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/logos/freebase.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f2cf42d3fdbfd9ee4a46ab8ca9d2d666cecefe25 GIT binary patch literal 3212 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 literal 0 HcmV?d00001 diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/config.properties b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/config.properties new file mode 100644 index 00000000..e69de29b diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.properties b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.properties new file mode 100644 index 00000000..49665daa --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.properties @@ -0,0 +1,5 @@ +copy.src.files=true +copy.src.target=/Applications/XAMPP/htdocs/SemanticWebApp +index.file=index.php +run.as=LOCAL +url=http://localhost/SemanticWebApp/ diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.xml b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.xml new file mode 100644 index 00000000..7d386c35 --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.xml @@ -0,0 +1,9 @@ + + + + + logic/controller.php + 15 + + + diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.xml.0.nblh~ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.xml.0.nblh~ new file mode 100644 index 00000000..c1f155a7 --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/private/private.xml.0.nblh~ @@ -0,0 +1,4 @@ + + + + diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/project.properties b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/project.properties new file mode 100644 index 00000000..94429c9b --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/project.properties @@ -0,0 +1,7 @@ +include.path=${php.global.include.path} +php.version=PHP_53 +source.encoding=UTF-8 +src.dir=. +tags.asp=false +tags.short=true +web.root=. diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/project.xml b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/project.xml new file mode 100644 index 00000000..81dca232 --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/nbproject/project.xml @@ -0,0 +1,9 @@ + + + org.netbeans.modules.php.project + + + SemanticWebApp + + + diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/rdfLib/.DS_Store b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/rdfLib/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0b1b5236d1c482e6485a9e1a71e6c7007a575809 GIT binary patch literal 6148 zcmeHKyH3PF3>?E1hY-@0lv`4r#2>6q0qN>|01!X|DN@3#Pe;!Whw<8+E()|1U`O`s z!?T-A5$^(!&D-5MumZ58E8<+wojUEr^x9vVt*3AB(%Qz}AEEEU@LV-{q z6!`ZFux6_*j}0S+0--=Cuv0+)4~edr9S6hm>tN91yUs5Z)z~g~31aeob{q^jLldJC zjVgY{5TkQEd0uuL42=#cJ98c1S^S0~Wp|FJk`Bp+5krAcV5-2Obyr&dFX%tq|EHwr zg#w|#pHe^;Rb6fPNnTrLAE&i8(XZ)W#@v$5FgXOUqow$CFE44EdD(F=EOd?+Ix!9c Ms!LcX@EZzz0%9d4t^fc4 literal 0 HcmV?d00001 diff --git a/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/rdfLib/sparqllib.php b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/rdfLib/sparqllib.php new file mode 100644 index 00000000..66c685b0 --- /dev/null +++ b/ws2011/Semantic Web/Uebungen/1. Bonus Aufgabe/SemanticWebApp/rdfLib/sparqllib.php @@ -0,0 +1,335 @@ +ns( $short, $long ); } +function sparql_query( $sparql, $db = null ) { return _sparql_a_connection( $db )->query( $sparql ); } +function sparql_errno( $db = null ) { return _sparql_a_connection( $db )->errno(); } +function sparql_error( $db = null ) { return _sparql_a_connection( $db )->error(); } + +function sparql_fetch_array( $result ) { return $result->fetch_array(); } +function sparql_num_rows( $result ) { return $result->num_rows(); } +function sparql_field_array( $result ) { return $result->field_array(); } +function sparql_field_name( $result, $i ) { return $result->field_name( $i ); } + +function sparql_fetch_all( $result ) { return $result->fetch_all(); } + +function sparql_get( $endpoint, $sparql ) +{ + $db = sparql_connect( $endpoint ); + if( !$db ) { return; } + $result = $db->query( $sparql ); + if( !$result ) { return; } + return $result->fetch_all(); +} + +function _sparql_a_connection( $db ) +{ + global $sparql_last_connection; + if( !isset( $db ) ) + { + if( !isset( $sparql_last_connection ) ) + { + print( "No currect SPARQL connection (connection) in play!" ); + return; + } + $db = $sparql_last_connection; + } + return $db; +} + + +# $timeout = 20; +# $old = ini_set('default_socket_timeout', $timeout); +# ini_set('default_socket_timeout', $old); +class sparql_connection +{ + var $db; + var $debug = false; + var $errno = null; + var $error = null; + var $ns = array(); + function __construct( $endpoint ) + { + $this->endpoint = $endpoint; + global $sparql_last_connection; + $sparql_last_connection = $this; + } + + function ns( $short, $long ) + { + $this->ns[$short] = $long; + } + + function errno() { return $this->errno; } + function error() { return $this->error; } + + function query( $query ) + { + $this->errno = null; + $this->error = null; + $prefixes = ""; + foreach( $this->ns as $k=>$v ) + { + $prefixes .= "PREFIX $k: <$v>\n"; + } + $url = $this->endpoint."?query=".urlencode( $prefixes.$query ); + if( $this->debug ) { print "\n"; } + $ch = curl_init($url); + #curl_setopt($ch, CURLOPT_HEADER, 1); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + $output = curl_exec($ch); + $info = curl_getinfo($ch); + if(curl_errno($ch)) + { + $this->errno = curl_errno( $ch ); + $this->error = 'Curl error: ' . curl_error($ch); + return; + } + if( $output === '' ) + { + $this->errno = "-1"; + $this->error = 'URL returned no data'; + return; + } + if( $info['http_code'] != 200) + { + $this->errno = $info['http_code']; + $this->error = 'Bad response, '.$info['http_code'].': '.$output; + return; + } + curl_close($ch); + + $parser = new xx_xml($output, 'contents'); + return new sparql_result( $this, $parser->rows, $parser->fields ); + } +} + +class sparql_result +{ + var $rows; + var $fields; + var $db; + var $i = 0; + function __construct( $db, $rows, $fields ) + { + $this->rows = $rows; + $this->fields = $fields; + $this->db = $db; + } + + function fetch_array() + { + if( !@$this->rows[$this->i] ) { return; } + $r = array(); + foreach( $this->rows[$this->i++] as $k=>$v ) + { + $r[$k] = $v["value"]; + } + return $r; + } + + function fetch_all() + { + $r = new sparql_results(); + $r->fields = $this->fields; + foreach( $this->rows as $i=>$row ) + { + $r []= $this->fetch_array(); + } + return $r; + } + + function num_rows() + { + return sizeof( $this->rows ); + } + + function field_array() + { + return $this->fields; + } + + function field_name($i) + { + return $this->fields[$i]; + } +} + + +# class xx_xml adapted code found at http://php.net/manual/en/function.xml-parse.php +# class is cc-by +# hello at rootsy dot co dot uk / 24-May-2008 09:30 +class xx_xml { + + // XML parser variables + var $parser; + var $name; + var $attr; + var $data = array(); + var $stack = array(); + var $keys; + var $path; + + // either you pass url atau contents. + // Use 'url' or 'contents' for the parameter + var $type; + + // function with the default parameter value + function xx_xml($url='http://www.opocot.com', $type='url') { + $this->type = $type; + $this->url = $url; + $this->parse(); + } + + // parse XML data + function parse() + { + $this->rows = array(); + $this->fields = array(); + $data = ''; + $this->parser = xml_parser_create ("UTF-8"); + xml_set_object($this->parser, $this); + xml_set_element_handler($this->parser, 'startXML', 'endXML'); + xml_set_character_data_handler($this->parser, 'charXML'); + + xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false); + + if ($this->type == 'url') { + // if use type = 'url' now we open the XML with fopen + + if (!($fp = fopen($this->url, 'rb'))) { + $this->error("Cannot open {$this->url}"); + } + + while (($data = fread($fp, 8192))) { + if (!xml_parse($this->parser, $data, feof($fp))) { + $this->error(sprintf('XML error at line %d column %d', + xml_get_current_line_number($this->parser), + xml_get_current_column_number($this->parser))); + } + } + } else if ($this->type == 'contents') { + // Now we can pass the contents, maybe if you want + // to use CURL, SOCK or other method. + $lines = explode("\n",$this->url); + foreach ($lines as $val) { + $data = $val . "\n"; + if (!xml_parse($this->parser, $data)) { + echo $data.'
'; + $this->error(sprintf('XML error at line %d column %d', + xml_get_current_line_number($this->parser), + xml_get_current_column_number($this->parser))); + } + } + } + } + + function startXML($parser, $name, $attr) + { + if( $name == "result" ) + { + $this->result = array(); + } + if( $name == "binding" ) + { + $this->part = $attr["name"]; + } + if( $name == "uri" || $name == "bnode" ) + { + $this->part_type = "uri"; + $this->chars = ""; + } + if( $name == "literal" ) + { + $this->part_type = "literal"; + if( isset( $attr["datatype"] ) ) + { + $this->part_datatype = $attr["datatype"]; + } + if( isset( $attr["xml:lang"] ) ) + { + $this->part_lang = $attr["xml:lang"]; + } + $this->chars = ""; + } + if( $name == "variable" ) + { + $this->fields[] = $attr["name"]; + } + } + + function endXML($parser, $name) { + if( $name == "result" ) + { + $this->rows[] = $this->result; + $this->result = array(); + } + if( $name == "uri" || $name == "bnode" || $name == "literal" ) + { + $this->result[$this->part] = array( "type"=>$name, "value"=>$this->chars ); + if( isset( $this->part_lang ) ) + { + $this->result[$this->part]["lang"] = $this->part_lang; + } + if( isset( $this->part_datatype ) ) + { + $this->result[$this->part]["datatype"] = $this->part_datatype; + } + $this->part_datatype = null; + $this->part_lang = null; + } + } + + function charXML($parser, $data) { + @$this->chars .= $data; + } + + function error($msg) { + echo "
+ Error: $msg +
"; + exit(); + } +} + +class sparql_results extends ArrayIterator +{ + var $fields; + function fields() { return $this->fields; } + + function render_table() + { + $html = ""; + foreach( $this->fields as $i=>$field ) + { + $html .= ""; + } + $html .= ""; + foreach( $this as $row ) + { + $html.=""; + foreach( $row as $cell ) + { + $html .= ""; + } + $html.=""; + } + $html.="
?$field
".htmlspecialchars( $cell )."
+ +"; + return $html;exit; + } + +}