2015-03-02 6 views
2

Я хотел бы связать два разных набора данных, используя конечные точки sparql (скажем, http://dbpedia.org/sparql и http://pubmed.bio2rdf.org/sparql) Я собираюсь создать онтологию OWL с нуля, а затем заполнить эту онтологию этими двумя разные наборы данных.Пополнение OWL-онтологии с внешних конечных точек SPARQL

Я новичок в семантической сети и связанных понятиях данных. Если вы, ребята, дадите мне несколько примеров/идей, которые должны были начать эту вещь?

+0

Это удивительный вопрос. Спасибо за вопрос. –

ответ

0

Советы SPARQL найти нелегко. Используя приведенный ниже пример, вы можете заполнить свою онтологию. Мне кажется немного одиноким, что я отвечаю на свой вопрос.

Вместо использования оконечной точки pubmed sparql, я использовал конечную точку проекта gutenberg. Сначала я создал онтологию с использованием Protegé. Это довольно просто и прямо. Followinh - пример запроса метаданных работ Кафки и Твена в DBPedia и Project Gutenberg.

PREFIX gb: <yourOntologyGoesHere.owl#> 
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
    PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
    PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
    PREFIX dbpprop: <http://dbpedia.org/property/> 
    PREFIX dc:<http://purl.org/dc/elements/1.1/> 
    PREFIX foaf:<http://xmlns.com/foaf/0.1/> 
    PREFIX dcterms: <http://purl.org/dc/terms/> 
    CONSTRUCT { 
    ?book rdf:type gb:Book . 
    ?book gb:titled_as ?name. 
    gb:Title rdf:type ?name. 
    ?book gb:written_by ?author. 
    ?author rdf:type gb:Author. 
    ?book gb:author_name ?authorName. 
    gb:Author rdf:type ?authorName. 
    gb:AuthorName rdf:type ?authorName. 
    ?book gb:released ?firstPublished. 
    ?firstPublished rdf:type gb:PublishDate. 
    ?book gb:writtenInCountry ?country . 
    ?country rdf:type gb:Country. 
    ?book gb:writtenIn ?lang . 
    ?lang rdf:type gb:Language. 
    ?book gb:summary ?abstract. 
    gb:Absratct rdf:type ?abstract. 
    ?book gb:identified_with ?isbn . 
    gb:ISBN rdf:type ?isbn. 
    ?book gb:publish_tpe ?mediaType . 
    ?mediaType rdf:type gb:Media . 
    ?book gb:has_pagenumber ?pages. 
    gb:Pages rdf:type ?pages. 
    ?book gb:genre ?genre 
    }WHERE{?book rdf:type dbpedia-owl:Book . 
    ?book foaf:name ?name. 
    OPTIONAL {?book dbpedia-owl:author ?author} 
    OPTIONAL {?author dbpprop:name ?authorName} 
    OPTIONAL {?book dbpedia-owl:releaseDate ?firstPublished} 
    OPTIONAL {?book dbpedia-owl:country ?country} 
    OPTIONAL {?book dbpedia-owl:language ?lang} 
    OPTIONAL {?book dbpedia-owl:abstract ?abstract} 
    OPTIONAL {?book dbpedia-owl:isbn ?isbn} 
    OPTIONAL {?book dbpedia-owl:numberOfPages ?pages} 
    OPTIONAL {?book dbpedia-owl:mediaType ?mediaType} 
    OPTIONAL {?book dbpprop:genre ?genre} 
    FILTER (regex(str(?author), "Franz_Kafka") || regex(str(?author), "Mark_Twain")) 
    FILTER (LANG(?abstract)="en") 
    } 

DBpedia

PREFIX gb: <yourOntologyGoesHere.owl#> 
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>   
    PREFIX movie: <http://data.linkedmdb.org/resource/movie/> 
    PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> 
    PREFIX dc: <http://purl.org/dc/terms/> 
    prefix owl: <http://www.w3.org/2002/07/owl#> 
    PREFIX dc:<http://purl.org/dc/elements/1.1/> 
    PREFIX foaf:<http://xmlns.com/foaf/0.1/> 
    PREFIX dcterms: <http://purl.org/dc/terms/> 

    CONSTRUCT { 
    ?book rdf:type gb:Book . 
    ?book gb:title ?bookTitle . 
    ?book gb:written_by ?author. 
    ?author rdf:type gb:Author. 
    ?book gb:addedToGutenberg ?addedToCatalog. 
    ?addedToCatalog rdf:type gb:AddedToGutenberg. 
    ?book1 rdf:type gb:Book . 
    ?book1 gb:title ?bookTitle1 . 
    ?book1 gb:written_by ?author1. 
    ?author1 rdf:type gb:Author. 
    ?author owl:sameAs <http://dbpedia.org/resource/Franz_Kafka> . 
    ?author1 owl:sameAs <http://dbpedia.org/resource/Mark_Twain> . 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext3176> owl:sameAs <http://dbpedia.org/resource/The_Innocents_Abroad>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext3177> owl:sameAs <http://dbpedia.org/resource/Roughing_It>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext245> owl:sameAs <http://dbpedia.org/resource/Life_on_the_Mississippi>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext9009> owl:sameAs <http://dbpedia.org/resource/Life_on_the_Mississippi>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext1086> owl:sameAs <http://dbpedia.org/resource/A_Horse's_Tale>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext119> owl:sameAs <http://dbpedia.org/resource/A_Tramp_Abroad>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext3174> owl:sameAs <http://dbpedia.org/resource/A_Dog's_Tale>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext3186> owl:sameAs <http://dbpedia.org/resource/The_Mysterious_Stranger>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext3190> owl:sameAs <http://dbpedia.org/resource/1610_(Mark_Twain)>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext3251> owl:sameAs <http://dbpedia.org/resource/The_Man_That_Corrupted_Hadleyburg>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext91> owl:sameAs <http://dbpedia.org/resource/Tom_Sawyer_Abroad>. 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext93> owl:sameAs <http://dbpedia.org/resource/Tom_Sawyer,_Detective>. 
    <http://dbpedia.org/resource/The_Metamorphosis> owl:sameAs <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext5200> . 
    <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/etext7849> owl:sameAs <http://dbpedia.org/resource/The_Trial>. 
    ?book1 gb:addedToGutenberg ?addedToCatalog1. 
    ?addedToCatalog1 rdf:type gb:AddedToGutenberg 
    } 
    WHERE { 
    ?author foaf:name "Kafka, Franz, 1883-1924". 
    ?author1 foaf:name "Twain, Mark, 1835-1910". 
    ?book dc:creator ?author; 
    dc:title ?bookTitle; 
    dc:language ?bookLanguage; 
    dcterms:created ?addedToCatalog. 
    ?book1 dc:creator ?author1; 
    dc:title ?bookTitle1; 
    dc:language ?bookLanguage1; 
    dcterms:created ?addedToCatalog1} 

Эти два запроса собираются заселить онтологию вы создали. Затем вы можете запросить свою недавно созданную онтологию.

0

Вы хотите взять два запроса онтологи за раз, используя SPARQL? Если тогда это легко сделать. Возьмите две онтологии (файлы .OWL) и запросите его с помощью SPARQL (сервер jena-fuseki), используя PREFIX обоих файлов OWL.

Не могли бы вы уточнить вопрос? Вам нужен пример файлов OWL или запроса SPARQL на конечной точке.

0

Использование SPARQL SERVICE, вы можете сделать что-то вроде следующего:

CONSTRUCT { 
    <dbpedia-value1> a <your-class1> . 
    <dbpedia-value1> ?p1 ?o1 . 
    <pubmed-value2> a <your-class2> . #or perhaps also <your-class1> 
    <pubmed-value2> ?p2 ?o2 . 
} 
WHERE { 
    SERVICE <http://dbpedia.org/sparql> { 
     <dbpedia-value1> a <dbp-class1> . 
     <dbpedia-value1> ?p1 ?o1 . 
    } 
    SERVICE <http://pubmed.bio2rdf.org/sparql> { 
     <pubmed-value2> a <pubmed-class1> . 
     <pubmed-value2> ?p2 ?o2 . 
    } 
} 

Это получит набор экземпляров из класса в каждом из концов и сопоставить их с вашей онтологии. Запросы к конечным точкам могут быть произвольно сложными (SPARQL IN может быть полезен здесь), но общая методика заключается в том, чтобы запрашивать эти данные и использовать CONSTRUCT для сопоставления этих значений с тройками в вашей онтологии, а затем сохранить созданные троек. (Или непосредственно ВСТАВИТЬ данные на график.)

Вы также можете использовать этот шаблон для сопоставления свойств между источниками и вашей онтологией. В этом случае указать конкретное свойство в предложении WHERE

<pubmed-value2> <pubmed-prop1> ?prop1value . 

... затем преобразовать их в запросе CONSTRUCT:

<pubmed-value2> <your-prop1> ?prop1value .