How identifiers are represented in :BaseKB
For nearly any query you want to ask :BaseKB, you will need to discover the names of the properties that you wish to use.
:BaseKB contains nearly 4 million topics, 12,000 classes and 100,000+ properties, so this can be a challenge. We're developing new tools to help you here, but in the meantime we'll explain how to look objects and properties up manually and programatically and about the naming conventions we share with Freebase.
How to find types, predicates and entities
You can look identifiers up with the Freebase web interface.
If, for instance, you type the phrase "United States", autocompletion will send you to
this node. The Freebase
identifier /en/united_states applies here, and you can make this a BaseKB id
by replacing slashes with periods: basekb:en.united_states.
The "Edit and Show Details" button on the bottom of that page will take
you to a page which breaks down the properties of the topic by types. One of these
types, /location/dated_location has a property named "Date founded". If you click on the wrench logo, you'll see
a schema page that reveals this property is named /location/dated_location/date_founded. The two identifiers we've looked up are used on the example
query here.
The space of Freebase names can also be explored by starting at the root node and following /type/object/key
relations to find what you're looking for.
The Freebase Schema (lower ontology) and Metaschema (middle ontology) are encoded as triples inside :BaseKB. The Freebase schema is similar in spirit to RDFS, but is sufficiently different that RDFS inference on Freebase produces incorrect entailments.
The most important schema properties belong to the /type/propery type.
The following query pulls up properties that apply to basekb:people.person:
select ?label ?property ?range {
graph public:baseKB {" +
?property basekb:type.property.schema
basekb:people.person .
OPTIONAL {
?property basekb:type.property.expected_type ?range .
}
OPTIONAL {
?property rdfs:label ?label .
FILTER(lang(?label)='en')
}
}
}
The Unique Name Assumption holds inside :BaseKB
It is difficult to write queries if a database does not support the Unique Name Assumption. If we ask,
for instance, who is the author of "The Caves of Steel" we'll find that different authorities use names
like basekb:en.issac_asimov, fbase:m.03rx9, dbpedia:Issac_Asimov. Unless you've got some mechanism to know these
refer to the same thing, you'd come to the conclusion that the book was written by a committee.
We believe the standard semantics of owl:sameAs do not solve this problem,
instead, like Freeebase, we consistently use unique mid identifiers for all topics,
(ex. basekb:m.03rx9) and resolve alternative names to this before bringing them
across the system boundary.
basekb-tools does this resolution for SPARQL queries.
You can merge other data sources (ex. DBpedia) with :BaseKB in the :BaseKB viewpoint by resolving foreign ids to unique :BaseKB ids. You are free to use other reconciliation methods, benefitting from the clean data provided by Freebase and :BaseKB
basekb:wikipedia.en namespace contains the (non-Unique) English Wikipedia
identifiers for a topic. You can find the :BaseKB topic that corresponds to
dbpedia:Urusei_Yatsura with
the following query:
select ?topic {
graph public:baseKB {
?topic basekb:wikipedia.en 'Urusei_Yatsura'
}
}
It would be possible (and desirable) to publish statements of the form
basekb:m.014kzr public:dbpediaLink dbpedia:Urusei_Yatsura .this hasn't happened yet because doing this correctly would involve a careful comparison with output of DBpedia to confirm that we deal with IRI vs URI issues in a compatible manner.
:BaseKB undoes the encoding on Unicode characters done in the Freebase quad dump, so that
basekb:m.014kzr basekb:wikipedia.jp "うる星やつら" .
:BaseKB is a product of Ontology2. See our privacy policy and terms of use. :BaseKB contains data from Freebase.