On Jul 1, 2010, at 11:18 AM, Yves Raimond wrote:
On Thu, Jul 1, 2010 at 3:46 PM, Henry Story <[email protected]>
wrote:
On 1 Jul 2010, at 16:35, Kingsley Idehen wrote:
Yves Raimond wrote:
Hello Kingsley!
[snip]
IMHO an emphatic NO.
RDF is about constructing structured descriptions where
"Subjects" have
Identifiers in the form of Name References (which may or many
resolve to
Structured Representations of Referents carried or borne by
Descriptor
Docs/Resources). An "Identifier" != Literal.
If you are in a situation where you can't or don't want to mint
an HTTP
based Name, simply use a URN, it does the job.
It does look like you're already using literal subjects in OpenLink
Virtuoso though:
http://docs.openlinksw.com/virtuoso/rdfsparql.html
SQL>SELECT *
FROM <people>
WHERE
{
?s foaf:Name ?name . ?name bif:contains "'rich*'".
}
Best,
y
Were is the Literal Subject in the query above?
bif:contains is a function/magic predicate scoped to Literal
Objects.
<people> != "people".
What am I missing?
Why do you think it is magic? Such a relation makes complete sense.
Given that is is a relation between literals it can be tested
without needing
to look at the world. Just like an math:isgreaterThan relation ...
In fact I wonder how much SPARQL could be simplified by thinking of
things this
way. Could one perhaps get rid of the FILTER( ) clause?
+1
Almost all FILTER functions I know of could be done using predicates
in the where clause (it would even look a bit more like SQL :) ).
In any case RDF Semantics does, I believe,
allow literals in subject position. It is just that many many
syntaxes
don't allow that to be expressed,
It doesn't seem to be allowed in the RDF semantics:
http://www.w3.org/TR/rdf-concepts/#section-Literals
"A literal may be the object of an RDF statement, but not the subject
or the predicate."
Just to clarify, this is a purely syntactic restriction. Allowing
literals in subject position would require **no change at all** to the
RDF semantics. (The non-normative inference rules for RDF and RDFS and
D-entailment given in the semantics document would need revision, but
they would then be simplified.)
Pat
But there is nothing you can do to stop that happening
semantically. A URI or bnode
can just be names for strings.
And as for it requiring a change to the infrastructure of your DB,
it is not clear that
it immediately does, since you can alwasy rewrite
"father" containsLetters 6 .
as
[] owl:sameAs "father";
containsLetters 6 .
Henry
--
Regards,
Kingsley Idehen President & CEO OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen
------------------------------------------------------------
IHMC (850)434 8903 or (650)494 3973
40 South Alcaniz St. (850)202 4416 office
Pensacola (850)202 4440 fax
FL 32502 (850)291 0667 mobile
phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes