Channel #semsol: Logs

This is a public chat log generated from the #semsol IRC channel.

06:48:00 kwijibo: rabur, no the boolean syntax is only for within FILTERs
06:48:26 kwijibo: you could use a UNION or perhaps OPTIONAL
07:17:45 bengee_: bengee_ reading logs, seeing kwijibo doing great support work :)
07:28:21 bengee: Rabur, it could indeed be some utf8 thing, the filter syntax is fine
07:29:41 bengee: arc support utf8 as far as php lets it, though, so I'm not sure why it's failing. It usually doesn't have problems with utf-8 chars
07:36:55 bengee: I get the same error when I try it against the IRC log endpoint (which is a rather old and restricted php4), but it is accepted on my local installation (php4 with multi-byte extensions)
07:37:49 bengee: the sparql parser doesn't rely on mb_*, though, maybe it's something else in php that was improved during the newer releases
08:07:29 kwijibo: morning bengee
08:11:11 bengee: heya
12:16:08 kzme: hi everyone, first visit, listening in for now.. thanks for the arclib, just started using it.
12:16:33 bengee: bengee waves to kzme
12:16:55 kzme: ;-)
13:42:42 Rabur: kwijibo, bengee: thx for answers :)
13:43:09 kwijibo: np
13:49:02 kzme: newbie q coming up ;-) : im trying to add triples to the store, but can't figure out the syntax..
13:49:10 kzme: im using: INSERT INTO <http://www.domain.tld/organizations> {<#orgname> <http://namespace.tld/projects> "projectX". }
13:49:27 kzme: but get an error: do i need to add a graph fisrt?
13:53:17 kzme: correction : not an error, just that no triples are added. I suspect that's because the uri after INTO isn't available yet.
14:01:28 kwijibo: not sure, but maybe it's because <#orgname> isn't a full uri ?
14:01:55 kwijibo: kwijibo not sure if arc would try to resolve that frag id into a uri
14:02:40 kzme: thnx ... i'll do some further testing now
14:08:22 kzme: that was it thnx very much (i tried solving this myself for two hours)
14:12:12 bengee: hmm, maybe I should add support for that to the parser, INTO could be considered as an implicit BASE
14:15:33 kzme: i tried adding graphs independently : using CREATE GRAPH <uri> followed by the insert into... it seemed logical, but alas
14:33:01 kwijibo: no such thing as CREATE GRAPH is there?
14:33:31 kwijibo: a graph can't exist independently afaik
14:33:59 kwijibo: since it is (logically) a component of a statement
14:34:01 bengee: it can in Jena/ARQ. SPARUL has CREATE GRAPH
14:34:43 kwijibo: ah right, I stand corrected then :)
14:34:57 kzme: not sure if it woul be meaningfull to have graphs with no triples
14:34:58 bengee: but I preferred the "a triple exists once you write s, p, and o" and went for "a graph exists once you write g, s, p, o"
14:35:16 bengee: it felt more RDF-y
14:35:23 kwijibo: yeah
14:35:43 bengee: "a resource exists once you use it in a triple" etc
14:35:58 kwijibo: tha talis stores can have empty graphs so far, but that may change when we have user-definable named graphs
14:36:07 kwijibo: *the
14:37:09 kzme: but, on the other hand, it might seem useful when you can only add tripples to existing graphs, it might provide better managed data?
15:01:00 Rabur: Is there posibility to make in sparql sth like this: FILTER(?key LIKE '%something%' )
15:01:05 Rabur: I mean, like in MySQL
15:01:25 bengee: REGEX(?key, "something")
15:01:46 Rabur: Ok :)
15:01:50 kwijibo: filter(regex(str(?var), "something") )
15:02:05 kwijibo: bengee: ear worm?
15:02:12 bengee: heh
15:02:28 kwijibo: the closest I can think of is 'catchy tune'
15:02:47 bengee: yeah, that's what the dict suggests, too
15:03:05 kwijibo: ohrwurm is better :)
15:06:30 bengee: Rabur, for case-insensitive matching, you can do filter(regex(str(?var), "something", "i") )
15:07:09 bengee: bengee wonders why he didn't keep ARC1's "rewrite to LIKE if possible"
15:08:08 Rabur: str(?var) <--- what does it do ?
15:08:17 Rabur: i mean str() function
15:08:22 bengee: make sure that ?var is treated as a string
15:08:39 bengee: e.g. when ?var is typed as URI
15:08:52 Rabur: Hehe, i want to search in URIs too :)
15:09:16 bengee: some systems throw an error when you do string operations (like regex) on non-strings
15:09:43 bengee: ARC doesn't care, but it doesn't hurt to keep the str() for compatibility reasons
15:10:12 Rabur: Is URI string in ARC too ?
15:11:19 bengee: on the SQL level, the comparisons are done on the field value level, and those are stored as text in MySQL
15:13:43 Rabur: Ok, thx very much then :)
15:23:34 kzme: bengee: assuming that you're the original author of arc,..i've been following the progress of arc for a while, but choose rdf-api in the past
15:23:54 kzme: could you elaborate on the diffs between arc and rdf-api /powl etc?
15:24:31 kzme: just wondering
15:24:48 Rabur: [Is there any way to make this: FILTER(?key = 'Plato') case-insensitive?]
15:25:42 bengee: arc started as small, stand-alone classes, as an alternative to RAP's rather large codebase
15:26:50 bengee: and for environments with limited resources (low memeory etc)
15:27:37 bengee: many people also found the $statement = new (new Subject(), new Predicate(), new Object()) pattern a bit too clumsy and resource-hungry
15:27:50 bengee: well, I did, at least ;)
15:28:01 kzme: mm yes... i like it ;-)
15:28:49 kzme: arc i mean
15:29:11 bengee: arc has now evolved into a more integrated toolkit, so some of the initial motivations sort of faded out, but I'm currently revisiting the idea of providing small, stand-alone classes, too
15:29:15 bengee: thx :)
15:29:44 Rabur: I am really newbie in the SW, but i like it a lot ARC bcoz it can be used by ppl like me, using only php i can learn basics of the SW :)
15:29:45 bengee: Rabur, there are MySQL extensions available in ARC
15:29:47 kzme: i building adesktop app with it, using php gtk+
15:30:00 bengee: things like lowercase()
15:30:15 bengee: kzme, oh, interesting
15:30:51 kzme: yes... i want to have an app that can both interact with the local system as well as servers
15:31:29 bengee: I spent a lot of time on developing db structure that could store larger amounts of triples compared to RAP's db schema
15:31:55 bengee: *a* db structure
15:32:19 bengee: RAP has many more features, compared to ARC
15:32:20 kzme: yes, that's a real challenge: limit the number of queries
15:32:58 bengee: ARC's current focus is on making things easy, even for people who don't know to much about RDF and SPARQL
15:33:20 Rabur: Sorry, for asking a lot ... but i have another question :F is there in ARC in sparql queries sth like DISTINCT ?
15:33:33 bengee: yes
15:33:45 kzme: agree, that IS the challenge: make rdf useful on a everymans level
15:33:46 bengee: SPARQL supports LIMIT 10
15:34:16 Rabur: bengee: How to make DISTINCT
15:34:20 bengee: SELECT ?foo WHERE {...} LIMIT 10 ORDER BY DESC(?bar)
15:34:24 Rabur: This query show errors: SELECT ?property ?uri DISTINCT ?hasValue
15:34:26 Rabur: WHERE {
15:34:27 Rabur: { ?uri ?property1 ?key .
15:34:28 Rabur: ?uri ?property ?hasValue .
15:34:29 Rabur: }
15:34:31 Rabur: FILTER(REGEX(?key, 'Plato', 'i') && LANG(?key)='en')
15:34:32 Rabur: }
15:34:56 bengee: SPARQL has only one global DISTINCT, to be put directly after the SELECT
15:35:14 kzme: i'm a bit frustrated though with the uptake of rdf.... it seems it lacks good inbetween layers
15:35:58 Rabur: bengee: Ohhh, ok, thanks, it's workin now :)
15:36:05 bengee: yay
16:17:06 kwijibo: bengee: anyone written an in-mem sparql engine for arc yet?
16:34:25 bengee: heh, interested?
16:34:37 bengee: there is non yet
16:34:43 bengee: none
16:35:19 kwijibo: yeah, interested
16:36:01 kwijibo: wondering how difficult it is on a scale of 1 to 10
16:38:25 bengee: basic patterns are pretty straight-forward, but then it gets nasty rather quickly, I guess (optional-dependencies etc)
16:39:47 bengee: on the other hand, if you walk along the query structure, maybe it's easier than it looks
16:40:28 kwijibo: yeah - maybe the pain points are different when it's im memoy instead of sql generation
16:40:29 bengee: nested optionals would just be applied to "what's still there from the parent optional"
16:41:01 bengee: your index utils could be very handy here
16:41:29 kwijibo: yeah - I was imaginging starting at the top of the structure, and each triple constraining the dataset further
16:42:31 kwijibo: I want it for my templating stuff
16:42:44 bengee: I could use it in a lot of places, too
16:43:53 bengee: if youre realy going for it, I'd suggest creating a class that's similar o the Store class
16:44:49 kwijibo: exposing the same API, or following the same code flow?
16:44:58 bengee: more API-wise
16:46:14 bengee: like $store = new ARC2_MemoryStore(...); $rows = $store->query('SELECT ...', 'rows')
16:49:30 kwijibo: yeah, makes sense
17:28:29 bengee: kwijibo, http://bnode.org/blog/2008/03/31/new-arc2-plugins
17:29:22 bengee: bengee should really send out t-shirts instead of blog posts
17:29:26 kwijibo: wow, fame
17:29:31 kwijibo: ta bengee
17:29:40 bengee: thank *you* :)
18:35:44 TedThibodeauJr: what's it actually selling for? this one has been Most Recommended for a while -- http://www.amazon.com/gp/product/B00007KDVI/
18:35:50 TedThibodeauJr: whoops. not here.
18:36:00 bengee: heh